@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/space-grotesk-latin-wght-BhU9QXUp.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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/space-grotesk-latin-ext-wght-D9tNdqV9.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/assets/jetbrains-mono-latin-wght-BpSBdHuY.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/assets/jetbrains-mono-latin-ext-wght-B7zNR45Y.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fraunces-latin-italic-CwwHIVo9.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:Fraunces;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fraunces-latin-ext-italic-iNd273Fe.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Fallback;src:local(Arial),local(Liberation Sans),local(Roboto);size-adjust:108%;ascent-override:91%;descent-override:27%;line-gap-override:0%}@font-face{font-family:JetBrains Mono Fallback;src:local(Courier New),local(Liberation Mono),local(Menlo);size-adjust:100%;ascent-override:102%;descent-override:30%;line-gap-override:0%}@font-face{font-family:Fraunces Fallback;font-style:italic;src:local(Times New Roman Italic),local(Liberation Serif Italic),local(Times Italic);size-adjust:104.6%;ascent-override:93.5%;descent-override:24.4%;line-gap-override:0%}:root{--bg:#050608;--bg-raise:#0a0c11;--surface:#edeef008;--surface-2:#edeef00f;--line:#edeef01a;--line-2:#edeef033;--ink:#f3efe9;--ink-2:#c6bfb4;--ink-3:#9a938a;--ink-2-scene:#d9d3c9;--ion:#8ab4ff;--ion-a:#67e8f9;--ion-b:#a78bfa;--ion-c:#6ee7b7;--flare:#ffc89a;--flare-2:#ff9d5c;--warn:#fbbf24;--bad:#fca5a5;--veil:#050608c7;--veil-soft:#0506088c;--card-bg:linear-gradient(180deg, #0b0d12f9, #060709f9);--surface-solid:#080a0ef9;--rim:inset 0 1px 0 #ffc89614;--font-sans:"Space Grotesk", "Space Grotesk Fallback", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-display:var(--font-sans);--font-serif:"Fraunces", "Fraunces Fallback", "Iowan Old Style", Georgia, serif;--font-mono:"JetBrains Mono", "JetBrains Mono Fallback", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-display:clamp(2.25rem, 6.2vw, 5.5rem);--fs-h2:clamp(2rem, 3.8vw, 3.25rem);--fs-h3:clamp(1.25rem, 1.6vw, 1.5rem);--fs-lead:clamp(1.0625rem, .95rem + .42vw, 1.25rem);--fs-body-scene:clamp(1.0625rem, .98rem + .3vw, 1.125rem);--fs-body:1rem;--fs-small:.9375rem;--fs-micro:.8125rem;--fs-label:.8125rem;--fs-eyebrow:.75rem;--fw-body:400;--fw-body-scene:430;--fw-strong:600;--fw-display:600;--fw-label:500;--lh-body:1.65;--lh-lead:1.6;--track-display:-.04em;--track-tight:-.03em;--track-label:.04em;--track-eyebrow:.14em;--measure:62ch;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--gutter:clamp(20px, 4vw, 56px);--maxw:1200px;--header-h:68px;--section-y:clamp(72px, 10vw, 120px);--target:44px;--r-1:6px;--r-2:12px;--r-3:20px;--r-pill:999px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-io:cubic-bezier(.65, 0, .35, 1);--t-fast:.18s;--t-med:.4s;--t-slow:1.1s;--z-canvas:0;--z-fallback:0;--z-vignette:1;--z-content:2;--z-totop:45;--z-header:50;--z-menu:60;--z-grain:70;--z-intro:80;--z-skip:100}@media (max-width:767px){:root{--header-h:64px}}*,:before,:after{box-sizing:border-box}html{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + var(--s-4))}body{font-family:var(--font-sans);font-size:var(--fs-body);font-weight:var(--fw-body);line-height:var(--lh-body);font-kerning:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;overflow-x:clip}img,svg,canvas{display:block}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3,h4,p,ol,ul,dl,dd,figure{margin:0}ol,ul{padding:0;list-style:none}::selection{background:var(--ion);color:var(--bg)}:focus{outline:none}:focus-visible{outline:2px solid var(--ion);outline-offset:3px;border-radius:var(--r-1)}[tabindex="-1"]:focus{outline:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent]{overscroll-behavior:contain}[data-hm-scroll]{overscroll-behavior-x:contain;overscroll-behavior-y:auto}.lenis.lenis-smooth iframe{pointer-events:none}html.menu-open{overflow:hidden}.skip{left:var(--s-4);top:var(--s-4);z-index:var(--z-skip);min-height:var(--target);padding:var(--s-3) var(--s-4);background:var(--ink);color:var(--bg);border-radius:var(--r-pill);transition:transform var(--t-fast) var(--ease-out);align-items:center;font-weight:600;text-decoration:none;display:inline-flex;position:fixed;transform:translateY(-200%)}.skip:focus-visible{transform:none}.link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);text-underline-offset:.22em;transition:color var(--t-fast), text-decoration-color var(--t-fast);text-decoration-thickness:1px}.link:hover{color:var(--ion);text-decoration-color:currentColor}.ext-ic{vertical-align:-.05em;margin-left:.2em;display:inline-block}.ext-ic svg{width:.8em;height:.8em}.btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:48px;padding:var(--s-3) var(--s-5);border-radius:var(--r-pill);font-weight:var(--fw-strong);font-size:var(--fs-small);letter-spacing:-.005em;text-align:center;transition:background var(--t-fast), color var(--t-fast), border-color var(--t-fast), box-shadow var(--t-med) var(--ease-out), translate .5s var(--ease-out);border:1px solid #0000;line-height:1.2;text-decoration:none;display:inline-flex}.btn svg{width:16px;height:16px;transition:transform var(--t-med) var(--ease-out);flex:none}.btn:hover svg{transform:translate(2px,-2px)}.btn--primary{background:var(--ink);color:var(--bg)}.btn--primary:hover{background:#fff;box-shadow:0 0 0 6px #8ab4ff29,0 12px 40px -8px #8ab4ff73}.btn--ghost{border-color:var(--line-2);color:var(--ink);background:#0506088c}.btn--ghost:hover{border-color:var(--ink-3);background:var(--surface-2)}.btn--sm{min-height:var(--target);padding:0 var(--s-4)}.tlink{align-items:center;gap:var(--s-2);min-height:var(--target);font-size:var(--fs-small);color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);text-underline-offset:.25em;transition:color var(--t-fast), text-decoration-color var(--t-fast);font-weight:500;display:inline-flex}.tlink:hover{color:var(--ion);text-decoration-color:currentColor}.tlink svg{flex:none;width:14px;height:14px}.grad-em,.hero__title em{font-family:var(--font-serif);letter-spacing:-.015em;background:linear-gradient(100deg, var(--ion-a) 0%, var(--ion) 20%, var(--ion-b) 40%, #ece6ff 50%, var(--ion-b) 60%, var(--ion) 80%, var(--ion-a) 100%) 0 0 / 200% 100%;color:#0000;-webkit-background-clip:text;background-clip:text;font-style:italic;font-weight:400;animation:7s linear 2 sheen}@keyframes sheen{to{background-position:-200% 0}}#scene{width:100%;height:100%;z-index:var(--z-canvas);pointer-events:none;position:fixed;inset:0}.fallback-bg{z-index:var(--z-fallback);pointer-events:none;opacity:0;transition:opacity .5s var(--ease-out);background:radial-gradient(60% 50% at 74% 42%,#8a96ff1a,#0000 70%),radial-gradient(40% 30% at 20% 80%,#67e8f90a,#0000 70%);position:fixed;inset:0;overflow:hidden}.app[data-scene=unavailable] .fallback-bg,.app.scene-slow[data-scene=loading] .fallback-bg{opacity:1}.bh{aspect-ratio:1;width:min(42vw,520px);position:absolute;top:42%;left:74%;translate:-50% -50%}.bh>i{border-radius:50%;position:absolute;inset:0}.bh__disk{filter:blur(2px);background:radial-gradient(closest-side,#0000 30%,#a78bfa52 42%,#67e8f938 58%,#8ab4ff14 78%,#0000 100%);transform:rotate(-14deg)scaleY(.32);inset:30% -55%!important}.bh__ring{background:conic-gradient(from 0deg, var(--ion-a), var(--ion-b), #ece6ff, var(--ion-b), var(--ion-a));filter:blur(1px)drop-shadow(0 0 18px #8ab4ff99);opacity:.85;animation:24s linear infinite bhSpin;-webkit-mask:radial-gradient(closest-side,#0000 88%,#000 90% 94%,#0000 100%);mask:radial-gradient(closest-side,#0000 88%,#000 90% 94%,#0000 100%);inset:22%!important}.bh__core{background:radial-gradient(closest-side,#000 86%,#0000 100%);box-shadow:0 0 80px 10px #8a96ff2e;inset:25%!important}@keyframes bhSpin{to{transform:rotate(360deg)}}.vignette{z-index:var(--z-vignette);pointer-events:none;background:radial-gradient(130% 100% at 50% 45%,#0000 62%,#0000006b 100%);position:fixed;inset:0}.grain{z-index:var(--z-grain);pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:1.2s steps(6,end) infinite grain;position:fixed;inset:-50%}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-4%)}60%{transform:translate(-4%,-1%)}80%{transform:translate(3%,3%)}to{transform:translate(0)}}.cursor-glow{width:440px;height:440px;z-index:var(--z-vignette);pointer-events:none;opacity:0;will-change:transform;background:radial-gradient(circle,#8ab4ff1a 0%,#a78bfa0b 38%,#0000 66%);border-radius:50%;margin:-220px 0 0 -220px;transition:opacity .5s;position:fixed;top:0;left:0}.cursor-glow.is-on{opacity:1}.app[data-scene=ready] .grain,.app[data-scene=ready] .fallback-bg,.app[data-stage0][data-scene=loading]:not(.scene-slow) .grain,.app[data-stage0][data-scene=loading]:not(.scene-slow) .fallback-bg{display:none}.app[data-scene=ready] .rig,.app[data-scene=ready] .rig *{animation:none!important}main,.site-footer{z-index:var(--z-content);position:relative}.site-header{z-index:var(--z-header);height:var(--header-h);transition:background var(--t-med), border-color var(--t-med);border-bottom:1px solid #0000;position:fixed;inset:0 0 auto}.site-header.is-scrolled{-webkit-backdrop-filter:blur(14px)saturate(140%);backdrop-filter:blur(14px)saturate(140%);border-color:var(--line);background:#050608d1}.app[data-scene=ready] .site-header.is-scrolled{-webkit-backdrop-filter:none;backdrop-filter:none;background:#050608e6}.progress{transform-origin:0;width:100%;height:2px;transform:scaleX(var(--sp,0));pointer-events:none;background:linear-gradient(90deg, var(--flare-2), var(--flare) 70%, #fff4ea);position:absolute;bottom:-1px;left:0;box-shadow:0 0 12px #ffaa6e73}.header-in{height:100%;max-width:var(--maxw);align-items:center;gap:var(--s-5);padding:0 var(--gutter);box-sizing:content-box;margin-inline:auto;display:flex}.brand{align-items:center;gap:var(--s-3);min-height:var(--target);border-radius:var(--r-pill);padding-right:var(--s-2);margin-right:auto;text-decoration:none;display:inline-flex}.brand__glyph{flex:none;width:28px;height:28px}.brand__disk{fill:var(--flare)}@media (forced-colors:active){.brand__disk{fill:canvastext}}.brand__name{white-space:nowrap;font-family:var(--font-display);font-weight:var(--fw-display);letter-spacing:-.02em;font-size:1.0625rem;line-height:1}.nav{gap:var(--s-1);display:flex}.nav a{min-height:var(--target);padding:0 var(--s-3);font-size:var(--fs-small);color:var(--ink-2);border-radius:var(--r-1);transition:color var(--t-fast);align-items:center;font-weight:500;text-decoration:none;display:inline-flex;position:relative}.nav a:after{content:"";left:var(--s-3);right:var(--s-3);height:2px;transition:transform var(--t-med) var(--ease-out);background:currentColor;border-radius:2px;position:absolute;bottom:8px;transform:scaleX(0)}.nav a:hover,.nav a[aria-current=true]{color:var(--ink)}.nav a[aria-current=true]:after{transform:scaleX(1)}.header-tools{align-items:center;gap:var(--s-3);display:flex}.lang{border:1px solid var(--line-2);border-radius:var(--r-pill);background:#05060866;padding:0;display:inline-flex}.lang button{min-width:var(--target);min-height:var(--target);padding:0 var(--s-3);border-radius:var(--r-pill);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;color:var(--ink-2);transition:background var(--t-fast), color var(--t-fast)}.lang button:hover{color:var(--ink)}.lang button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.menu-btn{width:var(--target);height:var(--target);border:1px solid var(--line-2);border-radius:var(--r-pill);background:#05060866;justify-content:center;align-items:center;display:none}.menu-btn svg{width:18px;height:18px}.wrap{width:100%;max-width:var(--maxw);margin-inline:auto}.section{isolation:isolate;padding:var(--section-y) var(--gutter);position:relative;overflow-x:clip}.section+.section{border-top:1px solid var(--line)}.section-head{gap:var(--s-3);margin-bottom:var(--s-7);display:grid}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--flare)}.section-title{font-family:var(--font-display);font-weight:var(--fw-display);font-size:var(--fs-h2);letter-spacing:var(--track-tight);text-wrap:balance;line-height:1.05}.lead{font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--ink-2);max-width:56ch}.app:not([data-scene=ready]) .section--scrim:before{content:"";z-index:-1;pointer-events:none;-webkit-mask:linear-gradient(180deg, transparent 0, #000 var(--s-9), #000 calc(100% - var(--s-9)), transparent 100%);-webkit-mask:linear-gradient(180deg, transparent 0, #000 var(--s-9), #000 calc(100% - var(--s-9)), transparent 100%);mask:linear-gradient(180deg, transparent 0, #000 var(--s-9), #000 calc(100% - var(--s-9)), transparent 100%);background:linear-gradient(90deg,#050608db 0%,#050608c2 50%,#05060894 100%);position:absolute;inset:0}.app:not([data-scene=ready]) .section--projects:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#050608cc 0%,#05060899 40%,#05060800 62%);position:absolute;inset:0}.app[data-scene=ready] :is(.hero__lead,.section-head .lead,.bio){color:var(--ink-2-scene);font-weight:var(--fw-body-scene)}.veil{isolation:isolate;position:relative}.app:not([data-scene=ready]) .veil:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(closest-side, var(--veil), var(--veil-soft) 65%, transparent);border-radius:40px;position:absolute;inset:-24px -32px}.site-footer{padding:var(--s-7) var(--gutter) calc(var(--s-7) + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface-solid)}.footer-in{justify-content:space-between;align-items:center;gap:var(--s-4) var(--s-6);flex-wrap:wrap;display:flex}.footer-brand{gap:var(--s-1);display:grid}.footer-brand b{font-family:var(--font-display);font-weight:var(--fw-display);letter-spacing:-.02em}.footer-brand span{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-label);color:var(--ink-2)}.site-footer nav ul{gap:0 var(--s-1);flex-wrap:wrap;display:flex}.site-footer nav a{min-height:var(--target);padding:0 var(--s-3);border-radius:var(--r-1);font-size:var(--fs-small);color:var(--ink-2);text-underline-offset:.25em;transition:color var(--t-fast), text-decoration-color var(--t-fast);align-items:center;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;display:inline-flex}.site-footer nav a:hover{color:var(--ink);text-decoration-color:currentColor}.totop{right:max(var(--s-4), env(safe-area-inset-right));bottom:calc(var(--s-4) + env(safe-area-inset-bottom));z-index:var(--z-totop);align-items:center;gap:var(--s-2);min-height:var(--target);min-width:var(--target);padding:0 var(--s-4);border-radius:var(--r-pill);border:1px solid var(--line-2);color:var(--ink);font-size:var(--fs-small);opacity:0;visibility:hidden;transition:opacity var(--t-med), transform var(--t-med) var(--ease-out), visibility 0s var(--t-med), background var(--t-fast);background:#0a0c11eb;text-decoration:none;display:inline-flex;position:fixed;transform:translateY(8px)}.totop.is-on{opacity:1;visibility:visible;transition-delay:0s;transform:none}.totop:hover{background:var(--bg-raise);border-color:var(--ink-3)}.totop svg{width:16px;height:16px}.menu{z-index:var(--z-menu);gap:var(--s-5);padding:0 var(--gutter) calc(var(--s-6) + env(safe-area-inset-bottom));background:var(--bg);overscroll-behavior:contain;flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.menu[hidden]{display:none}.menu-top{height:var(--header-h);flex:none;justify-content:space-between;align-items:center;display:flex}.menu-top b{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.0625rem;font-weight:650}.menu ul{display:grid}.menu ul a{min-height:64px;font-family:var(--font-display);letter-spacing:-.02em;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;font-size:1.75rem;font-weight:600;text-decoration:none;display:flex}.menu ul a svg{width:20px;height:20px;color:var(--ink-3)}.menu>.btn{width:100%}.menu-foot{justify-content:space-between;align-items:center;gap:var(--s-3);color:var(--ink-2);font-size:var(--fs-small);overflow-wrap:anywhere;flex-wrap:wrap;margin-top:auto;display:flex}@media (max-width:1023px){.section--projects:before{display:none}}@media (max-width:879px){.nav{display:none}.menu-btn{display:inline-flex}}@media (max-width:767px){.bh{width:78vw;top:30%;left:50%}.fallback-bg{background:radial-gradient(80% 50% at 50% 30%,#8a96ff1a,#0000 70%)}.app:not([data-scene=ready]) .section--scrim:before{background:#050608cc}}@media (max-width:599px){.header-cta{display:none}.header-in{gap:var(--s-3)}}@media (max-width:420px){.totop span{display:none}.totop{padding:0}.totop svg{margin:auto}}@media (forced-colors:active){.grad-em,.hero__title em{color:canvastext;background:0 0}.fallback-bg,.cursor-glow,.grain,.vignette,.section--scrim:before,.section--projects:before,.veil:before{display:none}}.hero{isolation:isolate;min-height:100vh;min-height:100svh;padding:calc(var(--header-h) + var(--s-8)) var(--gutter) calc(var(--s-9) + var(--s-2));align-items:end;display:grid;position:relative;overflow:hidden}.app:not([data-scene=ready]) .hero:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#050608b8 0%,#0506086b 42%,#05060800 66%);position:absolute;inset:0}.app:not([data-scene=ready]) .hero:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#05060800,#05060899);height:45%;position:absolute;inset:auto 0 0}.hero__in{width:100%;max-width:var(--maxw);gap:var(--s-5);justify-items:start;margin-inline:auto;display:grid;position:relative}.hero__title{font-family:var(--font-display);font-weight:var(--fw-display);font-size:var(--fs-display);letter-spacing:var(--track-display);text-shadow:0 0 50px #050608b3;max-width:100%;line-height:.98}.hero__title .line{clip-path:inset(-64px -64px 0);margin-bottom:-.08em;padding-bottom:.08em;display:block}.hero__title .line>span{padding-right:.12em;display:block}.hero__lead{font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--ink-2);text-shadow:0 0 24px #050608e6;max-width:52ch}.hero__lead strong{color:var(--ink);font-weight:600}.hero__actions{gap:var(--s-3);margin-top:var(--s-2);flex-wrap:wrap;display:flex}.scrollcue{left:50%;bottom:var(--s-5);justify-items:center;gap:var(--s-2);font-family:var(--font-mono);font-size:var(--fs-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--ink-2);pointer-events:none;display:grid;position:absolute;translate:-50%}.scrollcue i{background:var(--line-2);width:1px;height:28px;display:block;position:relative;overflow:hidden}.scrollcue i:after{content:"";background:var(--ink-2);width:1px;height:40%;animation:2.4s ease-in-out infinite cue;position:absolute;top:0;left:0;transform:translateY(-100%)}@keyframes cue{to{transform:translateY(275%)}}@media (max-width:767px){.app:not([data-scene=ready]) .hero:before{background:linear-gradient(#05060800 28%,#0506088c 55%,#050608db 100%)}}@media (max-width:420px){.hero__actions .btn{flex:auto}}@media (max-height:640px) and (min-width:768px){.scrollcue{display:none}}.proj-bar{justify-content:space-between;align-items:center;gap:var(--s-3) var(--s-5);margin-bottom:var(--s-5);flex-wrap:wrap;display:flex}.proj-bar[hidden]{display:none}.chips{gap:var(--s-2);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--s-2);min-height:var(--target);padding:0 var(--s-4);border-radius:var(--r-pill);border:1px solid var(--line-2);font-size:var(--fs-small);color:var(--ink-2);transition:background var(--t-fast), color var(--t-fast), border-color var(--t-fast);background:#050608b3;font-weight:550;display:inline-flex}.chip:hover{color:var(--ink);border-color:var(--ink-3)}.chip .n{font-family:var(--font-mono);font-variant-numeric:tabular-nums;opacity:.8;font-size:.75rem}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.chip:focus-visible{border-radius:var(--r-pill)}.proj-count{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-label);color:var(--ink-2);font-variant-numeric:tabular-nums}.proj-empty{padding:var(--s-7) var(--s-5);border:1px dashed var(--line-2);border-radius:var(--r-3);color:var(--ink-2);text-align:center;background:#050608d9}.proj-empty[hidden]{display:none}.more-row{margin-top:var(--s-6);justify-content:center;display:flex}.more-row[hidden]{display:none}.tile{--a:var(--ion-a);--b:var(--ion-b);border-radius:var(--r-2);width:44px;height:44px;box-shadow:inset 0 0 0 1px var(--line-2);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--a) 42%, transparent);font-family:var(--font-display);letter-spacing:-.02em;background:#0b1120;flex:none;place-items:center;font-size:1.0625rem;font-weight:700;line-height:1;display:grid}.tile b{background:linear-gradient(110deg, var(--a) 0%, var(--b) 35%, #fff 50%, var(--b) 65%, var(--a) 100%) 100% 0 / 250% 100%;color:#0000;-webkit-background-clip:text;background-clip:text}.pcard:hover .tile b,.pcard:focus-within .tile b{animation:tileShine 1.6s var(--ease-io) infinite}@keyframes tileShine{0%{background-position:100% 0}to{background-position:0 0}}.tile svg{width:24px;height:24px}.tile--glyph{color:var(--ink-3);box-shadow:inset 0 0 0 1px var(--line-2)}.tile--glyph svg{width:28px;height:28px}.tile--xl{border-radius:36px;width:132px;height:132px;font-size:3.25rem}.tile--xl svg{width:72px;height:72px}.status{align-items:center;gap:var(--s-2);min-height:28px;padding:0 var(--s-3);border-radius:var(--r-pill);border:1px solid var(--line-2);font-family:var(--font-mono);letter-spacing:var(--track-label);color:var(--ink-2);white-space:nowrap;font-size:.75rem;display:inline-flex}.status i{background:var(--ion-c);border-radius:50%;width:7px;height:7px}.status--beta i{background:var(--warn)}.status--soon{border-style:dashed}.status--soon i{box-shadow:inset 0 0 0 1.5px var(--ink-3);background:0 0}.ex-label{min-height:28px;padding:0 var(--s-2);border-radius:var(--r-1);color:#fcd34d;white-space:nowrap;border:1px dashed #fbbf2480;align-items:center;font-size:.75rem;display:inline-flex}.stamp{padding:0 var(--s-2);border:1px solid var(--ink-3);border-radius:var(--r-1);color:var(--ink-2);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.6875rem;font-weight:600;line-height:1.7;display:inline-block;transform:rotate(-3deg)}.redact{margin:var(--s-1) 0;gap:6px;display:grid}.redact i{height:9px;width:var(--w);background:#1c2028;border-radius:2px;display:block}.section--projects .wrap{container:projgrid/inline-size}.pgrid{gap:var(--s-5);margin-top:var(--s-5);grid-template-columns:minmax(0,1fr);display:grid}.pgrid--flush{margin-top:0}.pgrid[hidden]{display:none}.pgrid>li{min-width:0;display:flex}@container projgrid (width>=600px) and (width<=899.98px){.pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.pgrid[data-last2=solo]>li:last-child{grid-column:1/-1}.pgrid[data-last2=solo]>li:last-child .pcard{column-gap:var(--s-6);row-gap:var(--s-2);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"tile name flags""tile tagline foot""tile desc foot""tile tags foot";align-content:start;display:grid}.pgrid[data-last2=solo]>li:last-child .pcard-top{display:contents}.pgrid[data-last2=solo]>li:last-child .tile{grid-area:tile}.pgrid[data-last2=solo]>li:last-child .pcard-flags{grid-area:flags;align-self:start}.pgrid[data-last2=solo]>li:last-child .pcard-name{grid-area:name}.pgrid[data-last2=solo]>li:last-child .pcard-tagline{grid-area:tagline}.pgrid[data-last2=solo]>li:last-child .pcard-desc,.pgrid[data-last2=solo]>li:last-child .redact{grid-area:desc;max-width:60ch}.pgrid[data-last2=solo]>li:last-child .pcard-tags{grid-area:tags}.pgrid[data-last2=solo]>li:last-child .pcard-foot{border:0;grid-area:foot;justify-content:flex-end;align-self:end;margin:0;padding:0}}@container projgrid (width>=900px){.pgrid{grid-template-columns:repeat(6,minmax(0,1fr))}.pgrid>li{grid-column:span 2}.pgrid[data-last3=pair]>li:nth-last-child(-n+2){grid-column:span 3}.pgrid[data-last3=solo]>li:last-child{grid-column:1/-1}.pgrid[data-last3=solo]>li:last-child .pcard{column-gap:var(--s-6);row-gap:var(--s-2);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"tile name flags""tile tagline foot""tile desc foot""tile tags foot";align-content:start;display:grid}.pgrid[data-last3=solo]>li:last-child .pcard-top{display:contents}.pgrid[data-last3=solo]>li:last-child .tile{grid-area:tile}.pgrid[data-last3=solo]>li:last-child .pcard-flags{grid-area:flags;align-self:start}.pgrid[data-last3=solo]>li:last-child .pcard-name{grid-area:name}.pgrid[data-last3=solo]>li:last-child .pcard-tagline{grid-area:tagline}.pgrid[data-last3=solo]>li:last-child .pcard-desc,.pgrid[data-last3=solo]>li:last-child .redact{grid-area:desc;max-width:60ch}.pgrid[data-last3=solo]>li:last-child .pcard-tags{grid-area:tags}.pgrid[data-last3=solo]>li:last-child .pcard-foot{border:0;grid-area:foot;justify-content:flex-end;align-self:end;margin:0;padding:0}}.pcard{--a:var(--ion-a);--b:var(--ion-b);isolation:isolate;gap:var(--s-3);min-width:0;padding:var(--s-5);border:1px solid var(--line);border-radius:var(--r-3);background:var(--card-bg);box-shadow:var(--rim);transform:perspective(900px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg));transition:transform .5s var(--ease-out), border-color var(--t-fast);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.pcard:hover{border-color:var(--line-2)}.pcard:before{content:"";left:var(--s-5);right:var(--s-5);background:linear-gradient(90deg, var(--a), var(--b));opacity:.55;border-radius:0 0 2px 2px;height:2px;position:absolute;top:0}.spot{z-index:-1;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%), #8ab4ff1a, transparent 60%);background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%), color-mix(in srgb, var(--a) 14%, transparent), transparent 60%);transition:opacity .35s;position:absolute;inset:0}.spot:after{content:"";border-radius:inherit;background:radial-gradient(240px circle at var(--mx,50%) var(--my,0%), var(--a), transparent 70%);-webkit-mask-composite:xor;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.pcard:hover .spot,.pcard:focus-within .spot{opacity:1}.scan{z-index:-1;pointer-events:none;opacity:0;background:linear-gradient(#0000,#8ab4ff12 70%,#8ab4ff4d 100%);height:40%;position:absolute;top:0;left:0;right:0;transform:translateY(-100%)}.pcard--soon:hover .scan,.pcard--soon:focus-within .scan{opacity:1;animation:scan 2.4s var(--ease-io) infinite}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(260%)}}.pcard--soon{border-style:dashed;border-color:var(--line-2);background:radial-gradient(#edeef00d 1px,#0000 1.2px) 0 0/16px 16px,#050608f0}.pcard--soon:before{display:none}.pcard-top{justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-2);display:flex}.pcard-flags{align-items:center;gap:var(--s-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.pcard-name{align-items:center;gap:var(--s-3);font-family:var(--font-display);font-size:var(--fs-h3);letter-spacing:-.02em;flex-wrap:wrap;font-weight:620;line-height:1.2;display:flex}.pcard-tagline{color:var(--ink);font-weight:500}.pcard-desc{color:var(--ink-2);font-size:var(--fs-small)}.pcard-tags{gap:var(--s-1) 0;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-3);flex-wrap:wrap;display:flex}.pcard-tags li{white-space:nowrap}.pcard-tags li:not(:last-child):after{content:"·";margin:0 var(--s-2)}.pcard-foot{padding-top:var(--s-3);border-top:1px solid var(--line);gap:0 var(--s-5);flex-wrap:wrap;align-items:center;margin-top:auto;display:flex}@media (max-width:599px){.proj-bar{flex-direction:column;align-items:flex-start}}@media (max-width:767px){.tile--xl{border-radius:28px;width:104px;height:104px;font-size:2.5rem}}.hy{--ps:.9;gap:var(--s-8);padding:var(--s-7);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--rim);transition:background .8s var(--ease-out);background:linear-gradient(#0a0c11eb,#050608eb);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;display:grid}.app[data-scene=ready] .hy--mock{background:radial-gradient(var(--vw,300px) var(--vh,420px) at var(--vx,75%) var(--vy,50%), #080a0e00 70%, #080a0eeb 100%)}.hy-info{gap:var(--s-5);align-content:center;min-width:0;display:grid}.hy-head{align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.hy-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.375rem;font-weight:620}.hy-tagline{font-family:var(--font-display);letter-spacing:-.04em;text-wrap:balance;background:linear-gradient(100deg, var(--a,var(--ion-a)) 0%, var(--b,var(--ion-b)) 55%, var(--c,var(--b,var(--ion-b))) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;padding-bottom:.06em;font-size:clamp(2rem,3.6vw,3rem);font-weight:620;line-height:1.05}.hy-desc{color:var(--ink-2);max-width:52ch}.hy-actions{gap:var(--s-3);flex-wrap:wrap;display:flex}.hy-meta{font-family:var(--font-mono);letter-spacing:var(--track-label);color:var(--ink-2);font-size:.75rem}.tabs{gap:var(--s-1);padding:var(--s-1);border:1px solid var(--line);border-radius:var(--r-pill);background:#05060880;flex-wrap:wrap;width:-moz-fit-content;width:fit-content;max-width:100%;display:flex}.tab{align-items:center;gap:var(--s-2);min-height:var(--target);padding:0 var(--s-4);border-radius:var(--r-pill);font-size:var(--fs-small);color:var(--ink-2);transition:background var(--t-fast), color var(--t-fast), border-color var(--t-fast);border:1px solid #0000;font-weight:550;display:inline-flex}.tab svg{flex:none;width:16px;height:16px}.tab:hover{color:var(--ink);background:var(--surface)}.tab[aria-selected=true]{color:var(--ink);background:var(--surface-2);border-color:var(--line-2)}.tab:focus-visible{outline-offset:2px;border-radius:var(--r-pill)}.tabpanel{border-radius:var(--r-1);max-width:52ch;min-height:6.5em}.tabpanel[hidden]{display:none}.tabpanel h4{margin:0 0 var(--s-1);font-family:var(--font-display);letter-spacing:-.01em;font-size:1.125rem;font-weight:600}.tabpanel p{color:var(--ink-2)}.hy-visual{height:calc(620px * var(--ps) + var(--s-6));place-items:center;display:grid;position:relative}.hy-visual--poster{height:auto;min-height:320px}.hy-visual:before{content:"";aspect-ratio:1;filter:blur(70px);opacity:.28;pointer-events:none;width:min(440px,90%);transition:opacity .8s var(--ease-out);background:radial-gradient(circle at 30% 35%,#67e8f98c,#0000 55%),radial-gradient(circle at 72% 55%,#a78bfa99,#0000 55%);border-radius:50%;position:absolute}.hy-visual--poster:before{background:radial-gradient(circle at 35% 40%, var(--a,var(--ion-a)), transparent 55%), radial-gradient(circle at 70% 60%, var(--b,var(--ion-b)), transparent 55%);opacity:.22}.app[data-scene=ready] .hy--mock .hy-visual:before{opacity:0}.hy-stage{width:calc(300px * var(--ps));height:calc(620px * var(--ps));perspective:1600px;position:relative}.phone-anchor{pointer-events:none;position:absolute;inset:0}.rig{width:300px;height:620px;transform-style:preserve-3d;transform-origin:50%;transform:scale(var(--ps)) rotateY(calc(-12deg + var(--ry,0deg))) rotateX(calc(5deg + var(--rx,0deg) + var(--sx,0deg)));transition:transform .7s var(--ease-out), opacity .6s var(--ease-out), visibility 0s;margin:-310px 0 0 -150px;position:absolute;top:50%;left:50%}.app[data-scene=ready] .rig{opacity:0;visibility:hidden;transition:transform .7s var(--ease-out), opacity .6s var(--ease-out), visibility 0s .6s}.hy-chips{pointer-events:none;position:absolute;inset:0}.rig-chip{align-items:center;gap:var(--s-2);padding:var(--s-2) 13px;border-radius:var(--r-pill);white-space:nowrap;color:var(--ink-2);border:1px solid var(--line-2);transform:translate3d(calc(var(--px,0) * var(--z,1) * 28px), calc(var(--py,0) * var(--z,1) * 20px), 0);transition:transform .6s var(--ease-out), color .4s, border-color .4s, box-shadow .4s;background:#0a0c11eb;font-size:12.5px;animation:6s ease-in-out infinite bob;display:inline-flex;position:absolute;box-shadow:0 18px 40px -18px #000000e6}.rig-chip i{background:var(--ink-3);border-radius:50%;width:7px;height:7px;transition:background .4s}.rig-chip--a{top:19%;left:-43%}.rig-chip--b{animation-delay:-2s;top:48%;right:-37%}.rig-chip--c{animation-delay:-4s;bottom:19%;left:-33%}@keyframes bob{50%{translate:0 -7px}}[data-step="0"] .rig-chip--a,[data-step="1"] .rig-chip--b,[data-step="2"] .rig-chip--c{color:var(--ink);border-color:#8ab4ff99;box-shadow:0 0 28px -4px #8ab4ff59,0 18px 40px -18px #000000e6}[data-step="0"] .rig-chip--a i,[data-step="1"] .rig-chip--b i,[data-step="2"] .rig-chip--c i{background:var(--ion-a)}@media (max-width:1023px){.hy{gap:var(--s-5);padding:var(--s-6);grid-template-columns:minmax(0,1fr)}.hy-info{display:contents}.hy-visual{order:1}.hy-actions{order:2}.hy-meta{order:3}}@media (max-width:767px){.hy{padding:var(--s-5)}}@media (max-width:599px){.hy{--ps:.78}.rig-chip{display:none}.tabs{border-radius:var(--r-2);width:100%}.tab{padding:0 var(--s-3);border-radius:var(--r-1);flex:auto;justify-content:center}.tab:focus-visible{border-radius:var(--r-1)}}@media (max-width:420px){.hy-actions .btn{flex:100%}}.phone{background:linear-gradient(150deg,#3a404d 0%,#12151b 30%,#0b0d11 60%,#2a2f39 100%);border-radius:50px;width:300px;height:620px;padding:9px;position:relative;box-shadow:inset 0 0 0 1px #ffffff29,inset 0 0 0 3px #07080b,0 50px 90px -30px #000000e6,0 0 0 1px #000000b3}.phone:before{content:"";background:#1d2129;border-radius:2px;width:3px;height:72px;position:absolute;top:150px;right:-2px}.phone__screen{color:#e6edf7;width:100%;height:100%;font-family:var(--font-sans);background:#0b1120;border-radius:42px;font-size:13px;line-height:1.35;position:relative;overflow:hidden}.phone__island{z-index:5;background:#000;border-radius:20px;width:92px;height:27px;margin-left:-46px;position:absolute;top:10px;left:50%}.phone__glare{border-radius:inherit;pointer-events:none;z-index:6;background:linear-gradient(115deg,#ffffff1f 0%,#fff0 30% 70%,#ffffff0a 100%);position:absolute;inset:0}.ph-status{justify-content:space-between;align-items:center;height:46px;padding:0 26px 0 30px;font-size:13px;font-weight:600;display:flex}.ph-status svg{width:44px;height:12px}.ph-screens{position:absolute;inset:46px 0 66px}.ph-screen{opacity:0;visibility:hidden;flex-direction:column;gap:12px;padding:6px 18px 0;display:flex;position:absolute;inset:0}[data-step="0"] .ph-screen[data-screen="0"],[data-step="1"] .ph-screen[data-screen="1"],[data-step="2"] .ph-screen[data-screen="2"]{opacity:1;visibility:visible}.bud .fill{transform-origin:0;transition:transform 1s var(--ease-out) .2s;transform:scaleX(0)}[data-step="1"] .ph-screen[data-screen="1"] .fill{transform:none}.goal-arc{stroke-dashoffset:65px;transition:stroke-dashoffset 1.2s var(--ease-out) .35s}[data-step="1"] .goal-arc{stroke-dashoffset:0}.spark-line{stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset 1.4s var(--ease-out) .15s}.spark-fill{opacity:0;transition:opacity 1s var(--ease-out) .7s}[data-step="2"] .spark-line{stroke-dashoffset:0}[data-step="2"] .spark-fill{opacity:1}.quote.is-typing:after{content:"";vertical-align:-2px;background:#67e8f9;width:1.5px;height:1em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.ph-muted{color:#8a97ad}.ph-listening{text-align:center;margin-top:-4px;font-size:11.5px}.ph-amt{font-size:11px}.ph-h{letter-spacing:-.02em;font-size:19px;font-weight:650}.ph-h--sm{font-size:16px}.ph-goalv{font-size:13px;display:block}.ph-b13{font-size:13px}.ph-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.ph-row--tight{margin-bottom:2px}.ph-card{background:#111a2e;border:1px solid #8a97ad24;border-radius:18px;padding:12px 14px}.ph-chip{color:#c9d3e3;background:#8a97ad1f;border-radius:999px;align-items:center;gap:6px;padding:4px 9px;font-size:10.5px;display:inline-flex}.mic{color:#e6edf7;background:radial-gradient(circle,#16223b,#0f172a);border-radius:50%;place-items:center;width:100px;height:100px;margin:10px auto 0;display:grid;position:relative}.mic:before{content:"";-webkit-mask-composite:xor;background:conic-gradient(from 30deg,#67e8f9,#a78bfa,#6ee7b7,#67e8f9);border-radius:50%;padding:2px;animation:6s linear infinite spin;position:absolute;inset:-2px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.mic:after{content:"";animation:ripple 2.2s var(--ease-out) infinite;border:1px solid #67e8f959;border-radius:50%;position:absolute;inset:-10px}@keyframes ripple{0%{opacity:1;transform:scale(.9)}to{opacity:0;transform:scale(1.35)}}@keyframes spin{to{transform:rotate(360deg)}}.mic svg{width:30px;height:30px}.wave{justify-content:center;align-items:center;gap:3px;height:34px;display:flex}.wave i{width:3px;height:100%;transform:scaleY(var(--h,.5));animation:wave 1.1s var(--ease-io) infinite alternate;animation-delay:calc(var(--k,0) * -90ms);background:linear-gradient(#67e8f9,#a78bfa);border-radius:2px;display:block}@keyframes wave{0%{transform:scaleY(.15)}to{transform:scaleY(var(--h,.8))}}.quote{background:#111a2e;border-radius:16px 16px 16px 4px;align-self:center;padding:10px 14px;font-size:14px;font-style:italic}.ai-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:#67e8f9;margin-bottom:6px;font-size:10px}.kv{border-top:1px solid #8a97ad1f;justify-content:space-between;padding:5px 0;font-size:12.5px;display:flex}.kv:first-of-type{border-top:0}.ph-cta{color:#0b1120;background:linear-gradient(90deg,#67e8f9,#a78bfa);border-radius:14px;place-items:center;height:42px;font-size:13.5px;font-weight:650;display:grid}.bud{gap:6px;display:grid}.bud .track{background:#8a97ad29;border-radius:6px;height:6px;overflow:hidden}.bud .fill{height:100%;width:var(--w);border-radius:6px}.st{border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:10.5px;font-weight:600;display:inline-flex}.st--ok{color:#6ee7b7;background:#6ee7b71a}.st--warn{color:#fbbf24;background:#fbbf241a}.st--bad{color:#fca5a5;background:#f871711f}.goal{align-items:center;gap:12px;display:flex}.goal svg{flex:none;width:56px;height:56px}.ask{color:#c9d3e3;background:#a78bfa12;border:1px solid #a78bfa59;border-radius:14px;align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.ask__star{color:#a78bfa}.avatar{color:#0b1120;background:linear-gradient(135deg,#67e8f9,#a78bfa);border-radius:50%;place-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:grid}.offline{color:#6ee7b7;background:#6ee7b71a;border:1px solid #6ee7b740;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:5px 10px;font-size:10.5px;display:inline-flex}.offline i{background:#6ee7b7;border-radius:50%;width:6px;height:6px}.bal{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:2px 0 4px;font-size:29px;font-weight:700}.spark{width:100%;height:46px}.qa{text-align:center;color:#c9d3e3;grid-template-columns:repeat(3,1fr);gap:8px;font-size:10.5px;display:grid}.qa span{background:#111a2e;border:1px solid #8a97ad24;border-radius:14px;place-items:center;width:42px;height:42px;margin:0 auto 5px;display:grid}.qa svg{width:18px;height:18px}.qa small{font-size:10.5px;display:block}.mv{grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:7px 0;display:grid}.mv .ic{background:#111a2e;border-radius:11px;place-items:center;width:34px;height:34px;display:grid}.mv .ic svg{width:16px;height:16px}.mv b{font-size:12.5px;font-weight:600;display:block}.mv small{color:#8a97ad;font-size:10.5px}.amt{font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:650}.amt--in{color:#6ee7b7}.ph-tabs{background:#0b1120eb;border-top:1px solid #8a97ad1a;justify-content:space-around;align-items:flex-start;height:66px;padding-top:12px;display:flex;position:absolute;bottom:0;left:0;right:0}.ph-tabs i{color:#5d6a82;border-radius:10px;place-items:center;width:38px;height:30px;transition:color .3s,background .3s;display:grid}.ph-tabs svg{width:18px;height:18px}[data-step="2"] .ph-tabs i:first-child,[data-step="1"] .ph-tabs i:nth-child(2),[data-step="0"] .ph-tabs i:nth-child(3){color:#67e8f9;background:#67e8f91a}.ph-tabs:after{content:"";background:#e6edf799;border-radius:4px;width:110px;height:4px;margin-left:-55px;position:absolute;bottom:8px;left:50%}.statement{font-family:var(--font-display);letter-spacing:-.025em;max-width:32ch;margin:0 0 var(--s-7);text-wrap:pretty;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:500;line-height:1.2}.statement .w{color:var(--ink-3);transition:color .5s var(--ease-out)}.statement .w.is-lit,.statement.is-static .w{color:var(--ink)}.statement .w.acc.is-lit,.statement.is-static .w.acc{color:var(--ion)}.about{gap:var(--s-8);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;display:grid}.bio{gap:var(--s-4);max-width:var(--measure);font-size:var(--fs-body-scene);line-height:var(--lh-body);color:var(--ink-2);display:grid}.bio strong{color:var(--ink);font-weight:var(--fw-strong)}.idcard{aspect-ratio:1.6;width:min(100%,380px);margin-bottom:var(--s-6);border-radius:var(--r-3);padding:var(--s-5);border:1px solid var(--line-2);transform:perspective(900px) rotateX(var(--ry,0deg)) rotateY(var(--rx,0deg));transition:transform .5s var(--ease-out);box-shadow:var(--rim), 0 30px 60px -30px #000c;background:linear-gradient(160deg,#10131a,#07080b);flex-direction:column;justify-content:space-between;display:flex;position:relative;overflow:hidden}.idcard:before{content:"";pointer-events:none;opacity:.22;mix-blend-mode:screen;background:conic-gradient(from calc(var(--hx,0) * 1deg) at var(--gx,30%) var(--gy,20%), #67e8f9, #a78bfa, #6ee7b7, #67e8f9);position:absolute;inset:0}.idcard:after{content:"";pointer-events:none;background:radial-gradient(circle at var(--gx,30%) var(--gy,20%), #ffffff1f, transparent 45%);position:absolute;inset:0}.idcard>*{position:relative}.idcard .row{color:var(--ink-2);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.idcard .nm{font-family:var(--font-display);font-size:1.6rem;font-weight:var(--fw-display);letter-spacing:-.03em;line-height:1.05}.idcard .rl{color:var(--ink-2);font-size:var(--fs-small);margin-top:var(--s-1)}.idcard .code{width:120px;height:26px;color:var(--ink-2)}.facts{border-top:1px solid var(--line);border-radius:0 0 var(--r-2) var(--r-2);display:grid}.facts div{gap:var(--s-4);min-height:52px;padding:var(--s-2) 0;border-bottom:1px solid var(--line);grid-template-columns:7.5rem 1fr;align-items:center;display:grid}.facts dt{font-family:var(--font-mono);font-size:var(--fs-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--ink-2)}.facts dd{color:var(--ink);font-size:1.0625rem;font-weight:500}.facts .link{min-height:var(--target);align-items:center;display:inline-flex}.stack-label{margin:var(--s-6) 0 var(--s-3);font-family:var(--font-mono);font-size:var(--fs-eyebrow);font-weight:var(--fw-label);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--ink-2)}.stack{gap:var(--s-2) 0;font-family:var(--font-mono);font-size:var(--fs-label);font-weight:var(--fw-label);letter-spacing:var(--track-label);color:var(--ink-2);flex-wrap:wrap;display:flex}.stack li{white-space:nowrap}.stack li:not(:last-child):after{content:"·";margin:0 var(--s-3);color:var(--ink-3)}.panel{margin-top:var(--s-7);padding:var(--s-5);border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface-solid);box-shadow:var(--rim)}.panel-head{justify-content:space-between;align-items:flex-start;gap:var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.panel-title{font-size:1rem;font-weight:600}.panel-sub{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-label);color:var(--ink-2);font-variant-numeric:tabular-nums}.illus{align-items:center;gap:var(--s-2);padding:2px var(--s-3);border-radius:var(--r-pill);border:1px dashed var(--line-2);font-family:var(--font-mono);letter-spacing:var(--track-label);color:var(--ink-2);font-size:.75rem;display:inline-flex}.illus svg{width:12px;height:12px}.hm-scroll{padding-bottom:var(--s-2);scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;border-radius:var(--r-1);overflow:auto hidden}.hm{--cell:11px;--gap:3px;column-gap:var(--s-3);grid-template-columns:auto 1fr;width:max-content;display:grid}.hm-months{grid-area:1/2;grid-auto-columns:var(--cell);column-gap:var(--gap);height:18px;font-family:var(--font-mono);color:var(--ink-2);font-size:.75rem;display:grid}.hm-months span{white-space:nowrap;grid-row:1}.hm-days{grid-area:2/1;grid-template-rows:repeat(7, var(--cell));row-gap:var(--gap);font-family:var(--font-mono);color:var(--ink-2);font-size:.75rem;line-height:var(--cell);display:grid}.hm-grid{grid-area:2/2;grid-template-rows:repeat(7, var(--cell));grid-auto-flow:column;grid-auto-columns:var(--cell);gap:var(--gap);display:grid}.hm-grid i,.hm-legend .scale i{background:#edeef00f;border-radius:2px;display:block}[data-l="1"]{background:#123447!important}[data-l="2"]{background:#1e5f7d!important}[data-l="3"]{background:#3fa3c9!important}[data-l="4"]{background:#8ee6fa!important}.hm-grid i[data-l="4"]{box-shadow:0 0 10px #67e8f973}.hm-legend{justify-content:space-between;align-items:center;gap:var(--s-3) var(--s-5);margin-top:var(--s-3);font-family:var(--font-mono);letter-spacing:var(--track-label);color:var(--ink-2);flex-wrap:wrap;font-size:.75rem;display:flex}.hm-legend .scale{align-items:center;gap:3px;display:inline-flex}.hm-legend .scale i{width:11px;height:11px}.hm-stats{gap:var(--s-1) var(--s-5);color:var(--ink-2);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.hm-stats b{color:var(--ink);font-weight:600}@media (max-width:1023px){.about{gap:var(--s-6);grid-template-columns:1fr}}@media (max-width:599px){.facts div{grid-template-columns:6rem 1fr}}.contact{gap:var(--s-5);justify-items:start;display:grid}.contact .section-head{margin-bottom:var(--s-2)}.mail{align-items:center;gap:var(--s-3);max-width:100%;padding-block:var(--s-2) var(--s-3);font-family:var(--font-display);letter-spacing:-.03em;overflow-wrap:anywhere;color:var(--ink);font-size:clamp(1.375rem,4.4vw,3.25rem);font-weight:550;line-height:1.15;text-decoration:none;display:inline-flex;position:relative}.mail__text{background:linear-gradient(90deg, var(--ink) 0%, var(--ink) 38%, var(--ion-a) 45%, var(--ion-b) 52%, var(--ink) 60%, var(--ink) 100%) 100% 0 / 260% 100% no-repeat;color:#0000;transition:background-position 1.1s var(--ease-out);-webkit-background-clip:text;background-clip:text}.mail:hover .mail__text,.mail:focus-visible .mail__text{background-position:0 0}.mail:before,.mail:after{content:"";border-radius:2px;height:2px;position:absolute;bottom:4px;left:0;right:0}.mail:before{background:var(--line-2)}.mail:after{background:linear-gradient(90deg, var(--ion-a), var(--ion-b));transform-origin:0;transition:transform .9s var(--ease-out);transform:scaleX(0)}.mail:hover:after,.mail:focus-visible:after{transform:scaleX(1)}.copy-btn{position:relative}.copy-btn .ic-check{display:none}.copy-btn.is-copied{background:var(--ion-c);color:#03140c}.copy-btn.is-copied .ic-copy{display:none}.copy-btn.is-copied .ic-check{animation:pop .5s var(--ease-out);display:block}.copy-btn.is-copied:after{content:"";border-radius:inherit;border:2px solid var(--ion-c);pointer-events:none;animation:ringOut .7s var(--ease-out) forwards;position:absolute;inset:-2px}.copy-btn.is-failed{animation:.4s shake}@keyframes pop{0%{transform:scale(.3)}60%{transform:scale(1.3)}to{transform:none}}@keyframes ringOut{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.35)}}@keyframes shake{20%,60%{translate:-4px}40%,80%{translate:4px}}.live-dot{width:8px;height:8px;margin-right:var(--s-2);background:var(--ion-c);vertical-align:1px;border-radius:50%;display:inline-block;position:relative}.live-dot:after{content:"";animation:pulse 2.4s var(--ease-out) infinite;background:#6ee7b780;border-radius:50%;position:absolute;inset:0}@keyframes pulse{0%{opacity:.9;transform:scale(1)}70%,to{opacity:0;transform:scale(2.6)}}.contact-row{align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.copy-status{min-height:1.6em;font-size:var(--fs-small);color:var(--ion-c)}.copy-status.is-err{color:var(--bad)}.contact-note{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--track-label);color:var(--ink-2);font-variant-numeric:tabular-nums}@media (max-width:420px){.contact-row .btn{flex:auto}}@media (forced-colors:active){.mail__text,.hy-tagline{color:canvastext;background:0 0}}.app [data-reveal]{opacity:0;transition:opacity .9s var(--ease-out), transform 1s var(--ease-out);transition-delay:calc(var(--d,0) * 80ms);transform:translateY(24px)}.app [data-reveal].is-in{opacity:1;transform:none}.mask{margin-bottom:-.12em;padding-bottom:.12em;display:block;overflow:hidden}.mask>span{display:block}.app [data-reveal] .mask>span{transition:transform var(--t-slow) var(--ease-out) .1s;transform:translateY(110%)}.app [data-reveal].is-in .mask>span{transform:none}.app .hero__title .line>span{transition:transform .65s var(--ease-out);transition-delay:calc(var(--i) * 60ms);transform:translateY(108%)}.app .hero:not(.is-ready) [data-reveal].is-in{opacity:0;transform:translateY(24px)}.app .hero [data-reveal]{transition-duration:.55s,.6s;transition-delay:calc(var(--d,0) * 25ms + 80ms)}.app .hero.is-ready .hero__title .line>span{transform:none}.app .hero.is-ready .hero__title .line,.app.rm .hero__title .line{clip-path:inset(-64px);transition:clip-path 0s linear .8s}.app.rm .hero__title .line,.app.rm .hero.is-ready .hero__title .line{transition:none}.app [data-reveal]:is(.about-aside,.panel,.proj-featured){opacity:1;clip-path:inset(-40px -40px 100%);transition:clip-path 1s var(--ease-out), transform 1s var(--ease-out);transition-delay:calc(var(--d,0) * 80ms)}.app [data-reveal]:is(.about-aside,.panel,.proj-featured).is-in{clip-path:inset(-40px)}.app .pgrid>li{clip-path:inset(-40px -40px 100%);transition:clip-path .9s var(--ease-out), transform .9s var(--ease-out);transition-delay:calc(var(--i,0) * 85ms);transform:translateY(28px)}.app .pgrid.is-in>li{clip-path:inset(-40px);transform:none}.app .hm-grid i{opacity:0;transition:opacity .5s var(--ease-out), transform .6s var(--ease-out);transition-delay:calc(var(--c,0) * 14ms);transform:scale(.4)}.app .hm.is-in .hm-grid i{opacity:1;transform:none}.app.rm *,.app.rm :before,.app.rm :after{transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.app.rm [data-reveal],.app.rm [data-reveal] .mask>span,.app.rm .hero__title .line>span,.app.rm .pgrid>li,.app.rm .hm-grid i{opacity:1!important;filter:none!important;clip-path:none!important;transform:none!important}.app.rm .cursor-glow{display:none}.app.rm .grain,.app.rm .bh__ring,.app.rm .rig-chip,.app.rm .wave i,.app.rm .mic:before,.app.rm .mic:after,.app.rm .live-dot,.app.rm .grad-em,.app.rm .hero__title em{animation:none!important}.app.rm .scrollcue i:after{animation:none;top:30%}.app.rm .rig{transition:none}.app.rm .bud .fill{transform:none}.app.rm .goal-arc,.app.rm .spark-line{stroke-dashoffset:0}.app.rm .spark-fill{opacity:1}
