:root{color-scheme:dark light}html{scrollbar-gutter:stable}::view-transition-group(root){animation-duration:.68s;animation-timing-function:cubic-bezier(.22,1,.32,1)}::view-transition-old(root){animation:theme-vt-root-out .62s cubic-bezier(.33,1,.36,1) both}::view-transition-new(root){animation:theme-vt-root-in .72s cubic-bezier(.2,.95,.28,1) both}@keyframes theme-vt-root-out{0%{opacity:1;filter:blur(0) saturate(1);transform:scale(1)}to{opacity:.25;filter:blur(16px) saturate(1.35) brightness(1.08);transform:scale(1.018)}}@keyframes theme-vt-root-in{0%{opacity:.92;filter:brightness(1.35) blur(5px);clip-path:circle(0px at var(--theme-vt-x, 50%) var(--theme-vt-y, 50%))}55%{filter:brightness(1.08) blur(1px)}to{opacity:1;filter:brightness(1) blur(0);clip-path:circle(160vmax at var(--theme-vt-x, 50%) var(--theme-vt-y, 50%))}}@media(max-width:768px){::view-transition-group(root){animation-duration:.42s}::view-transition-old(root){animation:theme-vt-root-out-m .4s cubic-bezier(.37,0,.21,1) both}::view-transition-new(root){animation:theme-vt-root-in-m .46s cubic-bezier(.22,1,.34,1) both}@keyframes theme-vt-root-out-m{0%{opacity:1;transform:scale(1)}to{opacity:.2;transform:scale(1.01)}}@keyframes theme-vt-root-in-m{0%{opacity:.85;filter:brightness(1.2);clip-path:circle(0px at var(--theme-vt-x, 50%) var(--theme-vt-y, 50%))}to{opacity:1;filter:brightness(1);clip-path:circle(160vmax at var(--theme-vt-x, 50%) var(--theme-vt-y, 50%))}}}@media(prefers-reduced-motion:reduce){::view-transition-group(root){animation-duration:.001ms}::view-transition-old(root),::view-transition-new(root){animation:theme-vt-none .001ms both!important}@keyframes theme-vt-none{0%,to{opacity:1;filter:none;transform:none;clip-path:none}}}html[data-theme=dark],html:not([data-theme]){--bg: #111318;--bg2: #171b22;--bg3: #1e242e;--line: rgba(255, 255, 255, .06);--line2: rgba(255, 255, 255, .11);--text: #e9ebef;--muted: #9aa3ad;--muted-dim: #6f7a86;--accent: #e2b565;--cursor-ring: color-mix(in srgb, var(--accent) 38%, transparent);--cursor-ring-hover: color-mix(in srgb, var(--accent) 62%, transparent);--grid-opacity: .58;--nav-bg: color-mix(in srgb, var(--bg) 88%, transparent);--nav-bg-scrolled: color-mix(in srgb, var(--bg) 94%, transparent);--nav-toolbar-bg: rgba(255, 255, 255, .045);--shadow-card: rgba(0, 0, 0, .5);--quote-bg-mid: rgba(23, 27, 34, .55);--on-accent: #16130f;--nav-accent: #a3b8ff;--on-nav-accent: #0e1118;--work-hero-title: var(--text);--hero-outline-stroke: rgba(255, 255, 255, .44)}html[data-theme=light]{color-scheme:light;--bg: #f4f2ec;--bg2: #ebe8e0;--bg3: #e0dcd2;--line: rgba(20, 22, 26, .1);--line2: rgba(20, 22, 26, .16);--text: #16181d;--muted: #3a3f47;--muted-dim: #484e57;--accent: #7a5220;--cursor-ring: color-mix(in srgb, var(--accent) 42%, transparent);--cursor-ring-hover: color-mix(in srgb, var(--accent) 68%, transparent);--grid-opacity: .32;--nav-bg: color-mix(in srgb, var(--bg) 92%, transparent);--nav-bg-scrolled: color-mix(in srgb, var(--bg) 97%, transparent);--nav-toolbar-bg: rgba(255, 255, 255, .72);--shadow-card: rgba(0, 0, 0, .1);--quote-bg-mid: rgba(255, 252, 246, .92);--on-accent: #f7f6f2;--nav-accent: #3949a8;--on-nav-accent: #f5f6fc;--work-hero-title: #f5f6fc;--hero-outline-stroke: rgba(22, 24, 29, .62)}html[data-theme=light] body.portfolio-atmo:after{opacity:.028}body.portfolio-atmo{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;min-height:100vh;min-height:100dvh;background:var(--bg)}body.portfolio-atmo:after{content:"";position:fixed;inset:0;z-index:4;pointer-events:none;opacity:.045;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E")}@supports (padding: env(safe-area-inset-top)){html,body.portfolio-atmo{background:var(--bg)}body.portfolio-atmo:before,body.portfolio-atmo:after{top:calc(-1*env(safe-area-inset-top));right:calc(-1*env(safe-area-inset-right));bottom:calc(-1*env(safe-area-inset-bottom));left:calc(-1*env(safe-area-inset-left))}}body.portfolio-atmo :where(a,button):focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:color-mix(in srgb,var(--accent) 34%,transparent);color:var(--text)}body.portfolio-atmo :is(.anime-split-char,.anime-split-word){display:inline-block}@media(max-width:768px){body.portfolio-atmo{cursor:auto!important}body.portfolio-atmo #cursor,body.portfolio-atmo #cursor-ring{display:none!important;visibility:hidden;pointer-events:none}}.site-nav-host{position:fixed;top:0;left:0;right:0;z-index:200;pointer-events:none}.site-nav{--site-nav-pad-y: 1.125rem;--site-nav-pad-x: 3rem;position:relative;top:0;left:0;right:0;pointer-events:auto;border-bottom:1px solid var(--line);background:var(--nav-bg);backdrop-filter:blur(18px) saturate(1.15);box-shadow:none;transition:transform .45s cubic-bezier(.4,0,.2,1),background .35s ease,box-shadow .35s ease,border-color .35s ease}.site-nav:after{content:"";position:absolute;left:6%;right:6%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--nav-accent) 55%,transparent) 35%,color-mix(in srgb,var(--nav-accent) 75%,transparent) 50%,color-mix(in srgb,var(--nav-accent) 55%,transparent) 65%,transparent);opacity:.9;pointer-events:none}.site-nav.is-scrolled:after{opacity:1}@media(min-width:769px){.site-nav.is-hidden:not(:focus-within){transform:translateY(calc(-100% - 1px));box-shadow:none;border-bottom-color:transparent}}.site-nav__unhide{pointer-events:auto;display:none;align-items:center;justify-content:center;position:absolute;top:0;left:50%;z-index:1;width:44px;height:32px;margin:0;padding:0;border:1px solid var(--line2);border-top:none;border-radius:0 0 10px 10px;background:var(--nav-bg);backdrop-filter:blur(18px) saturate(1.15);color:var(--muted-dim);cursor:pointer;transform:translate(-50%,-100%);opacity:0;visibility:hidden;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .3s ease,visibility .3s ease,color .2s ease,border-color .2s ease,background .3s ease}@media(min-width:769px){.site-nav__unhide{display:flex}.site-nav.is-hidden:not(:focus-within)~.site-nav__unhide{transform:translate(-50%);opacity:1;visibility:visible}}.site-nav__unhide:hover,.site-nav__unhide:focus-visible{color:var(--nav-accent);border-color:color-mix(in srgb,var(--nav-accent) 38%,var(--line2));outline:none}.site-nav__unhide:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--nav-accent) 48%,transparent)}.site-nav.is-scrolled{background:var(--nav-bg-scrolled);box-shadow:0 4px 24px var(--shadow-card)}.site-nav__skip{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-nav__skip:focus{position:fixed;top:12px;left:12px;z-index:300;width:auto;height:auto;margin:0;padding:10px 16px;clip:auto;overflow:visible;font-family:var(--mono, "Space Mono", monospace);font-size:11px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--on-nav-accent, #0e1118);background:var(--nav-accent);border-radius:2px;outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--nav-accent) 45%,transparent)}.site-nav__bar{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:var(--site-nav-pad-y) var(--site-nav-pad-x);max-width:100%}@media(min-width:769px){.site-nav__flyout{flex:1;justify-content:flex-end}}.site-nav__logo{flex-shrink:0;font-family:var(--mono, "Space Mono", monospace);font-size:13px;letter-spacing:.2em;color:var(--nav-accent);text-decoration:none;filter:drop-shadow(0 0 14px color-mix(in srgb,var(--nav-accent) 30%,transparent));transition:filter .3s ease,color .25s ease}.site-nav__logo:hover{filter:drop-shadow(0 0 20px color-mix(in srgb,var(--nav-accent) 44%,transparent))}.site-nav__logo[aria-current=page]{color:var(--text);filter:drop-shadow(0 0 12px color-mix(in srgb,var(--nav-accent) 20%,transparent))}.site-nav__flyout{display:flex;align-items:center;gap:2rem}.site-nav__links{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2rem}.site-nav__links a{position:relative;font-family:var(--mono, "Space Mono", monospace);font-size:11px;letter-spacing:.15em;color:var(--muted-dim, #6d7676);text-decoration:none;text-transform:uppercase;transition:color .25s ease}.site-nav__links a.site-nav__link--cta{border:1px solid var(--line2, rgba(255, 255, 255, .16));padding:8px 14px;border-radius:2px;transition:color .25s ease,border-color .25s ease,background .25s ease}.site-nav__links a.site-nav__link--cta:after{display:none}.site-nav__links a.site-nav__link--cta:hover,.site-nav__links a.site-nav__link--cta:focus-visible{color:var(--nav-accent);border-color:color-mix(in srgb,var(--nav-accent) 40%,var(--line2));background:color-mix(in srgb,var(--nav-accent) 10%,transparent)}.site-nav__links a:not(.site-nav__link--cta):after{content:"";position:absolute;left:0;bottom:-5px;width:100%;height:1px;background:var(--nav-accent);transform:scaleX(0);transform-origin:left center;transition:transform .35s cubic-bezier(.4,0,.2,1)}.site-nav__links a:not(.site-nav__link--cta):hover,.site-nav__links a:not(.site-nav__link--cta):focus-visible{color:var(--text, #f2f2f2)}.site-nav__links a:not(.site-nav__link--cta):hover:after,.site-nav__links a:not(.site-nav__link--cta):focus-visible:after{transform:scaleX(1)}.site-nav__links a[aria-current=page]{color:var(--text, #f2f2f2)}.site-nav__links a[aria-current=page]:not(.site-nav__link--cta):after{transform:scaleX(1)}.site-nav__toggle{display:none;flex-shrink:0;align-items:center;justify-content:center;width:44px;height:44px;margin:-6px -10px -6px 0;padding:0;border:1px solid var(--line2, rgba(255, 255, 255, .16));border-radius:4px;background:#ffffff08;cursor:pointer;color:var(--text, #f2f2f2);transition:border-color .25s ease,background .25s ease}.site-nav__toggle:hover{border-color:color-mix(in srgb,var(--nav-accent) 34%,var(--line2));background:color-mix(in srgb,var(--nav-accent) 9%,transparent)}.site-nav__toggle:focus-visible{outline:2px solid var(--nav-accent);outline-offset:2px}.site-nav__toggle-icon{display:flex;flex-direction:column;justify-content:center;gap:5px;width:18px}.site-nav__toggle-icon span{display:block;height:1px;background:currentColor;transition:transform .3s ease,opacity .3s ease}.site-nav.is-open .site-nav__toggle-icon span:nth-child(1){transform:translateY(6px) rotate(45deg)}.site-nav.is-open .site-nav__toggle-icon span:nth-child(2){opacity:0}.site-nav.is-open .site-nav__toggle-icon span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.site-nav__li--works,.site-nav__works-wrap{position:relative}@media(min-width:769px){.site-nav__works-wrap:after{content:"";position:absolute;left:0;right:0;top:100%;height:14px;z-index:215}}.site-nav__works-trigger{position:relative;display:inline-flex;align-items:center;gap:6px;margin:0;padding:0;border:none;background:none;cursor:pointer;font-family:var(--mono, "Space Mono", monospace);font-size:11px;letter-spacing:.15em;color:var(--muted-dim, #6f7a86);text-transform:uppercase;transition:color .25s ease}.site-nav__works-trigger-chev{display:flex;opacity:.68;transition:transform .28s ease,opacity .2s ease}.site-nav__works-trigger[aria-expanded=true] .site-nav__works-trigger-chev{transform:rotate(-180deg);opacity:.95}.site-nav__works-trigger:hover,.site-nav__works-trigger:focus-visible{color:var(--text, #e9ebef);outline:none}.site-nav__works-trigger:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--nav-accent) 42%,transparent);border-radius:2px}.site-nav__works-trigger[aria-expanded=true]{color:var(--nav-accent)}.site-nav__works-trigger:after{content:"";position:absolute;left:0;bottom:-5px;width:100%;height:1px;background:var(--nav-accent);transform:scaleX(0);transform-origin:left center;transition:transform .35s cubic-bezier(.4,0,.2,1)}.site-nav__works-trigger:hover:after,.site-nav__works-trigger:focus-visible:after,.site-nav__works-trigger[aria-expanded=true]:after{transform:scaleX(1)}.site-nav__works-panel{position:absolute;top:calc(100% + 12px);left:0;min-width:min(17rem,calc(100vw - 2.5rem));max-width:min(22rem,92vw);max-height:min(70vh,420px);padding:6px;border:1px solid var(--line2);border-radius:6px;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(16px) saturate(1.15);box-shadow:0 20px 50px var(--shadow-card),0 0 0 1px color-mix(in srgb,var(--nav-accent) 9%,transparent) inset;z-index:220;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.site-nav__works-panel[hidden]{display:none!important}.site-nav__works-overview{display:block;padding:10px 12px;border-radius:4px;font-family:var(--mono, "Space Mono", monospace);font-size:9px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--nav-accent);transition:background .2s ease,color .2s ease}.site-nav__works-overview:hover,.site-nav__works-overview:focus-visible{background:color-mix(in srgb,var(--nav-accent) 11%,transparent);color:var(--text);outline:none}.site-nav__works-divider{height:1px;margin:6px 8px;background:var(--line2)}.site-nav__works-link{display:block;padding:9px 12px;border-radius:4px;font-family:var(--sans, "Space Grotesk", sans-serif);font-size:13px;letter-spacing:.02em;line-height:1.35;text-decoration:none;color:var(--muted-dim);transition:background .2s ease,color .2s ease}.site-nav__works-link:hover,.site-nav__works-link:focus-visible{background:color-mix(in srgb,var(--nav-accent) 8%,transparent);color:var(--text);outline:none}.site-nav__works-link.is-current{color:var(--nav-accent);background:color-mix(in srgb,var(--nav-accent) 13%,transparent)}.site-nav__backdrop{display:none}@media(max-width:768px){.site-nav{--site-nav-pad-x: 1.25rem}.site-nav__logo{position:relative;z-index:1;font-size:clamp(9px,2.6vw,12px);letter-spacing:.1em;max-width:min(52vw,14rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none}.site-nav__toggle{display:flex;position:relative;z-index:210}.site-nav__backdrop{display:block;position:fixed;inset:0;z-index:198;background:#0000008c;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;pointer-events:none}.site-nav.is-open .site-nav__backdrop{opacity:1;visibility:visible;pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent}.site-nav.is-open .site-nav__bar{position:relative;z-index:201}.site-nav__flyout{position:fixed;z-index:199;top:0;right:0;width:min(19rem,88vw);height:100vh;height:100dvh;flex-direction:column;align-items:stretch;gap:0;padding:calc(var(--site-nav-pad-y) + env(safe-area-inset-top,0px) + 12px) 1.5rem 2rem;background:color-mix(in srgb,var(--bg) 96%,#000);border-left:1px solid var(--line, rgba(255, 255, 255, .085));box-shadow:-12px 0 40px #00000080;transform:translate(100%);transition:transform .38s cubic-bezier(.4,0,.2,1);overflow-y:auto;-webkit-overflow-scrolling:touch}.site-nav.is-open .site-nav__flyout{transform:translate(0)}.site-nav__flyout .site-nav__tools{margin-top:.35rem;padding-top:1.15rem;border-top:1px solid color-mix(in srgb,var(--line2) 80%,transparent);align-self:center;width:100%;max-width:12.75rem;margin-left:auto;margin-right:auto}.site-nav__flyout .site-nav__toolbar{display:grid;grid-template-columns:1fr 1fr;width:100%;min-height:46px;align-items:stretch;box-sizing:border-box}.site-nav__flyout .site-nav__lang-wrap{min-width:0;display:flex;align-items:stretch}.site-nav__flyout .site-nav__lang-trigger{width:100%;min-width:0;justify-content:center;padding-left:10px;padding-right:10px}.site-nav__flyout .site-nav__theme{width:100%;min-width:0;min-height:46px;box-sizing:border-box}.site-nav__flyout .site-nav__lang-panel{left:0;right:0;min-width:0;width:100%;box-sizing:border-box}.site-nav__links{flex-direction:column;align-items:stretch;gap:0}.site-nav__links li{border-bottom:1px solid rgba(255,255,255,.06)}.site-nav__links a{display:block;padding:1rem 0}.site-nav__links a:not(.site-nav__link--cta):after{display:none}.site-nav__links a.site-nav__link--cta{margin-top:.5rem;text-align:center}.site-nav__works-trigger{display:flex;width:100%;justify-content:space-between;align-items:center;padding:1rem 0}.site-nav__works-trigger:after{display:none}.site-nav__works-panel{position:static;margin-top:.35rem;margin-bottom:.35rem;max-height:min(48vh,320px);min-width:100%;max-width:none;box-shadow:none}}.site-nav__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-nav__tools{display:flex;align-items:center;flex-shrink:0}.site-nav__toolbar{display:inline-flex;align-items:stretch;border:1px solid var(--line2);border-radius:100px;background:var(--nav-toolbar-bg);overflow:visible;box-shadow:0 0 0 1px color-mix(in srgb,var(--text) 4%,transparent) inset}.site-nav__lang-wrap{position:relative;display:flex;align-items:stretch}@media(min-width:769px){.site-nav__lang-wrap:after{content:"";position:absolute;left:0;right:0;top:100%;height:10px;z-index:215}}.site-nav__lang-trigger{display:inline-flex;align-items:center;gap:7px;margin:0;padding:7px 12px 7px 14px;border:none;border-radius:100px 0 0 100px;background:transparent;cursor:pointer;font-family:var(--mono, "Space Mono", monospace);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-dim);transition:color .2s ease,background .2s ease}.site-nav__lang-trigger:hover,.site-nav__lang-trigger:focus-visible{color:var(--text);background:color-mix(in srgb,var(--nav-accent) 8%,transparent)}.site-nav__lang-trigger:focus-visible{outline:2px solid var(--nav-accent);outline-offset:2px;z-index:2}.site-nav__lang-trigger[aria-expanded=true]{color:var(--nav-accent);background:color-mix(in srgb,var(--nav-accent) 12%,transparent)}.site-nav__lang-trigger-code{color:var(--text);font-weight:600}.site-nav__lang-trigger-chev{display:flex;opacity:.65;transition:transform .28s ease,opacity .2s ease}.site-nav__lang-trigger[aria-expanded=true] .site-nav__lang-trigger-chev{transform:rotate(-180deg);opacity:.9}.site-nav__lang-panel{position:absolute;top:calc(100% + 6px);right:0;min-width:12.5rem;padding:4px;border:1px solid var(--line2);border-radius:4px;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 18px 48px var(--shadow-card);z-index:220}.site-nav__lang-panel[hidden]{display:none!important}.site-nav__lang-option{display:flex;align-items:baseline;gap:12px;padding:10px 12px;border-radius:2px;text-decoration:none;color:var(--muted-dim);transition:background .2s ease,color .2s ease}.site-nav__lang-option:hover,.site-nav__lang-option:focus-visible{background:color-mix(in srgb,var(--nav-accent) 9%,transparent);color:var(--text);outline:none}.site-nav__lang-option.is-active{color:var(--nav-accent);background:color-mix(in srgb,var(--nav-accent) 13%,transparent)}.site-nav__lang-option-code{font-family:var(--mono, "Space Mono", monospace);font-size:9px;letter-spacing:.12em;min-width:1.5rem}.site-nav__lang-option-name{font-family:var(--sans, "Space Grotesk", sans-serif);font-size:12px;letter-spacing:.02em}.site-nav__theme{display:flex;align-items:center;justify-content:center;width:42px;min-height:100%;margin:0;padding:0;border:none;border-left:1px solid var(--line2);border-radius:0 100px 100px 0;background:transparent;cursor:pointer;color:var(--muted-dim);transition:color .2s ease,background .2s ease}.site-nav__theme:hover,.site-nav__theme:focus-visible{color:var(--text);background:color-mix(in srgb,var(--nav-accent) 8%,transparent)}.site-nav__theme:focus-visible{outline:2px solid var(--nav-accent);outline-offset:2px;z-index:2}.site-nav__theme-swap{position:relative;width:17px;height:17px;flex-shrink:0}.site-nav__theme-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;line-height:0;transition:opacity .34s cubic-bezier(.4,0,.2,1),transform .48s cubic-bezier(.33,1.28,.64,1)}.site-nav__theme-icon svg{display:block}html[data-theme=dark] .site-nav__theme-icon--sun,html:not([data-theme]) .site-nav__theme-icon--sun{opacity:0;transform:scale(.52) rotate(78deg);pointer-events:none}html[data-theme=dark] .site-nav__theme-icon--moon,html:not([data-theme]) .site-nav__theme-icon--moon{opacity:1;transform:scale(1) rotate(0)}html[data-theme=light] .site-nav__theme-icon--moon{opacity:0;transform:scale(.52) rotate(-78deg);pointer-events:none}html[data-theme=light] .site-nav__theme-icon--sun{opacity:1;transform:scale(1) rotate(0)}@media(prefers-reduced-motion:reduce){.site-nav__theme-icon{transition:opacity .16s ease}html[data-theme=dark] .site-nav__theme-icon--sun,html:not([data-theme]) .site-nav__theme-icon--sun,html[data-theme=light] .site-nav__theme-icon--moon{transform:none}html[data-theme=dark] .site-nav__theme-icon--moon,html:not([data-theme]) .site-nav__theme-icon--moon,html[data-theme=light] .site-nav__theme-icon--sun{transform:none}}@media(max-width:768px){.site-nav__lang-trigger{padding:6px 10px 6px 12px;font-size:8px}.site-nav__lang-panel{min-width:min(14rem,calc(100vw - 2rem))}.site-nav__theme{width:38px}}.reading-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:205;pointer-events:none;overflow:hidden}.reading-progress__fill{height:100%;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,color-mix(in srgb,var(--nav-accent) 75%,transparent),color-mix(in srgb,var(--accent) 80%,transparent));transition:transform .12s linear}.reading-progress--reduced .reading-progress__fill{transition:none}html{scroll-padding-bottom:calc(5.25rem + env(safe-area-inset-bottom,0px))}body.portfolio-atmo{padding-bottom:calc(4.85rem + env(safe-area-inset-bottom,0px))}.dock-pill-nav.dock-nav{--dock-pill-h: 40px;--dock-pill-gap: 4px;--dock-pill-pad-x: clamp(13px, 3.2vw, 17px);position:fixed;z-index:185;left:50%;bottom:calc(1rem + env(safe-area-inset-bottom,0px));transform:translate(-50%);max-width:min(calc(100vw - 1.25rem),680px);width:max-content}html[data-theme=dark] .dock-pill-nav.dock-nav,html:not([data-theme]) .dock-pill-nav.dock-nav{--dock-pill-bg: color-mix(in srgb, var(--bg) 28%, #050607);--dock-pill-base: color-mix(in srgb, var(--dock-pill-bg) 82%, var(--text) 18%);--dock-pill-text: color-mix(in srgb, var(--text) 96%, var(--dock-pill-bg));--dock-pill-hover-text: color-mix(in srgb, var(--text) 94%, var(--dock-pill-bg));--dock-pill-active-dot: color-mix(in srgb, var(--nav-accent) 72%, var(--text));--dock-pill-shell-border: var(--line2)}html[data-theme=light] .dock-pill-nav.dock-nav{--dock-pill-bg: color-mix(in srgb, var(--text) 90%, var(--bg3) 10%);--dock-pill-base: color-mix(in srgb, var(--dock-pill-bg) 72%, var(--bg) 28%);--dock-pill-text: color-mix(in srgb, var(--bg) 93%, #fff);--dock-pill-hover-text: color-mix(in srgb, var(--dock-pill-bg) 78%, var(--text));--dock-pill-active-dot: color-mix(in srgb, var(--nav-accent) 58%, var(--text));--dock-pill-shell-border: var(--line2)}.dock-pill-nav__shell{display:flex;align-items:center;padding:5px 3px;border-radius:999px;background:var(--dock-pill-base);border:1px solid var(--dock-pill-shell-border);box-shadow:0 10px 28px -6px var(--shadow-card)}.dock-pill-nav__row{list-style:none;margin:0;padding:0;display:flex;flex-direction:row;align-items:stretch;gap:var(--dock-pill-gap);height:var(--dock-pill-h);min-height:var(--dock-pill-h);max-width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}.dock-pill-nav__row::-webkit-scrollbar{display:none}.dock-pill-nav__cell{flex-shrink:0;display:flex;align-items:stretch}.dock-pill-nav__cell--theme{flex-shrink:0}.dock-pill-nav__sep-cell{flex-shrink:0;display:flex;align-items:center;padding:0 1px}.dock-pill-nav__vsep{width:1px;height:56%;align-self:center;background:color-mix(in srgb,var(--dock-pill-bg) 22%,var(--dock-pill-base));border-radius:1px;opacity:.55}.dock-pill-nav__pill{position:relative;display:inline-flex;align-items:center;justify-content:center;height:100%;min-height:100%;padding:0 var(--dock-pill-pad-x);border:none;border-radius:999px;background:var(--dock-pill-bg);color:var(--dock-pill-text);font-family:var(--mono, "Space Mono", monospace);font-size:clamp(8px,2.2vw,10px);font-weight:700;letter-spacing:.11em;text-transform:uppercase;text-decoration:none;cursor:pointer;overflow:hidden;white-space:nowrap;-webkit-tap-highlight-color:transparent;box-sizing:border-box;transition:box-shadow .22s ease}.dock-pill-nav__pill--home{letter-spacing:0;min-width:var(--dock-pill-h);padding:0 clamp(11px,3vw,15px)}.dock-pill-nav__pill--icon{width:var(--dock-pill-h);min-width:var(--dock-pill-h);padding:0}.dock-pill-nav__home-icon{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;line-height:0;color:inherit}.dock-pill-nav__home-icon svg{display:block;width:17px;height:17px}.dock-pill-nav__pill--theme{width:var(--dock-pill-h);min-width:var(--dock-pill-h);padding:0}.dock-pill-nav__pill:focus-visible{outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--nav-accent) 50%,transparent)}.dock-pill-nav__pill:before{content:"";position:absolute;inset:-6px;border-radius:999px;background:var(--dock-pill-base);z-index:1;clip-path:circle(0% at 50% calc(100% + 4px));transition:clip-path .5s cubic-bezier(.33,1,.64,1);pointer-events:none}.dock-pill-nav__pill:hover:before,.dock-pill-nav__pill:focus-visible:before{clip-path:circle(185% at 50% calc(100% + 4px))}@media(prefers-reduced-motion:reduce){.dock-pill-nav__pill:before{transition-duration:.01ms}}.dock-pill-nav__label-stack{position:relative;z-index:3;display:inline-block;height:1.12em;line-height:1.12;overflow:hidden}.dock-pill-nav__label{display:block;transition:transform .38s cubic-bezier(.33,1,.64,1)}.dock-pill-nav__label--hover{position:absolute;left:0;top:0;color:var(--dock-pill-hover-text);transform:translateY(110%);transition:transform .38s cubic-bezier(.33,1,.64,1)}@media(prefers-reduced-motion:reduce){.dock-pill-nav__label,.dock-pill-nav__label--hover{transition:none}.dock-pill-nav__pill:hover .dock-pill-nav__label,.dock-pill-nav__pill:focus-visible .dock-pill-nav__label{transform:none}.dock-pill-nav__pill:hover .dock-pill-nav__label--hover,.dock-pill-nav__pill:focus-visible .dock-pill-nav__label--hover{transform:none;opacity:0}}.dock-pill-nav__pill:hover .dock-pill-nav__label,.dock-pill-nav__pill:focus-visible .dock-pill-nav__label{transform:translateY(-108%)}.dock-pill-nav__pill:hover .dock-pill-nav__label--hover,.dock-pill-nav__pill:focus-visible .dock-pill-nav__label--hover{transform:translateY(0)}.dock-pill-nav__theme-swap{position:relative;z-index:3;width:17px;height:17px;flex-shrink:0}.dock-pill-nav__theme-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;line-height:0;color:var(--dock-pill-text);transition:opacity .34s cubic-bezier(.4,0,.2,1),transform .48s cubic-bezier(.33,1.28,.64,1),color .28s ease}.dock-pill-nav__pill--theme:hover .dock-pill-nav__theme-icon,.dock-pill-nav__pill--theme:focus-visible .dock-pill-nav__theme-icon{color:var(--dock-pill-hover-text)}.dock-pill-nav__theme-icon svg{display:block}html[data-theme=dark] .dock-pill-nav__theme-icon--sun,html:not([data-theme]) .dock-pill-nav__theme-icon--sun{opacity:0;transform:scale(.52) rotate(78deg);pointer-events:none}html[data-theme=dark] .dock-pill-nav__theme-icon--moon,html:not([data-theme]) .dock-pill-nav__theme-icon--moon{opacity:1;transform:scale(1) rotate(0)}html[data-theme=light] .dock-pill-nav__theme-icon--moon{opacity:0;transform:scale(.52) rotate(-78deg);pointer-events:none}html[data-theme=light] .dock-pill-nav__theme-icon--sun{opacity:1;transform:scale(1) rotate(0)}.dock-pill-nav__active-dot{position:absolute;left:50%;bottom:5px;z-index:4;width:5px;height:5px;border-radius:50%;background:var(--dock-pill-active-dot);transform:translate(-50%) scale(0);opacity:0;pointer-events:none;transition:transform .28s cubic-bezier(.33,1,.64,1),opacity .22s ease;box-shadow:0 0 8px color-mix(in srgb,var(--nav-accent) 35%,transparent)}.dock-nav__section--active.dock-pill-nav__pill .dock-pill-nav__active-dot{transform:translate(-50%) scale(1);opacity:1}.dock-nav__section--active.dock-pill-nav__pill:hover .dock-pill-nav__active-dot,.dock-nav__section--active.dock-pill-nav__pill:focus-visible .dock-pill-nav__active-dot{opacity:.35}@media(prefers-reduced-motion:reduce){.dock-pill-nav__theme-icon{transition:opacity .16s ease}html[data-theme=dark] .dock-pill-nav__theme-icon--sun,html:not([data-theme]) .dock-pill-nav__theme-icon--sun,html[data-theme=light] .dock-pill-nav__theme-icon--moon,html[data-theme=dark] .dock-pill-nav__theme-icon--moon,html:not([data-theme]) .dock-pill-nav__theme-icon--moon,html[data-theme=light] .dock-pill-nav__theme-icon--sun{transform:none}}@media(max-width:768px){.dock-pill-nav.dock-nav{--dock-pill-h: 36px;bottom:calc(.75rem + env(safe-area-inset-bottom,0px));max-width:calc(100vw - .85rem)}.dock-pill-nav__shell{padding:4px 2px}.dock-pill-nav__pill{padding:0 clamp(10px,2.8vw,14px);font-size:8px;letter-spacing:.09em}.dock-pill-nav__pill--theme{width:var(--dock-pill-h);min-width:var(--dock-pill-h)}}.ambient-backdrop{--amb-x: .5;--amb-y: .5;--amb-scroll: 0;--amb-pulse-x: .5;--amb-pulse-y: .5;position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:strict}.ambient-backdrop__mesh,.ambient-backdrop__blob{position:absolute;inset:-20%}.ambient-backdrop__mesh{opacity:.42;background:radial-gradient(ellipse 90% 70% at calc(12% + (var(--amb-x) - .5) * 26%) calc(18% + (var(--amb-y) - .5) * 20% - var(--amb-scroll) * 8%),color-mix(in srgb,var(--accent) 38%,transparent),transparent 58%),radial-gradient(ellipse 80% 65% at calc(88% + (var(--amb-x) - .5) * -18%) calc(72% + (var(--amb-y) - .5) * 14% - var(--amb-scroll) * 5%),color-mix(in srgb,var(--accent2, var(--accent)) 28%,transparent),transparent 55%),radial-gradient(circle at calc(50% + (var(--amb-x) - .5) * 58%) calc(42% + (var(--amb-y) - .5) * 48% + var(--amb-scroll) * 6%),color-mix(in srgb,var(--accent) 12%,transparent),transparent 42%),radial-gradient(circle 42vmin at calc(var(--amb-pulse-x) * 100%) calc(var(--amb-pulse-y) * 100%),color-mix(in srgb,var(--accent) 0%,transparent),transparent 70%);animation:ambient-mesh-drift 22s ease-in-out infinite}.ambient-backdrop--pulse .ambient-backdrop__mesh{animation:ambient-mesh-drift 22s ease-in-out infinite,ambient-pulse-flash .55s ease-out}html[data-theme=light] .ambient-backdrop__mesh{opacity:.28}.ambient-backdrop__blob{filter:blur(72px);opacity:.38;transform:translate(calc((var(--amb-x) - .5) * min(32vw,260px)),calc((var(--amb-y) - .5) * min(26vh,200px) + var(--amb-scroll) * min(12vh,100px)));background:radial-gradient(circle at 40% 42%,color-mix(in srgb,var(--accent) 52%,transparent),transparent 58%),radial-gradient(circle at 78% 64%,color-mix(in srgb,var(--accent2, var(--accent)) 36%,transparent),transparent 52%);animation:ambient-blob-pulse 14s ease-in-out infinite;transition:transform .35s ease-out}@keyframes ambient-pulse-flash{0%{filter:brightness(1)}35%{filter:brightness(1.12)}to{filter:brightness(1)}}html[data-theme=light] .ambient-backdrop__blob{opacity:.22;filter:blur(88px)}.ambient-backdrop--static .ambient-backdrop__mesh,.ambient-backdrop--static .ambient-backdrop__blob{animation:none}@keyframes ambient-mesh-drift{0%,to{transform:translate(0) scale(1)}33%{transform:translate(1.2%,-.8%) scale(1.02)}66%{transform:translate(-.9%,1.1%) scale(.99)}}@keyframes ambient-blob-pulse{0%,to{opacity:.36}50%{opacity:.48}}html[data-theme=light] .ambient-backdrop__blob{animation-name:ambient-blob-pulse-light}@keyframes ambient-blob-pulse-light{0%,to{opacity:.2}50%{opacity:.3}}.ambient-click-layer{position:fixed;inset:0;z-index:3;pointer-events:none;overflow:hidden;contain:strict}.ambient-click-ripple{position:absolute;left:0;top:0;width:140px;height:140px;margin-left:-70px;margin-top:-70px;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 42%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent2, var(--accent)) 22%,transparent),0 0 48px color-mix(in srgb,var(--accent) 28%,transparent);transform:scale(.08);opacity:.92;animation:ambient-click-ripple-out .72s cubic-bezier(.22,.82,.28,1) forwards;will-change:transform,opacity}@keyframes ambient-click-ripple-out{to{transform:scale(2.85);opacity:0}}html[data-theme=light] .ambient-click-ripple{border-color:color-mix(in srgb,var(--accent) 32%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent2, var(--accent)) 16%,transparent),0 0 36px color-mix(in srgb,var(--accent) 18%,transparent)}
