@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/93a6e477e1480c92-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:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7e0cf6c760983e7-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:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9d5a263311222317-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:Bricolage Grotesque Fallback;src:local("Arial");ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.00%;size-adjust:105.43%}.__className_a4bae9{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}.__variable_a4bae9{--f-bricolage:"Bricolage Grotesque","Bricolage Grotesque Fallback"}@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/_next/static/media/d9fef5bf2f64cf9a-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:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/_next/static/media/de42cfb9a3b980ae-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:Figtree Fallback;src:local("Arial");ascent-override:94.32%;descent-override:24.82%;line-gap-override:0.00%;size-adjust:100.72%}.__className_2ca027{font-family:Figtree,Figtree Fallback;font-style:normal}.__variable_2ca027{--f-figtree:"Figtree","Figtree 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{--f-mono:"JetBrains Mono","JetBrains Mono Fallback"}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-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/4da3161b738b07dd-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/af4bf8399d1aacdf-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_eb41fe{font-family:Fraunces,Fraunces Fallback;font-style:normal}.__variable_eb41fe{--f-fraunces:"Fraunces","Fraunces Fallback"}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/88da59c891d37117-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:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/1e377d93cbdd6b44-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/36d711d427a06e51-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/f1f7cdf240180e28-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:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/55fbdf033607a0e1-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:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/b6a6f0b43d027304-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:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/9cf9c6e84ed13b5e-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:Source Sans\ 3 Fallback;src:local("Arial");ascent-override:109.21%;descent-override:42.66%;line-gap-override:0.00%;size-adjust:93.76%}.__className_1fdbab{font-family:Source Sans\ 3,Source Sans\ 3 Fallback;font-style:normal}.__variable_1fdbab{--f-source:"Source Sans 3","Source Sans 3 Fallback"}@font-face{font-family:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/1d4eaed977255102-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:Sora;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f3f7e95f2dbc4fe4-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:Sora Fallback;src:local("Arial");ascent-override:85.29%;descent-override:25.50%;line-gap-override:0.00%;size-adjust:113.73%}.__className_ce197d{font-family:Sora,Sora Fallback;font-style:normal}.__variable_ce197d{--f-sora:"Sora","Sora Fallback"}@font-face{font-family:Onest;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7bb4ad34d7ebf0d7-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:Onest;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c1f853e4758089a8-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Onest;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4c4943bfceab8361-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:Onest;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/6e50af2f4c313e23-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:Onest Fallback;src:local("Arial");ascent-override:92.20%;descent-override:28.99%;line-gap-override:0.00%;size-adjust:105.20%}.__className_d878d4{font-family:Onest,Onest Fallback;font-style:normal}.__variable_d878d4{--f-onest:"Onest","Onest Fallback"}:root{--bg:#faf9f7;--panel:#ffffff;--panel-2:#f1efeb;--ink:#1c1f26;--soft:#4e5563;--faint:#878da0;--line:#e5e3de;--accent:#a86118;--on-accent:#ffffff;--shadow:0 14px 40px -18px rgba(28,31,38,0.16);--shadow-lift:0 22px 52px -20px rgba(28,31,38,0.22);--ease:cubic-bezier(0.22,1,0.36,1)}@media (prefers-color-scheme:dark){:root{--bg:#0b0e16;--panel:#12161f;--panel-2:#1a2030;--ink:#e8eaef;--soft:#a9b0bf;--faint:#737b8f;--line:#232b3d;--accent:#e0a458;--on-accent:#0b0e16;--shadow:0 14px 40px -18px rgba(0,0,0,0.5);--shadow-lift:0 22px 52px -20px rgba(0,0,0,0.62),0 0 46px -18px color-mix(in srgb,var(--accent) 45%,transparent)}}:root[data-theme=light]{--bg:#faf9f7;--panel:#ffffff;--panel-2:#f1efeb;--ink:#1c1f26;--soft:#4e5563;--faint:#878da0;--line:#e5e3de;--accent:#a86118;--on-accent:#ffffff;--shadow:0 14px 40px -18px rgba(28,31,38,0.16);--shadow-lift:0 22px 52px -20px rgba(28,31,38,0.22)}:root[data-theme=dark]{--bg:#0b0e16;--panel:#12161f;--panel-2:#1a2030;--ink:#e8eaef;--soft:#a9b0bf;--faint:#737b8f;--line:#232b3d;--accent:#e0a458;--on-accent:#0b0e16;--shadow:0 14px 40px -18px rgba(0,0,0,0.5);--shadow-lift:0 22px 52px -20px rgba(0,0,0,0.62),0 0 46px -18px color-mix(in srgb,var(--accent) 45%,transparent)}:root[data-scheme=forest]{--accent:#2e7d52;--on-accent:#ffffff}@media (prefers-color-scheme:dark){:root[data-scheme=forest]{--accent:#74c69d;--on-accent:#14171e}}:root[data-scheme=forest][data-theme=light]{--accent:#2e7d52;--on-accent:#ffffff}:root[data-scheme=forest][data-theme=dark]{--accent:#74c69d;--on-accent:#14171e}:root[data-scheme=indigo]{--accent:#4f5bd5;--on-accent:#ffffff}@media (prefers-color-scheme:dark){:root[data-scheme=indigo]{--accent:#97a0ff;--on-accent:#14171e}}:root[data-scheme=indigo][data-theme=light]{--accent:#4f5bd5;--on-accent:#ffffff}:root[data-scheme=indigo][data-theme=dark]{--accent:#97a0ff;--on-accent:#14171e}:root[data-scheme=rose]{--accent:#b54a5e;--on-accent:#ffffff}@media (prefers-color-scheme:dark){:root[data-scheme=rose]{--accent:#e8909f;--on-accent:#14171e}}:root[data-scheme=rose][data-theme=light]{--accent:#b54a5e;--on-accent:#ffffff}:root[data-scheme=rose][data-theme=dark]{--accent:#e8909f;--on-accent:#14171e}:root[data-scheme=graphite]{--accent:#3a3f4a;--on-accent:#ffffff}@media (prefers-color-scheme:dark){:root[data-scheme=graphite]{--accent:#c8cbd4;--on-accent:#14171e}}:root[data-scheme=graphite][data-theme=light]{--accent:#3a3f4a;--on-accent:#ffffff}:root[data-scheme=graphite][data-theme=dark]{--accent:#c8cbd4;--on-accent:#14171e}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{--font-display:var(--f-bricolage);--font-body:var(--f-figtree);--font-mono:var(--f-mono);background:var(--bg);color:var(--ink);font-family:var(--font-body),system-ui,-apple-system,sans-serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color .4s ease}:root[data-font=editorial] body{--font-display:var(--f-fraunces);--font-body:var(--f-source)}:root[data-font=round] body{--font-display:var(--f-sora);--font-body:var(--f-onest)}body:before{content:"";position:fixed;inset:-20%;z-index:-2;pointer-events:none;background:radial-gradient(620px 460px at 18% 12%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 70%),radial-gradient(720px 540px at 85% 85%,color-mix(in srgb,var(--accent) 5%,transparent),transparent 70%);animation:drift 36s ease-in-out infinite alternate}@keyframes drift{to{transform:translate(3%,-2%) scale(1.04)}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) body{background:linear-gradient(180deg,#121830,#0c101c 34%,#0b0e16 62%,#0d1019) fixed}:root:not([data-theme=light]) body:before{background:radial-gradient(900px 640px at 16% 4%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 66%),radial-gradient(1000px 720px at 88% 8%,rgba(99,106,235,.2),transparent 68%),radial-gradient(880px 680px at 80% 92%,rgba(46,160,164,.16),transparent 70%),radial-gradient(700px 540px at 4% 82%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%)}}:root[data-theme=dark] body{background:linear-gradient(180deg,#121830,#0c101c 34%,#0b0e16 62%,#0d1019) fixed}:root[data-theme=dark] body:before{background:radial-gradient(900px 640px at 16% 4%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 66%),radial-gradient(1000px 720px at 88% 8%,rgba(99,106,235,.2),transparent 68%),radial-gradient(880px 680px at 80% 92%,rgba(46,160,164,.16),transparent 70%),radial-gradient(700px 540px at 4% 82%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%)}body:after{content:"";z-index:100;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.stars,body:after{position:fixed;inset:0;pointer-events:none}.stars{z-index:-1;opacity:0;transition:opacity .8s ease}.stars:after,.stars:before{content:"";position:absolute;inset:0}.stars:before{background-image:radial-gradient(1.6px 1.6px at 11% 18%,rgba(255,255,255,.95) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 34% 8%,rgba(255,255,255,.75) 50%,transparent 51%),radial-gradient(1.8px 1.8px at 58% 26%,rgba(244,214,167,.95) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 76% 12%,rgba(255,255,255,.7) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 91% 32%,rgba(255,255,255,.85) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 22% 44%,rgba(255,255,255,.65) 50%,transparent 51%),radial-gradient(1px 1px at 47% 38%,rgba(255,255,255,.55) 50%,transparent 51%),radial-gradient(1.3px 1.3px at 68% 45%,rgba(200,210,255,.7) 50%,transparent 51%);background-size:460px 460px;animation:twinkle 6.5s ease-in-out infinite alternate}.stars:after{background-image:radial-gradient(1.2px 1.2px at 18% 62%,rgba(255,255,255,.65) 50%,transparent 51%),radial-gradient(1.7px 1.7px at 45% 78%,rgba(244,214,167,.85) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 66% 54%,rgba(255,255,255,.6) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 84% 70%,rgba(255,255,255,.75) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 8% 88%,rgba(200,210,255,.6) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 52% 94%,rgba(255,255,255,.65) 50%,transparent 51%),radial-gradient(1px 1px at 30% 70%,rgba(255,255,255,.5) 50%,transparent 51%),radial-gradient(1px 1px at 94% 86%,rgba(255,255,255,.55) 50%,transparent 51%);background-size:620px 620px;animation:twinkle 9s ease-in-out infinite alternate-reverse}@keyframes twinkle{0%{opacity:.35}to{opacity:1}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .stars{opacity:1}}:root[data-theme=dark] .stars{opacity:1}:root[data-theme=light] .stars{opacity:0}::selection{background:var(--accent);color:var(--on-accent)}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}h1,h2,h3{font-family:var(--font-display),var(--font-body),sans-serif;text-wrap:balance}.mono{font-family:var(--font-mono),ui-monospace,Menlo,monospace}.wrap{max-width:1100px;margin:0 auto;padding:0 24px}.progress{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:0 0;transform:scaleX(0);background:var(--accent);z-index:60}.nav-shell{position:-webkit-sticky;position:sticky;top:14px;z-index:50;display:flex;justify-content:center;padding:0 16px}nav{display:flex;align-items:center;gap:4px;background:color-mix(in srgb,var(--panel) 82%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);padding:7px 9px;box-shadow:var(--shadow)}nav,nav .brand{border-radius:999px}nav .brand{font-family:var(--font-display),sans-serif;font-weight:700;font-size:.9rem;padding:6px 14px;background:var(--ink);color:var(--bg);transition:background .2s}nav .brand:hover{background:var(--accent);color:var(--on-accent)}nav a.link{font-size:.88rem;font-weight:600;color:var(--soft);padding:6px 12px;border-radius:999px;transition:background .2s,color .2s}nav a.link:hover{background:var(--panel-2);color:var(--ink)}@media (max-width:640px){nav a.optional{display:none}}.theme-btn{background:var(--panel-2);border:1px solid var(--line);color:var(--ink);width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:.95rem;display:grid;place-items:center;line-height:1;transition:border-color .2s,color .2s}.theme-btn:hover{border-color:var(--accent);color:var(--accent)}.hero{position:relative;padding:100px 0 48px;display:flex;flex-direction:column;align-items:flex-start;gap:22px}.contours{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,transparent,#000 18%,#000 72%,transparent);mask-image:linear-gradient(180deg,transparent,#000 18%,#000 72%,transparent)}.ticker{font-size:.92rem;color:var(--soft);display:flex;align-items:baseline;gap:9px;min-height:1.6em}.ticker .prompt{color:var(--accent);font-weight:700}.type{color:var(--ink);font-weight:600}.caret{display:inline-block;width:8px;height:1em;margin-left:3px;background:var(--accent);vertical-align:text-bottom;animation:blink 1.1s steps(2) infinite}@keyframes blink{50%{opacity:0}}.greeting{font-family:var(--font-mono),monospace;font-size:.8rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.hero h1{font-size:clamp(2.3rem,6vw,4.4rem);font-weight:720;line-height:1.05;letter-spacing:-.02em;max-width:17ch}.hero h1 em{font-style:normal;color:var(--accent);background:linear-gradient(color-mix(in srgb,var(--accent) 16%,transparent),color-mix(in srgb,var(--accent) 16%,transparent)) no-repeat 0 88% /100% .14em}.hero .sub{max-width:58ch;color:var(--soft);font-size:1.1rem}.cta-row{display:flex;gap:14px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;border-radius:999px;font-weight:700;font-size:.95rem;border:1.5px solid transparent;transition:transform .35s var(--ease),box-shadow .35s,background .2s,color .2s,border-color .2s}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.btn:active{transform:translateY(0)}.btn.solid{background:var(--ink);color:var(--bg)}.btn.solid:hover{background:var(--accent);color:var(--on-accent)}.btn.ghost{border-color:var(--line);color:var(--ink);background:var(--panel)}.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}.pop{opacity:0;transform:translateY(16px);animation:pop-in .8s var(--ease) forwards;animation-delay:var(--d,0s)}@keyframes pop-in{to{opacity:1;transform:none}}.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;padding:26px 0 0}@media (max-width:900px){.bento{grid-template-columns:repeat(2,1fr)}}@media (max-width:540px){.bento{grid-template-columns:1fr}}.tile{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px;min-height:136px;display:flex;flex-direction:column;justify-content:space-between;gap:10px;transition:transform .35s var(--ease),box-shadow .35s,border-color .2s}.card:after,.tile:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s ease;background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--accent) 9%,transparent),transparent 65%)}.card:hover:after,.tile:hover:after{opacity:1}.tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.tile.wide{grid-column:span 2}@media (max-width:540px){.tile.wide{grid-column:span 1}}.tile .big{font-family:var(--font-display),sans-serif;font-size:1.9rem;font-weight:700;line-height:1.1}.tile .label{color:var(--faint);font-size:.85rem;font-weight:600}.tile .clock{font-family:var(--font-mono),monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:600}.tile a.tile-link{font-weight:700;color:var(--accent)}.tile a.tile-link:hover{text-decoration:underline;text-underline-offset:3px}section{padding:96px 0 0}.sec-head{display:flex;align-items:baseline;gap:18px;margin-bottom:34px;flex-wrap:wrap}.sec-head h2{font-size:clamp(1.6rem,4vw,2.3rem);font-weight:700;position:relative;padding-bottom:10px}.sec-head h2:after{content:"";position:absolute;left:0;bottom:0;height:3px;width:44px;border-radius:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease) .2s}.sec-head.in h2:after{transform:scaleX(1)}.sec-head .count{font-family:var(--font-mono),monospace;color:var(--faint);font-size:.85rem}.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s var(--ease);transition-delay:var(--d,0s)}.reveal.in{opacity:1;transform:none}.projects{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px}@media (max-width:800px){.projects{grid-template-columns:1fr}}.card{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:30px;display:flex;flex-direction:column;gap:12px;transition:transform .35s var(--ease),box-shadow .35s,border-color .25s}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:2.5px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 20%,transparent));transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}.card:hover:before{transform:scaleX(1)}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift);border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.card.spotlight{grid-column:span 2;border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}@media (max-width:800px){.card.spotlight{grid-column:span 1}}.card h3{font-size:1.3rem;font-weight:700;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.badge{font-family:var(--font-mono),monospace;font-size:.58rem;font-weight:700;letter-spacing:.14em;color:var(--on-accent);background:var(--accent);padding:4px 10px;border-radius:999px;white-space:nowrap}.card .role{color:var(--faint);font-size:.85rem;margin-top:-6px}.card p{color:var(--soft);max-width:70ch}.tag-row{display:flex;gap:8px;flex-wrap:wrap}.tag{font-family:var(--font-mono),monospace;font-size:.7rem;letter-spacing:.03em;padding:4px 11px;border-radius:999px;background:var(--panel-2);color:var(--soft);border:1px solid var(--line)}.card .links{display:flex;gap:18px;flex-wrap:wrap}.card .links a{font-weight:700;font-size:.9rem;color:var(--accent)}.card .links a:hover{text-decoration:underline;text-underline-offset:3px}.tl{list-style:none;position:relative;padding-left:34px}.tl:before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:2px;border-radius:2px;background:linear-gradient(var(--accent),var(--line));transform-origin:top;transform:scaleY(0);transition:transform 1s ease .15s}.tl.in:before{transform:scaleY(1)}.tl>li{position:relative;padding-bottom:46px}.tl>li:last-child{padding-bottom:0}.tl>li:before{content:"";position:absolute;left:-33px;top:7px;width:14px;height:14px;border-radius:50%;background:var(--bg);border:3px solid var(--faint);transition:border-color .3s}.tl>li:first-child:before,.tl>li:hover:before{border-color:var(--accent)}.tl>li:first-child:before{background:var(--accent)}.tl .when{font-family:var(--font-mono),monospace;font-size:.75rem;letter-spacing:.08em;color:var(--faint);text-transform:uppercase}.tl h3{font-size:1.15rem;font-weight:700;margin-top:4px}.tl .co{color:var(--accent)}.tl ul{margin:10px 0 0;padding-left:18px;color:var(--soft);max-width:66ch}.tl ul li{padding-bottom:6px}.skill-cloud{display:flex;flex-wrap:wrap;gap:10px;max-width:760px}.skill-cloud .tag{font-size:.8rem;padding:7px 15px;transition:border-color .2s,color .2s}.skill-cloud .tag:hover{border-color:var(--accent);color:var(--accent)}.edu{display:grid;grid-gap:18px;gap:18px;max-width:62ch;margin-top:34px}.edu>div{padding-left:16px;border-left:3px solid var(--line);border-radius:2px}.edu h3{font-size:1.02rem;font-weight:700}.edu p{color:var(--faint);font-size:.9rem}.contact-box{margin-top:96px;background:var(--panel);border:1px solid var(--line);border-radius:28px;padding:clamp(36px,6vw,68px);text-align:center;box-shadow:var(--shadow)}.contact-box h2{font-size:clamp(1.7rem,4.5vw,2.7rem);font-weight:700;max-width:24ch;margin:0 auto}.contact-box p{margin:16px auto 0;color:var(--soft);max-width:52ch}.contact-box .cta-row{margin-top:30px;justify-content:center}footer{padding:46px 0 50px}footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--faint);font-size:.82rem}.fab{position:fixed;bottom:26px;right:26px;z-index:70;width:52px;height:52px;border-radius:50%;background:var(--ink);color:var(--bg);border:none;cursor:pointer;display:grid;place-items:center;box-shadow:var(--shadow-lift);transition:transform .35s var(--ease),background .2s}.fab:hover{transform:translateY(-3px)}.fab:hover,.fab[aria-expanded=true]{background:var(--accent);color:var(--on-accent)}.customizer{position:fixed;bottom:92px;right:26px;z-index:70;width:272px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow-lift);transform-origin:bottom right;animation:cz-in .3s var(--ease)}@keyframes cz-in{0%{opacity:0;transform:translateY(8px) scale(.96)}}.cz-title{font-family:var(--font-display),sans-serif;font-weight:700;font-size:1rem;margin-bottom:14px}.cz-label{font-family:var(--font-mono),monospace;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:12px 0 8px}.cz-swatches{display:flex;gap:10px}.cz-swatch{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .25s var(--ease),box-shadow .2s}.cz-swatch:hover{transform:scale(1.12)}.cz-swatch.active{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--accent)}.cz-fonts{display:grid;grid-gap:8px;gap:8px}.cz-font{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--panel-2);border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;color:var(--ink);transition:border-color .2s,transform .25s var(--ease)}.cz-font:hover{transform:translateY(-1px)}.cz-font.active{border-color:var(--accent)}.cz-ag{font-size:1.35rem;font-weight:700;line-height:1;width:34px;text-align:center}.cz-font-name{display:block;font-weight:700;font-size:.88rem;line-height:1.2}.cz-font-hint{display:block;font-size:.72rem;color:var(--faint)}@media (max-width:540px){.fab{bottom:18px;right:18px}.customizer{right:18px;bottom:82px;width:min(272px,calc(100vw - 36px))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation:none!important;transition:none!important}.pop,.reveal{opacity:1;transform:none}.tl:before{transform:scaleY(1)}}