.skip-link[data-astro-cid-pbhazpx6]{padding:var(--space-sm) var(--space-md);background:var(--accent);color:var(--on-accent);border-radius:var(--radius-btn);z-index:20;font-weight:600;position:absolute;inset-block-start:var(--space-sm);inset-inline-start:var(--space-md);transform:translateY(-200%)}.skip-link[data-astro-cid-pbhazpx6]:focus{transform:none}.site-footer[data-astro-cid-jo6i4kqk]{border-block-start:1px solid var(--line);padding:var(--space-xl) var(--space-lg);text-align:center}.footer-links[data-astro-cid-jo6i4kqk]{justify-content:center;gap:var(--space-md);margin:0 0 var(--space-md);flex-wrap:wrap;padding:0;list-style:none;display:flex}.footer-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{min-block-size:44px;font-size:var(--fs-label);color:var(--ink);align-items:center;font-weight:600;text-decoration:underline 1px;display:inline-flex}.footer-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--accent)}.footer-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:active{color:var(--accent-hover)}.footer-rights[data-astro-cid-jo6i4kqk]{font-size:var(--fs-label);color:var(--muted);font-weight:600}@layer components{.btn{justify-content:center;align-items:center;gap:var(--space-sm);min-block-size:48px;padding:12px var(--space-md);border-radius:var(--radius-btn);font-size:var(--fs-body);border:1px solid #0000;font-weight:600;line-height:1.5;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background-color:var(--accent);background-image:linear-gradient(135deg, var(--btn-grad-from), var(--btn-grad-to));color:var(--on-accent)}.btn-primary:hover{background-image:linear-gradient(315deg, color-mix(in srgb, var(--btn-grad-from) 92%, var(--btn-hover-mix)), color-mix(in srgb, var(--btn-grad-to) 92%, var(--btn-hover-mix)))}.btn-primary:focus-visible{outline-offset:3px;box-shadow:0 0 0 2px var(--bg)}.btn-secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn-secondary:hover{border-color:var(--accent)}.btn-sm{min-block-size:44px;font-size:var(--fs-label);padding:8px 12px}@media (prefers-reduced-motion:no-preference){.btn{transition:background-color .15s,border-color .15s,color .15s,transform .15s}}.section{max-inline-size:var(--container);padding-inline:var(--space-lg);padding-block:var(--space-2xl);margin-inline:auto}@media (width>=1024px){.section{padding-block:var(--space-3xl)}}.section>h2{text-wrap:balance;margin-block-end:var(--space-xl)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.chips{gap:var(--space-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.chip{font-family:var(--font-mono);font-weight:600;font-size:var(--fs-label);color:var(--accent-hover);background:color-mix(in srgb, var(--accent) 14%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);border-radius:var(--radius-btn);padding:4px 8px;line-height:1.5}.chips--on-surface .chip{background:color-mix(in srgb, var(--accent) 14%, var(--bg))}.mesh{isolation:isolate;position:relative}.mesh:before,.mesh:after{content:"";z-index:-1;pointer-events:none;position:absolute;inset-block:0;inset-inline:calc(50% - 50vw)}.mesh:before{background-image:linear-gradient(var(--mesh-grid) 1px, transparent 1px), linear-gradient(90deg, var(--mesh-grid) 1px, transparent 1px);background-size:var(--mesh-cell) var(--mesh-cell);-webkit-mask-composite:source-in;-webkit-mask-image:radial-gradient(at 30% 30%,#000 20%,#0000 75%),linear-gradient(#000 calc(100% - 96px),#0000);mask-image:radial-gradient(at 30% 30%,#000 20%,#0000 75%),linear-gradient(#000 calc(100% - 96px),#0000);mask-composite:intersect}.mesh:after{background:radial-gradient(560px circle at 78% 18%, var(--mesh-a), transparent 70%)}.mesh__blob{z-index:-1;pointer-events:none;aspect-ratio:1;background:radial-gradient(closest-side, var(--mesh-b), transparent);inline-size:min(480px,100vw);position:absolute;inset-block-end:0;inset-inline-start:calc(50% - 50vw)}.mesh--soft:before,.mesh--soft:after{opacity:var(--mesh-opacity-soft)}@media (prefers-reduced-motion:no-preference){@keyframes mesh-drift{0%{opacity:1;transform:translate(0,0)}to{opacity:.85;transform:translate(24px,16px)}}.mesh--drift:after{will-change:transform;animation:24s ease-in-out infinite alternate mesh-drift}.mesh--drift .mesh__blob{will-change:transform;animation:28s ease-in-out infinite alternate-reverse mesh-drift}}.grad-text{color:var(--ink)}@supports (background-clip:text){@media (forced-colors:none){.grad-text{background:linear-gradient(90deg, var(--grad-text-from), var(--grad-text-to));color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}}}:is(.section,.project-section,.detail-cta,.project-body)>h2:after{content:"";block-size:4px;inline-size:48px;background:linear-gradient(90deg, var(--grad-from), var(--grad-to));border-radius:2px;margin-block-start:var(--space-sm);display:block}@media (forced-colors:active){.mesh:before,.mesh:after,.mesh__blob{display:none}.btn-primary{background-image:none}}.card-fx{position:relative}.card-fx:before{content:"";border-radius:inherit;background:var(--grad-border);-webkit-mask-composite:xor;opacity:0;pointer-events:none;z-index:1;padding:1px;position:absolute;inset:-1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}.card-fx:is(:focus-visible,:has(:focus-visible)):before{opacity:1}@media (hover:hover){.card-fx:hover:before{opacity:1}}@media (prefers-reduced-motion:no-preference){.card-fx:before{transition:opacity .15s}.card-fx--lift,.card-fx--lift-sm{transition:transform .3s ease-out,box-shadow .3s ease-out}.card-fx--lift:is(:focus-visible,:has(:focus-visible)){box-shadow:var(--shadow-card);transform:translateY(-4px)}.card-fx--lift-sm:is(:focus-visible,:has(:focus-visible)){box-shadow:var(--shadow-card-soft);transform:translateY(-2px)}@media (hover:hover){.card-fx--lift:hover{box-shadow:var(--shadow-card);transform:translateY(-4px)}.card-fx--lift-sm:hover{box-shadow:var(--shadow-card-soft);transform:translateY(-2px)}}}@supports not (mask-composite:exclude){.card-fx:before{display:none}.card-fx:is(:focus-visible,:has(:focus-visible)){border-color:var(--accent)}@media (hover:hover){.card-fx:hover{border-color:var(--accent)}}}@media (forced-colors:active){.card-fx:before{display:none}}:root{--reveal-distance:16px}@media (width>=640px){:root{--reveal-distance:24px}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){@keyframes reveal-up{0%{opacity:0;transform:translateY(var(--reveal-distance))}to{opacity:1;transform:none}}.reveal{animation:linear both reveal-up view();animation-range:entry entry 40%}}@supports not (animation-timeline:view()){.reveal-js .reveal:not(.is-visible){opacity:0;transform:translateY(var(--reveal-distance))}.reveal-js .reveal{transition:opacity .4s ease-out,transform .4s ease-out}}}}
