@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular Italic"),local("JetBrains Mono Italic"),url(../_fonts/Df7M9JXECnQBPeMk0JlWv5oI4E80OSjKvG82PCAX-MI-aXpKyr1n0W6NWbCApKANrm9O50H_fjFMdBzwfTY75iM.woff2) format(woff2);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:400;font-style:italic}@font-face{font-family:"JetBrains Mono Fallback: Courier New";src:local("Courier New");size-adjust:99.9837%;ascent-override:102.0166%;descent-override:30.0049%;line-gap-override:0%}@font-face{font-family:"JetBrains Mono Fallback: Roboto Mono";src:local("Roboto Mono");size-adjust:99.9837%;ascent-override:102.0166%;descent-override:30.0049%;line-gap-override:0%}@font-face{font-family:"JetBrains Mono Fallback: Noto Sans Mono";src:local("Noto Sans Mono");size-adjust:100%;ascent-override:102%;descent-override:30%;line-gap-override:0%}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular Italic"),local("JetBrains Mono Italic"),url(../_fonts/F00Bxq4ciZESODR5suhK3xDWcsQ9RLj9SyZQEevpEsw-BLNEvb6wAcL3fpb4n4d3zVEKUoa2hsUKxxkf3YdvJKc.woff2) format(woff2);font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-weight:400;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular Italic"),local("JetBrains Mono Italic"),url(../_fonts/AA0_6TP-Ed9gQINhOsvbweBE3xLQgxmg6pXqHmvCwsM-egZLwYC5qVnfGWql7G5NfYTIiMP1PB_tQWIq5f7S-0k.woff2) format(woff2);font-display:swap;unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-weight:400;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular Italic"),local("JetBrains Mono Italic"),url(../_fonts/3mk1pEYaO7RuhctnlpKcyb7yjVLICedncSfY13ffbM8-vJidvBvYJRk77_zQIyVpja44ymm1FQTiYKUcM_aD5Sg.woff2) format(woff2);font-display:swap;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-weight:400;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular Italic"),local("JetBrains Mono Italic"),url(../_fonts/3e3wuf-V_7icWvlsSS3Ud6R1mFSymwsfz35VcqiVjOk-jnii4_jMs7YAJOhzZP3bGdrbXGt5dYv8_t_rhpHzpcQ.woff2) format(woff2);font-display:swap;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-weight:400;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular Italic"),local("JetBrains Mono Italic"),url(../_fonts/NwLHmPccLrJlBVGp4QRXOLZaNI0M_K6XuSwyVjpr47g-jl4tqz8gcsgAJDPcbl5roY78zy31I6Rq51WBLpZngFg.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,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-weight:400;font-style:italic}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),local("JetBrains Mono"),url(../_fonts/f3COenLcoezM74LmVz7-HHQTyPKopVoMY6x2syLMzQE-shPZYE7IAjZWz4okT_CWn96WfGzoLhasK43_mhj3CZI.woff2) format(woff2);font-display:swap;unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-weight:400;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),local("JetBrains Mono"),url(../_fonts/KOrIgK47CByspZJWjOLg8AL2ADg9uFcNjZd9W78jrmM-dU37DP77KwUzMqqldljJHhSe3lJpaSfI9HPfiVAxPOM.woff2) format(woff2);font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-weight:400;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),local("JetBrains Mono"),url(../_fonts/9IZYb3o3tpRXPqjzNd4r3vIIohLuRBC5-h_ByvqRowU-ZgMUMfi6FcHpaV_ucYIWcBvLG6geajFq70Smps0DAj0.woff2) format(woff2);font-display:swap;unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-weight:400;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),local("JetBrains Mono"),url(../_fonts/bUcXp2ExGsFoCjH4L_AiPGX0TLCAgnqR8nvW7SxSJYQ-kvm9UWc_MFZW_r85yX6uPdzXVmdcUOio_Wb1x_7QdXM.woff2) format(woff2);font-display:swap;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-weight:400;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),local("JetBrains Mono"),url(../_fonts/_lyVj3lEzRng_G7gZNcCmL83BnMEos-Hf8bpHLMzGQI-zsVE1T2QbmkXlEbQhs2gb3j3VBOOGhzqyW_ZW_0s3F8.woff2) format(woff2);font-display:swap;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-weight:400;font-style:normal}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),local("JetBrains Mono"),url(../_fonts/sqxfSu-14RfawvZSbzb3mPoBYaXxmTGIac1Kk0GVk_w-oe_5KiWXPVdvpURHWSiaIjA1N_zLqpjSzmfpwRHr7CQ.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,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-weight:400;font-style:normal}@font-face{font-family:Space Grotesk;src:local("Space Grotesk Regular"),local("Space Grotesk"),url(../_fonts/9hRHTbBZsEcuZxxdZXdc8o-FjmTk6jKYV4mCGHoOshQ-FXztQX8BEI_x63xtVeB8YlzpQQqLYDJXuRgZI-_p0mc.woff2) format(woff2);font-display:swap;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-weight:400;font-style:normal}@font-face{font-family:"Space Grotesk Fallback: BlinkMacSystemFont";src:local("BlinkMacSystemFont");size-adjust:117.4059%;ascent-override:83.8118%;descent-override:24.871%;line-gap-override:0%}@font-face{font-family:"Space Grotesk Fallback: Segoe UI";src:local("Segoe UI");size-adjust:110.2943%;ascent-override:89.2159%;descent-override:26.4746%;line-gap-override:0%}@font-face{font-family:"Space Grotesk Fallback: Helvetica Neue";src:local("Helvetica Neue");size-adjust:108.6667%;ascent-override:90.5521%;descent-override:26.8712%;line-gap-override:0%}@font-face{font-family:"Space Grotesk Fallback: Arial";src:local("Arial");size-adjust:109.6903%;ascent-override:89.7072%;descent-override:26.6204%;line-gap-override:0%}@font-face{font-family:"Space Grotesk Fallback: Noto Sans";src:local("Noto Sans");size-adjust:103.1646%;ascent-override:95.3816%;descent-override:28.3043%;line-gap-override:0%}@font-face{font-family:Space Grotesk;src:local("Space Grotesk Regular"),local("Space Grotesk"),url(../_fonts/8E98qU9JVIorMbSkrgwe7pqO6DBMHoz86e4AYYGnxZI-l64sh5gPy6yQQ0OtxcWRVFhAxU9zy81Wr0A6neeCiVg.woff2) format(woff2);font-display:swap;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-weight:400;font-style:normal}@font-face{font-family:Space Grotesk;src:local("Space Grotesk Regular"),local("Space Grotesk"),url(../_fonts/49gfA9tw3bvggfkYOLejhvX2KhcVawo-cvbz8VN2dCw-0qFzYXdaaz7T7lDKYOVqUuOLUlF3BtGYdgfDcIMsoGU.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,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-weight:400;font-style:normal}@font-face{font-family:"Instrument Serif";src:local("Instrument Serif Regular Italic"),local("Instrument Serif Italic"),url(../_fonts/svLEQR1NhVsKV3td5-qEdR3OcCyUB1uXwND4pueM24E-_ai0lJkLAXfhhHb6ZYIId61FSPBqXyGFmF0ftxqBrQ0.woff2) format(woff2);font-display:swap;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-weight:400;font-style:italic}@font-face{font-family:"Instrument Serif Fallback: Times New Roman";src:local("Times New Roman");size-adjust:83.9385%;ascent-override:117.9435%;descent-override:36.9318%;line-gap-override:0%}@font-face{font-family:"Instrument Serif Fallback: Georgia";src:local("Georgia");size-adjust:76.4916%;ascent-override:129.426%;descent-override:40.5273%;line-gap-override:0%}@font-face{font-family:"Instrument Serif Fallback: Noto Serif";src:local("Noto Serif");size-adjust:70.894%;ascent-override:139.6452%;descent-override:43.7273%;line-gap-override:0%}@font-face{font-family:"Instrument Serif";src:local("Instrument Serif Regular Italic"),local("Instrument Serif Italic"),url(../_fonts/ATc0VqIXMNIEgWU4XzMMCAWoJJ4G11FKjX38DInsfx0-bGhSBtjl_XEffZBInMi-gJZBMjmF_0UQsncnDV02cEc.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,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-weight:400;font-style:italic}@font-face{font-family:"Instrument Serif";src:local("Instrument Serif Regular"),local("Instrument Serif"),url(../_fonts/4VzVfti7A9XwdTiq16lO4lLfZTtYPcEFGbpaWWH4bDo-xec7qfdrgCQ5lsquFv1xibvLzatcl3q_vTUpC4HNYZA.woff2) format(woff2);font-display:swap;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-weight:400;font-style:normal}@font-face{font-family:"Instrument Serif";src:local("Instrument Serif Regular"),local("Instrument Serif"),url(../_fonts/MkzsVVsVa19hNhuifJxuUyjYXA8QsnSlohE8Xis64wI-b_OhvLchONOxbaZEOWy7B_wZN5OrU3apyvlSa5_nXOQ.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,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-weight:400;font-style:normal}:root{--bg:oklch(.155 .005 264);--bg-2:oklch(.185 .006 264);--panel:oklch(.205 .007 264);--panel-2:oklch(.245 .008 264);--line:oklch(.5 .012 264/.32);--line-2:oklch(.6 .012 264/.18);--ink:oklch(.97 .004 264);--ink-soft:oklch(.82 .007 264);--ink-dim:oklch(.64 .009 264);--ink-faint:oklch(.5 .009 264);--ember:oklch(.71 .04 245);--ember-hi:oklch(.79 .038 245);--sand:oklch(.8 .02 250);--on-ember:oklch(.18 .012 245);--bone:oklch(.93 .004 264);--bone-ink:oklch(.17 .006 264);--glow:oklch(.71 .04 245/.42);--glow-soft:oklch(.71 .04 245/.12);--font-display:"Instrument Serif", "Instrument Serif Fallback: Times New Roman", "Instrument Serif Fallback: Georgia", "Instrument Serif Fallback: Noto Serif",Georgia,serif;--font-sans:"Space Grotesk", "Space Grotesk Fallback: BlinkMacSystemFont", "Space Grotesk Fallback: Segoe UI", "Space Grotesk Fallback: Helvetica Neue", "Space Grotesk Fallback: Arial", "Space Grotesk Fallback: Noto Sans",ui-sans-serif,system-ui,sans-serif;--font-mono:"JetBrains Mono", "JetBrains Mono Fallback: Courier New", "JetBrains Mono Fallback: Roboto Mono", "JetBrains Mono Fallback: Noto Sans Mono",ui-monospace,monospace;--rail:76px;--gut:clamp(22px,5vw,72px);--maxw:1240px;--anim:1;--ease:cubic-bezier(.22,.61,.3,1);--eo:cubic-bezier(.16,1,.3,1);--grain-op:.04;--nav-bg:oklch(.155 .005 264/.74)}html[data-direction=steel]{--ember:oklch(.72 .062 240);--ember-hi:oklch(.8 .056 240);--sand:oklch(.82 .034 228);--glow:oklch(.72 .062 240/.46);--glow-soft:oklch(.72 .062 240/.14)}html[data-direction=graphite]{--bg:oklch(.15 0 0);--bg-2:oklch(.184 0 0);--panel:oklch(.205 0 0);--panel-2:oklch(.245 0 0);--line:oklch(.52 0 0/.32);--line-2:oklch(.62 0 0/.18);--ember:oklch(.76 .004 264);--ember-hi:oklch(.84 .004 264);--sand:oklch(.8 .004 264);--glow:oklch(.76 .004 264/.34);--glow-soft:oklch(.76 .004 264/.1);--nav-bg:oklch(.15 0 0/.76)}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html.lenis-on{scroll-behavior:auto}@media(prefers-reduced-motion:no-preference){html:not(.lenis-on){scroll-behavior:smooth}}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-weight:300;font-size:17px;line-height:1.6;letter-spacing:.005em;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background .6s var(--ease),color .6s var(--ease)}::-moz-selection{background:var(--ember);color:var(--on-ember)}::selection{background:var(--ember);color:var(--on-ember)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3,h4{margin:0;font-weight:400;line-height:1}p{margin:0}button{font:inherit}@media(hover:hover)and (pointer:fine){body.cursor-on,body.cursor-on *{cursor:none!important}}#field{z-index:0;opacity:calc(var(--anim)*.9)}#field,.grain{position:fixed;inset:0;pointer-events:none}.grain{z-index:1;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='a'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2' type='fractalNoise'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='.5'/%3E%3C/svg%3E");opacity:var(--grain-op);mix-blend-mode:overlay}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;z-index:90;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%);will-change:transform;mix-blend-mode:difference}.cursor-dot{width:6px;height:6px;background:#eee}.cursor-ring{width:38px;height:38px;border:1px solid oklch(.85 0 0);transition:width .25s var(--eo),height .25s var(--eo),border-color .25s,background .25s,opacity .25s}body.cursor-grow .cursor-ring{width:64px;height:64px;background:#dedede1f}body.cursor-text .cursor-ring{width:10px;height:10px}@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.cursor-dot,.cursor-ring{display:none}}.rail{position:fixed;left:0;top:0;bottom:0;width:var(--rail);z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:22px 0;border-right:1px solid var(--line-2);pointer-events:none}.rail .rail-bot,.rail .rail-mid,.rail .rail-top{pointer-events:auto}.rail .vlabel{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.35em;text-transform:uppercase;color:var(--ink-faint)}.rail .rail-mid{gap:0}.dot-nav,.rail .rail-mid{display:flex;flex-direction:column;align-items:center}.dot-nav{gap:16px}.dot-nav a{--d:7px;width:var(--d);height:var(--d);border-radius:50%;background:var(--line);position:relative;transition:background .3s,transform .3s}.dot-nav a:after{content:attr(data-label);position:absolute;left:18px;top:50%;transform:translateY(-50%) translate(-6px);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}.dot-nav a:hover:after{opacity:1;transform:translateY(-50%) translate(0)}.dot-nav a:hover{transform:scale(1.3);background:var(--ink-dim)}.dot-nav a.active{background:var(--ember);box-shadow:0 0 0 4px var(--glow-soft)}.rail .prog-num{font-family:var(--font-mono);font-size:11px;color:var(--ember);letter-spacing:.08em}@media(max-width:900px){.rail{display:none}}.topbar{position:fixed;top:0;left:var(--rail);right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:16px var(--gut);transition:background .4s,backdrop-filter .4s,padding .4s,border-color .4s;border-bottom:1px solid transparent}.topbar.scrolled{background:var(--nav-bg);-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);border-bottom-color:var(--line-2);padding-block:12px}@media(max-width:900px){.topbar{left:0}}.brand{font-family:var(--font-mono);font-size:13.5px;font-weight:600;letter-spacing:.02em;display:flex;align-items:center;gap:9px;white-space:nowrap}.brand .sig{color:var(--ember)}.brand .blink{width:8px;height:16px;background:var(--ember);display:inline-block;animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.bar-right{display:flex;align-items:center;gap:7px}.bar-links{display:flex;gap:2px}.bar-links a{font-family:var(--font-mono);font-size:12px;letter-spacing:.03em;color:var(--ink-dim);padding:8px 11px;border-radius:8px;transition:color .25s,background .25s}.bar-links a:hover{color:var(--ink);background:var(--panel)}@media(max-width:760px){.bar-links{display:none}}.chip{font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;border:1px solid var(--line);background:transparent;color:var(--ink-soft);padding:8px 12px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:border-color .25s,color .25s,background .25s,transform .25s}.chip b{color:var(--ember);font-weight:600}.chip:hover{border-color:var(--ember);color:var(--ink)}.chip.icon{width:38px;height:38px;display:inline-grid;place-items:center;padding:0;flex:none}.chip.icon:hover{transform:rotate(16deg)}.chip.icon svg{width:17px;height:17px}.chip.cta{background:var(--bone);color:var(--bone-ink);border-color:var(--bone);font-weight:600}.chip.cta:hover{background:#fcfcfc;border-color:#fcfcfc;transform:translateY(-1px)}.shell{position:relative;z-index:2;margin-left:var(--rail)}@media(max-width:900px){.shell{margin-left:0}}.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}section{position:relative;padding-block:clamp(86px,14vh,180px)}.eyebrow{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--ember);display:inline-flex;align-items:center;gap:12px}.eyebrow .idx{color:var(--ink-faint)}.eyebrow:before{content:"";width:24px;height:1px;background:var(--ember);opacity:.7}.sec-head{margin-bottom:clamp(40px,6vh,76px)}.sec-head h2{font-family:var(--font-display);font-size:clamp(42px,7.5vw,100px);letter-spacing:-.015em;margin-top:18px;text-wrap:balance}.sec-head h2 em{font-style:italic;color:var(--ember)}.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s var(--eo),transform .9s var(--eo)}.reveal.in{opacity:1;transform:none}.reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}.reveal[data-d="3"]{transition-delay:.24s}.reveal[data-d="4"]{transition-delay:.32s}@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important}}.stagger .w{display:inline-block;overflow:hidden;vertical-align:top}.stagger .w>span{display:inline-block;transform:translateY(110%);transition:transform .9s var(--eo)}.stagger.in .w>span{transform:none}.stagger .w:nth-child(2)>span{transition-delay:.06s}.stagger .w:nth-child(3)>span{transition-delay:.12s}.stagger .w:nth-child(4)>span{transition-delay:.18s}@media(prefers-reduced-motion:reduce){.stagger .w>span{transform:none!important}}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:92px;padding-bottom:0}.hero .role-row{display:flex;align-items:center;gap:16px;margin-bottom:clamp(20px,4vh,38px);flex-wrap:wrap}.hero .status{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);display:inline-flex;align-items:center;gap:9px}.hero .status .live{width:8px;height:8px;border-radius:50%;background:var(--ember);box-shadow:0 0 12px var(--glow);animation:pulse 2.4s var(--ease) infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.55);opacity:.55}}.hero h1{font-family:var(--font-display);font-size:clamp(74px,17vw,280px);line-height:.82;letter-spacing:-.025em}.hero h1 .ln{display:block}.hero h1 em{font-style:italic;color:var(--ember)}.hero-foot{margin-top:clamp(30px,6vh,56px);display:flex;flex-wrap:wrap;gap:30px 56px;align-items:flex-end;justify-content:space-between}.hero-foot p{max-width:44ch;font-size:clamp(16px,1.9vw,20px);color:var(--ink-soft);line-height:1.55;text-wrap:pretty}.hero-stats{display:flex;gap:clamp(28px,4vw,52px)}.hero-stats .s .n{font-family:var(--font-display);font-size:clamp(36px,5vw,58px);color:var(--ember);line-height:1}.hero-stats .s .k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);margin-top:8px}.marquee{margin-top:clamp(28px,5vh,50px);border-block:1px solid var(--line-2);overflow:hidden;padding-block:16px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}.marquee .track{display:flex;gap:0;white-space:nowrap;width:-moz-max-content;width:max-content;animation:scroll-x calc(38s/var(--anim, 1)) linear infinite}.marquee:hover .track{animation-play-state:paused}.marquee .it{font-family:var(--font-mono);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);padding:0 26px;display:inline-flex;align-items:center;gap:26px}.marquee .it:after{content:"✦";color:var(--ember);font-size:10px}@keyframes scroll-x{to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.marquee .track{animation:none}}.scroll-cue{position:absolute;right:var(--gut);bottom:26px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);display:flex;align-items:center;gap:11px}.scroll-cue .bar{width:1px;height:40px;background:var(--line);position:relative;overflow:hidden}.scroll-cue .bar:after{content:"";position:absolute;inset:0;background:var(--ember);animation:cue 2.3s var(--ease) infinite}@keyframes cue{0%{transform:translateY(-100%)}60%,to{transform:translateY(100%)}}.about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(36px,6vw,92px);align-items:center}@media(max-width:860px){.about-grid{grid-template-columns:1fr}}.about-lead{font-family:var(--font-display);font-size:clamp(28px,3.6vw,46px);line-height:1.18;letter-spacing:-.01em;color:var(--ink);margin-bottom:28px;text-wrap:pretty}.about-lead em{font-style:italic;color:var(--ember)}.about-body p{color:var(--ink-soft);font-size:clamp(16px,1.9vw,19px);line-height:1.66;text-wrap:pretty}.about-body p+p{margin-top:1em}.about-body strong{color:var(--ink);font-weight:500}.about-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:30px}.about-tags .tag{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.03em;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:8px 14px;transition:border-color .25s,color .25s,transform .25s,background .25s}.about-tags .tag:hover{border-color:var(--ember);color:var(--on-ember);background:var(--ember);transform:translateY(-2px)}.about-photo-wrap{position:relative}.about-photo{width:100%;aspect-ratio:4/5;border-radius:4px;overflow:hidden;border:1px solid var(--line);background:var(--panel)}.about-photo image-slot{width:100%;height:100%;display:block}.about-frame{position:absolute;inset:-10px;border:1px solid var(--ember);border-radius:4px;pointer-events:none;opacity:.5;transform:translate(10px,10px);transition:transform .6s var(--eo)}.about-photo-wrap:hover .about-frame{transform:translate(0)}.about-photo-tag{position:absolute;bottom:-14px;left:-14px;background:var(--ember);color:var(--on-ember);font-family:var(--font-mono);font-size:12px;font-weight:600;padding:9px 15px;border-radius:3px;box-shadow:0 12px 30px var(--glow-soft)}.constellation,.skills-stage{position:relative}.constellation{width:100%;height:clamp(440px,64vh,620px);border:1px solid var(--line-2);border-radius:6px;overflow:hidden;background:linear-gradient(180deg,var(--bg-2),transparent 60%)}.constellation svg{position:absolute;inset:0;width:100%;height:100%;display:block}.cn-edge{stroke:var(--line);stroke-width:1;transition:stroke .3s,stroke-width .3s,opacity .3s}.cn-edge.hot{stroke:var(--ember);stroke-width:1.4;opacity:.9}.cn-node{cursor:grab;transition:opacity .4s ease}.cn-node:active{cursor:grabbing}.cn-cluster-glow{pointer-events:none;transition:opacity .45s ease}.cn-node.dim{opacity:.1!important}.cn-edge.dim{opacity:.05!important}.cn-node circle.halo{fill:var(--glow-soft);opacity:0;transition:opacity .3s}.cn-node.hot circle.halo,.cn-node:hover circle.halo{opacity:1}.cn-node circle.core{fill:var(--panel);stroke:var(--line);stroke-width:1.5;transition:stroke .3s,fill .3s}.cn-node.g0 circle.core{stroke:var(--ember)}.cn-node.g1 circle.core{stroke:var(--sand)}.cn-node.g2 circle.core{stroke:#779fb3}.cn-node.g3 circle.core{stroke:#89a4a6}.cn-node.hot circle.core,.cn-node:hover circle.core{fill:var(--ember);stroke:var(--ember)}.cn-node text{font-family:var(--font-mono);font-size:11px;fill:var(--ink-soft);text-anchor:middle;pointer-events:none;transition:fill .3s}.cn-node.hot text,.cn-node:hover text{fill:var(--ink)}.cn-node text.lvl{font-size:9px;fill:var(--ink-faint)}.cn-legend{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:22px}.cn-legend .lg{font-family:var(--font-mono);font-size:12px;color:var(--ink-dim);display:inline-flex;align-items:center;gap:9px;cursor:pointer;transition:color .25s}.cn-legend .lg:hover{color:var(--ink)}.cn-legend .lg i{width:9px;height:9px;border-radius:50%}.cn-legend .lg.g0 i{background:var(--ember)}.cn-legend .lg.g1 i{background:var(--sand)}.cn-legend .lg.g2 i{background:#779fb3}.cn-legend .lg.g3 i{background:#89a4a6}.cn-hint{position:absolute;bottom:14px;right:16px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);pointer-events:none}.skills-fallback{display:none}@media(max-width:720px){.constellation{display:none}.skills-fallback{display:grid;grid-template-columns:1fr;gap:14px}.sf-group{border:1px solid var(--line);border-radius:8px;padding:20px;background:var(--panel)}.sf-group h3{font-family:var(--font-display);font-size:24px;margin-bottom:14px}.sf-row{display:flex;justify-content:space-between;font-size:14px;color:var(--ink-soft);padding:5px 0;border-bottom:1px solid var(--line-2)}.sf-row:last-child{border-bottom:none}.sf-row b{font-family:var(--font-mono);font-size:12px;color:var(--ember);font-weight:500}}.gitlog{position:relative;padding-left:8px}.gitlog:before{content:"";bottom:8px;background:var(--line)}.gitlog .branch,.gitlog:before{position:absolute;left:20px;top:8px;width:2px}.gitlog .branch{height:0;background:linear-gradient(var(--ember),var(--sand));box-shadow:0 0 12px var(--glow);border-radius:2px}.commit{position:relative;padding-left:52px;padding-bottom:52px}.commit:last-child{padding-bottom:0}.commit .node{position:absolute;left:5px;top:3px;width:16px;height:16px;border-radius:50%;background:var(--bg);border:2px solid var(--line);transition:border-color .4s,background .4s,box-shadow .4s}.commit.in .node{border-color:var(--ember);background:var(--ember);box-shadow:0 0 0 5px var(--glow-soft),0 0 16px var(--glow)}.commit .hash{font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);letter-spacing:.04em;display:inline-flex;align-items:center;gap:10px}.commit .hash .tag{border:1px solid var(--line);border-radius:4px;padding:2px 8px;font-size:10.5px}.commit .hash .tag,.commit .when{color:var(--ember);letter-spacing:.06em}.commit .when{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;margin-top:12px}.commit h3{font-family:var(--font-display);font-size:clamp(25px,3vw,36px);margin-top:7px}.commit .co{color:var(--ink-dim);font-size:14.5px;margin-top:3px}.commit .co b{color:var(--ink-soft);font-weight:500}.commit p{color:var(--ink-soft);margin-top:15px;max-width:62ch;line-height:1.62}.commit .stack{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.commit .stack span{font-family:var(--font-mono);font-size:11px;color:var(--ink-dim);border:1px solid var(--line-2);border-radius:5px;padding:4px 9px}.edu-list{border-top:1px solid var(--line-2)}.edu-row{display:grid;grid-template-columns:140px 1fr auto;gap:24px;align-items:baseline;padding:30px 8px;border-bottom:1px solid var(--line-2);position:relative;transition:background .4s}.edu-row:hover{background:var(--bg-2)}.edu-row .yr{font-family:var(--font-mono);font-size:12.5px;color:var(--ember);letter-spacing:.05em}.edu-row .deg h3{font-family:var(--font-display);font-size:clamp(24px,3vw,34px)}.edu-row .deg .sch{color:var(--ink-dim);font-size:14.5px;margin-top:5px}.edu-row .desc{color:var(--ink-soft);font-size:14.5px;max-width:34ch;text-align:right;line-height:1.5}@media(max-width:760px){.edu-row{grid-template-columns:1fr;gap:8px}.edu-row .desc{text-align:left;max-width:none}}.closer{text-align:center;padding-block:clamp(96px,17vh,210px)}.closer .eyebrow{justify-content:center}.closer h2{font-family:var(--font-display);font-size:clamp(50px,11vw,168px);letter-spacing:-.025em;margin-top:22px;line-height:.9}.closer h2 em{font-style:italic;color:var(--ember)}.cta-row{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:46px}.btn{font-family:var(--font-mono);font-size:14px;letter-spacing:.03em;padding:17px 30px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:11px;border:1px solid var(--line);background:transparent;color:var(--ink);transition:all .3s var(--ease);position:relative}.btn .ar{transition:transform .3s var(--ease)}.btn:hover .ar{transform:translate(4px)}.btn.primary{background:var(--bone);color:var(--bone-ink);border-color:var(--bone);font-weight:600}.btn.primary:hover{background:#fcfcfc;border-color:#fcfcfc;box-shadow:0 16px 46px #0006;transform:translateY(-3px)}.btn.ghost:hover{border-color:var(--ember);transform:translateY(-3px)}.contacts{display:flex;flex-wrap:wrap;gap:10px 34px;justify-content:center;margin-top:52px}.contacts a{font-family:var(--font-mono);font-size:13px;color:var(--ink-dim);display:inline-flex;align-items:center;gap:8px;transition:color .25s}.contacts a:hover{color:var(--ember)}.foot{border-top:1px solid var(--line-2);padding:32px var(--gut);margin-left:var(--rail);display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:11.5px;color:var(--ink-faint);position:relative;z-index:2}@media(max-width:900px){.foot{margin-left:0}}.cv-modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:24px}.cv-modal.open{display:flex}.cv-back{position:absolute;inset:0;background:#050302cc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .4s}.cv-modal.open .cv-back{opacity:1}.cv-sheet{position:relative;width:min(840px,100%);max-height:88vh;overflow-y:auto;background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:clamp(28px,4vw,54px);transform:translateY(22px) scale(.98);opacity:0;transition:transform .5s var(--eo),opacity .5s var(--eo);box-shadow:0 40px 120px #00000080}.cv-modal.open .cv-sheet{transform:none;opacity:1}.cv-sheet::-webkit-scrollbar{width:8px}.cv-sheet::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}.cv-x{position:sticky;top:0;float:right;margin:-8px -8px 0 0;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);cursor:pointer;font-size:15px;transition:border-color .25s,color .25s;z-index:2}.cv-x:hover{border-color:var(--ember);color:var(--ink)}.cv-head{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:24px}.cv-head .nm{font-family:var(--font-display);font-size:clamp(34px,5vw,54px)}.cv-head .rl{font-size:12.5px;color:var(--ember);letter-spacing:.08em;text-transform:uppercase;margin-top:6px}.cv-head .ct,.cv-head .rl{font-family:var(--font-mono)}.cv-head .ct{font-size:12px;color:var(--ink-dim);line-height:1.8;text-align:right}.cv-sec{margin-top:30px}.cv-sec h4{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ember);margin-bottom:16px}.cv-entry{display:grid;grid-template-columns:130px 1fr;gap:18px;padding-bottom:20px}.cv-entry .ey{font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);padding-top:3px}.cv-entry .et{font-size:16.5px;color:var(--ink);font-weight:500}.cv-entry .eo{font-size:14px;color:var(--ink-dim);margin-top:2px}.cv-entry .ed{font-size:14px;color:var(--ink-soft);margin-top:8px;line-height:1.55}.cv-skills{display:flex;flex-wrap:wrap;gap:9px}.cv-skills span{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);border:1px solid var(--line);border-radius:6px;padding:6px 12px}.cv-actions{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}@media(max-width:560px){.cv-entry{grid-template-columns:1fr;gap:4px}.cv-head .ct{text-align:left}}@media print{#field,.cursor-dot,.cursor-ring,.foot,.grain,.rail,.shell,.topbar,.twk-panel{display:none!important}.cv-modal{position:static;display:block!important;padding:0}.cv-back,.cv-x{display:none!important}.cv-sheet{box-shadow:none;border:none;max-height:none;opacity:1;transform:none;width:100%;color:#111}.cv-sheet,body{background:#fff}}.sr-only-focusable{position:fixed;top:-100px;left:12px;z-index:200;background:var(--ember);color:var(--on-ember);font-family:var(--font-mono);font-size:13px;padding:10px 16px;border-radius:6px;transition:top .2s var(--ease)}.sr-only-focusable:focus{top:12px}
