@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_22e2a02c-module__MwEO2a__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_22e2a02c-module__MwEO2a__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_42eec60-module__Gb1_vG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_42eec60-module__Gb1_vG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@font-face{font-family:Fredoka;font-style:normal;font-weight:300 700;font-stretch:100%;font-display:swap;src:url(../media/b6df7c92285ebcd2-s.1cox7hpc1tfbr.woff2)format("woff2");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka;font-style:normal;font-weight:300 700;font-stretch:100%;font-display:swap;src:url(../media/eeba9b1ad34c1404-s.3t00_18uk4swp.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fredoka;font-style:normal;font-weight:300 700;font-stretch:100%;font-display:swap;src:url(../media/5d52bd6c4cb3f315-s.p.12wv-xs8vggjn.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fredoka Fallback;src:local(Arial);ascent-override:95.64%;descent-override:23.17%;line-gap-override:0.0%;size-adjust:101.84%}.fredoka_a0b8b0d8-module__qM-9Ya__className{font-family:Fredoka,Fredoka Fallback;font-style:normal}.fredoka_a0b8b0d8-module__qM-9Ya__variable{--font-fredoka:"Fredoka", "Fredoka Fallback"}
:root{--blue:#1d1d1d;--white:#ececec;--black:#181818;--gray:#515152;--primary:#f1a72b;--accent:#56d9cd;--cream:#e9f1df;--primary-ink:var(--primary);--accent-ink:var(--accent);--danger:#ff7a7a;--danger-ink:#ff9a9a;--paragraph:var(--cream);--title:#fff;--title-gap:black;--logo-filter:brightness(0) invert(1);--shadow-color:#0000006b;--surface-0:#141417;--surface-1:#1d1e22;--surface-2:#2d2f33;--panel:#181818;--border:#2b2b30;--border-hover:#3a3a3e;--placeholder:#66666c;--curtain:var(--black);--text-strong:#ececec;--text-body:#c4c4c6;--text-muted:#9a9a9f;--text-subtle:#8b8b92;--motion-1:.12s;--motion-2:.2s;--motion-3:.32s;--motion-4:.48s;--ease-out-expo:cubic-bezier(.22, 1, .36, 1);--ease-in:cubic-bezier(.55, 0, 1, .45);--ease-in-out:cubic-bezier(.7, 0, .3, 1);--press:.97;--press-card:.985;--font-sans:var(--font-geist-sans), system-ui, sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--tag-size:clamp(1.2rem, 1.5vh, 1.4rem);--tag-line:calc(var(--tag-size) * 1.5);--tag-gap:.4rem;--tag-sep:1rem;--tag-block:calc(var(--tag-line) + var(--tag-gap));--tag-step:2rem;--tag-t-html:0s;--tag-t-body:.15s;--tag-t-open:.3s;--tag-t-head-close:.75s;--tag-t-close:2.3s;--tag-t-html-close:2.45s;--tag-depth:3;--topbar-h:56px}@media (max-width:40em){:root{--tag-step:1.4rem;--tag-depth:1}}body{font-family:var(--font-sans);background:var(--background-color);color:var(--text-color);font-weight:var(--font-weight);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background-color:var(--blue);--background-sidebar:var(--black);--text-color-fixed:var(--black);--text-color:var(--white);--text-color-sidebar:var(--white);--color-mouse:var(--white);--font-weight:500;--color-gray:#7a7a80;--nav-link:#8e8e94;--line:#2b2b30;--band:#191919;--hair:#242427;transition:background .3s ease-in-out,color .6s ease-in-out}:root[data-theme=light] body{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background-color:#f5f2eb;--background-sidebar:#ece8df;--text-color-fixed:#1c1c1f;--text-color:#1c1c1f;--text-color-sidebar:#1c1c1f;--color-mouse:#1c1c1f;--font-weight:500;--color-gray:#8c877d;--nav-link:#5c5850;--line:#ddd7cb;--hair:#e2ddd2;--band:#ece8df;--text-strong:#17171a;--text-body:#3b3a3f;--text-muted:#55545a;--text-subtle:#6b6a70;--surface-0:#fff;--surface-1:#fbf9f5;--surface-2:#fff;--panel:#fdfbf7;--border:#dbd5c9;--border-hover:#bfb8aa;--placeholder:#9a958c;--curtain:#ebe6dc;--primary-ink:#9a5c00;--accent-ink:#0b766d;--danger:#c0392b;--danger-ink:#b3261e;--paragraph:var(--text-body);--title:#1c1c1f;--title-gap:var(--background-color);--logo-filter:brightness(0);--shadow-color:#46341821}:root[data-theme=light] body .gitlog,:root[data-theme=light] body .glyphs{--primary:var(--primary-ink);--accent:var(--accent-ink)}:root[data-theme=light] body .card-space{--surface-1:#1d1e22;--border:#2b2b30;--background-color:#f5f2eb;opacity:1}*{box-sizing:border-box;word-wrap:break-word;scrollbar-width:thin;scrollbar-color:var(--border-hover) #0000}button,input,textarea,select{font-family:inherit}:focus{outline:none}:focus-visible{outline:2px solid var(--primary-ink);outline-offset:3px;border-radius:4px}html{-webkit-tap-highlight-color:#0000;height:100%;overflow:hidden;font-size:62.5%!important}body{overscroll-behavior:none;width:100%;height:100dvh;margin:0;padding:0;overflow:hidden}@media (max-width:60.25em){html{height:auto;scroll-padding-top:var(--topbar-h);overflow:visible}body{overscroll-behavior:auto;height:auto;min-height:100dvh;overflow:visible}:is(html:has(.full-menu.active),html:has(.palette[open])){overflow:hidden}}p{color:var(--paragraph);margin:0;padding:0}::selection{background:color-mix(in oklch, var(--primary) 35%, transparent);color:var(--text-strong)}.skip-link{z-index:1000;background:var(--primary);color:#0f1a19;font:600 1.5rem/1.2 var(--font-sans);border-radius:8px;padding:10px 16px;text-decoration:none;position:fixed;top:12px;left:12px;transform:translateY(-200%)}.skip-link:focus-visible{transform:none}#main:focus{outline:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes riseIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes maskRise{0%{transform:translateY(112%)}to{transform:translateY(0)}}@keyframes lineReveal{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes slideRail{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes cardIn{0%{opacity:0;transform:translateY(20px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes cardTrace{0%{stroke-dashoffset:100px;opacity:1}12%{stroke-dashoffset:0;opacity:1}26%{stroke-dashoffset:0;opacity:1}33%{stroke-dashoffset:0;opacity:0}to{stroke-dashoffset:0;opacity:0}}@keyframes rubberBand{0%{transform:scale(1)}30%{transform:scale(1.25,.75)}40%{transform:scale(.75,1.25)}50%{transform:scale(1.15,.85)}65%{transform:scale(.95,1.05)}75%{transform:scale(1.05,.95)}to{transform:scale(1)}}@keyframes typeLine{0%{clip-path:inset(0 100% 0 0)}99%,to{clip-path:inset(0)}}@keyframes wordIn{0%{opacity:0;filter:blur(4px)}to{opacity:1;filter:blur()}}@keyframes caretBlink{0%,to{opacity:0}50%{opacity:1}}@keyframes scrollReveal{0%{opacity:0;transform:translateY(28px)scale(.98)}to{opacity:1;transform:none}}@keyframes scrollFade{0%{opacity:0}}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)scale(.96)}}@keyframes toastOut{to{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes popIn{0%{opacity:0;transform:scale(.4)}60%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes rotate360{to{rotate:360deg}}.enter{animation:.62s cubic-bezier(.22,1,.36,1) both riseIn}.enter--rail{animation:.7s cubic-bezier(.22,1,.36,1) both slideRail}.enter--tag{animation:.52s cubic-bezier(.22,1,.36,1) both riseIn}.enter--tag-end{animation:.52s cubic-bezier(.22,1,.36,1) .14s both riseIn}.enter--line-1{animation:.76s cubic-bezier(.22,1,.36,1) .26s both lineReveal}.enter--line-2{animation:.76s cubic-bezier(.22,1,.36,1) .38s both lineReveal}.enter--copy{animation:.62s cubic-bezier(.22,1,.36,1) .42s both riseIn}.enter--cta{animation:.62s cubic-bezier(.22,1,.36,1) .54s both riseIn}::view-transition{pointer-events:none}::view-transition-old(.nav-forward){--slide-offset:-60px;animation:.12s ease-in .28s both vtFade reverse,.4s var(--ease-out-expo) both vtSlide reverse}::view-transition-new(.nav-forward){--slide-offset:60px;animation:.2s ease-out .4s both vtFade,.48s var(--ease-out-expo) .4s both vtSlide}::view-transition-old(.nav-back){--slide-offset:60px;animation:.12s ease-in .28s both vtFade reverse,.4s var(--ease-out-expo) both vtSlide reverse}::view-transition-new(.nav-back){--slide-offset:-60px;animation:.2s ease-out .4s both vtFade,.48s var(--ease-out-expo) .4s both vtSlide}::view-transition-old(.case-next){--slide-offset:-32px;animation:.14s ease-in both vtFade reverse,var(--motion-3) var(--ease-out-expo) both vtSlide reverse}::view-transition-new(.case-next){--slide-offset:32px;animation:.24s ease-out .1s both vtFade,var(--motion-3) var(--ease-out-expo) 60ms both vtSlide}::view-transition-old(.case-prev){--slide-offset:32px;animation:.14s ease-in both vtFade reverse,var(--motion-3) var(--ease-out-expo) both vtSlide reverse}::view-transition-new(.case-prev){--slide-offset:-32px;animation:.24s ease-out .1s both vtFade,var(--motion-3) var(--ease-out-expo) 60ms both vtSlide}::view-transition-image-pair(.nav-forward){clip-path:inset(0)}::view-transition-image-pair(.nav-back){clip-path:inset(0)}::view-transition-image-pair(.case-next){clip-path:inset(0)}::view-transition-image-pair(.case-prev){clip-path:inset(0)}::view-transition-old(.page-fade){animation:.14s ease-in reverse both vtFade}::view-transition-new(.page-fade){animation:.24s ease-out .1s both vtFade}::view-transition-group(.morph){z-index:100;animation-duration:var(--motion-4);animation-timing-function:var(--ease-out-expo)}::view-transition-image-pair(.morph){animation-name:vtBlur}::view-transition-group(nav-marker){animation-duration:var(--motion-4);animation-timing-function:var(--ease-out-expo);z-index:101}::view-transition-old(curtain){display:none}::view-transition-new(curtain){opacity:1;animation:none}::view-transition-group(curtain){z-index:200}html:active-view-transition-type(nav-forward)::view-transition-group(curtain){animation:curtainForward 1s var(--ease-in-out) both}html:active-view-transition-type(nav-back)::view-transition-group(curtain){animation:curtainBack 1s var(--ease-in-out) both}html:active-view-transition-type(nav-forward,nav-back,nav-morph,case-next,case-prev) .full-menu.active{view-transition-name:full-menu}html:active-view-transition-type(nav-forward,nav-back,nav-morph,case-next,case-prev) .full-menu:not(.active){transition:none}html:active-view-transition-type(nav-forward,nav-back,nav-morph,case-next,case-prev) .topbar{view-transition-name:topbar;background:var(--background-color)}::view-transition-group(full-menu){z-index:150}::view-transition-group(topbar){z-index:151}::view-transition-old(full-menu){animation:.14s ease-in .14s reverse both scrollFade}html:active-view-transition-type(nav-forward,nav-back)::view-transition-old(full-menu){animation:1ms linear .4s reverse both scrollFade}html:active-view-transition-type(nav-forward,nav-back)::view-transition-old(topbar){animation:1ms linear .4s reverse both scrollFade}html:active-view-transition-type(nav-forward,nav-back)::view-transition-new(topbar){animation:1ms linear .4s both scrollFade}html:active-view-transition-type(nav-forward) .body__content{animation-play-state:paused!important;animation-fill-mode:both!important}html:active-view-transition-type(nav-forward) .body__content *{animation-play-state:paused!important;animation-fill-mode:both!important}html:active-view-transition-type(nav-forward) .body__content :before{animation-play-state:paused!important;animation-fill-mode:both!important}html:active-view-transition-type(nav-forward) .body__content :after{animation-play-state:paused!important;animation-fill-mode:both!important}html:active-view-transition-type(nav-back) .body__content{animation-play-state:paused!important;animation-fill-mode:both!important}html:active-view-transition-type(nav-back) .body__content *{animation-play-state:paused!important;animation-fill-mode:both!important}html:active-view-transition-type(nav-back) .body__content :before{animation-play-state:paused!important;animation-fill-mode:both!important}html:active-view-transition-type(nav-back) .body__content :after{animation-play-state:paused!important;animation-fill-mode:both!important}html[data-nav=client] .body__content :is(.enter,.header__word,.text__word,.hero-stats>div,.featured-card,.card-space,.card-space code>div,.card-space__trace rect,.card-work,.gitlog__row),html[data-nav=client] .body__content :is(.tags,.header__title,.header__title-h1,.text--secondary,.hero-stats,.card-space code>div,.work__grid,.skills__second,.glyphs,.contact-form):before,html[data-nav=client] .body__content :is(.tags,.header__title,.header__title-h1,.text--secondary,.hero-stats,.card-space code>div,.work__grid,.skills__second,.glyphs,.contact-form):after{animation:none}@keyframes curtainForward{0%{transform:translate(100vw)}40%,52%{transform:translate(0)}to{transform:translate(-100vw)}}@keyframes curtainBack{0%{transform:translate(-100vw)}40%,52%{transform:translate(0)}to{transform:translate(100vw)}}html.theme-switching::view-transition-old(root){mix-blend-mode:normal;animation:none}html.theme-switching::view-transition-new(root){mix-blend-mode:normal;animation:none}html.theme-switching,html.theme-switching *,html.theme-switching :before,html.theme-switching :after{transition:none!important}@keyframes vtFade{0%{opacity:0;filter:blur(3px)}to{opacity:1;filter:blur()}}@keyframes vtSlide{0%{translate:var(--slide-offset) 0}to{translate:0}}@keyframes vtBlur{30%{filter:blur(3px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}::view-transition-group(*){animation:none!important}::view-transition-new(*){animation:none!important}::view-transition-old(*){opacity:0;animation:none!important}::view-transition-old(.nav-forward){opacity:1;animation:.15s ease-out reverse both scrollFade!important}::view-transition-old(.nav-back){opacity:1;animation:.15s ease-out reverse both scrollFade!important}::view-transition-old(.case-next){opacity:1;animation:.15s ease-out reverse both scrollFade!important}::view-transition-old(.case-prev){opacity:1;animation:.15s ease-out reverse both scrollFade!important}::view-transition-old(.page-fade){opacity:1;animation:.15s ease-out reverse both scrollFade!important}::view-transition-new(.nav-forward){animation:.15s ease-out both scrollFade!important}::view-transition-new(.nav-back){animation:.15s ease-out both scrollFade!important}::view-transition-new(.case-next){animation:.15s ease-out both scrollFade!important}::view-transition-new(.case-prev){animation:.15s ease-out both scrollFade!important}::view-transition-new(.page-fade){animation:.15s ease-out both scrollFade!important}}.container{grid-template-rows:minmax(0,1fr);grid-template-columns:200px 1fr;height:100dvh;display:grid;overflow:hidden}@media (max-width:1099px){.container{grid-template-columns:1fr}}.container .menu{background:var(--background-sidebar);z-index:1;scrollbar-width:none;flex-direction:column;width:100%;height:100%;min-height:0;font-size:24px;display:flex;top:0;left:0;overflow-y:auto}@media (max-width:1099px){.container .menu{display:none}}.container .menu__card{border-bottom:1px solid var(--hair);text-align:center;flex-direction:column;flex-shrink:0;align-items:center;padding:clamp(14px,3vh,28px) 14px clamp(12px,2.2vh,20px);display:flex}.container .menu__photo{object-fit:cover;object-position:50% 18%;width:clamp(44px,7.5vh,64px);height:clamp(44px,7.5vh,64px);box-shadow:0 0 0 2px color-mix(in oklch, var(--primary) 45%, transparent);border-radius:50%}.container .menu__name{color:var(--text-strong);font-family:var(--font-sans);margin:clamp(8px,1.6vh,12px) 0 0;font-size:clamp(13px,2vh,15px);font-weight:600;line-height:1.2}.container .menu__role{color:var(--text-subtle);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin:3px 0 0;font-size:clamp(9px,1.4vh,10px);font-weight:600}.container .menu__card .status-pill{margin-top:clamp(8px,1.6vh,12px)}.container .menu__availability{color:var(--text-subtle);font-family:var(--font-sans);margin:6px 0 0;font-size:clamp(10px,1.5vh,11px);line-height:1.3}.container .menu__list{flex:auto;align-items:flex-start;min-height:0;display:flex}.container .menu__list nav{width:100%;padding:clamp(10px,2.2vh,22px) 0}.container .menu__list nav ul{margin:0;padding:0;list-style:none}.container .menu__list nav li a{color:var(--nav-link);cursor:pointer;transition:color var(--motion-2) ease-out,background var(--motion-2) ease-out;border-radius:0 8px 8px 0;align-items:center;padding:clamp(7px,1.2vh,10px) 14px clamp(7px,1.2vh,10px) 22px;font-size:clamp(14px,2.1vh,16px);font-weight:400;text-decoration:none;display:flex;position:relative}.container .menu__list nav li a:hover{background:color-mix(in oklch, var(--text-color) 6%, transparent);color:var(--text-color)}.container .menu__list nav li a:active{background:color-mix(in oklch, var(--text-color) 11%, transparent);transition-duration:0s}.container .menu__list nav li .active{background:color-mix(in oklch, var(--primary) 9%, transparent);color:var(--primary-ink)}.container .menu__list nav .menu__marker{background:var(--primary);view-transition-name:nav-marker;border-radius:0 3px 3px 0;width:3px;height:calc(100% - 12px);position:absolute;top:50%;left:0;translate:0 -50%}.container .menu__contact{border-top:1px solid var(--hair);flex-shrink:0;padding:clamp(8px,1.6vh,12px) 12px clamp(12px,2.2vh,18px)}.container .menu__mail{border:1px solid var(--border);width:100%;color:var(--text-muted);font-family:var(--font-sans);cursor:pointer;transition:color var(--motion-2) ease-out,border-color var(--motion-2) ease-out,scale var(--motion-1) ease-out;background:0 0;border-radius:8px;align-items:center;gap:7px;margin-bottom:8px;padding:7px 9px;font-size:clamp(9.5px,1.5vh,11px);display:flex}.container .menu__mail svg{flex-shrink:0;font-size:13px}.container .menu__mail>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.container .menu__mail:hover{color:var(--primary-ink);border-color:color-mix(in oklch, var(--primary-ink) 55%, transparent)}.container .menu__mail:active{scale:var(--press-card);transition-duration:0s}.container .menu__social{justify-content:center;gap:4px;margin:0;padding:0;list-style:none;display:flex}.container .menu__social a{width:32px;height:clamp(26px,3.6vh,32px);color:var(--text-color-sidebar);cursor:pointer;transition:color var(--motion-2) ease-out,background var(--motion-2) ease-out,scale var(--motion-1) ease-out;border-radius:8px;place-items:center;font-size:clamp(16px,2.4vh,19px);display:inline-grid}.container .menu__social a:hover{color:var(--primary-ink);background:color-mix(in oklch, var(--text-color) 6%, transparent)}.container .menu__social a:active{scale:var(--press);transition-duration:0s}.container .menu__tools{border-top:1px solid var(--hair)}.container .body{--pad-y:clamp(10px, 2.4vh, 30px);--pad-x:30px;padding:var(--pad-y) var(--pad-x);min-height:0;position:relative;overflow:hidden}@media (max-width:1099px){.container .body{padding-top:calc(var(--topbar-h) + var(--pad-y))}}@media (max-width:40em){.container .body{--pad-x:0px;--pad-y:0px}}.container .body:after{content:"";z-index:3;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.container .body__content{width:100%;height:100%;overflow:hidden}.container .body__content:has(.home){overflow:visible}.container .home{height:calc(100% + var(--pad-y)*2);margin:calc(var(--pad-y)*-1) calc(var(--pad-x)*-1);flex-direction:column;display:flex;position:relative;overflow:hidden}.container .home .tags{align-self:flex-start}.container .home__blob{pointer-events:none;width:40%;height:min(58vh,34vw);color:color-mix(in srgb, var(--surface-2) 85%, var(--background-color));--blob-dot:var(--text-strong);position:absolute;top:0;right:0}:root[data-theme=light] .container .home__blob{color:color-mix(in srgb, var(--text-color) 6%, var(--background-color))}@media (max-width:40em){.container .home__blob{display:none}}@media (max-width:60.25em){.container .home{overscroll-behavior:contain;overflow-y:auto}.container .home .home__hero{flex:1 0 auto}}.container .home__hero{isolation:isolate;padding:var(--pad-y) 30px 0 calc(6rem + 30px);flex:auto;grid-template-columns:1fr 1fr;min-height:0;display:grid;position:relative}@media (max-width:60.25em){.container .home__hero{padding:var(--pad-y) 20px 0 30px;grid-template-columns:1fr}}@media (max-width:40em){.container .home__hero{padding:10px 18px 0 20px}}.container .home__details{flex-direction:column;justify-content:center;align-items:flex-start;width:fit-content;max-width:100%;min-height:0;margin-inline:auto;padding:clamp(6px,1.6vh,24px) 0;display:flex;position:relative}@media (max-width:60.25em){.container .home__details{display:contents}.container .home__details>.tags,.container .home__details>.home__body{margin-left:10px;margin-right:20px}.container .home__details>.tags__top{margin-top:clamp(6px,1.6vh,24px)}.container .home__details>.tags__bottom{order:1;margin-bottom:clamp(16px,3vh,32px)}}.container .home__body{padding-left:calc(var(--tag-step)*var(--tag-depth));max-width:700px}.container .home__role{margin:calc(var(--tag-block) + var(--tag-sep)) 0 0;color:var(--text-strong);font-family:var(--font-sans);text-wrap:balance;font-size:clamp(1.4rem,min(1.8rem,2.2vh),1.8rem);line-height:1.4}.container .home__role strong{color:var(--primary-ink);font-weight:600}.container .home__role-stack{color:var(--text-body)}@media (max-width:40em){.container .home .home__role>[aria-hidden=true]{display:none}.container .home .home__role-stack{display:block}}.container .home .home__role+.text--secondary{margin-top:calc(var(--tag-block) + var(--tag-sep));--p-tag-delay:.52s}@media (max-width:40em){.container .home__second{display:none!important}}.container .home__second{flex-direction:column;justify-content:center;min-height:0;display:flex;position:relative}@media (max-width:1300px){.container .home__second{align-items:center;padding-top:clamp(20px,5vh,70px)}}@media (max-width:60.25em){.container .home__second{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:16px;padding:clamp(28px,4vh,40px) 10px clamp(16px,3vh,30px);display:grid}}.container .home__featured{background:var(--band);border-top:1px solid var(--line);flex-shrink:0;align-items:center;gap:clamp(16px,3vw,46px);padding:clamp(8px,1.6vh,14px) clamp(20px,6vw,96px);display:flex}@media (max-width:1300px){.container .home__featured{padding:clamp(8px,1.6vh,14px) 30px}}@media (max-width:60.25em){.container .home__featured{flex-direction:column;align-items:stretch;gap:12px;padding:20px 30px 28px}}@media (max-width:40em){.container .home__featured{padding:20px 18px 28px}}.container .home__featured-title{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;flex-shrink:0;align-items:center;gap:10px;margin:0;font-size:1.2rem;font-weight:600;display:flex}.container .home__featured-title svg{font-size:14px}.container .home__featured-list{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1vw,20px);min-width:0;display:grid}@media (max-width:40em){.container .home__featured-list{grid-template-columns:1fr}}@media (max-width:60.25em){.container{grid-template-rows:auto;height:auto;min-height:100dvh;overflow:clip visible}.container .body,.container .body__content,.container .body__content>.content{height:auto;overflow:visible}.container .body__content>.home{min-height:calc(100dvh - var(--topbar-h))}}.contact{overscroll-behavior:contain;grid-template-columns:1fr 1fr;align-items:safe center;height:100%;padding:clamp(10px,2.4vh,30px);display:grid;position:relative;overflow-y:auto}@media (max-width:60.25em){.contact{overscroll-behavior:contain;grid-template-rows:repeat(4,auto);grid-template-columns:1fr;padding:0;overflow-y:auto}}.contact__form{flex-direction:column;justify-content:center;width:100%;min-height:0;display:flex;position:relative}@media (max-width:60.25em){.contact__form{display:contents}.contact__form>.tags__top{margin-top:3rem}.contact__form>.tags__bottom{order:1;margin-bottom:3rem}}.contact__form{--tags-x:4rem}@media (max-width:1300px){.contact__form{--tags-x:2rem}}@media (max-width:60.25em){.contact__form{--tags-x:3rem}}@media (max-width:40em){.contact__form{--tags-x:1.8rem}}.contact__form>.tags{margin-left:var(--tags-x)}.contact__body{padding:0 8rem 0 calc(var(--tags-x) + var(--tag-step)*var(--tag-depth))}@media (max-width:1300px){.contact__body{padding-right:5rem}}@media (max-width:60.25em){.contact__body{padding-right:3rem}}@media (max-width:40em){.contact__body{padding-right:1.8rem}}.contact__channels{flex-direction:column;gap:clamp(8px,1.6vh,12px);margin-top:clamp(3.6rem,6vh,5.5rem);display:flex}.contact__channels-label{color:var(--text-subtle);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;font-size:11px}.contact__social{gap:8px;display:flex}.contact__second{flex-direction:column;justify-content:safe center;place-self:stretch center;width:100%;max-width:560px;min-height:0;padding-block:clamp(26px,5vh,48px);display:flex}@media (max-width:60.25em){.contact__second{justify-self:stretch;max-width:none;height:auto;min-height:auto;padding:clamp(20px,4vh,30px) 30px clamp(26px,5vh,40px)}}@media (max-width:40em){.contact__second{padding:clamp(20px,4vh,30px) 20px clamp(26px,5vh,40px)}}@media (max-height:620px){.contact__channels{margin-top:3rem}}.email-inline{width:fit-content;max-width:100%;box-shadow:0 0 0 1px var(--border);background:var(--panel);transition:box-shadow var(--motion-2) ease-out;border-radius:12px;align-items:center;gap:12px;padding:7px 7px 7px 16px;display:inline-flex}@media (hover:hover){.email-inline:hover{box-shadow:0 0 0 1px var(--border-hover)}}.email-inline__address{color:var(--text-strong);font-family:var(--font-sans);overflow-wrap:anywhere;transition:color var(--motion-2) ease-out;font-size:clamp(1.3rem,2vh,1.6rem);text-decoration:none}.email-inline__address:hover{color:var(--primary-ink)}.email-inline__address:active{opacity:.65}.contact-form{width:100%;max-height:100%;box-shadow:0 0 0 1px var(--border),0 24px 60px var(--shadow-color);background:var(--panel);border-radius:15px;flex-direction:column;gap:clamp(10px,1.8vh,20px);padding:clamp(14px,2.4vh,28px);display:flex;position:relative}@media (max-width:40em){.contact-form{padding:clamp(14px,2.4vh,22px) 16px}}.contact-form:before,.contact-form:after{font-family:var(--font-mono);font-size:var(--tag-size);letter-spacing:0;color:var(--color-gray);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;font-style:normal;font-weight:400;line-height:1.5;position:absolute;left:0}.contact-form:before{content:"<form>";animation:typeLine .24s steps(6, end) var(--tag-t-open) both;margin-bottom:var(--tag-gap);bottom:100%}.contact-form:after{content:"</form>";animation:typeLine .28s steps(7, end) var(--tag-t-close) both;margin-top:var(--tag-gap);top:100%}.contact-form__row{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,1.6vh,16px);display:grid}@media (max-width:40em){.contact-form__row{grid-template-columns:1fr}}.contact-form__field{flex-direction:column;gap:clamp(5px,1vh,8px);display:flex;position:relative}.contact-form__field:has(textarea){flex:auto;min-height:0}.contact-form__field>label,.contact-form__types legend{color:var(--text-subtle);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;font-size:11px;font-weight:600}.contact-form__input{border:1px solid var(--border);background:var(--surface-0);width:100%;color:var(--text-strong);font:400 clamp(14px, 2vh, 15px)/1.5 var(--font-sans);transition:border-color var(--motion-2) ease-out,box-shadow var(--motion-2) ease-out,background var(--motion-2) ease-out;border-radius:10px;padding:clamp(9px,1.4vh,13px) 14px}.contact-form__input::placeholder{color:var(--placeholder)}@media (hover:hover){.contact-form__input:hover{border-color:var(--border-hover)}}.contact-form__input:focus-visible{border-color:var(--primary-ink);background:color-mix(in oklch, var(--surface-0), white 3%);box-shadow:0 0 0 3px color-mix(in oklch, var(--primary) 22%, transparent);outline:none}.contact-form__input[aria-invalid=true]{border-color:var(--danger)}.contact-form textarea.contact-form__input{resize:none;flex:auto;min-height:clamp(64px,14vh,150px)}.contact-form__count{color:var(--text-subtle);font-variant-numeric:tabular-nums;align-self:flex-end;font-size:11.5px}.contact-form__error{color:var(--danger-ink);animation:riseIn .26s var(--ease-out-expo) both;align-items:center;gap:6px;font-size:12.5px;display:flex}.contact-form__types{border:0;flex-wrap:wrap;gap:clamp(5px,1vh,8px);margin:0;padding:0;display:flex}.contact-form__types legend{width:100%;margin-bottom:clamp(6px,1.2vh,10px);padding:0}.contact-form__chip{cursor:pointer;position:relative}.contact-form__chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.contact-form__chip span{border:1px solid var(--border);background:var(--surface-0);color:var(--text-muted);transition:color var(--motion-2) ease-out,background var(--motion-2) ease-out,border-color var(--motion-2) ease-out,scale var(--motion-1) ease-out;border-radius:999px;align-items:center;padding:clamp(6px,1.1vh,8px) clamp(10px,1.4vw,14px);font-size:clamp(12px,1.8vh,13px);display:inline-flex}@media (hover:hover){.contact-form__chip:hover span{border-color:var(--border-hover);color:var(--text-strong)}}.contact-form__chip:active span{scale:var(--press);transition-duration:0s}.contact-form__chip input:checked+span{border-color:var(--primary-ink);background:var(--primary);color:#12211f;font-weight:600}.contact-form__chip input:focus-visible+span{outline:2px solid var(--accent-ink);outline-offset:2px}.contact-form__trap{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.contact-form__alert{border:1px solid color-mix(in oklch, var(--accent) 45%, transparent);background:color-mix(in oklch, var(--accent) 9%, transparent);animation:riseIn .26s var(--ease-out-expo) both;border-radius:10px;gap:10px;padding:10px 14px;display:flex}.contact-form__alert>svg{color:var(--accent-ink);flex-shrink:0;margin-top:2px}.contact-form__alert p{color:var(--text-body);font-size:clamp(12px,1.8vh,13.5px);line-height:1.5}.contact-form__alert a{color:var(--accent-ink);font-weight:600}.contact-form__actions{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;margin-top:0}.contact-form__actions button[disabled]{cursor:progress;opacity:.85;transform:none}.contact-form__note{color:var(--text-subtle);font-size:12px}.contact-form__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite rotate360}.contact-form--sent{justify-content:center;align-items:flex-start;gap:clamp(10px,2vh,14px)}@supports not (view-transition-name:none){.contact-form--sent{animation:cardIn .52s var(--ease-out-expo) both}}.contact-form--sent:focus{outline:none}.contact-form--sent h2{color:var(--text-strong);font-family:var(--font-sans);margin:0;font-size:clamp(1.9rem,3vh,2.4rem)}.contact-form--sent p{color:var(--text-body);font-size:clamp(1.3rem,2vh,1.4rem);line-height:1.6}.contact-form__check{background:var(--primary);color:#12211f;width:clamp(38px,5.4vh,46px);height:clamp(38px,5.4vh,46px);animation:popIn .56s var(--ease-out-expo) .12s both;border-radius:50%;place-items:center;font-size:clamp(18px,2.8vh,22px);display:grid}@media (max-width:40em){.contact__second{padding-block:12px}.contact-form__count,.contact-form:before,.contact-form:after{display:none}}.faq{flex-direction:column;flex:none;width:100%;margin-top:clamp(30px,5vh,46px);display:flex}.faq .contact__channels-label{margin:0 0 6px}.faq__item{border-top:1px solid var(--line)}@media (max-width:60.25em){@supports (animation-timeline:view()){@media (max-width:60.25em) and (prefers-reduced-motion:no-preference){.faq__item{animation:linear both scrollReveal;animation-timeline:view();animation-range:entry}}}}.faq__item:last-of-type{border-bottom:1px solid var(--line)}.faq__item summary{color:var(--text-body);cursor:pointer;transition:color var(--motion-2) ease-out;align-items:baseline;gap:10px;padding:clamp(7px,1.2vh,10px) 0;font-size:13px;list-style:none;display:flex}.faq__item summary::-webkit-details-marker{display:none}.faq__item summary:after{content:"+";color:var(--text-subtle);font-family:var(--font-mono);margin-left:auto;font-size:13px}@media (hover:hover){.faq__item summary:hover{color:var(--text-strong)}}.faq__item summary:active{opacity:.65}.faq__item summary:focus-visible{outline:2px solid var(--primary-ink);outline-offset:2px;border-radius:3px}.faq__item[open] summary{color:var(--text-strong)}.faq__item[open] summary:after{content:"−";color:var(--primary-ink)}.faq__index{color:var(--text-subtle);font-family:var(--font-mono);flex:none;font-size:11px}.faq__answer{color:var(--text-muted);margin:0;padding:0 0 12px;font-size:13px;line-height:1.55}@supports (interpolate-size:allow-keywords){.faq{interpolate-size:allow-keywords}.faq__item::details-content{height:0;transition:height var(--motion-3) var(--ease-out-expo),content-visibility var(--motion-3) allow-discrete;overflow:clip}.faq__item[open]::details-content{height:auto}}.work{--work-col:1240px;overscroll-behavior:contain;flex-direction:column;height:100%;padding:clamp(10px,2vh,30px) 30px clamp(12px,2.4vh,30px);display:flex;overflow-y:auto}@media (max-width:40em){.work{padding:clamp(10px,2vh,20px) 18px clamp(12px,2vh,20px)}}.work__prime{z-index:2}.work__header,.work__grid{width:100%;max-width:var(--work-col);margin-inline:auto}.work__header{padding:calc(clamp(26px,6vh,60px) - var(--tag-block) - var(--tag-sep)) 0 0 var(--tag-step);flex-shrink:0}@media (max-width:40em){.work__header{padding-top:calc(clamp(24px,5.5vh,60px) - var(--tag-block) - var(--tag-sep))}}.work__header .text--secondary{max-width:65ch}.work__grid{margin-block:var(--tag-block);flex:auto;grid-template-rows:repeat(2,minmax(200px,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,3vh,34px) clamp(16px,2vw,40px);padding:0;list-style:none;display:grid;position:relative}.work__grid:before{font-family:var(--font-mono);font-size:var(--tag-size);letter-spacing:0;color:var(--color-gray);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;content:"<ul>";animation:typeLine .16s steps(4, end) var(--tag-t-open) both;margin-bottom:var(--tag-gap);font-style:normal;font-weight:400;line-height:1.5;position:absolute;bottom:100%;left:0}.work__grid:after{font-family:var(--font-mono);font-size:var(--tag-size);letter-spacing:0;color:var(--color-gray);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;content:"</ul>";animation:typeLine .2s steps(5, end) var(--tag-t-close) both;margin-top:var(--tag-gap);font-style:normal;font-weight:400;line-height:1.5;position:absolute;top:100%;left:0}@media (max-width:60.25em){.work__grid{flex:none;grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;gap:36px 28px}}@media (max-width:40em){.work__grid{grid-template-columns:minmax(0,1fr);gap:16px}.work__grid>li+li{border-top:1px solid var(--hair);padding-top:16px}}.work__grid>li{min-height:0;display:flex}@media (max-width:60.25em){.work{overscroll-behavior:contain;overflow-y:auto}}@media (max-width:40em){.work__header{padding-top:calc(clamp(20px,4.5vh,40px) - var(--tag-block) - var(--tag-sep))}}.about{overscroll-behavior:contain;grid-template-columns:1fr 1fr;height:100%;display:grid;position:relative;overflow-y:auto}@media (max-width:60.25em){.about{grid-template-rows:repeat(4,auto);grid-template-columns:1fr}}.about__details{flex-direction:column;justify-content:safe center;align-items:center;min-height:0;padding-block:clamp(3rem,8vh,8rem);display:flex;position:relative}@media (max-width:60.25em){.about__details{display:contents}.about__details>.tags,.about__details>.about__body{justify-self:center}.about__details>.tags__top{margin-top:3rem}.about__details>.tags__bottom{order:1;margin-bottom:3rem}}.about__details>.tags,.about__body{width:70%}@media (max-width:40em){.about__details>.tags,.about__body{width:87%}}.about__body{padding-left:calc(var(--tag-step)*var(--tag-depth))}.about__second{min-height:0;padding:max(clamp(10px,2.4vh,30px),var(--tag-block)) clamp(10px,2.4vh,30px);justify-content:center;align-items:center;display:flex}@media (max-width:60.25em){.about__second{padding:var(--tag-block) 20px calc(var(--tag-block) + clamp(14px,3vh,30px));min-height:auto}.about{overscroll-behavior:contain;overflow-y:auto}}.about .glyphs{align-self:stretch}@media (max-width:60.25em){.about .glyphs{height:clamp(320px,52vh,460px)}}@media (max-width:40em){.about .glyphs{height:260px}}.about .glyphs:before{font-family:var(--font-mono);font-size:var(--tag-size);letter-spacing:0;color:var(--color-gray);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;content:"<aside>";animation:typeLine .28s steps(7, end) var(--tag-t-open) both;margin-bottom:var(--tag-gap);font-style:normal;font-weight:400;line-height:1.5;position:absolute;bottom:100%;left:0}.about .glyphs:after{font-family:var(--font-mono);font-size:var(--tag-size);letter-spacing:0;color:var(--color-gray);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;content:"</aside>";animation:typeLine .32s steps(8, end) var(--tag-t-close) both;margin-top:var(--tag-gap);font-style:normal;font-weight:400;line-height:1.5;position:absolute;top:100%;left:0}@media (max-width:40em){.about__details{padding-bottom:0}}.skills{overscroll-behavior:contain;grid-template-columns:minmax(0,1fr) minmax(0,1fr);height:100%;display:grid;position:relative;overflow-y:auto}@media (max-width:60.25em){.skills{grid-template-rows:repeat(4,auto);grid-template-columns:minmax(0,1fr)}}.skills__details{flex-direction:column;justify-content:safe center;align-items:center;min-height:0;padding-block:clamp(3rem,8vh,8rem);display:flex;position:relative}@media (max-width:60.25em){.skills__details{display:contents}.skills__details>.tags,.skills__details>.skills__body{justify-self:center}.skills__details>.tags__top{margin-top:3rem}.skills__details>.tags__bottom{order:1;margin-bottom:3rem}}.skills__details>.tags,.skills__body{width:70%}@media (max-width:40em){.skills__details>.tags,.skills__body{width:87%}}.skills__body{padding-left:calc(var(--tag-step)*var(--tag-depth))}.skills__second{--col-gap:clamp(10px, 2.4vh, 26px);justify-content:flex-start;gap:var(--col-gap);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) #0000;flex-direction:column;min-width:0;min-height:0;padding:clamp(12px,2.4vh,30px);display:flex;position:relative;overflow-y:auto}@media (max-width:60.25em){.skills__second{min-height:auto;padding:0 20px clamp(14px,3vh,30px);overflow:visible}}.skills__second:before,.skills__second:after{font-family:var(--font-mono);font-size:var(--tag-size);letter-spacing:0;color:var(--color-gray);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;align-self:flex-start;font-style:normal;font-weight:400;line-height:1.5}.skills__second:before{content:"<section>";margin-bottom:calc(var(--tag-gap) - var(--col-gap));animation:typeLine .36s steps(9, end) var(--tag-t-open) both}.skills__second:after{content:"</section>";margin-top:calc(var(--tag-gap) - var(--col-gap));animation:typeLine .4s steps(10, end) var(--tag-t-close) both}@media (max-width:60.25em){.skills{overscroll-behavior:contain;overflow-y:auto}}.skills__extras{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,2vh,20px);margin-top:clamp(4px,1.4vh,20px);padding-bottom:28px;display:grid}@media (max-width:60.25em){.skills__extras{grid-template-columns:1fr}@supports (animation-timeline:view()){@media (max-width:60.25em) and (prefers-reduced-motion:no-preference){.skills__extra{animation:linear both scrollReveal;animation-timeline:view();animation-range:entry}}}}.skills__extra .skills__group-title svg{color:var(--text-muted);font-size:13px}.skills__extra ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.skills__extra li{gap:2px;font-size:clamp(1.2rem,1.8vh,1.35rem);line-height:1.4;display:grid}.skills__extra strong{color:var(--text-strong);font-weight:500}.skills__extra span{color:var(--text-muted);font-size:clamp(1.1rem,1.6vh,1.2rem)}.skills__stack{flex-direction:column;min-width:0;display:flex}.skills__stack .glyphs{height:clamp(240px,34vh,340px)}@media (max-width:40em){.skills__stack .glyphs{height:260px}}.skills__rest{margin:calc(var(--tag-block) + 6px) 0 0;color:var(--text-subtle);font-family:var(--font-mono);font-size:clamp(12px,1.5vh,13px);line-height:1.6}.skills__rest span{color:var(--text-muted)}.skills__group-title{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:10px;margin:0 0 clamp(6px,1.4vh,14px);font-size:clamp(10px,1.6vh,12px);font-weight:600;display:flex}.skills__group-title:before{content:"";background:var(--accent);border-radius:5px;width:18px;height:5px}.skills__group-title--spaced{margin-top:clamp(4px,1.4vh,20px)}.gitlog{--lane-0:9px;--lane-1:27px;--graph-w:40px;--dot:10px;--line-h:40px;font-family:var(--font-mono);margin:0;padding:0;font-size:clamp(12px,1.6vh,13px);list-style:none;display:grid}@media (max-width:40em){.gitlog{--line-h:52px}}.gitlog__row{padding-left:calc(var(--graph-w) + 12px);animation:riseIn .56s var(--ease-out-expo) both;animation-delay:calc(.32s + var(--i,0)*70ms);position:relative}@media (max-width:60.25em){.gitlog__row{animation:none}@supports (animation-timeline:view()){@media (max-width:60.25em) and (prefers-reduced-motion:no-preference){.gitlog__row{animation:linear both scrollFade;animation-timeline:view();animation-range:entry}}}}.gitlog__line{min-height:var(--line-h);grid-template-columns:auto minmax(0,1fr) auto 1.4em;align-items:center;column-gap:12px;display:grid}@media (max-width:40em){.gitlog__line{grid-template-columns:minmax(0,1fr) 1.4em;grid-template-areas:"message mark""date mark";align-content:center;row-gap:2px}.gitlog__line .gitlog__hash{display:none}.gitlog__line .gitlog__message{grid-area:message}.gitlog__line .gitlog__date{text-align:left;grid-area:date}.gitlog__line:after{grid-area:mark}}.gitlog summary.gitlog__line{cursor:pointer;list-style:none}.gitlog summary.gitlog__line::-webkit-details-marker{display:none}.gitlog summary.gitlog__line:after{content:"+";color:var(--text-subtle);text-align:center}@media (hover:hover){.gitlog summary.gitlog__line:hover .gitlog__message{color:var(--text-strong)}}.gitlog summary.gitlog__line:active{opacity:.65}.gitlog summary.gitlog__line:focus-visible{outline:2px solid var(--primary-ink);outline-offset:2px;border-radius:3px}.gitlog__entry[open]>summary .gitlog__message{color:var(--text-strong)}.gitlog__entry[open]>summary:after{content:"−";color:var(--primary-ink)}.gitlog__show{padding:2px 1.4em 18px 0}.gitlog__kind{color:var(--text-subtle);margin:0;font-size:12px}.gitlog__bullets{color:var(--text-body);font-family:var(--font-sans);gap:6px;margin:10px 0 0;padding:0;font-size:clamp(1.3rem,1.8vh,1.4rem);line-height:1.55;list-style:none;display:grid}.gitlog__bullets li{padding-left:14px;position:relative}.gitlog__bullets li:before{content:"›";color:var(--primary-ink);position:absolute;left:0}.gitlog__stack{color:var(--text-muted);margin:10px 0 0;font-size:12px;line-height:1.6}.gitlog__stack span{color:var(--text-subtle);margin-right:6px}.gitlog__case{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;transition:color var(--motion-2) ease-out;align-items:center;gap:6px;margin-top:12px;font-size:11px;text-decoration:none;display:inline-flex}.gitlog__case svg{font-size:10px}.gitlog__case:hover{color:var(--primary-ink)}.gitlog__case:active{opacity:.65}.gitlog__graph{width:var(--graph-w);position:absolute;top:0;bottom:0;left:0}.gitlog__lane{width:2px;margin-left:-1px;position:absolute}.gitlog__lane--main{left:var(--lane-0);background:var(--primary)}.gitlog__lane--branch{left:var(--lane-1);background:var(--accent)}.gitlog__lane--full{top:0;bottom:0}.gitlog__lane--top{height:calc(var(--line-h)/2);top:0}.gitlog__lane--bottom{top:calc(var(--line-h)/2);bottom:0}.gitlog__curve{left:var(--lane-0);width:calc(var(--lane-1) - var(--lane-0));height:calc(var(--line-h)/2);position:absolute;overflow:visible}.gitlog__curve--top{top:0}.gitlog__curve--bottom{top:calc(var(--line-h)/2)}.gitlog__curve path{fill:none;stroke:var(--accent-ink);stroke-width:2px}.gitlog__dot{top:calc(var(--line-h)/2);z-index:1;width:var(--dot);height:var(--dot);margin:calc(var(--dot)/-2) 0 0 calc(var(--dot)/-2);border-radius:50%;position:absolute}.gitlog__dot--lane0{left:var(--lane-0);background:var(--primary)}.gitlog__dot--lane1{left:var(--lane-1);background:var(--accent)}.gitlog__dot--root{background:var(--background-color);box-shadow:inset 0 0 0 2px var(--primary)}.gitlog__hash{color:var(--accent-ink)}.gitlog__message{color:var(--text-body);transition:color var(--motion-2) ease-out;line-height:1.45}.gitlog__refs{color:var(--primary-ink);margin-right:8px}.gitlog__date{color:var(--text-subtle);text-align:right;white-space:nowrap}@supports (interpolate-size:allow-keywords){.gitlog{interpolate-size:allow-keywords}.gitlog__entry::details-content{height:0;transition:height var(--motion-3) var(--ease-out-expo),content-visibility var(--motion-3) allow-discrete;overflow:clip}.gitlog__entry[open]::details-content{height:auto}}@media (max-width:40em){.skills__details{padding-bottom:0}}.case{overscroll-behavior:contain;flex-direction:column;height:100%;padding:clamp(4px,1vh,10px) 30px clamp(12px,2.4vh,24px);display:flex;overflow-y:auto}@media (max-width:40em){.case{padding:clamp(4px,1vh,10px) 18px clamp(12px,2vh,20px)}}.case__back{height:clamp(36px,5vh,44px);color:var(--text-muted);font-family:var(--font-sans);transition:color var(--motion-2) ease-out;flex-shrink:0;align-self:flex-start;align-items:center;gap:8px;font-size:1.4rem;text-decoration:none;display:inline-flex}.case__back svg{transition:translate var(--motion-2) ease-out;font-size:12px}.case__back:hover{color:var(--primary-ink)}.case__back:hover svg{translate:-3px}.case__back:active{opacity:.65}@media (max-width:60.25em){.case{overscroll-behavior:contain;overflow-y:auto}}@media (max-height:960px) and (min-width:60.26em){.case{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) #0000;padding-bottom:.4rem;overflow-y:auto}.case .case__grid{flex:none;padding-bottom:1rem}.case .case__meta{row-gap:1rem;margin-top:.8rem;padding-top:1rem}.case .case__section-title,.case .case__actions{margin-top:1rem}.case .case__pager{margin-top:.4rem}.case .case__pager-link{flex-direction:row;align-items:baseline;gap:10px;padding-block:1rem}.case .case__pager-link--next{justify-content:flex-end}.case .case__pager-dir,.case .case__pager-meta{white-space:nowrap;flex-shrink:0}.case .case__pager-title{min-width:0}}.case__grid{flex:auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(20px,5vw,80px);min-height:0;padding:clamp(10px,3vh,60px) 0 clamp(10px,3vh,40px) 4rem;display:grid}@media (max-width:60.25em){.case__grid{flex:none;grid-template-rows:auto auto;grid-template-columns:1fr;gap:clamp(16px,3vh,28px);padding:clamp(8px,2vh,30px) 0 clamp(12px,2.4vh,24px) 2rem}}@media (max-width:40em){.case__grid{padding-left:var(--tag-step);padding-right:.5rem}}.case__intro{min-height:0}.case .header__title.case__title{font-size:clamp(2.2rem,min(1rem + 2vw,6.5vh),4.4rem)}@media (max-width:60.25em){.case .header__title.case__title{font-size:clamp(2.4rem,min(.6rem + 4.5vw,6vh),4.4rem)}}.case .header__title.case__title:before{content:"<h1>"}.case .header__title.case__title:after{content:"</h1>"}.case__meta{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,auto));justify-content:start;gap:clamp(8px,1.8vh,18px) 24px;margin:clamp(14px,3vh,44px) 0 0;padding-top:clamp(10px,2vh,22px);display:grid}.case__meta dt{color:var(--text-subtle);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;font-size:1.1rem}.case__meta dd{color:var(--text-strong);font-family:var(--font-sans);margin:6px 0 0;font-size:clamp(1.4rem,2.2vh,1.7rem)}.case__meta-stack{grid-column:1/-1}.case__stack{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.case__stack li{background:var(--surface-0);color:var(--text-strong);font-family:var(--font-sans);border-radius:5px;align-items:center;gap:7px;padding:5px 9px;font-size:12px;display:inline-flex}.case__stack li svg{font-size:16px}.case__section-title{color:var(--text-subtle);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;margin:clamp(12px,2.4vh,28px) 0 0;font-size:1.1rem;font-weight:600}.case__highlights{color:var(--text-body);margin:clamp(6px,1.2vh,12px) 0 0;padding-left:18px;font-size:clamp(1.3rem,min(1.5rem,1.9vh),1.5rem);line-height:1.6}.case__highlights li+li{margin-top:4px}.case__highlights li::marker{color:var(--primary-ink)}@media (max-width:60.25em){@supports (animation-timeline:view()){@media (max-width:60.25em) and (prefers-reduced-motion:no-preference){.case__highlights li{animation:linear both scrollReveal;animation-timeline:view();animation-range:entry}}}}.case__result{border-left:2px solid var(--accent-ink);color:var(--text-strong);text-wrap:pretty;margin:clamp(6px,1.2vh,12px) 0 0;padding-left:12px;font-size:clamp(1.3rem,min(1.55rem,2vh),1.55rem);line-height:1.6}.case__actions{margin-top:clamp(14px,3vh,40px)}.case__aside{max-width:720px;min-height:0}.case__aside .case__section-title{margin-top:clamp(16px,3vh,32px)}.case__media{aspect-ratio:5/2;background:var(--surface-1);width:100%;max-height:30vh;box-shadow:0 0 0 1px var(--border),0 24px 56px var(--shadow-color);border-radius:10px;position:relative;overflow:hidden}@media (max-width:60.25em){.case__media{max-height:none}}.case__pager{flex-shrink:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-left:4rem;display:grid}@media (max-width:60.25em){.case__pager{margin-top:clamp(12px,2.4vh,24px);padding-left:0}}@media (max-width:40em){.case__pager{grid-template-columns:1fr;gap:10px}.case__pager .case__pager-title{white-space:normal;text-wrap:balance}}.case__pager-link{border:1px solid var(--border);background:var(--surface-1);min-width:0;transition:border-color var(--motion-2) ease-out,scale var(--motion-1) ease-out;border-radius:6px;flex-direction:column;gap:4px;padding:clamp(10px,1.8vh,16px) 20px;text-decoration:none;display:flex}.case__pager-link:hover{border-color:var(--primary-ink)}.case__pager-link:hover .case__pager-title{color:var(--text-strong)}.case__pager-link:active{scale:var(--press-card);transition-duration:0s}.case__pager-link--next{text-align:right;align-items:flex-end}.case__pager-dir{color:var(--text-subtle);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:6px;font-size:1.1rem;display:inline-flex}.case__pager-dir svg{font-size:10px}.case__pager-title{max-width:100%;color:var(--text-body);font-family:var(--font-sans);white-space:nowrap;text-overflow:ellipsis;transition:color var(--motion-2) ease-out;font-size:1.6rem;overflow:hidden}.case__pager-meta{color:var(--text-subtle);font-size:1.2rem}.not-found{flex-direction:column;justify-content:center;align-items:center;height:100%;padding-block:clamp(3rem,8vh,8rem);display:flex;overflow-y:auto}.not-found>.tags,.not-found__body{width:min(70%,720px)}@media (max-width:40em){.not-found>.tags,.not-found__body{width:87%}}.not-found__body{padding-left:calc(var(--tag-step)*var(--tag-depth))}.not-found__body .hero-actions{margin-top:3.2rem}.hero-stats{font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:8px 0;margin:clamp(2.4rem,4.4vh,4.6rem) 0 0;font-size:12.5px;line-height:1.4;display:flex}.hero-stats:before{content:"";background:var(--accent);border-radius:4px;flex:none;width:26px;height:8px;margin-right:14px}.hero-stats{--boot:1.15s;--boot-gap:.3s}.hero-stats>div{border-left:1px solid var(--line);animation:.38s steps(12,end) both typeLine;animation-delay:calc(var(--boot) + var(--i,0)*var(--boot-gap));align-items:baseline;gap:7px;padding-inline:14px;display:flex}.hero-stats>div:first-of-type{border-left:0;padding-left:0}.hero-stats:after{content:"";background:var(--primary);opacity:0;width:7px;height:12px;animation:1s step-end 5 both caretBlink;animation-delay:calc(var(--boot) + var(--n,4)*var(--boot-gap));flex:none;margin-left:12px}.hero-stats dt{color:var(--text-subtle);letter-spacing:.12em;text-transform:uppercase;font-size:10.5px}.hero-stats dd{color:var(--text-body);white-space:nowrap;margin:0}@media (min-width:1100px){.hero-stats__status{display:none!important}.hero-stats:has(.hero-stats__status):after{animation-delay:calc(var(--boot) + (var(--n,4) - 1)*var(--boot-gap))}}.hero-stats__live{color:var(--text-strong);align-self:center;align-items:center;gap:7px;display:inline-flex}@media (max-width:40em){.hero-stats{grid-template-columns:repeat(2,max-content);gap:8px 22px;display:grid}.hero-stats:before,.hero-stats:after{display:none}.hero-stats>div{border:0;padding:0}}.hero-cta{align-self:stretch;margin-top:clamp(16px,3.2vh,38px)}.hero-actions{align-items:center;gap:16px;display:flex}@media (max-width:60.25em){.hero-actions{flex-direction:column;align-items:stretch;gap:12px;width:100%;max-width:360px}}.hero-actions a,.hero-actions button{height:clamp(44px,6.2vh,54px);font-family:var(--font-sans);white-space:nowrap;cursor:pointer;transition:scale var(--motion-1) ease-out,box-shadow var(--motion-2) ease-out,border-color var(--motion-2) ease-out,background var(--motion-2) ease-out;border-radius:27px;justify-content:center;align-items:center;gap:10px;padding:0 26px;font-size:1.6rem;text-decoration:none;display:inline-flex}.hero-actions a svg,.hero-actions button svg{font-size:15px}@media (max-width:60.25em){.hero-actions a,.hero-actions button{height:clamp(44px,6vh,52px)}}.hero-actions button{appearance:none;border:0}.hero-actions__primary{color:#12211f;background:#f1a72b;padding:0 28px;font-weight:600;box-shadow:0 8px 26px #f1a72b38}.hero-actions__primary:hover{box-shadow:0 10px 30px #f1a72b52}.hero-actions__primary:active{scale:var(--press);transition-duration:0s}.hero-actions__link{height:auto;color:var(--text-muted);font-family:var(--font-sans);text-underline-offset:4px;transition:color var(--motion-2) ease-out,text-decoration-color var(--motion-2) ease-out;border-radius:4px;padding:0 4px;font-size:1.4rem;font-weight:500;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.hero-actions__link svg{font-size:14px}.hero-actions__link:hover{color:var(--primary-ink);text-decoration-color:currentColor}.hero-actions__link:active{opacity:.65}@media (max-width:60.25em){.hero-actions__link{justify-content:center;padding:8px 4px}}.hero-actions__ghost{color:var(--text-strong);border:1.5px solid var(--border-hover);background:0 0;font-weight:500}.hero-actions__ghost:hover{border-color:var(--primary-ink);background:color-mix(in oklch, var(--primary) 6%, transparent)}.hero-actions__ghost:active{scale:var(--press);transition-duration:0s}.featured-card{border:1px solid var(--border);background:var(--surface-1);min-width:0;min-height:0;animation:riseIn .56s var(--ease-out-expo) both;animation-delay:calc(1.15s + var(--i,0)*90ms);transition:border-color var(--motion-2) ease-out,scale var(--motion-1) ease-out;border-radius:4px;align-items:center;gap:clamp(8px,1vw,12px);padding:clamp(6px,1vh,9px) 26px clamp(6px,1vh,9px) 12px;text-decoration:none;display:flex;position:relative}.featured-card:active{scale:var(--press-card);transition-duration:0s}.featured-card__logo{flex-shrink:0;justify-content:center;align-items:center;width:clamp(22px,3.2vh,30px);height:clamp(22px,3.2vh,30px);display:flex}.featured-card__logo img{width:auto;max-width:100%;height:auto;max-height:100%;filter:var(--logo-filter);opacity:.5;transition:opacity var(--motion-2) ease-out}.featured-card__text{flex-direction:column;justify-content:center;gap:2px;min-width:0;display:flex}.featured-card__title{color:var(--text-body);font-family:var(--font-sans);white-space:nowrap;text-overflow:ellipsis;transition:color var(--motion-2) ease-out;font-size:clamp(1.2rem,1.7vh,1.4rem);overflow:hidden}.featured-card__meta{color:var(--text-subtle);font-family:var(--font-sans);white-space:nowrap;text-overflow:ellipsis;font-size:clamp(1.2rem,1.5vh,1.3rem);overflow:hidden}.featured-card__arrow{color:var(--primary-ink);opacity:0;transition:opacity var(--motion-2) ease-out,translate var(--motion-2) var(--ease-out-expo);font-size:10px;position:absolute;top:50%;right:12px;translate:-4px -50%}.featured-card:hover{border-color:var(--primary-ink)}.featured-card:hover .featured-card__title{color:var(--text-strong)}.featured-card:hover .featured-card__logo img{opacity:.95}.featured-card:hover .featured-card__arrow{opacity:1;translate:0 -50%}@media (max-width:60.25em){.featured-card .featured-card__arrow{opacity:1;translate:0 -50%}}@media (max-width:40em){.featured-card{padding-right:12px}.featured-card .featured-card__arrow{display:none}}.work-cover{border-radius:inherit;background:radial-gradient(120% 90% at 0% 0%, color-mix(in oklch, var(--c1) 16%, transparent), transparent 62%),radial-gradient(90% 80% at 100% 100%, color-mix(in oklch, var(--c2) 10%, transparent), transparent 60%),var(--surface-1);position:absolute;inset:0;overflow:hidden;container:cover/size}.work-cover img{object-fit:cover;object-position:top center}.work-cover__shot{z-index:1;background:var(--surface-2);box-shadow:0 0 0 1px color-mix(in oklch, var(--text-color) 6%, transparent),0 16px 36px -14px #0009;border-radius:7px 7px 0 0;position:absolute;inset:13% 9% -2%;overflow:hidden}.work-cover__shot:before{content:"";background:radial-gradient(circle, var(--dot) 2.4px, transparent 3px) 8px 50%/10px 10px no-repeat,radial-gradient(circle, var(--dot) 2.4px, transparent 3px) 19px 50%/10px 10px no-repeat,radial-gradient(circle, var(--dot) 2.4px, transparent 3px) 30px 50%/10px 10px no-repeat;--dot:color-mix(in oklch, var(--text-subtle) 40%, transparent);height:14px;position:absolute;top:0;left:0;right:0}.work-cover__screen{filter:saturate(.8)brightness(.85);transition:filter .4s ease-out;position:absolute;inset:14px 0 0;overflow:hidden}.work-cover__screen:after{content:"";pointer-events:none;background:radial-gradient(circle, transparent .8px, var(--black) 1.5px) 0 0/3px 3px;opacity:0;transition:opacity .36s steps(3,end);position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.card-work .work-cover__screen{filter:grayscale()contrast(1.12)brightness(.72);transition:filter .42s steps(3,end)}.card-work .work-cover__screen:after{opacity:.5}.card-work:hover .work-cover__screen:after,.card-work:focus-visible .work-cover__screen:after{opacity:0}}.card-work:hover .work-cover__screen,.card-work:focus-visible .work-cover__screen,.case .work-cover__screen{filter:none}.work-cover:before{content:"";pointer-events:none;background-image:linear-gradient(color-mix(in oklch, var(--text-color) 2%, transparent) 1px, transparent 1px),linear-gradient(90deg, color-mix(in oklch, var(--text-color) 2%, transparent) 1px, transparent 1px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(120% 100% at 100% 0,#000,#0000 70%);mask-image:radial-gradient(120% 100% at 100% 0,#000,#0000 70%)}.work-cover__art{place-items:center;padding:10%;display:grid;position:absolute;inset:0;container-type:inline-size}.work-cover__icon{color:color-mix(in oklch, var(--c1) 55%, var(--text-strong));opacity:.6;font-size:clamp(34px,20cqi,96px)}.work-cover__fallback{display:none}.work-cover__caption{color:var(--text-subtle);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:10.5px;position:absolute;top:clamp(10px,7cqh,18px);left:clamp(12px,3.5cqi,22px)}.system{--sys-font:clamp(8px, min(3.2cqi, 7.5cqh), 13px);--sys-gap:clamp(5px, 4.5cqh, 14px);justify-content:center;align-items:center;gap:var(--sys-gap);font-family:var(--font-mono);font-size:var(--sys-font);flex-direction:column;margin:0;padding:6cqh 5cqi;list-style:none;display:flex;position:absolute;inset:0}.work-cover--case .system{--sys-font:clamp(10px, min(2.6cqi, 6.5cqh), 14px);padding-top:calc(6cqh + 1.6em)}.system__row{justify-content:center;gap:.6em;display:flex;position:relative}.system__row+.system__row:before{content:"";width:1px;height:var(--sys-gap);background:color-mix(in oklch, var(--c1) 55%, var(--text-subtle));position:absolute;bottom:100%;left:50%}.system__node{border:1px solid color-mix(in srgb, var(--text-color) 14%, transparent);background:color-mix(in srgb, var(--background-color) 55%, transparent);color:var(--text-body);white-space:nowrap;border-radius:4px;padding:.35em .75em;line-height:1.3}.system__row:first-child .system__node{border-color:color-mix(in oklch, var(--c1) 50%, transparent);color:var(--text-strong)}@container cover (max-width:220px){.system{display:none}.work-cover__fallback{display:grid}}.work-cover__art--metric{align-content:end;place-items:end start;gap:.35em;padding:7% 9%}.work-cover__art--metric .work-cover__badge{color:color-mix(in oklch, var(--c1) 55%, var(--text-strong));opacity:.55;font-size:clamp(14px,6cqi,26px);position:absolute;top:7cqi;left:9cqi}.work-cover__art--metric .work-cover__value{color:var(--text-strong);font-family:var(--font-sans);white-space:nowrap;letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:clamp(18px,12cqi,56px);font-weight:600;line-height:1}.work-cover__art--metric .work-cover__label{color:var(--text-muted);font-family:var(--font-mono);font-size:clamp(11px,4cqi,15px);line-height:1.3}@media (max-width:40em){.work-cover__art--metric .work-cover__label{max-width:100%;font-family:var(--font-sans);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}}.palette{background:var(--surface-1);width:min(620px,100vw - 32px);max-height:min(520px,80dvh);color:var(--text-body);box-shadow:0 0 0 1px var(--border),0 30px 80px var(--shadow-color);opacity:0;transition:opacity var(--motion-2) ease-out,translate var(--motion-3) var(--ease-out-expo),scale var(--motion-3) var(--ease-out-expo),overlay var(--motion-3) allow-discrete,display var(--motion-3) allow-discrete;border:0;border-radius:12px;margin:12vh auto auto;padding:0;overflow:hidden;translate:0 10px;scale:.98}.palette[open]{opacity:1;translate:0;scale:1}@starting-style{.palette[open]{opacity:0;translate:0 10px;scale:.98}}.palette::backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur();transition:background var(--motion-3) ease-out,backdrop-filter var(--motion-3) ease-out,overlay var(--motion-3) allow-discrete,display var(--motion-3) allow-discrete;background:#0a0a0c00}.palette[open]::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0a0c8c}@starting-style{.palette[open]::backdrop{-webkit-backdrop-filter:blur();backdrop-filter:blur();background:#0a0a0c00}}.palette__box{max-height:inherit;flex-direction:column;display:flex}.palette__search{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:0 18px;display:flex}.palette__search>svg{color:var(--text-subtle);flex-shrink:0;font-size:17px}.palette__input{min-width:0;height:58px;color:var(--text-strong);font:500 16px var(--font-sans);background:0 0;border:0;flex:1}.palette__input::placeholder{color:var(--text-subtle)}.palette__input:focus-visible{outline:none}.palette__list{overscroll-behavior:contain;margin:0;padding:8px;list-style:none;overflow-y:auto}.palette__group{color:var(--text-subtle);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;padding:12px 10px 6px;font-size:11px}.palette__item{color:var(--text-body);cursor:pointer;border-radius:8px;align-items:center;gap:12px;padding:10px 12px;font-size:14px;display:flex}.palette__item svg{color:var(--text-subtle);flex-shrink:0}.palette__item:active{opacity:.65}.palette__item[aria-selected=true]{background:color-mix(in oklch, var(--primary) 12%, transparent);box-shadow:inset 2px 0 0 var(--primary);color:var(--text-strong)}.palette__item[aria-selected=true] svg{color:var(--primary-ink)}.palette__label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.palette__hint{color:var(--text-subtle);flex-shrink:0;font-size:12px}.palette__empty{color:var(--text-subtle);text-align:center;padding:28px 12px}.palette__foot{border-top:1px solid var(--border);color:var(--text-subtle);gap:18px;padding:10px 18px;font-size:11px;display:flex}.palette__foot kbd{margin-right:3px}@media (max-width:40em){.palette__foot{display:none}}.roll{vertical-align:bottom;line-height:1.25;display:inline-grid;overflow:hidden}.roll__line{white-space:nowrap;grid-area:1/1}.roll__line>span{transition:transform var(--motion-4) var(--ease-out-expo);transition-delay:calc(var(--i,0)*16ms);display:inline-block}.roll__line--under>span{transform:translateY(110%)}@media (hover:hover) and (pointer:fine){:is(a,button):is(:hover,:focus-visible) .roll__line>span{transform:translateY(-110%)}:is(a,button):is(:hover,:focus-visible) .roll__line--under>span{transform:translateY(0)}}kbd{border:1px solid var(--border);background:var(--surface-0);color:var(--text-muted);font-family:var(--font-mono);border-radius:4px;padding:1px 6px;font-size:11px;line-height:1.5;display:inline-block}.icon-button{appearance:none;border:1px solid var(--border);min-width:36px;height:36px;color:var(--text-muted);cursor:pointer;transition:color var(--motion-2) ease-out,border-color var(--motion-2) ease-out,background var(--motion-2) ease-out,scale var(--motion-1) ease-out;background:0 0;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:0;font-size:16px;text-decoration:none;display:inline-flex}@media (hover:hover){.icon-button:hover{color:var(--primary-ink);border-color:color-mix(in oklch, var(--primary-ink) 60%, transparent);background:color-mix(in oklch, var(--primary) 6%, transparent)}}.icon-button:active{scale:var(--press);transition-duration:0s}.copy-icon{flex-shrink:0;display:inline-grid}.copy-icon>svg{transition:opacity var(--motion-2) ease-out,scale var(--motion-2) var(--ease-out-expo);grid-area:1/1}.copy-icon>svg:last-child{color:var(--accent-ink);opacity:0;scale:.5}[data-copied] .copy-icon>svg:first-child{opacity:0;scale:.5}[data-copied] .copy-icon>svg:last-child{opacity:1;scale:1}.palette-trigger{padding:0 10px;font-size:14px}.palette-trigger kbd{background:0 0;border:0;padding:0}.theme-toggle svg{transition:rotate var(--motion-4) var(--ease-out-expo)}@media (hover:hover){.theme-toggle:hover svg{rotate:25deg}}.menu__tools{flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:12px 10%;display:flex}.status-pill{border:1px solid color-mix(in oklch, var(--primary) 35%, transparent);background:color-mix(in oklch, var(--primary) 10%, transparent);color:var(--text-strong);font-family:var(--font-sans);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 10px;font-size:12px;font-weight:500;display:inline-flex}.status-pill__dot{background:var(--primary);border-radius:50%;width:8px;height:8px}.status-pill--off{border-color:var(--border);color:var(--text-muted);background:0 0}.status-pill--rail{gap:6px;padding:3px 10px 3px 8px;font-size:clamp(9px,1.4vh,10.5px)}.status-pill--rail .status-pill__dot{width:6px;height:6px}.toast{z-index:50;pointer-events:none;position:fixed;bottom:28px;left:50%;translate:-50%}.toast__msg{border:1px solid var(--border);background:var(--surface-1);box-shadow:0 16px 40px var(--shadow-color);color:var(--text-strong);white-space:nowrap;animation:toastIn var(--motion-3) var(--ease-out-expo) both;border-radius:999px;align-items:center;gap:10px;padding:10px 18px;font-size:14px;display:inline-flex}.toast__msg[data-leaving]{animation:toastOut var(--motion-2) var(--ease-in) both}.toast__msg:before{content:"";background:var(--primary);border-radius:50%;width:8px;height:8px}.card-space{background:var(--surface-1);width:clamp(232px,21vw,320px);box-shadow:0 0 0 1px var(--border),0 18px 40px #00000059;will-change:transform;backface-visibility:hidden;transition:box-shadow var(--motion-2) ease-out,opacity var(--motion-2) ease-out,scale var(--motion-1) ease-out;opacity:.82;border-radius:6px;flex-direction:column;padding:clamp(16px,2.2vh,26px) 16px clamp(10px,1.6vh,16px);text-decoration:none;display:flex;position:absolute}@media (max-width:1300px){.card-space{opacity:1;position:relative}}@media (max-width:60.25em){.card-space{width:100%;max-width:420px}}.card-space:hover,.card-space:focus-visible{opacity:1}.card-space:hover{box-shadow:0 0 0 1px #f1a72b,0 18px 40px #00000059}.card-space:hover .card-space__dest{color:#f1a72b;border-top-color:#2b6f69}.card-space:hover .card-space__dest svg{transform:translate(3px)}.card-space:focus-visible{box-shadow:0 0 0 2px var(--background-color),0 0 0 4px var(--primary),0 18px 40px #00000059}.card-space:active{scale:var(--press-card);transition-duration:0s}.card-space__trace{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.card-space__trace rect{fill:none;stroke-width:2px;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100px;opacity:0;animation:13.5s linear cardTrace}.card-space__icons{z-index:2;gap:8px;padding:12px 14px;display:flex;position:absolute;top:0;right:0}.card-space__icons svg{color:#4c4f5a;font-size:16px}.card-space__title{z-index:2;background:var(--surface-1);font-family:var(--font-sans);color:#fff;margin:0;padding:0 6px;font-size:17px;font-weight:600;position:absolute;top:-11px;left:34px}.card-space__body{z-index:2;gap:12px;display:flex;position:relative}.card-space__line{color:#8a8c94;text-align:right;flex-shrink:0;width:18px;font-size:clamp(11px,1.6vh,13px);line-height:clamp(15px,2.2vh,18px)}.card-space code{font-size:clamp(11px,1.6vh,13px);line-height:clamp(15px,2.2vh,18px)}.card-space code>div{animation:.56s steps(24,end) both typeLine;animation-delay:calc(var(--type-start) + var(--line,0)*.48s)}.card-space code>div:nth-child(2){--line:1}.card-space code>div:nth-child(3){--line:2}.card-space code>div:nth-child(4){--line:3}.card-space code>div:last-child:after{content:"";vertical-align:-2px;background:var(--primary);opacity:0;width:7px;height:13px;animation:1.1s step-end 6 both caretBlink;animation-delay:calc(var(--type-start) + var(--lines)*.48s);margin-left:3px;display:inline-block}.card-space__dest{z-index:2;border-top:1px solid var(--border);color:#8e8e94;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;transition:color var(--motion-2) ease-out,border-color var(--motion-2) ease-out;align-items:center;gap:6px;margin-top:14px;padding-top:11px;font-size:11px;display:flex;position:relative}.card-space__dest svg{transition:transform var(--motion-2) ease-out;font-size:11px}.card-space__out{color:#8a8c94}.card-space--html{--type-start:1.6s;--lines:3;animation:.7s cubic-bezier(.22,1,.36,1) .9s backwards cardIn,8s ease-in-out 1.6s float;top:10%;left:8%}.card-space--html .card-space__trace rect{animation-delay:1.9s}@media (max-width:1300px){.card-space--html{animation:.7s cubic-bezier(.22,1,.36,1) .9s backwards cardIn,8s ease-in-out 1.6s floatLeft;top:0;left:0}}@media (max-width:60.25em){.card-space--html{display:none}}.card-space--css{--type-start:1.75s;--lines:4;animation:.7s cubic-bezier(.22,1,.36,1) 1.03s backwards cardIn,8s ease-in-out 6.3s float;top:37%;left:16%}.card-space--css .card-space__trace rect{animation-delay:6.4s}@media (max-width:1300px){.card-space--css{margin:20px 10px;animation:.7s cubic-bezier(.22,1,.36,1) 1.03s backwards cardIn,8s ease-in-out 6.3s floatLeft;top:0;left:clamp(12px,2vw,40px)}}@media (max-width:60.25em){.card-space--css{margin:0;animation:.7s cubic-bezier(.22,1,.36,1) 1.03s both cardIn;left:0}}.card-space--js{--type-start:1.9s;--lines:3;animation:.7s cubic-bezier(.22,1,.36,1) 1.16s backwards cardIn,8s ease-in-out 11s float;top:64%;left:24%}.card-space--js .card-space__trace rect{animation-delay:10.9s}@media (max-width:1300px){.card-space--js{display:none}}@media (max-width:60.25em){.card-space--html,.card-space--css{width:auto;max-width:none;margin:0;animation:.7s cubic-bezier(.22,1,.36,1) both cardIn;display:flex;top:0;left:0}.card-space--css{animation-delay:.13s}.card-space .card-space__body{flex:1}}.card-work{isolation:isolate;width:100%;height:100%;min-height:0;color:var(--text-muted);transition:scale var(--motion-1) ease-out;flex-direction:column;text-decoration:none;display:flex;position:relative;container-type:size}.card-work:active{scale:var(--press-card);transition-duration:0s}@media (prefers-reduced-motion:no-preference){.card-work{animation:scrollReveal .7s var(--ease-out-expo) both;animation-delay:calc(var(--i,0)*70ms + .12s)}}@media (max-width:60.25em){.card-work{height:auto;animation:none;container-type:inline-size}@supports (animation-timeline:view()){@media (max-width:60.25em) and (prefers-reduced-motion:no-preference){.card-work{animation:linear both scrollReveal;animation-timeline:view();animation-range:entry 5% cover 30%}}}.card-work .card-work__img{aspect-ratio:16/10;flex:none}}.card-work:hover .card-work__img{box-shadow:0 0 0 1px var(--primary-ink)}.card-work:hover .card-work__cta{opacity:1;color:var(--primary-ink);translate:0}.card-work:focus-visible .card-work__cta{opacity:1;translate:0}.card-work:focus-visible{outline-offset:10px}.card-work__img{background:var(--surface-2);min-height:0;transition:box-shadow var(--motion-2) ease-out;border-radius:6px;flex:auto;position:relative;overflow:hidden}.card-work__header{flex-shrink:0;align-items:flex-end;gap:12px;margin-top:clamp(6px,1.2vh,10px);display:flex}.card-work__info{flex-direction:column;flex:1;justify-content:center;gap:2px;min-width:0;font-size:clamp(12px,1.7vh,14px);display:flex}.card-work__info .title{font:inherit;color:var(--text-strong);margin:0}.card-work__info .sub{color:var(--text-muted);flex-wrap:wrap;align-items:center;column-gap:7px;font-size:clamp(12px,1.5vh,13px);display:flex}.card-work__info .sub>span{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.card-work__role:before,.card-work__period:before{content:"·";color:var(--text-subtle);font-weight:400}.card-work__role{color:var(--accent-ink)}.card-work__cta{color:var(--text-subtle);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;transition:opacity var(--motion-2) ease-out,translate var(--motion-2) ease-out,color var(--motion-2) ease-out;flex-shrink:0;align-items:center;gap:6px;font-size:11px;display:inline-flex}.card-work__cta svg{font-size:10px}@media (hover:hover){.card-work__cta{opacity:0;translate:-4px}}.card-work__tag{flex-wrap:wrap;flex-shrink:0;gap:5px;margin:clamp(6px,1.2vh,12px) 0 0;padding:0;list-style:none;display:flex}.card-work__tag .tag{border:1px solid var(--line);color:var(--text-muted);border-radius:5px;align-items:center;gap:5px;padding:3px 7px;font-size:11px;font-weight:400;display:flex}.card-work__tag .tag svg{font-size:13px}@container (max-width:360px){.card-work .card-work__cta{display:none}}@container (max-height:250px){.card-work .card-work__tag{flex-wrap:nowrap;overflow:hidden}.card-work .card-work__tag .tag{white-space:nowrap;padding:4px 6px}.card-work .card-work__tag .tag:nth-child(n+4){display:none}}@container (max-width:260px){.card-work .card-work__period{display:none}}@media (max-width:40em){.card-work{grid-template:"img info""img tags"1fr/minmax(0,40%) minmax(0,1fr);align-items:start;column-gap:14px;display:grid}.card-work .card-work__img{aspect-ratio:4/3;grid-area:img}.card-work .card-work__tag .tag:nth-child(n+3){display:none}.card-work .card-work__header{grid-area:info;margin-top:0}.card-work .card-work__info{gap:4px;font-size:14px}.card-work .card-work__info .sub{row-gap:2px;font-size:12px}.card-work .card-work__info .sub>span:first-child{white-space:normal;flex-basis:100%}.card-work .card-work__role:before{display:none}.card-work .card-work__info .sub>span{gap:5px}.card-work .card-work__cta{display:none}.card-work .card-work__tag{grid-area:tags;margin-top:8px}.card-work .card-work__tag .tag{padding:2px 6px;font-size:11px}.card-work .card-work__tag .tag svg{font-size:12px}}.work__grid>li:first-child .card-work{--i:0}.work__grid>li:nth-child(2) .card-work{--i:1}.work__grid>li:nth-child(3) .card-work{--i:2}.work__grid>li:nth-child(4) .card-work{--i:3}.work__grid>li:nth-child(5) .card-work{--i:4}.work__grid>li:nth-child(6) .card-work{--i:5}.work__grid>li:nth-child(7) .card-work{--i:6}.work__grid>li:nth-child(8) .card-work{--i:7}.work__grid>li:nth-child(9) .card-work{--i:8}.work__grid>li:nth-child(10) .card-work{--i:9}.work__grid>li:nth-child(11) .card-work{--i:10}.work__grid>li:nth-child(12) .card-work{--i:11}.header{margin:calc(var(--tag-block) + var(--tag-sep)) 0 0;position:relative}.header__title:before,.header__title-h1:before{font-family:var(--font-mono);font-size:var(--tag-size);letter-spacing:0;color:var(--color-gray);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;left:calc(var(--tag-step)*-1);margin-bottom:var(--tag-gap);font-style:normal;font-weight:400;line-height:1.5;position:absolute;bottom:100%}.header__title:after,.header__title-h1:after{font-family:var(--font-mono);font-size:var(--tag-size);letter-spacing:0;color:var(--color-gray);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;left:calc(var(--tag-step)*-1);margin-top:var(--tag-gap);font-style:normal;font-weight:400;line-height:1.5;position:absolute;top:100%}.header__title:before,.header__title-h1:before{animation:typeLine .16s steps(4, end) var(--tag-t-open) both}.header__title:after,.header__title-h1:after{animation:typeLine .2s steps(5, end) var(--tag-t-head-close) both}.header__title{color:var(--title);font-family:var(--font-fredoka),cursive;-webkit-user-select:none;user-select:none;margin:0;font-size:clamp(2.6rem,min(1.2rem + 2.6vw,8.5vh),6rem);font-weight:700;line-height:1.05;position:relative}@media (max-width:60.25em){.header__title{font-size:clamp(2.8rem,min(.6rem + 6vw,7vh),6rem)}}.header__title:before{content:"<h1>"}.header__title:after{content:"</h1>"}.header__title-h1{color:var(--title);font-family:var(--font-fredoka),cursive;margin:0;font-size:clamp(3rem,min(1rem + 9.5vw,11vh),10rem);font-weight:700;line-height:1;position:relative}@media (min-width:60.26em){.header__title-h1{font-size:clamp(3.4rem,min(.8rem + 4.6vw,12vh),9.6rem)}}.header__title-h1:before{content:"<h1>"}.header__title-h1:after{content:"</h1>"}.header__word{white-space:nowrap;display:inline-block}.header__word:not(:last-child){margin-right:.26em}.header__line{clip-path:inset(-.2em -.3em -.3em -.1em);display:block}.header__title-h1 .header__word{animation:maskRise .76s var(--ease-out-expo) both;animation-delay:calc(var(--w,0)*26ms)}.header__title:not(.case__title) .header__word{animation:maskRise .76s var(--ease-out-expo) both;animation-delay:calc(.36s + var(--w,0)*26ms)}.header__bounce{font-size:inherit;font-family:var(--font-fredoka),cursive;cursor:default;transition:color var(--motion-2) ease-out,text-shadow var(--motion-2) ease-out;text-shadow:2px 2px var(--title-gap),4px 4px #f1a72b,6px 6px #56d9cd;display:inline-block}@media (max-width:40em){.header__bounce{text-shadow:none}}.header__bounce.is-bouncing{animation:1s both rubberBand}.orange{color:#a88038}.orange-light{color:#e1ca72}.blue-light{color:#7a99ad}.blue{color:#55b5db!important}.white{color:#fff}.green{color:#74b087!important}.purple{color:#a074c4}.tags{font-family:var(--font-mono);font-size:var(--tag-size);letter-spacing:0;color:var(--color-gray);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;font-style:normal;font-weight:400;line-height:1.5;display:block}.tags:before,.tags:after{width:max-content;display:block}.tags__top:before{content:"<html>";animation:typeLine .24s steps(6, end) var(--tag-t-html) both}.tags__top:after{content:"<body>";margin-left:var(--tag-step);animation:typeLine .24s steps(6, end) var(--tag-t-body) both}.tags__bottom{margin-top:var(--tag-sep)}.tags__bottom:before{content:"</body>";margin-left:var(--tag-step);animation:typeLine .28s steps(7, end) var(--tag-t-close) both}.tags__bottom:after{content:"</html>";animation:typeLine .28s steps(7, end) var(--tag-t-html-close) both}@media (max-width:40em){.tags:before,.tags:after{display:none}}.text--secondary{margin:calc(var(--tag-block)*2 + var(--tag-sep)) 0 calc(var(--tag-block) + var(--tag-sep));font-size:clamp(1.3rem,min(1.7rem,2vh),1.7rem);font-weight:500;line-height:1.62;font-family:var(--font-sans);color:var(--text-body);text-wrap:pretty;position:relative}.text--secondary strong{color:var(--text-strong);font-weight:600}.text--secondary{--p-tag-delay:.9s;--word-start:calc(var(--p-tag-delay) + .15s);--word-gap:12ms;--word-in:.24s}.text--secondary:before{font-family:var(--font-mono);font-size:var(--tag-size);letter-spacing:0;color:var(--color-gray);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;left:calc(var(--tag-step)*-1);margin-bottom:var(--tag-gap);content:"<p>";animation:typeLine .12s steps(3, end) var(--p-tag-delay) both;font-style:normal;font-weight:400;line-height:1.5;position:absolute;bottom:100%}.text--secondary:after{font-family:var(--font-mono);font-size:var(--tag-size);letter-spacing:0;color:var(--color-gray);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;left:calc(var(--tag-step)*-1);margin-top:var(--tag-gap);content:"</p>";animation:typeLine .16s steps(4, end) calc(var(--word-start) + var(--words,0)*var(--word-gap) + var(--word-in)) both;font-style:normal;font-weight:400;line-height:1.5;position:absolute;top:100%}.text__copy{display:block}.text__word{animation:wordIn var(--word-in) ease-out calc(var(--word-start) + var(--w,0)*var(--word-gap)) both}@keyframes zoom{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.full-menu{z-index:1;background-color:var(--background-color);opacity:0;transition:opacity var(--motion-3) ease-out,transform var(--motion-4) var(--ease-out-expo),display var(--motion-4) allow-discrete;flex-direction:column;justify-content:center;align-items:center;gap:48px;display:none;position:absolute;inset:0;transform:translate(8%)}@media (max-width:60.25em){.full-menu{z-index:2;position:fixed}}.full-menu.active{opacity:1;display:flex;transform:none}@starting-style{.full-menu.active{opacity:0;transform:translate(8%)}}.full-menu ul{margin:0;padding:0;list-style:none}.full-menu li{cursor:pointer;opacity:0;transition:opacity var(--motion-3) ease-out,transform var(--motion-4) var(--ease-out-expo);transition-delay:calc(90ms + var(--i,0)*55ms);font-size:4em;position:relative;transform:translateY(14px)}.full-menu li:after{content:"";background-color:var(--primary);width:0%;height:5px;transition:width var(--motion-2) var(--ease-in);position:absolute;bottom:0;left:0}.full-menu li:hover:after{width:100%}.full-menu li a{color:var(--text-strong);text-decoration:none}.full-menu li a.active{color:var(--primary-ink)}.full-menu li a:active{opacity:.65}.full-menu.active li{opacity:1;transform:none}@starting-style{.full-menu.active li{opacity:0;transform:translateY(14px)}}.full-menu__tools{opacity:0;transition:opacity var(--motion-3) ease-out .4s;gap:12px;display:flex}.full-menu__mail{border:1px solid var(--hair);min-height:44px;color:var(--text-body);font:500 1.4rem/1 var(--font-mono);cursor:pointer;opacity:0;transition:opacity var(--motion-3) ease-out .4s,scale var(--motion-1) ease-out;background:0 0;border-radius:10px;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.full-menu__mail:active{scale:var(--press);transition-duration:0s}.full-menu.active .full-menu__mail{opacity:1}@starting-style{.full-menu.active .full-menu__mail{opacity:0}}.full-menu.active .full-menu__tools{opacity:1}@starting-style{.full-menu.active .full-menu__tools{opacity:0}}.topbar{z-index:3;height:var(--topbar-h);background:color-mix(in srgb, var(--background-color) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--hair);justify-content:space-between;align-items:center;padding:0 8px 0 20px;display:none;position:absolute;top:0;left:0;right:0}@media (max-width:1099px){.topbar{display:flex}}@media (max-width:60.25em){.topbar{position:fixed}}.topbar__name{color:var(--text-strong);font:600 1.5rem/1.2 var(--font-sans);flex-direction:column;text-decoration:none;display:flex}.topbar__role{color:var(--text-muted);font:500 1.1rem/1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.topbar__talk{border:1.5px solid var(--border-hover);height:34px;color:var(--text-strong);font:500 1.3rem/1 var(--font-sans);transition:border-color var(--motion-2) ease-out,background var(--motion-2) ease-out,scale var(--motion-1) ease-out;border-radius:17px;align-items:center;gap:7px;margin:0 6px 0 auto;padding:0 14px;text-decoration:none;display:inline-flex}.topbar__talk svg{color:var(--primary-ink);font-size:12px}@media (hover:hover){.topbar__talk:hover{border-color:var(--primary-ink);background:color-mix(in srgb, var(--primary) 6%, transparent)}}.topbar__talk:active{scale:var(--press);transition-duration:0s}.topbar__talk:focus-visible{outline:2px solid var(--primary-ink);outline-offset:2px}.hamburguer{appearance:none;cursor:pointer;width:44px;height:44px;transition:scale var(--motion-1) ease-out;background:0 0;border:0;flex-direction:column;justify-content:center;gap:6px;padding:0 9px;display:flex}@media (hover:hover){.hamburguer:hover{animation:.3s ease-in zoom}}.hamburguer:active{scale:var(--press);transition-duration:0s}.lines{--gap:8px;background-color:var(--text-strong);width:100%;height:2px;transition:transform var(--motion-4) var(--ease-out-expo),opacity var(--motion-2) ease-out;border-radius:2px;flex:none}.close-hamburguer .line-top{transform:translateY(var(--gap)) rotate(45deg)}.close-hamburguer .line-mid{opacity:0}.close-hamburguer .line-bottom{transform:translateY(calc(var(--gap) * -1)) rotate(-45deg)}.menu__pending{display:none}.full-menu .menu__pending{background:var(--primary);width:0;height:5px;display:block;position:absolute;bottom:0;left:0}.full-menu .menu__pending.is-pending{width:100%;transition:width .7s var(--ease-out-expo)}.curtain{z-index:60;pointer-events:none;background:var(--curtain);view-transition-name:curtain;contain:strict;position:fixed;inset:0;overflow:hidden;translate:100%}.curtain__canvas{width:100%;height:100%;color:color-mix(in oklch, var(--text-subtle) 62%, var(--curtain));display:block;position:absolute;inset:0}.curtain:before,.curtain:after{content:"";background:color-mix(in oklch, var(--text-subtle) 62%, var(--curtain));width:2px;box-shadow:0 0 18px 4px color-mix(in oklch, var(--text-subtle) 30%, transparent);position:absolute;top:0;bottom:0}.curtain:before{left:0}.curtain:after{right:0}.glyphs{width:100%;color:var(--text-subtle);touch-action:none;-webkit-user-select:none;user-select:none;position:relative}@media (hover:none){.glyphs{touch-action:pan-y}}.glyphs__status{font-family:var(--font-mono);font-size:var(--tag-size);letter-spacing:0;color:var(--text-subtle);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;margin:var(--tag-gap) 0 0;font-style:normal;font-weight:400;line-height:1.5;position:absolute;top:100%;right:0}.glyphs__status-touch{display:none}@media (hover:none){.glyphs__status-hover{display:none}.glyphs__status-touch{display:inline}}.glyphs__reveal{color:var(--primary-ink);font:inherit;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--primary-ink) 45%, transparent);text-decoration-color:color-mix(in srgb, var(--primary-ink) 45%, transparent);text-underline-offset:3px;cursor:pointer;pointer-events:auto;transition:text-decoration-color var(--motion-2) ease-out;background:0 0;border:0;padding:0}@media (hover:hover){.glyphs__reveal:hover{text-decoration-color:currentColor}}.glyphs__reveal:active{opacity:.65}.glyphs__reveal:focus-visible{outline:2px solid var(--primary-ink);outline-offset:2px;border-radius:2px}.glyphs__canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.glyphs__words{margin:0;padding:0;list-style:none}.glyphs__word{cursor:default;transition:background-color var(--motion-1) ease-out;background:0 0;border:0;border-radius:3px;padding:0;position:absolute}.glyphs__word[data-revealed]{cursor:pointer}@media (hover:hover){.glyphs__word[data-revealed]:hover{background:color-mix(in srgb, var(--primary) 16%, transparent)}}.glyphs__word[data-revealed]:active{background:color-mix(in srgb, var(--primary) 24%, transparent);transition-duration:0s}.glyphs__word:after{content:"";position:absolute;inset:-14px -6px}.glyphs__word:focus-visible{outline:1px solid var(--primary-ink);outline-offset:3px}.glyphs__card{z-index:1;background:var(--surface-2);width:min(280px,100% - 16px);box-shadow:0 0 0 1px var(--border),0 18px 40px var(--shadow-color);-webkit-user-select:text;user-select:text;opacity:0;transition:opacity var(--motion-1) var(--ease-in),scale var(--motion-1) var(--ease-in),display var(--motion-1) allow-discrete;border-radius:5px;padding:16px 40px 16px 18px;display:none;position:absolute;scale:.94}.glyphs__card[data-open]{opacity:1;transition-duration:var(--motion-2);transition-timing-function:var(--ease-out-expo);display:block;scale:1}@starting-style{.glyphs__card[data-open]{opacity:0;scale:.94}}.glyphs__card h3{color:var(--text-body);margin:0;font-size:17px}.glyphs__card p{color:var(--text-muted);margin:6px 0 0;font-size:13px;line-height:1.45}.glyphs__meta{font-family:var(--font-mono);color:var(--text-muted)!important;font-size:11px!important}.glyphs__points{color:var(--text-muted);flex-direction:column;gap:6px;margin:12px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.glyphs__points li{padding-left:14px;position:relative}.glyphs__points li:before{content:"›";color:var(--primary-ink);position:absolute;left:0}.glyphs__more{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;transition:color var(--motion-2) ease-out;align-items:center;gap:6px;margin-top:14px;font-size:11px;text-decoration:none;display:inline-flex}.glyphs__more svg{font-size:10px}.glyphs__more:hover{color:var(--primary-ink)}.glyphs__more:active{opacity:.65}.glyphs__close{width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:background var(--motion-2) ease-out,color var(--motion-2) ease-out,scale var(--motion-1) ease-out;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;font-size:16px;line-height:1;display:grid;position:absolute;top:8px;right:8px}.glyphs__close:focus-visible{background:color-mix(in srgb, var(--primary) 14%, transparent);color:var(--primary-ink)}@media (hover:hover){.glyphs__close:hover{background:color-mix(in srgb, var(--primary) 14%, transparent);color:var(--primary-ink)}}.glyphs__close:active{scale:var(--press);transition-duration:0s}.ml-20{margin-left:20px}.rotate-img{transform:scaleX(-1)}.track-sentinel{pointer-events:none;height:1px;margin-top:-1px;display:block}@keyframes float{0%{transform:translate(0,0)}50%{transform:translateY(-9px)}to{transform:translate(0,0)}}@keyframes floatLeft{0%{transform:translate(0,0)}50%{transform:translate(-14px)}to{transform:translate(0,0)}}.text-secondary{color:#e9f1df;font-size:15px;font-weight:500;font-family:var(--font-sans)!important}.text-primary{color:#f1a72b;font-size:15px;font-weight:500;font-family:var(--font-sans)!important}.text-primary:after,.text-primary:before{content:"";background-color:#e9f1df;border-radius:5px;width:15px;height:5px;margin:2px 5px;display:inline-block}.text-title{margin:20px 0;font-size:25px}.text-title span:before{content:"";background-color:#e9f1df;border-radius:5px;width:25px;height:5px;margin:8px 5px;display:inline-block}.container-email{background:var(--panel);border-radius:15px;padding:20px 50px;font-size:16px}.container-email a{color:inherit;text-decoration:none}.container-email a:hover{text-decoration:underline}.ml-40{margin-left:40px}.ml-80{margin-left:80px}.mt-9{margin-top:9px}@media (max-width:40em){.phone-none{display:none}}.list-index{counter-reset:item;padding-left:0;list-style:none}.list-index>li{counter-increment:item;grid-template-columns:max-content minmax(0,1fr);column-gap:10px;display:grid}.list-index>li:before{content:"0" counter(item, decimal-leading-zero) " /";width:auto;height:auto;color:var(--text-subtle);font-family:var(--font-mono);font-size:.78em;line-height:inherit;letter-spacing:.02em;background:0 0;border-radius:0;padding-top:.12em;position:static}.list-index>li::marker{content:none}
