@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7452ca4a93358909-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e0ecb571b51ea3b5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/6e8c7cb283336a9d-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_fdb222{font-family:Fraunces,Fraunces Fallback;font-style:normal}.__variable_fdb222{--font-fraunces:"Fraunces","Fraunces Fallback"}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_f367f3{--font-inter:"Inter","Inter Fallback"}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/c95a17d6aa1ccc69-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/84792440f5374347-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/10735954b8957dce-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/69c8297e91a203ed-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/32ec8d161d520037-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/ceda3e828136e1b8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter Tight;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/103fc5fac08dcb15-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/c95a17d6aa1ccc69-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/84792440f5374347-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/10735954b8957dce-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/69c8297e91a203ed-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/32ec8d161d520037-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/ceda3e828136e1b8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter Tight;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/103fc5fac08dcb15-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/c95a17d6aa1ccc69-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/84792440f5374347-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/10735954b8957dce-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/69c8297e91a203ed-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/32ec8d161d520037-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/ceda3e828136e1b8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter Tight;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/103fc5fac08dcb15-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Tight Fallback;src:local("Arial");ascent-override:100.51%;descent-override:25.03%;line-gap-override:0.00%;size-adjust:96.39%}.__className_1b418a{font-family:Inter Tight,Inter Tight Fallback;font-style:normal}.__variable_1b418a{--font-inter-tight:"Inter Tight","Inter Tight Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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 Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_3c557b{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_3c557b{--font-mono-jb:"JetBrains Mono","JetBrains Mono Fallback"}:root{--ink:#f4f1ea;--ink-1:#eeeae1;--ink-2:#e7e2d6;--ink-3:#ded8c9;--line:rgba(26,23,17,0.12);--line-strong:rgba(26,23,17,0.22);--bone:#1a1916;--bone-dim:#55514a;--mute:#8a8477;--iris:#5157e8;--teal:#0f8a7b;--amber:#b06f1e;--ok:#0f8a7b;--ok-soft:rgba(15,138,123,0.1);--err:#b3382c;--err-soft:rgba(179,56,44,0.09);--signal:var(--iris);--signal-soft:rgba(81,87,232,0.1);--font-display:var(--font-fraunces),Georgia,"Times New Roman",serif;--font-sans:var(--font-inter),system-ui,-apple-system,Segoe UI,sans-serif;--font-tight:var(--font-inter-tight),var(--font-inter),system-ui,sans-serif;--font-mono:var(--font-mono-jb),"SFMono-Regular",ui-monospace,monospace;--wrap:1240px;--gutter:clamp(1.25rem,5vw,4rem);--section-y:clamp(5rem,12vh,9rem);--ease:cubic-bezier(0.22,1,0.36,1);color-scheme:light}[data-accent=iris]{--signal:var(--iris);--signal-soft:rgba(81,87,232,0.1)}[data-accent=teal]{--signal:var(--teal);--signal-soft:rgba(15,138,123,0.1)}[data-accent=amber]{--signal:var(--amber);--signal-soft:rgba(176,111,30,0.1)}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}body{margin:0;background:var(--ink);color:var(--bone);font-family:var(--font-sans);font-size:16px;line-height:1.6;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}::selection{background:var(--signal);color:var(--ink)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}h1,h2,h3,h4,p{margin:0}.display{font-family:var(--font-display);font-weight:340;line-height:.98;letter-spacing:-.02em;font-optical-sizing:auto}.serif{font-family:var(--font-display);font-weight:360}.eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--mute);display:inline-flex;align-items:center;gap:.7em}.eyebrow .idx{color:var(--signal)}.eyebrow:before{content:"";width:1.6rem;height:1px;background:var(--line-strong)}.lede{font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.55;max-width:46ch}.dim,.lede{color:var(--bone-dim)}.faint{color:var(--mute)}.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}.section{position:relative;padding-block:var(--section-y)}.hairline{height:1px;background:var(--line);border:0}.btn{--pad:0.85rem 1.4rem;display:inline-flex;align-items:center;gap:.6rem;padding:var(--pad);border:1px solid var(--line-strong);border-radius:999px;font-size:.85rem;letter-spacing:.02em;color:var(--bone);background:transparent;cursor:pointer;transition:border-color .3s var(--ease),background .3s var(--ease),color .3s var(--ease)}.btn:hover{border-color:var(--signal);background:var(--signal-soft)}.btn--solid{background:var(--bone);color:var(--ink);border-color:var(--bone)}.btn--solid:hover{background:var(--signal);border-color:var(--signal);color:var(--ink)}.link-underline{position:relative;color:var(--bone)}.link-underline:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.link-underline:hover:after{transform:scaleX(1)}.chip{display:inline-flex;align-items:center;padding:.32rem .7rem;border:1px solid var(--line);border-radius:999px;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em;color:var(--bone-dim);white-space:nowrap}.chip--signal{border-color:var(--signal);color:var(--signal)}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:9999;mix-blend-mode:difference;will-change:transform}.cursor-dot{width:6px;height:6px;background:#fff}.cursor-ring{width:34px;height:34px;border:1px solid #fff;transition:width .25s var(--ease),height .25s var(--ease),opacity .25s var(--ease)}.cursor-ring[data-active=true]{width:56px;height:56px;opacity:.7}.bfly{position:fixed;top:0;left:0;width:64px;height:48px;pointer-events:none;z-index:9990;opacity:1;transition:opacity .35s var(--ease)}.bfly,.bfly__inner{will-change:transform}.bfly__inner{position:relative;width:100%;height:100%;transform-style:preserve-3d}.bfly__wing{position:absolute;top:0;width:30px;height:48px;will-change:transform}.bfly__wing--l{left:2px;transform-origin:right center;transform:rotateY(var(--flap,0deg))}.bfly__wing--r{right:2px;transform-origin:left center;transform:rotateY(calc(var(--flap, 0deg) * -1)) scaleX(-1)}.bfly__wing-svg{width:100%;height:100%;display:block}.bfly__wing-shape{fill:var(--iris);fill-opacity:.88;stroke:var(--bone);stroke-opacity:.55;stroke-width:1}.bfly__vein{fill:none;stroke:var(--ink);stroke-opacity:.35;stroke-width:.8}.bfly__wing-dot{fill:var(--ink);opacity:.9}.bfly__body{position:absolute;left:50%;top:0;width:12px;height:48px;transform:translateX(-50%) translateZ(1px)}.bfly__body-shape{fill:var(--bone)}.bfly__antennae{fill:none;stroke:var(--bone);stroke-width:1.1;stroke-linecap:round}@media (prefers-reduced-motion:reduce){.bfly{display:none}}[data-reveal]{opacity:0}.reveal-ready [data-reveal]{opacity:1}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.001ms!important;animation-delay:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}[data-reveal]{opacity:1!important;transform:none!important}.cursor-dot,.cursor-ring{display:none}}.split-line{display:block;overflow:hidden}.split-line>span{display:block;will-change:transform}.rl-box{overflow:hidden;vertical-align:top}.rl-box,.rl-word{display:inline-block}.rl-word{transition:transform .9s var(--ease)}.rl-armed .rl-word{transform:translateY(115%)}.rl-armed.rl-in .rl-word{transform:translateY(0)}[id]{scroll-margin-top:92px}main .wrap{transform:skewY(var(--skew,0deg))}html.is-scrolling main .wrap{will-change:transform,filter;filter:drop-shadow(calc(var(--ab, 0px) * -1) 0 0 rgba(255,40,40,.22)) drop-shadow(var(--ab,0) 0 0 rgba(0,200,255,.22))}.skip-link{position:fixed;top:.5rem;left:.5rem;transform:translateY(-150%);background:var(--bone);color:var(--ink);padding:.6rem 1rem;border-radius:8px;z-index:10000;transition:transform .2s var(--ease)}.skip-link:focus{transform:translateY(0)}.site-header{position:fixed;inset:0 0 auto 0;z-index:900;transition:background .4s var(--ease),border-color .4s var(--ease);border-bottom:1px solid transparent}.site-header.is-scrolled{background:color-mix(in srgb,var(--ink) 78%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:var(--line)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:72px}.brand{display:inline-flex;align-items:baseline;gap:.6rem}.brand__mark{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.1em;border:1px solid var(--line-strong);border-radius:6px;padding:.2rem .4rem;color:var(--signal)}.brand__name{font-size:.9rem;letter-spacing:.01em}.nav{display:flex;align-items:center;gap:1.6rem}.nav a{font-size:.82rem;color:var(--bone-dim);position:relative;transition:color .25s var(--ease)}.nav a:hover{color:var(--bone)}.header-actions{display:flex;align-items:center;gap:.9rem}.resume-cta{padding:.5rem 1rem;font-size:.78rem}.menu-btn{display:none;flex-direction:column;gap:5px;width:40px;height:40px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line-strong);border-radius:8px;cursor:pointer}.menu-btn span{width:16px;height:1.5px;background:var(--bone);transition:transform .3s var(--ease),opacity .3s var(--ease)}.menu-btn.is-open span:first-child{transform:translateY(6.5px) rotate(45deg)}.menu-btn.is-open span:nth-child(2){opacity:0}.menu-btn.is-open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.mobile-menu{position:fixed;inset:72px 0 0 0;z-index:899;background:var(--ink);display:flex;flex-direction:column;justify-content:space-between;padding:2rem var(--gutter) 3rem;animation:menuIn .35s var(--ease)}@keyframes menuIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.mobile-menu__nav{display:flex;flex-direction:column;gap:.4rem;margin-top:1rem}.mobile-menu__nav a{font-family:var(--font-display);font-size:clamp(1.8rem,8vw,2.6rem);line-height:1.2;display:flex;align-items:baseline;gap:1rem}.mobile-menu__idx{font-family:var(--font-mono);font-size:.8rem;color:var(--signal)}.mobile-menu__foot{display:flex;flex-direction:column;gap:1rem}.mobile-menu__socials{display:flex;gap:1.5rem}.mobile-menu__socials a{color:var(--bone-dim)}.view-toggle{display:inline-flex;border:1px solid var(--line-strong);border-radius:999px;padding:2px;gap:2px}.view-toggle__btn{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.03em;padding:.4rem .8rem;border-radius:999px;color:var(--bone-dim);background:transparent;border:0;cursor:pointer;transition:background .25s var(--ease),color .25s var(--ease)}.view-toggle__btn[aria-pressed=true]{background:var(--bone);color:var(--ink)}.site-footer{border-top:1px solid var(--line);padding-block:1.6rem}.preloader{position:fixed;inset:0;z-index:200;background:var(--bone);color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:clamp(1.2rem,4vw,2.5rem);transition:transform .75s var(--ease)}.preloader--leave{transform:translateY(-100%)}.preloader__mark{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.28em;text-transform:uppercase}.preloader__count{align-self:flex-end;font-family:var(--font-tight);font-weight:900;font-size:clamp(4.5rem,15vw,11rem);line-height:.8;letter-spacing:-.04em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.site-footer__base{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.8rem;color:var(--mute);flex-wrap:wrap}.imm--motion{position:relative;height:460vh}.imm__anchor{position:absolute;left:0;width:1px;height:1px}.imm__stage{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center}.imm__canvas{position:absolute;inset:0;z-index:0}.imm__panels{position:relative;z-index:2;display:grid;align-items:center;width:100%}.imm__panel{grid-area:1/1;will-change:opacity,transform}.imm__cue{position:absolute;z-index:2;bottom:2.2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.6rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);transition:opacity .4s var(--ease)}.imm__cue-line{width:1px;height:34px;background:linear-gradient(var(--mute),transparent);animation:cue 1.8s var(--ease) infinite}@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}.imm-intro{max-width:52rem}.imm-intro__stack{display:flex;flex-direction:column;margin:1rem 0 1.4rem;font-family:var(--font-tight);font-weight:700;text-transform:uppercase;font-size:clamp(2.4rem,7.5vw,7rem);line-height:.92;letter-spacing:-.035em;color:var(--bone)}.imm-intro__word{animation:hero-rise .9s var(--ease) both;animation-delay:calc(var(--i, 0) * .11s + 1.35s)}@keyframes hero-rise{0%{transform:translateY(112%)}to{transform:translateY(0)}}.imm-intro__wordmark{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--mute);margin-bottom:1.4rem}.imm-intro__statement{font-size:clamp(1.1rem,2vw,1.5rem);line-height:1.3;max-width:30ch}.imm-intro__meta{display:flex;gap:1.5rem;margin-top:1.6rem;font-size:.85rem;flex-wrap:wrap}.imm-journey{max-width:46rem;background:color-mix(in srgb,var(--ink) 72%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:4px;padding:clamp(1.2rem,3vw,2.2rem)}.imm-journey__lead{font-size:clamp(1.4rem,3vw,2rem);line-height:1.2;margin:1rem 0 2rem;max-width:22ch}.imm-journey__list{list-style:none;padding:0;margin:0;display:grid;gap:.2rem}.imm-journey__step{display:grid;grid-template-columns:4.5rem 12rem 1fr;gap:1rem;align-items:baseline;padding:.7rem 0;border-top:1px solid var(--line);opacity:.72;transition:opacity .4s var(--ease),border-color .4s var(--ease)}.imm-journey__step.is-active{opacity:1;border-color:var(--signal)}.imm-journey__year{font-family:var(--font-mono);font-size:.8rem;color:var(--signal)}.imm-journey__title{font-family:var(--font-display);font-size:1.15rem}.imm-journey__note{font-size:.85rem}.imm-focus{max-width:60rem}.imm-focus__lead{font-size:clamp(1.4rem,3vw,2rem);margin:1rem 0 2rem}.imm-focus__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.imm-focus__card{background:color-mix(in srgb,var(--ink) 82%,transparent);padding:1.4rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.imm-focus__title{font-size:1rem;margin-bottom:.5rem}.imm-focus__line{font-size:.85rem}.imm-fallback{width:min(78vw,480px);height:auto}.imm-static__hero{position:relative;min-height:88vh;display:flex;flex-direction:column;justify-content:center;padding:6rem var(--gutter) 3rem}.imm-static__visual{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:.35;z-index:0}.imm-static__hero .imm-intro{position:relative;z-index:1}.imm-static__block{padding-block:var(--section-y);border-top:1px solid var(--line)}.work__head{max-width:46rem;margin-bottom:2.2rem}.work__filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.work__filter{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;padding:.45rem .9rem;border:1px solid var(--line);border-radius:999px;background:none;color:var(--bone-dim);cursor:pointer;transition:color .25s var(--ease),border-color .25s var(--ease),background .25s var(--ease)}.work__filter:hover{color:var(--ink);border-color:var(--ink)}.work__filter[aria-pressed=true]{color:var(--signal);border-color:var(--signal);background:var(--signal-soft)}.work__title{font-size:clamp(2rem,5vw,3.6rem);margin:1.2rem 0 1.5rem}.work__list{list-style:none;margin:0;padding:0}.work__row{border-top:1px solid var(--line)}.work__row:last-child{border-bottom:1px solid var(--line)}.work__link{display:grid;grid-template-columns:3rem 1fr auto 1.5rem;gap:1.5rem;align-items:center;padding:1.6rem .5rem;transition:padding .4s var(--ease),background .4s var(--ease)}.work__link:hover{padding-left:1.5rem;padding-right:1.5rem;background:var(--signal-soft)}.work__num{font-family:var(--font-mono);font-size:.85rem;color:var(--signal)}.work__body{display:flex;flex-direction:column;gap:.3rem}.work__name{font-size:clamp(1.4rem,3.4vw,2.4rem);line-height:1;transition:color .3s var(--ease)}.work__row:hover .work__name{color:var(--signal)}.work__one{font-size:.9rem}.work__meta{display:flex;align-items:center;gap:.8rem}.work__cat,.work__year{font-size:.78rem}.work__go{font-size:1.1rem;color:var(--bone-dim);transform:translateX(-6px);opacity:0;transition:transform .35s var(--ease),opacity .35s var(--ease)}.work__row:hover .work__go{transform:translateX(0);opacity:1;color:var(--signal)}.flagship{position:relative;background:var(--ink-1);border-block:1px solid var(--line)}.flagship__stage{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;padding-block:4rem}.flagship__head{max-width:32rem}.flagship__title{font-size:clamp(2.2rem,5vw,4rem);margin:1rem 0 1.4rem}.flagship__cta{display:flex;align-items:center;gap:1rem;margin-top:1.8rem;flex-wrap:wrap}.flagship__flow{position:relative;padding-left:2.5rem}.flagship__spine{position:absolute;left:.6rem;top:.5rem;bottom:.5rem;width:2px;background:var(--line)}.flagship__spine-fill{display:block;width:100%;height:100%;background:var(--signal);transform-origin:top}.flagship__stages{list-style:none;margin:0;padding:0;display:grid;gap:1.6rem}.flagship__stage-el{display:grid;grid-template-columns:2.4rem 1fr;gap:1rem;align-items:start}.flagship__stage-num{font-family:var(--font-mono);font-size:.8rem;color:var(--signal);padding-top:.2rem}.flagship__stage-title{font-family:var(--font-display);font-size:1.4rem;margin-bottom:.3rem}.flagship__stage-desc{font-size:.92rem}.flagship__systems{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}.experience__title{font-size:clamp(2rem,5vw,3.4rem);margin:1rem 0 3rem}.experience__list{display:grid;gap:3rem}.experience__item{display:grid;grid-template-columns:16rem 1fr;gap:2rem}.experience__side{display:flex;flex-direction:column;gap:.6rem;align-items:flex-start}.experience__period{font-family:var(--font-mono);font-size:.9rem;color:var(--signal)}.experience__role{font-size:1.5rem}.experience__company{margin:.2rem 0 .9rem}.experience__points{margin:1rem 0 0;padding-left:1.1rem;display:grid;gap:.6rem}.experience__points li{color:var(--bone-dim)}.experience__tech{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.2rem}.skills__title{font-size:clamp(2rem,5vw,3.4rem);margin:1rem 0 3rem}.skills__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem 3rem}.skills__group-head{margin-bottom:1rem}.skills__group-label{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bone)}.skills__group-note{font-size:.82rem;margin-top:.3rem}.skills__tags{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.certs{margin-top:4rem}.certs__label{margin-bottom:1.2rem}.certs__list{list-style:none;padding:0;margin:0}.certs__item{display:grid;grid-template-columns:7rem 1fr auto auto;gap:1rem;align-items:center;padding:1rem 0;border-top:1px solid var(--line)}.certs__item:last-child{border-bottom:1px solid var(--line)}.certs__item.is-progress{opacity:.75}.certs__code{font-family:var(--font-mono);font-size:.85rem;color:var(--signal)}.certs__name{font-size:1.05rem}.certs__issuer{font-size:.85rem}.skills__foot{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-top:4rem}.edu__list,.reco__list{list-style:none;padding:0;margin:0;display:grid;gap:1rem}.edu__item{display:flex;flex-direction:column;gap:.2rem}.edu__qual{font-size:1.15rem}.edu__meta{font-size:.85rem}.reco__item{padding-left:1.1rem;position:relative}.reco__item:before{content:"→";position:absolute;left:0;color:var(--signal)}.roadmap{background:var(--ink-1);border-block:1px solid var(--line)}.roadmap__head{max-width:44rem;margin-bottom:3rem}.roadmap__title{font-size:clamp(2rem,5vw,3.4rem);margin:1rem 0 1.2rem}.roadmap__grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.roadmap__phase{background:var(--ink);padding:1.8rem 1.4rem;display:flex;flex-direction:column;gap:.8rem}.roadmap__idx{font-family:var(--font-mono);font-size:.8rem;color:var(--signal)}.roadmap__phase-title{font-size:1.35rem}.roadmap__intent{font-size:.88rem;flex:1 1}.roadmap__topics{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.45rem}.contact{text-align:left;padding-bottom:clamp(2.5rem,6vh,4rem)}.contact__ask{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--mute);margin-top:2.4rem}.contact__title{font-family:var(--font-tight);font-weight:900;text-transform:uppercase;font-size:clamp(2.6rem,8.5vw,8rem);line-height:.88;letter-spacing:-.04em;margin:1rem 0 3rem;max-width:12ch}.contact__actions{display:flex;flex-direction:column;gap:2rem}.contact__cta{align-self:flex-start;font-size:1rem;padding:1.1rem 2.2rem}.contact__email{font-size:clamp(1.3rem,3.4vw,2.2rem)}.contact__row,.cs__crumbs{display:flex;flex-wrap:wrap;gap:1rem}.cs__crumbs{align-items:center;justify-content:space-between;padding-top:6.5rem}.cs__header{max-width:52rem;margin:3rem 0 2.5rem}.cs__meta{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:1.2rem}.cs__num{font-family:var(--font-mono);font-size:1rem;color:var(--signal)}.cs__title{font-size:clamp(2.6rem,8vw,5.5rem)}.cs__cat{margin:.6rem 0 1.4rem;font-size:.95rem}.cs__lede{max-width:42ch}.cs__body{display:grid;gap:3rem;max-width:60rem;margin:3.5rem 0}.cs__block{display:grid;gap:1rem}.cs__h{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--signal)}.cs__block p{max-width:60ch;color:var(--bone-dim)}.cs__block p strong{color:var(--bone)}.cs__role{font-size:.92rem}.cs__steps{list-style:none;margin:0;padding:0;display:grid;gap:.9rem;counter-reset:step}.cs__steps li{display:flex;gap:1rem;align-items:baseline}.cs__step-n{font-family:var(--font-mono);font-size:.8rem;color:var(--signal)}.cs__features,.cs__tech{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.cs__tech{margin-top:1.2rem}.cs__note{font-size:.82rem}.cs__note code{font-family:var(--font-mono);font-size:.85em;color:var(--bone-dim)}.cs__list{margin:0;padding-left:1.1rem;display:grid;gap:.6rem}.cs__list li{color:var(--bone-dim)}.cs__list--security li::marker{color:var(--signal)}.cs__learn{font-size:clamp(1.2rem,2.6vw,1.7rem);line-height:1.4;max-width:32ch;color:var(--bone)!important}.cs__related{border-top:1px solid var(--line);padding-top:2rem;margin-bottom:3rem}.cs__related-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.2rem}.cs__related-card{display:flex;flex-direction:column;gap:.4rem;border:1px solid var(--line);border-radius:12px;padding:1.2rem 1.4rem;transition:border-color .3s var(--ease),background .3s var(--ease)}.cs__related-card:hover{border-color:var(--signal);background:var(--signal-soft)}.cs__related-card>.faint{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.cs__related-name{font-size:1.3rem}.cs__related-one{font-size:.88rem}.cs__pager{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);padding-top:2rem;margin-bottom:2rem}.cs__pager-link{display:flex;flex-direction:column;gap:.3rem}.cs__pager-link span:first-child{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.cs__pager-link span:last-child{font-size:1.3rem}.cs__pager-link--next{text-align:right;align-items:flex-end}.cs-panel{border:1px solid var(--line);border-radius:14px;background:var(--ink-1);padding:1.2rem 1.3rem;display:grid;gap:.9rem;max-width:46rem}.cs-panel__title{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bone-dim)}.cs-panel__headline{font-size:1rem;color:var(--bone)!important}.cs-panel__rows{margin:0;display:grid;gap:.45rem}.cs-panel__row{display:grid;grid-template-columns:minmax(9rem,14rem) 1fr;gap:.8rem;align-items:baseline;padding:.35rem 0;border-bottom:1px dashed var(--line)}.cs-panel__row:last-child{border-bottom:0}.cs-panel__row dt{font-family:var(--font-mono);font-size:.78rem;color:var(--bone-dim)}.cs-panel__row dd{margin:0;font-size:.92rem;color:var(--bone)}.cs-panel__tone{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;margin-right:.5rem;border-radius:50%;font-family:var(--font-mono);font-size:.7rem;border:1px solid var(--line-strong);color:var(--bone-dim);vertical-align:middle}.cs-panel__row[data-tone=ok] .cs-panel__tone{color:var(--ok);border-color:var(--ok);background:var(--ok-soft)}.cs-panel__row[data-tone=err] .cs-panel__tone{color:var(--err);border-color:var(--err);background:var(--err-soft)}.cs-panel__row[data-tone=warn] .cs-panel__tone{color:var(--amber);border-color:var(--amber)}.cs-panel__row[data-tone=mute] dd{color:var(--bone-dim)}.cs-evo{border:1px dashed var(--line-strong);border-radius:12px;padding:1rem 1.2rem;display:grid;gap:.5rem;max-width:46rem}.cs-evo__title{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim)!important}.cs-decisions{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1rem}.cs-decision{border:1px solid var(--line);border-radius:12px;background:var(--ink-1);padding:1rem 1.1rem;display:grid;gap:.5rem;align-content:start}.cs-decision h3{font-size:.95rem;color:var(--bone)}.cs-decision p{font-size:.88rem}.cs-status{display:grid;gap:.8rem;justify-items:start}.cs-timeline{margin:.4rem 0 0;display:grid;gap:0;max-width:46rem}.cs-timeline__row{display:grid;grid-template-columns:minmax(8rem,11rem) 1fr;gap:.8rem;padding:.6rem 0;border-top:1px dashed var(--line)}.cs-timeline__row dt{font-family:var(--font-mono);font-size:.76rem;color:var(--signal)}.cs-timeline__row dd{margin:0;font-size:.9rem;color:var(--bone-dim)}.oux{display:grid;grid-template-columns:minmax(11rem,14rem) 1fr;gap:1rem;align-items:start}.oux__tree{display:grid;gap:.3rem;border:1px solid var(--line);border-radius:12px;background:var(--ink-1);padding:.7rem}.oux__node{text-align:left;font:inherit;font-size:.9rem;color:var(--bone-dim);background:none;border:1px solid transparent;border-radius:8px;padding:.45rem .9rem;cursor:pointer}.oux__node:hover{color:var(--bone);border-color:var(--line)}.oux__node--on{color:var(--bone);border-color:var(--line-strong);background:var(--ink-2);font-weight:600}.oux__node:focus-visible{outline:2px solid var(--signal);outline-offset:1px}.oux__panel{border:1px solid var(--line);border-radius:12px;background:var(--ink-1);padding:1rem 1.2rem;display:grid;gap:.9rem}.oux__title{font-size:.9rem;color:var(--bone-dim)}.oux__title strong{color:var(--bone)}.oux__row,.oux__rows{display:grid}.oux__row{grid-template-columns:1.4fr .7fr 1fr;gap:.8rem;align-items:center;padding:.55rem 0;border-top:1px dashed var(--line);font-size:.88rem}.oux__pol{display:grid}.oux__pol span:first-child{color:var(--bone)}.oux__api{font-family:var(--font-mono);font-size:.68rem}.oux__state,.oux__val{color:var(--bone-dim)}.oux__state{justify-self:start;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line-strong);border-radius:99px;padding:.2rem .6rem}.oux__row[data-state=EXPLICIT] .oux__state{color:var(--ok);border-color:var(--ok);background:var(--ok-soft)}.oux__row[data-state=REDUNDANT_OVERRIDE] .oux__state{color:var(--amber);border-color:var(--amber);border-style:dashed}.oux__row[data-state=MANUAL_REVIEW] .oux__state{border-style:dashed}.oux__proposal{border:1px dashed var(--amber);border-radius:10px;padding:.8rem 1rem;display:grid;gap:.4rem}.oux__proposal-h{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bone-dim)!important}.oux__proposal p{font-size:.86rem}.resume{padding-bottom:3rem}.resume__head{margin:2rem 0 3rem}.resume__name{font-size:clamp(2.4rem,7vw,4.5rem);margin:1rem 0 .4rem}.resume__role{font-size:1.3rem;color:var(--bone-dim)}.resume__contact{margin-top:.6rem;font-size:.9rem}.resume__actions{display:flex;gap:1rem;margin-top:1.6rem;flex-wrap:wrap}.resume__block{margin-top:2.8rem;max-width:52rem}.resume__h{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--signal);border-top:1px solid var(--line);padding-top:1rem;margin-bottom:1rem}.resume__exp{margin-bottom:1.8rem}.resume__exp-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.resume__points{margin:.8rem 0 0;padding-left:1.1rem;display:grid;gap:.5rem;color:var(--bone-dim)}.resume__skills{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}.resume__skills h4{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.3rem}.resume__certs{list-style:none;padding:0;margin:0;display:grid;gap:.7rem;color:var(--bone-dim)}.resume__embed{border:1px solid var(--line);border-radius:12px;overflow:hidden;aspect-ratio:8.5/11;max-width:42rem;background:var(--ink-1)}.resume__embed iframe{width:100%;height:100%;border:0}.wf{border:1px solid var(--line);border-radius:16px;background:var(--ink-1);padding:clamp(1rem,2.5vw,1.6rem);display:grid;gap:1rem}.wf__head{display:grid;gap:.25rem}.wf__title{font-family:var(--font-display);font-weight:420;font-size:1.25rem}.wf__caption{font-size:.85rem;max-width:62ch}.wf__scroll{overflow-x:auto;border-radius:10px;background:var(--ink);border:1px solid var(--line)}.wf__svg{display:block;width:100%;height:auto}.wfe path{fill:none;stroke:var(--line-strong);stroke-width:1.4;transition:stroke .4s var(--ease),opacity .4s var(--ease);opacity:.55}.wfe--data path{stroke-dasharray:5 4}.wfe--trust path{stroke-dasharray:2 4}.wfe--on path{stroke:var(--signal);opacity:1}.wfe__label{font-family:var(--font-mono);font-size:9.5px;fill:var(--mute);letter-spacing:.04em;paint-order:stroke;stroke:var(--ink);stroke-width:4px;stroke-linejoin:round}.wfe__label--on{fill:var(--signal)}.wf-arrhead{fill:var(--line-strong)}.wf-packet{fill:var(--signal)}.wfn{cursor:pointer;outline:none}.wfn__shape{fill:var(--ink-1);stroke:var(--line-strong);stroke-width:1.2;transition:stroke .35s var(--ease),fill .35s var(--ease),opacity .35s var(--ease)}.wfn{opacity:.55;transition:opacity .35s var(--ease)}.wfn--on{opacity:1}.wfn--on .wfn__shape{stroke:var(--bone)}.wfn--core .wfn__shape{fill:var(--signal-soft);stroke:var(--signal);stroke-width:1.6}.wfn--service .wfn__shape{fill:var(--ink-2)}.wfn--store .wfn__shape{fill:var(--ink);stroke-dasharray:0}.wfn--actor .wfn__shape{fill:var(--ink);stroke:var(--bone-dim)}.wfn__head{fill:var(--bone-dim)}.wfn--truth .wfn__shape{stroke-dasharray:6 4}.wfn--sel .wfn__shape{stroke:var(--signal);stroke-width:2.2}.wfn:focus-visible .wfn__shape{stroke:var(--signal);stroke-width:2.2}.wfn__label{font-family:var(--font-sans);font-size:12.5px;font-weight:600;fill:var(--bone);letter-spacing:-.01em}.wfn__sub{font-family:var(--font-mono);font-size:9.5px;fill:var(--mute);letter-spacing:.03em}.wfn__flag rect{fill:var(--ink);stroke:var(--mute);stroke-width:1;stroke-dasharray:3 2.5}.wfn__flag text{font-family:var(--font-mono);font-size:8px;letter-spacing:.08em;fill:var(--bone-dim)}.wfn__st rect{stroke-width:1}.wfn__st text{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.02em}.wfn__st--success rect{fill:var(--ok-soft);stroke:var(--ok)}.wfn__st--success text{fill:var(--ok)}.wfn__st--failed rect{fill:var(--err-soft);stroke:var(--err)}.wfn__st--failed text{fill:var(--err)}.wfn__st--pending rect{fill:var(--ink);stroke:var(--mute)}.wfn__st--pending text{fill:var(--bone-dim)}.wfn__st--skipped rect{fill:var(--ink);stroke:var(--line-strong)}.wfn__st--skipped text{fill:var(--mute)}.wfn__st--info rect{fill:var(--signal-soft);stroke:var(--signal)}.wfn__st--info text{fill:var(--signal)}.wf__controls{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap}.wf__buttons{display:flex;gap:.4rem}.wf__btn{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:10px;background:var(--ink);color:var(--bone);font-size:.95rem;cursor:pointer;transition:border-color .25s var(--ease),background .25s var(--ease)}.wf__btn:hover:not(:disabled){border-color:var(--signal);background:var(--signal-soft)}.wf__btn:disabled{opacity:.35;cursor:default}.wf__btn--play{color:var(--signal)}.wf__steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;flex:1 1;min-width:220px}.wf__step{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .85rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--bone-dim);font-size:.8rem;cursor:pointer;transition:border-color .25s var(--ease),color .25s var(--ease),background .25s var(--ease)}.wf__step--on,.wf__step:hover{border-color:var(--signal)}.wf__step--on{color:var(--bone);background:var(--signal-soft)}.wf__step-n{font-family:var(--font-mono);font-size:.7rem;color:var(--signal)}.wf__panel{border-top:1px solid var(--line);padding-top:.9rem;display:grid;gap:.45rem;min-height:6.2rem;align-content:start}.wf__panel-kicker{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-size:.95rem}.wf__panel-body{color:var(--bone-dim);font-size:.95rem;max-width:72ch}.wf__panel-close{margin-left:auto;border:0;background:none;color:var(--mute);font-size:.78rem;cursor:pointer;font-family:var(--font-mono)}.wf__panel-close:hover{color:var(--bone)}.wf__hint{font-size:.78rem}.wf-status{display:inline-flex;align-items:center;gap:.35em;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.03em;padding:.28rem .6rem;border-radius:999px;border:1px solid}.wf-status--success{color:var(--ok);border-color:var(--ok);background:var(--ok-soft)}.wf-status--failed{color:var(--err);border-color:var(--err);background:var(--err-soft)}.wf-status--pending{color:var(--bone-dim);border-color:var(--mute)}.wf-status--skipped{color:var(--mute);border-color:var(--line-strong)}.wf-status--info{color:var(--signal);border-color:var(--signal);background:var(--signal-soft)}.wf-chip--truth{border-style:dashed}.wf-legend{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin:0;border-top:1px solid var(--line);padding-top:.8rem}.wf-legend__item{display:inline-flex;align-items:center;gap:.45rem}.wf-legend__item dd,.wf-legend__item dt{margin:0}.wf-legend__item dd{font-size:.75rem;color:var(--mute);font-family:var(--font-mono);letter-spacing:.02em}.wf-legend__swatch{display:inline-block;width:14px;height:10px;border-radius:3px;border:1px solid var(--line-strong);background:var(--ink-1)}.wf-legend__swatch--core{background:var(--signal-soft);border-color:var(--signal)}.wf-legend__swatch--service{background:var(--ink-2)}.wf-legend__swatch--store{background:var(--ink)}.wf-legend__swatch--actor{border-radius:50%;width:11px;height:11px;background:var(--ink);border-color:var(--bone-dim)}.wf-legend__swatch--truth{border-style:dashed;border-color:var(--mute);background:transparent}.wf-legend__sym{font-family:var(--font-mono);font-size:.75rem;color:var(--bone-dim);width:14px;text-align:center}.notfound{min-height:70vh;display:flex;flex-direction:column;justify-content:center;gap:1.2rem;align-items:flex-start}.notfound__title{font-size:clamp(2rem,6vw,4rem);max-width:18ch}@media (max-width:1000px){.header-actions .view-toggle,.nav,.resume-cta{display:none}.menu-btn{display:flex}.flagship__stage{gap:2.2rem}.flagship__stage,.resume__skills,.skills__foot,.skills__grid{grid-template-columns:1fr}.roadmap__grid{grid-template-columns:repeat(2,1fr)}.experience__item{grid-template-columns:1fr;gap:1rem}}@media (max-width:768px){.brand__name{display:none}.imm--motion{height:380vh}.imm--motion .imm__stage:after{content:"";position:absolute;inset:0;z-index:1;background:rgba(244,241,234,.65);pointer-events:none}.imm--motion .imm-intro{background:rgba(244,241,234,.92);border:1px solid var(--line);border-radius:4px;padding:1.2rem}.imm-focus__grid{grid-template-columns:1fr}.imm-journey__step{grid-template-columns:3.2rem 1fr}.imm-journey__note{grid-column:1/-1}.imm-journey{padding:1rem;background:rgba(244,241,234,.92)}.imm-journey__lead{font-size:1.15rem;margin:.6rem 0 1rem}.imm-journey__step{padding:.45rem 0;gap:.4rem .8rem;opacity:1}.imm-journey__title{font-size:1rem}.imm-journey__note{font-size:.78rem}.imm-focus__lead{font-size:1.15rem;margin:.6rem 0 1rem}.imm-focus__card{padding:.9rem 1rem;background:rgba(244,241,234,.92)}.imm-focus__line{font-size:.8rem}.imm--motion .imm-focus,.imm--motion .imm-journey{max-height:calc(100dvh - 6rem);overflow-y:auto}main .wrap{transform:none}html.is-scrolling main .wrap{filter:none}.certs__item{grid-template-columns:4.5rem 1fr;gap:.3rem 1rem}.certs__issuer,.certs__status{grid-column:1/-1}.certs__status{justify-self:start}.work__link{grid-template-columns:2rem 1fr;gap:.8rem;padding:1.2rem 0}.work__go,.work__meta{display:none}.oux,.oux__row,.roadmap__grid{grid-template-columns:1fr}.oux__row{gap:.25rem;justify-items:start}.cs-panel__row,.cs-timeline__row{grid-template-columns:1fr;gap:.2rem}.site-footer__base{flex-direction:column;align-items:flex-start}}