@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.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;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.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:500;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.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;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.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:600;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.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;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.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:700;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.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;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.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 Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_1126590d-module__t_ZudG__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_1126590d-module__t_ZudG__variable{--font-space-grotesk:"Space Grotesk", "Space Grotesk Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.0h-nw9_c8d~-_.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/26f284dcc38c84c0-s.10hk62x1-0d9n.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e7f32a39836f228-s.0bmyfaahigzds.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fa39153a3fc630ba-s.0-0ft90hthv3~.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6a5386fd6038edbe-s.16fk0g~ypa53a.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:400;font-display:swap;src:url(../media/051742360c26797e-s.p.0f97p8c3305p~.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:500;font-display:swap;src:url(../media/04c5164763c40239-s.0h-nw9_c8d~-_.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/26f284dcc38c84c0-s.10hk62x1-0d9n.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e7f32a39836f228-s.0bmyfaahigzds.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fa39153a3fc630ba-s.0-0ft90hthv3~.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6a5386fd6038edbe-s.16fk0g~ypa53a.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:500;font-display:swap;src:url(../media/051742360c26797e-s.p.0f97p8c3305p~.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:600;font-display:swap;src:url(../media/04c5164763c40239-s.0h-nw9_c8d~-_.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/26f284dcc38c84c0-s.10hk62x1-0d9n.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/7e7f32a39836f228-s.0bmyfaahigzds.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fa39153a3fc630ba-s.0-0ft90hthv3~.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6a5386fd6038edbe-s.16fk0g~ypa53a.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:600;font-display:swap;src:url(../media/051742360c26797e-s.p.0f97p8c3305p~.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:700;font-display:swap;src:url(../media/04c5164763c40239-s.0h-nw9_c8d~-_.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/26f284dcc38c84c0-s.10hk62x1-0d9n.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/7e7f32a39836f228-s.0bmyfaahigzds.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fa39153a3fc630ba-s.0-0ft90hthv3~.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6a5386fd6038edbe-s.16fk0g~ypa53a.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:700;font-display:swap;src:url(../media/051742360c26797e-s.p.0f97p8c3305p~.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 Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_56d44c58-module__Q_D1qG__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_56d44c58-module__Q_D1qG__variable{--font-jetbrains-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#0a0a0b;--bg-2:#0e0f11;--panel:#111316;--panel-2:#17191d;--line:#ffffff14;--line-strong:#ffffff24;--text:#e7e9ec;--text-dim:#9aa0a6;--text-muted:#6b7178;--accent:#22d3ee;--accent-2:#67e8f9;--accent-dim:#22d3ee24;--warn:#f97316;--ok:#84cc16;--grid:#ffffff09;--grid-strong:#ffffff0f;--shadow:0 30px 60px -20px #0009;--mono:var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, monospace;--sans:var(--font-space-grotesk), ui-sans-serif, system-ui, -apple-system, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f6f6f4;--bg-2:#ececea;--panel:#fff;--panel-2:#f0f0ee;--line:#00000014;--line-strong:#00000029;--text:#14171a;--text-dim:#4a5057;--text-muted:#7a8088;--accent:#0891b2;--accent-2:#0e7490;--accent-dim:#0891b21f;--grid:#0000000a;--grid-strong:#00000012;--shadow:0 30px 60px -20px #0000001f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}html,body{background:var(--bg);color:var(--text);margin:0;padding:0}body{font-family:var(--sans);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}.grid-bg{pointer-events:none;z-index:0;background-image:linear-gradient(to right, var(--grid) 1px, transparent 1px), linear-gradient(to bottom, var(--grid) 1px, transparent 1px);background-position:0 0;background-size:64px 64px;animation:90s linear infinite grid-drift;position:fixed;inset:0;overflow:hidden;-webkit-mask-image:radial-gradient(90% 70% at 50% 30%,#000 30%,#0000 90%);mask-image:radial-gradient(90% 70% at 50% 30%,#000 30%,#0000 90%)}.grid-bg:before{content:"";background-image:linear-gradient(to right, var(--grid-strong) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-strong) 1px, transparent 1px);background-position:0 0;background-size:256px 256px;animation:90s linear infinite grid-drift-strong;position:absolute;inset:0}@keyframes grid-drift{0%{background-position:0 0}to{background-position:64px 64px}}@keyframes grid-drift-strong{0%{background-position:0 0}to{background-position:256px 256px}}.container{z-index:1;max-width:1280px;margin:0 auto;padding:0 40px;position:relative}@media (max-width:700px){.container{padding:0 20px}}.nav{z-index:30;-webkit-backdrop-filter:blur(14px)saturate(140%);background:color-mix(in oklab, var(--bg) 78%, transparent);border-bottom:1px solid var(--line);position:sticky;top:0}.nav-inner{font-family:var(--mono);justify-content:space-between;align-items:center;padding:16px 0;font-size:13px;display:flex}.nav-logo{color:var(--text);align-items:center;gap:10px;font-weight:600;display:flex}.nav-logo .dot{background:var(--accent);width:10px;height:10px;box-shadow:0 0 12px var(--accent);border-radius:2px;animation:2.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.nav-links{gap:28px;display:flex}.nav-links a{color:var(--text-dim);transition:color .2s;position:relative}.nav-links a:hover{color:var(--accent)}.nav-links a:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .25s;position:absolute;bottom:-6px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover:after,.nav-links a.active:after{transform:scaleX(1)}.nav-links a.active{color:var(--text)}.nav-links a .num{color:var(--accent);margin-right:6px;font-size:11px}.nav-right{align-items:center;gap:16px;display:flex}@media (max-width:800px){.nav-links{display:none}}.theme-toggle{border:1px solid var(--line-strong);width:34px;height:34px;color:var(--text);background:0 0;border-radius:6px;justify-content:center;align-items:center;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.section{padding:120px 0 80px;position:relative}.section+.section{padding-top:80px}.section{scroll-margin-top:70px}#home{scroll-margin-top:0}.section-head{font-family:var(--mono);color:var(--text-dim);align-items:baseline;gap:16px;margin-bottom:48px;font-size:13px;display:flex}.section-head .idx{color:var(--accent)}.section-head h2{font-family:var(--sans);letter-spacing:-.02em;color:var(--text);margin:0;font-size:clamp(28px,4vw,44px);font-weight:600;line-height:1}.section-head .rule{background:var(--line);transform-origin:0;flex:1;height:1px;transition:transform .9s cubic-bezier(.2,.7,.2,1);position:relative;overflow:hidden;transform:scaleX(0)}.section-head.is-in .rule{transform:scaleX(1)}.section-head .rule:after{content:"";background:linear-gradient(90deg, transparent, var(--accent) 50%, transparent);opacity:0;pointer-events:none;width:35%;position:absolute;top:-1px;bottom:-1px;left:0;transform:translate(-120%)}.section-head.is-in .rule:after{animation:1.4s cubic-bezier(.2,.7,.2,1) .15s forwards rule-sweep}@keyframes rule-sweep{0%{opacity:0;transform:translate(-120%)}15%{opacity:1}85%{opacity:1}to{opacity:0;transform:translate(320%)}}.hero{padding:80px 0 100px;position:relative}.hero-grid{grid-template-columns:1.4fr 1fr;align-items:start;gap:64px;display:grid}@media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:40px}}.hero-tag{font-family:var(--mono);color:var(--accent);border:1px solid var(--line-strong);background:var(--accent-dim);border-radius:999px;align-items:center;gap:10px;padding:6px 12px;font-size:13px;display:inline-flex}.hero-tag .pulse-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%;animation:2s ease-in-out infinite pulse}.hero h1{font-family:var(--sans);letter-spacing:-.035em;color:var(--text);margin:24px 0 16px;font-size:clamp(40px,7vw,88px);font-weight:600;line-height:.95}.hero h1 .accent{background:linear-gradient(120deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.hero-sub{font-family:var(--mono);color:var(--text-dim);max-width:56ch;margin:0 0 18px;font-size:15px;line-height:1.6}.hero-chips{flex-wrap:wrap;gap:8px;margin:0 0 32px;display:flex}.hero-chip{font-family:var(--mono);border:1px solid var(--line-strong);color:var(--text-dim);background:var(--panel);letter-spacing:.02em;border-radius:999px;padding:6px 12px;font-size:12px;transition:border-color .2s,color .2s,background .2s,transform .2s}.hero-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);transform:translateY(-1px)}.rotating-text{vertical-align:bottom;color:var(--accent);font-weight:700;line-height:inherit;display:inline-block;position:relative;overflow:hidden}.rotating-text .rt-ghost{visibility:hidden;white-space:nowrap;display:inline-block}.rotating-text .rt-word{white-space:nowrap;will-change:transform, opacity;animation:.6s cubic-bezier(.2,.7,.2,1) rt-rise;display:inline-block;position:absolute;inset:0}@keyframes rt-rise{0%{opacity:0;transform:translateY(110%)}60%{opacity:1}to{opacity:1;transform:translateY(0)}}.hero-cta{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.btn{font-family:var(--mono);border:1px solid var(--line-strong);color:var(--text);background:0 0;border-radius:6px;align-items:center;gap:10px;padding:12px 20px;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);transform:translateY(-1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#001316;font-weight:600}.btn-primary:hover{background:var(--accent-2);color:#001316;border-color:var(--accent-2)}.terminal{border:1px solid var(--line-strong);background:var(--panel);font-family:var(--mono);box-shadow:var(--shadow);border-radius:10px;font-size:13px;overflow:hidden}.terminal-bar{border-bottom:1px solid var(--line);background:var(--panel-2);align-items:center;gap:8px;padding:10px 14px;display:flex}.terminal-bar .dot{background:var(--line-strong);border-radius:50%;width:11px;height:11px}.terminal-bar .title{color:var(--text-muted);margin-left:10px;font-size:12px}.terminal-body{padding:18px 18px 22px;line-height:1.75}.t-line{white-space:pre-wrap}.t-prompt{color:var(--accent)}.t-cmd{color:var(--text)}.t-out{color:var(--text-dim)}.t-key{color:var(--accent)}.t-str{color:#d4d4aa}.t-num{color:#f5a97f}.t-comment{color:var(--text-muted)}.cursor{background:var(--accent);vertical-align:text-bottom;width:8px;height:14px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin-top:60px;display:grid}.stat{border-right:1px solid var(--line);padding:28px 24px}.stat:last-child{border-right:none}.stat .num{font-family:var(--sans);letter-spacing:-.03em;color:var(--text);font-size:44px;font-weight:600;line-height:1}.stat .num .plus{color:var(--accent)}.stat .label{font-family:var(--mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:8px;font-size:12px}@media (max-width:800px){.stats{grid-template-columns:repeat(2,1fr)}.stat{border-bottom:1px solid var(--line)}.stat:nth-child(2){border-right:none}}.about-grid{grid-template-columns:1fr 1fr;gap:60px;display:grid}@media (max-width:900px){.about-grid{grid-template-columns:1fr;gap:40px}}.about-body p{color:var(--text-dim);margin:0 0 16px;font-size:16px;line-height:1.7}.about-body p strong{color:var(--text);font-weight:600}.about-meta{border:1px solid var(--line);background:var(--panel);font-family:var(--mono);border-radius:8px;padding:4px;font-size:13px}.about-meta .row{border-bottom:1px dashed var(--line);grid-template-columns:130px 1fr;gap:16px;padding:14px 16px;display:grid}.about-meta .row:last-child{border-bottom:none}.about-meta .k{color:var(--text-muted)}.about-meta .v{color:var(--text)}.about-meta .v.accent{color:var(--accent)}.skills-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}@media (max-width:1000px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.skills-grid{grid-template-columns:1fr}}.skill-cat{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:20px;transition:border-color .2s,transform .2s}.skill-cat:hover{border-color:var(--accent);transform:translateY(-2px)}.skill-cat h3{font-family:var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:8px;margin:0 0 16px;font-size:12px;font-weight:500;display:flex}.skill-cat h3 .marker{background:var(--accent);border-radius:1px;width:6px;height:6px}.skill-cat ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.skill-cat li{font-family:var(--mono);color:var(--text-dim);padding-left:16px;font-size:13px;position:relative}.skill-cat li:before{content:"→";color:var(--text-muted);position:absolute;left:0}.featured{flex-direction:column;gap:80px;display:flex}.feat-card{grid-template-columns:1fr 1fr;align-items:center;gap:60px;display:grid}.feat-card.reverse{grid-template-columns:1fr 1fr}.feat-card.reverse .feat-content{order:2}.feat-card.reverse .feat-device{order:1}@media (max-width:900px){.feat-card,.feat-card.reverse{grid-template-columns:1fr;gap:30px}.feat-card.reverse .feat-content{order:1}.feat-card.reverse .feat-device{order:2}}.feat-num{font-family:var(--mono);color:var(--accent);letter-spacing:.1em;margin-bottom:12px;font-size:12px}.feat-card h3{font-family:var(--sans);letter-spacing:-.02em;margin:0 0 8px;font-size:36px;font-weight:600;line-height:1.05}.feat-tag{font-family:var(--mono);color:var(--text-dim);margin:0 0 20px;font-size:13px}.feat-blurb{color:var(--text-dim);margin:0 0 20px;font-size:16px;line-height:1.65}.feat-techs{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.tech-chip{font-family:var(--mono);border:1px solid var(--line-strong);color:var(--text-dim);background:var(--panel-2);border-radius:4px;padding:4px 10px;font-size:11px}.expand-btn{font-family:var(--mono);color:var(--accent);background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:12px;display:inline-flex}.expand-btn .chev{transition:transform .25s;display:inline-block}.expand-btn.open .chev{transform:rotate(90deg)}.expand-content{grid-template-rows:0fr;transition:grid-template-rows .35s;display:grid;overflow:hidden}.expand-content.open{grid-template-rows:1fr}.expand-content>div{min-height:0}.expand-inner{background:var(--panel);border:1px solid var(--line);font-family:var(--mono);border-radius:8px;margin-top:18px;padding:18px;font-size:13px}.expand-inner .row{border-bottom:1px dashed var(--line);grid-template-columns:110px 1fr;gap:12px;padding:10px 0;display:grid}.expand-inner .row:last-child{border-bottom:none}.expand-inner .k{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;padding-top:2px;font-size:11px}.expand-inner .v{color:var(--text-dim);line-height:1.6}.feat-device{justify-content:center;display:flex;position:relative}.feat-device:before{content:"";background:radial-gradient(circle, var(--accent-dim) 0%, transparent 70%);z-index:-1;border-radius:50%;position:absolute;inset:-40px}.mock-screen{color:#fff;width:100%;height:100%;font-family:-apple-system,system-ui;position:relative;overflow:hidden}.proj-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (max-width:1000px){.proj-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.proj-grid{grid-template-columns:1fr}}.proj-card{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;min-height:200px;padding:22px;transition:all .25s;display:flex;position:relative;overflow:hidden}.proj-card:hover{border-color:var(--accent);transform:translateY(-3px)}.proj-card:after{content:"↗";color:var(--text-muted);font-family:var(--mono);transition:color .2s,transform .2s;position:absolute;top:18px;right:20px}.proj-card:hover:after{color:var(--accent);transform:translate(3px,-3px)}.proj-meta{font-family:var(--mono);color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px;font-size:11px}.proj-card h4{font-family:var(--sans);color:var(--text);letter-spacing:-.01em;margin:0 0 8px;font-size:20px;font-weight:600}.proj-card p{color:var(--text-dim);flex:1;margin:0 0 16px;font-size:14px;line-height:1.55}.proj-card .techs{font-family:var(--mono);color:var(--text-muted);flex-wrap:wrap;gap:4px;font-size:10px;display:flex}.proj-card .techs span:after{content:"·";color:var(--line-strong);margin:0 4px}.proj-card .techs span:last-child:after{content:""}.timeline{padding-left:28px;position:relative}.timeline:before{content:"";background:var(--line-strong);width:1px;position:absolute;top:6px;bottom:6px;left:6px}.exp-item{padding:0 0 40px;position:relative}.exp-item:last-child{padding-bottom:0}.exp-item:before{content:"";background:var(--bg);border:2px solid var(--accent);width:13px;height:13px;box-shadow:0 0 0 4px var(--bg), 0 0 12px var(--accent);border-radius:50%;position:absolute;top:4px;left:-28px}.exp-period{font-family:var(--mono);color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;font-size:12px}.exp-item h3{font-family:var(--sans);color:var(--text);letter-spacing:-.01em;margin:0 0 4px;font-size:22px;font-weight:600}.exp-role{font-family:var(--mono);color:var(--text-dim);margin:0 0 14px;font-size:13px}.exp-item ul{flex-direction:column;gap:8px;margin:0 0 14px;padding:0;list-style:none;display:flex}.exp-item li{color:var(--text-dim);padding-left:20px;font-size:14px;line-height:1.55;position:relative}.exp-item li:before{content:"▸";color:var(--accent);position:absolute;left:0}.exp-stack{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.testimonials{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}@media (max-width:900px){.testimonials{grid-template-columns:1fr}}.testi{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:24px;position:relative}.testi .quote-mark{font-family:var(--sans);color:var(--accent);font-size:56px;font-weight:700;line-height:1;position:absolute;top:-14px;left:18px}.testi p{color:var(--text-dim);margin:0 0 18px;font-size:14px;line-height:1.6}.testi .who{border-top:1px dashed var(--line);align-items:center;gap:12px;padding-top:14px;display:flex}.testi .avatar{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#001316;width:36px;height:36px;font-family:var(--mono);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.testi .name{font-family:var(--mono);color:var(--text);font-size:13px}.testi .role{font-family:var(--mono);color:var(--text-muted);font-size:11px}.contact-wrap{border:1px solid var(--line);background:var(--panel);text-align:center;border-radius:12px;padding:60px 40px;position:relative;overflow:hidden}.contact-wrap:before{content:"";background:radial-gradient(circle at 20% 20%, var(--accent-dim), transparent 50%), radial-gradient(circle at 80% 80%, var(--accent-dim), transparent 50%);pointer-events:none;position:absolute;inset:0}.contact-wrap>*{position:relative}.contact-tag{font-family:var(--mono);color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px;font-size:12px}.contact-wrap h2{font-family:var(--sans);letter-spacing:-.025em;color:var(--text);margin:0 0 16px;font-size:clamp(32px,5vw,56px);font-weight:600;line-height:1.05}.contact-wrap p{font-family:var(--mono);color:var(--text-dim);max-width:50ch;margin:0 auto 32px;font-size:14px}.contact-grid{text-align:left;grid-template-columns:repeat(2,1fr);gap:12px;max-width:640px;margin:0 auto 32px;display:grid}@media (max-width:700px){.contact-grid{grid-template-columns:1fr}}.contact-item{border:1px solid var(--line);background:var(--bg);font-family:var(--mono);border-radius:8px;align-items:center;gap:14px;padding:14px 18px;font-size:13px;transition:border-color .2s,transform .2s;display:flex}.contact-item:hover{border-color:var(--accent);transform:translateY(-2px)}.contact-item .ic{background:var(--accent-dim);width:32px;height:32px;color:var(--accent);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.contact-item .k{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.contact-item .v{color:var(--text)}.footer{border-top:1px solid var(--line);font-family:var(--mono);color:var(--text-muted);margin-top:80px;padding:40px 0 60px;font-size:12px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer .signal{color:var(--accent);align-items:center;gap:8px;display:inline-flex}.footer .signal .dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%;animation:2s ease-in-out infinite pulse}::selection{background:var(--accent);color:#001316}.reveal{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 70ms);will-change:opacity, transform;transform:translateY(20px)}.reveal.seen{opacity:1;transform:translateY(0)}@media (hover:hover) and (pointer:fine){html.has-custom-cursor,html.has-custom-cursor *{cursor:none!important}}.cursor-root{pointer-events:none;z-index:9999;position:fixed;top:0;left:0}.cursor-dot,.cursor-ring{pointer-events:none;will-change:transform, width, height, background;border-radius:50%;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-dot{background:var(--accent);width:6px;height:6px;transition:opacity .2s,background .2s}.cursor-ring{border:1px solid var(--accent);width:36px;height:36px;font-family:var(--mono);color:#001316;letter-spacing:.04em;text-transform:lowercase;background:0 0;justify-content:center;align-items:center;font-size:0;transition:width .25s,height .25s,background .25s,border-color .25s,opacity .2s;display:flex;overflow:hidden}.cursor-ring .cursor-label{opacity:0;white-space:nowrap;font-weight:600;transition:opacity .2s,transform .2s;transform:scale(.8)}.cursor-root[data-variant=link] .cursor-ring{background:color-mix(in oklab, var(--accent) 18%, transparent);width:56px;height:56px}.cursor-root[data-variant=expand] .cursor-ring{background:var(--accent);border-color:var(--accent);width:64px;height:64px}.cursor-root[data-variant=view] .cursor-ring{background:var(--accent);border-color:var(--accent);width:78px;height:78px}.cursor-root[data-variant=invert]{mix-blend-mode:difference}.cursor-root[data-variant=invert] .cursor-ring{background:#fff;border-color:#fff;width:120px;height:120px}.cursor-root[data-variant=link] .cursor-dot,.cursor-root[data-variant=expand] .cursor-dot,.cursor-root[data-variant=view] .cursor-dot,.cursor-root[data-variant=invert] .cursor-dot,.cursor-root[data-variant=invert] .cursor-label{opacity:0}.cursor-root[data-variant=view] .cursor-ring,.cursor-root[data-variant=expand] .cursor-ring{font-size:11px}.cursor-root[data-variant=view] .cursor-label,.cursor-root[data-variant=expand] .cursor-label{opacity:1;transform:scale(1)}.cursor-root.is-pressed .cursor-ring{transform:translate(-50%,-50%)scale(.85)}.cursor-root.is-hidden{opacity:0}.terminal{position:relative}.terminal:after{content:"";pointer-events:none;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%), color-mix(in oklab, var(--accent) 14%, transparent), transparent 70%);opacity:0;border-radius:inherit;transition:opacity .3s;position:absolute;inset:0}.terminal:hover:after{opacity:1}.feat-device{perspective:1200px}.tilt-wrap{transform-style:preserve-3d;will-change:transform;transition:transform .5s cubic-bezier(.2,.7,.2,1)}.tilt-wrap.is-tilting{transition:transform .12s linear}.call-avatar{position:relative}.call-avatar:before,.call-avatar:after{content:"";opacity:0;border:2px solid #4ade80;border-radius:50%;animation:2.2s ease-out infinite call-ring;position:absolute;inset:0}.call-avatar:after{animation-delay:1.1s}@keyframes call-ring{0%{opacity:.7;transform:scale(1)}80%{opacity:0;transform:scale(1.8)}to{opacity:0;transform:scale(1.8)}}.call-accept{animation:1.6s ease-in-out infinite call-bob}@keyframes call-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.timeline{position:relative}.timeline:before{height:calc(var(--p,0) * 100%);transition:height .15s linear;bottom:auto}.exp-item:before{transition:transform .3s,box-shadow .3s}.exp-item.seen:before{animation:.5s cubic-bezier(.2,1.2,.4,1) both dot-pop}@keyframes dot-pop{0%{transform:scale(0)}60%{transform:scale(1.25)}to{transform:scale(1)}}.contact-wrap:before{background:radial-gradient(circle at var(--ax,20%) var(--ay,20%), var(--accent-dim), transparent 50%), radial-gradient(circle at var(--bx,80%) var(--by,80%), var(--accent-dim), transparent 50%);animation:14s ease-in-out infinite alternate contact-drift}@keyframes contact-drift{0%{--ax:18%;--ay:22%;--bx:82%;--by:78%}50%{--ax:38%;--ay:60%;--bx:62%;--by:30%}to{--ax:22%;--ay:78%;--bx:78%;--by:22%}}@property --ax{syntax:"<percentage>";inherits:true;initial-value:20%}@property --ay{syntax:"<percentage>";inherits:true;initial-value:20%}@property --bx{syntax:"<percentage>";inherits:true;initial-value:80%}@property --by{syntax:"<percentage>";inherits:true;initial-value:80%}.magnetic{will-change:transform;transition:transform .25s cubic-bezier(.2,.7,.2,1)}.term-fab{z-index:1000;border:1px solid var(--line-strong);background:linear-gradient(135deg, var(--panel) 0%, var(--panel-2) 100%);width:56px;height:56px;color:var(--text);box-shadow:0 12px 30px -8px #0009, 0 0 0 1px var(--line);cursor:pointer;border-radius:16px;justify-content:center;align-items:center;transition:transform .25s cubic-bezier(.2,.7,.2,1),border-color .25s,box-shadow .25s,background .25s;display:inline-flex;position:fixed;bottom:24px;right:24px}.term-fab:hover{border-color:var(--accent);box-shadow:0 18px 40px -10px #000000b3, 0 0 0 1px var(--accent), 0 0 20px color-mix(in oklab, var(--accent) 35%, transparent);transform:translateY(-3px)scale(1.04)}.term-fab:active{transform:translateY(-1px)scale(1.01)}.term-fab.is-open{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 24px color-mix(in oklab, var(--accent) 40%, transparent)}.term-fab-glyph{font-family:var(--mono);color:var(--accent);letter-spacing:-.02em;font-size:18px;font-weight:700;line-height:1}.term-fab-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%;animation:2s ease-in-out infinite pulse;position:absolute;top:10px;right:10px}.term-overlay{z-index:999;-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;background:#0000008c;background:lab(0% 0 0/.55);justify-content:center;align-items:center;padding:24px;transition:opacity .22s;display:flex;position:fixed;inset:0}.term-overlay.is-open{opacity:1;pointer-events:auto}.term-window{border:1px solid var(--line-strong);width:min(760px,100%);height:min(520px,80vh);box-shadow:0 30px 80px -20px #000000b3, 0 0 0 1px var(--line);opacity:0;background:#0d1014;border-radius:12px;flex-direction:column;transition:transform .28s cubic-bezier(.2,.9,.3,1.05),opacity .22s;display:flex;overflow:hidden;transform:translateY(20px)scale(.97)}.term-overlay.is-open .term-window{opacity:1;transform:translateY(0)scale(1)}[data-theme=light] .term-window{background:#1c1f23;border-color:#ffffff1a}.term-bar{-webkit-user-select:none;user-select:none;background:linear-gradient(#2b2f34 0%,#23262a 100%);border-bottom:1px solid #ffffff0f;align-items:center;gap:8px;padding:10px 14px;display:flex;position:relative}.term-light{border:none;border-radius:50%;width:12px;height:12px;padding:0;display:inline-block;box-shadow:inset 0 0 0 1px #00000040}.term-light.red{cursor:pointer;background:#ff5f57}.term-light.red:hover{background:#ff7e78}.term-light.yellow{background:#febc2e}.term-light.green{background:#28c840}.term-title{font-family:var(--mono);color:#ffffff8c;pointer-events:none;font-size:12px;position:absolute;left:50%;transform:translate(-50%)}.term-body{font-family:var(--mono);color:#d6dae0;cursor:text;flex:1;padding:16px 18px 18px;font-size:13px;line-height:1.6;overflow-y:auto}.term-body::-webkit-scrollbar{width:8px}.term-body::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:4px}.term-body::-webkit-scrollbar-thumb:hover{background:#ffffff29}.ta-line{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;white-space:pre-wrap;word-break:break-word;margin:0}.ta-line+.ta-line{margin-top:2px}.ta-out{color:#d6dae0}.ta-info{color:var(--accent)}.ta-err{color:#f97373}.ta-prompt-user{color:var(--accent);font-weight:600}.ta-prompt-sep{color:#ffffff59}.ta-prompt-path{color:#84cc16}.ta-prompt-sym{color:#ffffff80}.ta-cmd-echo{color:#fff}.term-input-line{align-items:center;gap:0;margin-top:6px;display:flex}.term-input{color:#fff;font-family:inherit;font-size:inherit;line-height:inherit;caret-color:var(--accent);background:0 0;border:none;outline:none;flex:1;margin:0;padding:0}@media (max-width:600px){.term-fab{width:50px;height:50px;bottom:16px;right:16px}.term-overlay{padding:12px}.term-window{height:min(620px,90vh)}.term-title{display:none}}
