@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/13bf9871fe164e7f-s.0s19wthhh_6~m.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:300;font-display:swap;src:url(../media/cc545e633e20c56d-s.0dza.stei.9v7.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:300;font-display:swap;src:url(../media/71b036adf157cdcf-s.03nf~dfjdkf~..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:300;font-display:swap;src:url(../media/89b21bb081cb7469-s.0gfhww.tctz1o.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:300;font-display:swap;src:url(../media/3fe682a82f50d426-s.09q3q1i5159bl.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:300;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.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:400;font-display:swap;src:url(../media/13bf9871fe164e7f-s.0s19wthhh_6~m.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/cc545e633e20c56d-s.0dza.stei.9v7.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/71b036adf157cdcf-s.03nf~dfjdkf~..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/89b21bb081cb7469-s.0gfhww.tctz1o.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/3fe682a82f50d426-s.09q3q1i5159bl.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/70bc3e132a0a741e-s.p.1409xf.ylxg8g.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/13bf9871fe164e7f-s.0s19wthhh_6~m.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/cc545e633e20c56d-s.0dza.stei.9v7.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/71b036adf157cdcf-s.03nf~dfjdkf~..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/89b21bb081cb7469-s.0gfhww.tctz1o.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/3fe682a82f50d426-s.09q3q1i5159bl.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/70bc3e132a0a741e-s.p.1409xf.ylxg8g.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/13bf9871fe164e7f-s.0s19wthhh_6~m.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/cc545e633e20c56d-s.0dza.stei.9v7.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/71b036adf157cdcf-s.03nf~dfjdkf~..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/89b21bb081cb7469-s.0gfhww.tctz1o.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/3fe682a82f50d426-s.09q3q1i5159bl.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/70bc3e132a0a741e-s.p.1409xf.ylxg8g.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/13bf9871fe164e7f-s.0s19wthhh_6~m.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/cc545e633e20c56d-s.0dza.stei.9v7.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/71b036adf157cdcf-s.03nf~dfjdkf~..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/89b21bb081cb7469-s.0gfhww.tctz1o.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/3fe682a82f50d426-s.09q3q1i5159bl.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/70bc3e132a0a741e-s.p.1409xf.ylxg8g.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:800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.0s19wthhh_6~m.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:800;font-display:swap;src:url(../media/cc545e633e20c56d-s.0dza.stei.9v7.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:800;font-display:swap;src:url(../media/71b036adf157cdcf-s.03nf~dfjdkf~..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:800;font-display:swap;src:url(../media/89b21bb081cb7469-s.0gfhww.tctz1o.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:800;font-display:swap;src:url(../media/3fe682a82f50d426-s.09q3q1i5159bl.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:800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.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_3b502c49-module__YeLMta__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_3b502c49-module__YeLMta__variable{--font-jetbrains-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#0a0a0a;--fg:#f5f5f0;--muted:#8a8a82;--dim:#4a4a46;--line:#f5f5f014;--line-strong:#f5f5f029;--accent:#c7ff3f;--accent-ink:#0a0a0a;--gutter:64px;--px:20px;--density:1}[data-theme=light]{--bg:#f5f5f0;--fg:#0a0a0a;--muted:#6a6a62;--dim:#b8b8b0;--line:#0a0a0a14;--line-strong:#0a0a0a29;--accent:#1a1a1a;--accent-ink:#c7ff3f}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;font-feature-settings:"calt" 1, "liga" 1;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;line-height:1.55;overflow-x:clip}::selection{background:var(--accent);color:var(--accent-ink)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}.frame{pointer-events:none;z-index:50;position:fixed;inset:0}.frame:before,.frame:after{content:"";background:var(--line-strong);position:absolute}.frame:before{left:var(--gutter);width:1px;top:0;bottom:0}.frame:after{right:var(--gutter);width:1px;top:0;bottom:0}.frame .top,.frame .bot{background:var(--line-strong);height:1px;position:absolute;left:0;right:0}.frame .top{top:72px}.frame .bot{bottom:48px}.nav{height:72px;padding:0 var(--gutter);z-index:60;background:color-mix(in oklab, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.logo{letter-spacing:-.01em;align-items:center;gap:10px;font-weight:700;display:flex}.logo .dot{background:var(--accent);width:10px;height:10px;animation:1.2s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.nav ul{color:var(--muted);gap:28px;font-size:12px;list-style:none;display:flex}.nav ul a{padding:4px 0;transition:color .15s;position:relative}.nav ul a:before{content:attr(data-n);color:var(--dim);margin-right:6px;font-size:10px}.nav ul a:hover{color:var(--fg)}.nav .end{align-items:center;gap:8px;display:flex}.nav .icon-btn{border:1px solid var(--line-strong);justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.nav .icon-btn:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.nav .cta{border:1px solid var(--fg);height:32px;color:var(--fg);letter-spacing:.02em;align-items:center;gap:8px;padding:0 16px;font-size:11px;transition:all .15s;display:inline-flex}.nav .cta:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.sidemark{width:var(--gutter);z-index:55;pointer-events:none;color:var(--dim);writing-mode:vertical-rl;flex-direction:column;justify-content:space-between;align-items:center;padding:16px 0;font-size:10px;display:flex;position:fixed;top:72px;bottom:48px;left:0;transform:rotate(180deg)}.sidemark .s{letter-spacing:.2em;text-transform:uppercase}.sidemark-r{width:var(--gutter);z-index:55;pointer-events:none;color:var(--dim);writing-mode:vertical-rl;flex-direction:column;justify-content:space-between;align-items:center;padding:16px 0;font-size:10px;display:flex;position:fixed;top:72px;bottom:48px;right:0}.status{height:48px;padding:0 var(--gutter);color:var(--muted);background:color-mix(in oklab, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(10px);z-index:60;justify-content:space-between;align-items:center;font-size:11px;display:flex;position:fixed;bottom:0;left:0;right:0}.status .grp{align-items:center;gap:20px;display:flex}.status .kv b{color:var(--fg);font-weight:500}.status .pulse{align-items:center;gap:8px;display:inline-flex}.status .pulse:before{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 0 var(--accent);border-radius:50%;animation:1.8s ease-out infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in oklab, var(--accent) 80%, transparent)}70%{box-shadow:0 0 0 8px color-mix(in oklab, var(--accent) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in oklab, var(--accent) 0%, transparent)}}main{padding:72px var(--gutter) 48px;max-width:1600px;margin:0 auto}section{padding:calc(var(--px) * 5) 0;border-bottom:1px dashed var(--line);position:relative}section:last-child{border-bottom:none}.section-head{margin-bottom:calc(var(--px) * 2.5);border-bottom:1px solid var(--line);grid-template-columns:80px 1fr auto;align-items:baseline;gap:24px;padding-bottom:12px;display:grid}.section-head .idx{color:var(--dim);letter-spacing:.1em;font-size:11px}.section-head h2{letter-spacing:-.01em;font-size:clamp(22px,2.2vw,28px);font-weight:600}.section-head h2 .arrow{color:var(--accent);margin-right:8px}.section-head .meta{color:var(--muted);font-size:11px}#home{padding-top:calc(var(--px) * 4);padding-bottom:calc(var(--px) * 6);border-bottom:1px solid var(--line);grid-template-rows:auto 1fr auto;grid-template-columns:80px 1fr 320px;align-content:stretch;gap:32px 48px;min-height:calc(100vh - 120px);display:grid}.hero-prompt{color:var(--muted);grid-column:2/3;align-items:center;gap:10px;font-size:12px;display:flex}.hero-prompt .ps1{color:var(--accent)}.hero-prompt .cmd{color:var(--fg)}.hero-prompt .caret{background:var(--accent);vertical-align:-2px;width:8px;height:14px;animation:1s steps(2,end) infinite blink;display:inline-block}.hero-linenum{color:var(--dim);text-align:right;border-right:1px solid var(--line);flex-direction:column;grid-column:1/2;gap:4px;padding-top:12px;padding-right:16px;font-size:11px;display:flex}.hero-linenum span{line-height:1.5}.hero-title{letter-spacing:-.04em;color:var(--fg);grid-column:2/3;align-self:center;font-size:clamp(40px,8.2vw,124px);font-weight:800;line-height:.92}.hero-title .line{display:block}.hero-title .line.b{color:var(--muted);font-weight:500}.hero-title .line .ink{color:var(--accent-ink);background:var(--accent);margin-right:.08em;padding:0 .08em}.hero-title .line .stroke{color:#0000;-webkit-text-stroke:1.5px var(--fg)}.hero-aside{color:var(--muted);flex-direction:column;grid-area:2/3/3/4;align-self:end;gap:18px;font-size:12px;display:flex}.hero-aside .block{border-left:2px solid var(--accent);padding:4px 0 4px 16px}.hero-aside .k{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-size:10px}.hero-aside .v{color:var(--fg);font-size:13px}.hero-aside .v b{font-weight:600}.hero-foot{border-top:1px solid var(--line);grid-column:2/4;justify-content:space-between;align-items:center;gap:24px;padding-top:24px;font-size:12px;display:flex}.hero-cta{background:var(--accent);color:var(--accent-ink);letter-spacing:.02em;align-items:center;gap:12px;padding:14px 20px;font-weight:600;transition:transform .15s,background .15s;display:inline-flex}.hero-cta:hover{transform:translate(2px,-2px)}.hero-cta .arr{background:currentColor;width:16px;height:1px;display:inline-block;position:relative}.hero-cta .arr:after{content:"";border-top:1px solid;border-right:1px solid;width:8px;height:8px;position:absolute;top:-3px;right:-1px;transform:rotate(45deg)}.hero-marquee{margin:0 calc(-1 * var(--gutter));border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;grid-area:3/1/4/4;padding:18px 0;font-size:13px;overflow:hidden}.hero-marquee .track{gap:32px;padding-left:32px;animation:40s linear infinite marquee;display:inline-flex}.hero-marquee span{align-items:center;gap:32px;display:inline-flex}.hero-marquee .hi{color:var(--fg)}.hero-marquee .sep{color:var(--accent)}@keyframes marquee{to{transform:translate(-50%)}}.about-grid{grid-template-columns:80px 1.2fr 1fr;gap:48px;display:grid}.about-lead{color:var(--fg);letter-spacing:-.01em;font-size:clamp(20px,2.1vw,28px);font-weight:400;line-height:1.45}.about-lead .hl{background:var(--accent);color:var(--accent-ink);padding:0 4px}.about-lead .dim{color:var(--muted)}.about-meta{border-left:1px solid var(--line);flex-direction:column;gap:20px;padding-left:32px;display:flex}.about-meta .row{border-bottom:1px dashed var(--line);grid-template-columns:90px 1fr;gap:12px;padding:12px 0;font-size:12px;display:grid}.about-meta .row:last-child{border-bottom:none}.about-meta .row .k{color:var(--dim);text-transform:uppercase;letter-spacing:.1em;padding-top:2px;font-size:10px}.about-meta .row .v{color:var(--fg)}.about-meta .row .v b{color:var(--accent);background:0 0}.skills-grid{grid-template-columns:80px 1fr;gap:48px;display:grid}.skills-file{border:1px solid var(--line);background:color-mix(in oklab, var(--fg) 2%, var(--bg));font-size:13px}.skills-file .sf-head{border-bottom:1px solid var(--line);color:var(--muted);letter-spacing:.15em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:10px 16px;font-size:10px;display:flex}.skills-file .sf-head .dots{gap:5px;display:flex}.skills-file .sf-head .dots span{background:var(--line-strong);border-radius:50%;width:8px;height:8px}.skills-file .sf-head .dots span:first-child{background:var(--accent)}.skills-file .sf-body{grid-template-columns:1.3fr 1fr 1fr;display:grid}.skills-col{border-right:1px solid var(--line);flex-direction:column;gap:20px;padding:20px 20px 24px;display:flex}.skills-col:last-child{border-right:none}.skills-col .ch{color:var(--accent);letter-spacing:.18em;text-transform:uppercase;border-bottom:1px dashed var(--line);justify-content:space-between;align-items:baseline;padding-bottom:10px;font-size:10px;display:flex}.skills-col .ch .c{color:var(--dim);font-weight:400}.skills-col .block .lbl{color:var(--dim);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;font-size:10px}.skills-col .chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-strong);color:var(--fg);align-items:center;gap:6px;padding:4px 9px;font-size:12px;transition:border-color .15s,color .15s;display:inline-flex}.chip:hover,.chip.daily{border-color:var(--accent);color:var(--accent)}.chip.learning{color:var(--muted);border-style:dashed}.chip .d{gap:2px;display:inline-flex}.chip .d i{background:var(--dim);border-radius:50%;width:4px;height:4px;display:inline-block}.chip.daily .d i,.chip.daily .d i:nth-child(-n+3){background:var(--accent)}.skills-legend{border-top:1px solid var(--line);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;gap:18px;padding:12px 16px;font-size:10px;display:flex}.skills-legend .lg{align-items:center;gap:6px;display:inline-flex}.skills-legend .sw{border:1px solid var(--line-strong);width:10px;height:10px}.skills-legend .sw.daily{border-color:var(--accent);background:color-mix(in oklab, var(--accent) 25%, transparent)}.skills-legend .sw.learning{border-color:var(--muted);border-style:dashed}.services-grid{grid-template-columns:80px 1fr;gap:48px;display:grid}.services-list{border:1px solid var(--line);grid-template-columns:repeat(2,1fr);display:grid}.service{border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:default;padding:28px;transition:background .2s;position:relative}.service:nth-child(2n){border-right:none}.service:nth-last-child(-n+2){border-bottom:none}.service:hover{background:color-mix(in oklab, var(--accent) 10%, var(--bg))}.service .num{color:var(--dim);letter-spacing:.1em;margin-bottom:18px;font-size:10px}.service h3{letter-spacing:-.01em;color:var(--fg);margin-bottom:12px;font-size:20px;font-weight:600}.service p{color:var(--muted);margin-bottom:20px;font-size:13px;line-height:1.6}.service .tags{flex-wrap:wrap;gap:6px;font-size:10px;display:flex}.service .tag{border:1px solid var(--line-strong);color:var(--muted);padding:3px 8px}.service .more{color:var(--dim);font-size:11px;transition:color .15s;position:absolute;bottom:28px;right:28px}.service:hover .more{color:var(--accent)}.timeline-grid{grid-template-columns:80px 1fr;gap:48px;display:grid}.timeline{flex-direction:column;display:flex;position:relative}.tl-co{border-top:1px solid var(--line)}.tl-co:last-child{border-bottom:1px solid var(--line)}.tl-co-head{cursor:pointer;-webkit-user-select:none;user-select:none;grid-template-columns:56px 1fr auto auto;align-items:center;gap:24px;padding:24px 0;display:grid}.tl-co-head:hover .tl-co-name{color:var(--accent)}.tl-co-logo{border:1px solid var(--line-strong);letter-spacing:.02em;width:44px;height:44px;color:var(--fg);justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.tl-co.current .tl-co-logo{border-color:var(--accent);color:var(--accent)}.tl-co-info{flex-direction:column;gap:4px;min-width:0;display:flex}.tl-co-name{letter-spacing:-.01em;font-size:18px;font-weight:600;transition:color .15s}.tl-co-sub{color:var(--muted);letter-spacing:.04em;flex-wrap:wrap;gap:10px;font-size:11px;display:flex}.tl-co-sub .dot{color:var(--line-strong)}.tl-co-dates{color:var(--muted);letter-spacing:.05em;text-align:right;font-variant-numeric:tabular-nums;font-size:11px}.tl-co-dates b{color:var(--fg);font-weight:600;display:block}.tl-co-toggle{color:var(--muted);text-align:center;width:24px;font-size:11px;transition:transform .2s,color .15s}.tl-co.open .tl-co-toggle{color:var(--accent);transform:rotate(90deg)}.tl-co-body{padding:0 0 28px 80px;display:none}.tl-co.open .tl-co-body{display:block}.tl-role{border-top:1px dashed var(--line);grid-template-columns:120px 1fr auto;gap:24px;padding:20px 0;display:grid;position:relative}.tl-role:first-child{border-top:none;padding-top:8px}.tl-role:before{content:"";background:var(--line-strong);width:12px;height:1px;position:absolute;top:28px;left:-24px}.tl-role .date{color:var(--muted);letter-spacing:.05em;font-variant-numeric:tabular-nums;padding-top:4px;font-size:11px}.tl-role .date b{color:var(--fg);font-weight:600;display:block}.tl-role .role{flex-direction:column;gap:8px;display:flex}.tl-role .role h3{letter-spacing:-.005em;font-size:16px;font-weight:600}.tl-role .role p{color:var(--muted);max-width:60ch;font-size:13px;line-height:1.6}.tl-role .role .stack{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.tl-role .role .stack span{color:var(--muted);border:1px solid var(--line-strong);padding:3px 8px;font-size:10px}.tl-role .role .stack .more{cursor:pointer;color:var(--accent);border-color:var(--accent);transition:all .15s}.tl-role .role .stack .more:hover{background:var(--accent);color:var(--accent-ink)}.tl-role .role .stack.expanded .more,.tl-role .role .stack .extra{display:none}.tl-role .role .stack.expanded .extra{display:inline-block}.tl-role .badge{color:var(--muted);letter-spacing:.1em;border:1px solid var(--line-strong);align-self:flex-start;height:fit-content;margin-top:4px;padding:3px 8px;font-size:10px}.tl-role .badge.current{color:var(--accent);border-color:var(--accent)}.projects-grid-wrap{grid-template-columns:80px 1fr;gap:48px;display:grid}.projects-filter{gap:4px;margin-bottom:24px;font-size:11px;display:flex}.projects-filter button{border:1px solid var(--line-strong);color:var(--muted);letter-spacing:.05em;padding:6px 12px;transition:all .15s}.projects-filter button.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.projects-filter button:hover:not(.active){color:var(--fg);border-color:var(--fg)}.projects-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:1px;display:grid}.project{background:var(--bg);cursor:pointer;flex-direction:column;padding:0;transition:background .2s;display:flex;position:relative;overflow:hidden}.project .thumb{aspect-ratio:16/9;background:repeating-linear-gradient(135deg, var(--line) 0 1px, transparent 1px 12px), color-mix(in oklab, var(--fg) 4%, var(--bg));color:var(--dim);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--line);justify-content:center;align-items:center;font-size:11px;display:flex;position:relative;overflow:hidden}.project .thumb:before{content:attr(data-label);color:var(--dim);border:1px solid var(--line-strong);background:var(--bg);padding:3px 8px;font-size:10px;position:absolute;top:14px;left:14px}.project .thumb .cap{background:var(--bg);border:1px solid var(--line);color:var(--muted);padding:8px 12px}.project .body{flex-direction:column;gap:10px;padding:20px 24px;display:flex}.project .body .top{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.project h3{letter-spacing:-.01em;font-size:18px;font-weight:600}.project .year{color:var(--dim);font-size:11px}.project p{color:var(--muted);font-size:12px;line-height:1.55}.project .foot{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;border-top:1px dashed var(--line);justify-content:space-between;align-items:center;padding-top:10px;font-size:10px;display:flex}.project .foot .arr{color:var(--accent)}.project:hover{background:color-mix(in oklab, var(--accent) 6%, var(--bg))}.project:hover .foot .arr{transform:translate(4px)}.quote-grid{grid-template-columns:80px 1fr;gap:48px;display:grid}.ref-featured{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 220px;align-items:start;gap:48px;padding:32px 0 28px;display:grid}.ref-featured blockquote{letter-spacing:-.005em;color:var(--fg);max-width:56ch;font-size:clamp(18px,1.8vw,24px);font-weight:400;line-height:1.45}.ref-featured blockquote:before{content:"“";color:var(--accent);vertical-align:-.12em;margin-right:.08em;font-size:1.4em;line-height:0}.ref-featured .who{color:var(--muted);border-left:2px solid var(--accent);flex-direction:column;gap:4px;padding-left:14px;font-size:12px;display:flex}.ref-featured .who .nm{color:var(--fg);font-size:14px;font-weight:600}.ref-featured .who .rl{color:var(--muted);line-height:1.4}.ref-featured .who .src{color:var(--dim);letter-spacing:.1em;text-transform:uppercase;margin-top:6px;font-size:10px}.ref-grid{grid-template-columns:1fr 1fr;display:grid}.ref-card{border-bottom:1px solid var(--line);flex-direction:column;gap:12px;padding:22px 0;display:flex}.ref-card:nth-child(odd){border-right:1px solid var(--line);padding-right:28px}.ref-card:nth-child(2n){padding-left:28px}.ref-card .q{color:var(--fg);margin:0;font-size:13px;line-height:1.6}.ref-card .q:before{content:"“";color:var(--accent);margin-right:2px}.ref-card .q:after{content:"”";color:var(--accent);margin-left:2px}.ref-card .who{color:var(--muted);border-top:1px dashed var(--line);flex-direction:column;gap:2px;padding-top:10px;font-size:11px;display:flex}.ref-card .who .nm{color:var(--fg);font-size:13px;font-weight:600}.ref-card .who .rl{color:var(--muted);font-size:11px}.ref-card .who .rt{color:var(--dim);letter-spacing:.08em;text-transform:uppercase;gap:10px;margin-top:4px;font-size:10px;display:flex}.ref-card .who .rt .star{color:var(--accent)}.contact-grid{grid-template-columns:80px 1fr 1fr;gap:48px;display:grid}.contact-lead{letter-spacing:-.03em;font-size:clamp(32px,4vw,56px);font-weight:700;line-height:1}.contact-lead .ink{background:var(--accent);color:var(--accent-ink);padding:0 .08em}.contact-lead p.sub{color:var(--muted);letter-spacing:0;max-width:40ch;margin-top:20px;font-size:14px;font-weight:400;line-height:1.6}.contact-list{background:var(--line);border:1px solid var(--line);flex-direction:column;gap:1px;display:flex}.contact-row{background:var(--bg);grid-template-columns:120px 1fr auto;align-items:center;gap:16px;padding:18px 20px;transition:background .15s;display:grid}.contact-row:hover{background:color-mix(in oklab, var(--accent) 8%, var(--bg))}.contact-row .k{color:var(--dim);letter-spacing:.15em;text-transform:uppercase;font-size:10px}.contact-row .v{color:var(--fg);font-size:14px}.contact-row .cpy{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.contact-row:hover .cpy{color:var(--accent)}footer.page-foot{border-top:1px solid var(--line);color:var(--muted);grid-template-columns:80px 1fr 1fr;gap:48px;padding:48px 0 24px;font-size:11px;display:grid}footer.page-foot .big{letter-spacing:-.04em;color:var(--fg);border-bottom:1px solid var(--line);grid-column:2/4;margin-bottom:24px;padding-bottom:32px;font-size:clamp(48px,8vw,120px);font-weight:800;line-height:.95}footer.page-foot .big .dim{color:var(--dim)}footer.page-foot .col{flex-direction:column;gap:8px;display:flex}footer.page-foot .col .k{color:var(--dim);letter-spacing:.15em;text-transform:uppercase;margin-bottom:4px;font-size:10px}footer.page-foot a:hover{color:var(--accent)}footer.page-foot .row-foot{border-top:1px solid var(--line);flex-direction:row;grid-column:2/5;justify-content:space-between;margin-top:16px;padding-top:16px;display:flex}.tweaks{background:var(--bg);border:1px solid var(--line-strong);z-index:200;width:300px;padding:16px;font-size:11px;display:none;position:fixed;bottom:64px;right:80px;box-shadow:0 20px 60px #00000080}.tweaks.open{display:block}.tweaks h4{color:var(--accent);letter-spacing:.15em;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:10px;display:flex}.tweaks h4 .close{color:var(--muted);cursor:pointer}.tweaks .grp{border-top:1px solid var(--line);padding:10px 0}.tweaks .grp:first-of-type{border-top:none;padding-top:0}.tweaks .lbl{color:var(--dim);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;font-size:10px}.tweaks .swatches{gap:6px;display:flex}.tweaks .sw{border:1px solid var(--line-strong);cursor:pointer;width:28px;height:28px;position:relative}.tweaks .sw.active:after{content:"";border:1px solid var(--fg);position:absolute;inset:-3px}.tweaks .row{gap:4px;display:flex}.tweaks .row button{border:1px solid var(--line-strong);letter-spacing:.05em;color:var(--muted);flex:1;padding:6px 8px;font-size:10px;transition:all .15s}.tweaks .row button.active{background:var(--fg);color:var(--bg);border-color:var(--fg)}body.no-motion *,body.no-motion :before,body.no-motion :after{transition:none!important;animation:none!important}@media (max-width:900px){:root{--gutter:24px}.nav ul{display:none}#home{grid-template-columns:40px 1fr;gap:24px 16px}.hero-aside{grid-area:auto/1/auto/3;min-width:0}.hero-foot{flex-direction:column;grid-column:1/3;align-items:flex-start;min-width:0}.hero-marquee{grid-column:1/-1;min-width:0}.hero-title{min-width:0;font-size:clamp(30px,7.6vw,60px)}.hero-prompt{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.contact-row{min-width:0}.contact-row .v{overflow-wrap:anywhere;word-break:break-word;min-width:0}.ref-card .q,.ref-featured blockquote,.tl-role .role p,.about-lead{overflow-wrap:anywhere}.about-grid,.skills-grid,.services-grid,.timeline-grid,.projects-grid-wrap,.quote-grid,.contact-grid{grid-template-columns:1fr;gap:24px}.section-head{grid-template-columns:1fr;gap:8px}.skills-file .sf-body,.services-list,.projects-grid{grid-template-columns:1fr}.skills-col{border-right:none;border-bottom:1px solid var(--line)}.service,.service:nth-child(2n){border-right:none}.ref-featured,.ref-grid{grid-template-columns:1fr}.ref-card:nth-child(odd){border-right:none;padding-right:0}.ref-card:nth-child(2n){padding-left:0}.tl-co-head{grid-template-columns:44px 1fr auto}.tl-co-dates{text-align:left;grid-area:2/2/auto/4}.tl-co-body{padding-left:20px}.tl-role{grid-template-columns:1fr;gap:10px}.tl-role:before{display:none}.contact-row{grid-template-columns:80px 1fr}.contact-row .cpy,.sidemark,.sidemark-r,.frame{display:none}footer.page-foot{grid-template-columns:1fr}footer.page-foot .big,footer.page-foot .row-foot{grid-column:1}}
