*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100vh;transition:background .22s,color .22s;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}::selection{background:var(--accent);color:var(--bg)}:root{--font-mono:var(--next-jetbrains-mono), "JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace;--font-sans:var(--next-inter-tight), "Inter Tight", "Inter", "PingFang SC", var(--next-noto-sans-sc), "Noto Sans SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;--font-serif:var(--next-instrument-serif), "Instrument Serif", "Fraunces", var(--next-noto-serif-sc), "Noto Serif SC", Georgia, serif;--accent:#34d399;--accent-soft:color-mix(in oklab, var(--accent) 22%, transparent);--accent-dim:color-mix(in oklab, var(--accent) 50%, transparent)}[data-style=terminal]{--bg:#050a07;--bg-2:#08110c;--bg-3:#0c1812;--fg:#c9f7d8;--fg-dim:#6da583;--fg-mute:#3d6d52;--line:#11241a;--font-body:var(--font-mono);--font-head:var(--font-mono);--radius:0px;--shadow:0 0 0 1px var(--line)}[data-style=terminal][data-accent=emerald]{--accent:#4ade80}[data-style=terminal][data-accent=amber]{--accent:#fbbf24;--fg:#f4e7c3;--fg-dim:#a3895a;--line:#2a2113}[data-style=terminal][data-accent=indigo]{--accent:#8b9aff;--fg:#d0d6ff;--fg-dim:#6970a8;--line:#1a1d33}[data-style=terminal][data-accent=magenta]{--accent:#ec4899;--fg:#fbd6e6;--fg-dim:#a86284;--line:#2e1622}[data-style=terminal] body{background:radial-gradient(ellipse at center, var(--bg-2) 0%, var(--bg) 70%), var(--bg)}[data-style=terminal] .scanlines:before{content:"";pointer-events:none;z-index:999;mix-blend-mode:multiply;background:repeating-linear-gradient(0deg,#0000002e 0 1px,#0000 1px 3px);position:fixed;inset:0}[data-style=terminal] .crt-vignette:after{content:"";pointer-events:none;z-index:998;position:fixed;inset:0;box-shadow:inset 0 0 180px 30px #000000a6}[data-style=neon][data-mode=dark]{--bg:#0a0a0c;--bg-2:#111114;--bg-3:#1a1a1f;--fg:#ededee;--fg-dim:#9b9ba3;--fg-mute:#5a5a64;--line:#232329}[data-style=neon][data-mode=light]{--bg:#f6f6f4;--bg-2:#fff;--bg-3:#ececea;--fg:#111114;--fg-dim:#57575e;--fg-mute:#9b9ba3;--line:#e2e2df}[data-style=neon]{--font-body:var(--font-sans);--font-head:var(--font-sans);--radius:12px;--shadow:0 1px 0 0 var(--line)}[data-style=neon][data-accent=emerald]{--accent:#10b981}[data-style=neon][data-accent=amber]{--accent:#f97316}[data-style=neon][data-accent=indigo]{--accent:#6366f1}[data-style=neon][data-accent=magenta]{--accent:#ec4899}[data-style=editorial][data-mode=light]{--bg:#f3efe6;--bg-2:#e9e3d4;--bg-3:#ddd5c1;--fg:#1a1715;--fg-dim:#5d564b;--fg-mute:#93897a;--line:#1a1715}[data-style=editorial][data-mode=dark]{--bg:#1c1a17;--bg-2:#25221d;--bg-3:#2e2a23;--fg:#f3efe6;--fg-dim:#b9b1a1;--fg-mute:#7e7768;--line:#f3efe6}[data-style=editorial]{--font-body:var(--font-sans);--font-head:var(--font-serif);--radius:0px;--shadow:0 0 0 1.5px var(--line)}[data-style=editorial][data-accent=emerald]{--accent:#1f8a5b}[data-style=editorial][data-accent=amber]{--accent:#c2410c}[data-style=editorial][data-accent=indigo]{--accent:#3730a3}[data-style=editorial][data-accent=magenta]{--accent:#be185d}.app{z-index:1;position:relative}.wrap{max-width:1240px;margin:0 auto;padding:0 32px}@media (max-width:720px){.wrap{padding:0 20px}}@media (min-width:1440px){.wrap{max-width:min(1600px,92vw)}}.section{border-top:1px solid var(--line);padding-top:96px;padding-bottom:96px}.section:first-of-type{border-top:none}[data-style=editorial] .section{padding-top:120px;padding-bottom:120px}.section-head{flex-wrap:wrap;align-items:baseline;gap:16px;margin-bottom:48px;display:flex}.section-num{font-family:var(--font-mono);color:var(--fg-mute);letter-spacing:.06em;font-size:13px}.section-title{font-family:var(--font-head);letter-spacing:-.02em;margin:0;font-size:clamp(28px,4vw,44px);font-weight:500}[data-style=editorial] .section-title{font-style:italic;font-weight:400}[data-style=terminal] .section-title{letter-spacing:0;font-weight:600}[data-style=terminal] .section-title:before{content:"> ";color:var(--accent)}.section-sub{color:var(--fg-dim);font-size:14px;font-family:var(--font-mono);margin-left:auto}.nav{z-index:50;background:color-mix(in oklab, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);font-family:var(--font-mono);align-items:center;gap:24px;padding:18px 32px;font-size:13px;display:flex;position:sticky;top:0}.nav-brand{font-weight:600}.nav-brand .dot{color:var(--accent)}.nav-links{gap:20px;margin-left:auto;display:flex}.nav-links a{color:var(--fg-dim);transition:color .12s}.nav-links a:hover{color:var(--accent)}.nav-status{color:var(--fg-dim);font-family:var(--font-mono);align-items:center;gap:6px;font-size:12px;display:inline-flex}.nav-status:before{content:"[";color:var(--accent)}.nav-status:after{content:"]";color:var(--accent)}.nav-status .pulse{background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.lang-toggle{font-family:var(--font-mono);border:1px solid var(--line);border-radius:var(--radius);color:var(--fg-mute);cursor:pointer;background:0 0;align-items:center;gap:5px;padding:5px 10px;font-size:12px;transition:all .15s;display:inline-flex}.lang-toggle:hover{border-color:var(--accent)}.lang-toggle span{transition:color .15s}.lang-toggle span.on{color:var(--accent);font-weight:600}.lang-toggle .sep{color:var(--fg-mute)}@media (max-width:720px){.lang-toggle{padding:4px 8px;font-size:11px}}.nav-burger{top:calc(5px + env(safe-area-inset-top));z-index:100;font-family:var(--font-mono);width:44px;height:44px;color:var(--fg);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);justify-content:center;align-items:center;font-size:20px;display:none;position:fixed;right:16px}.nav-burger:hover{border-color:var(--accent);color:var(--accent)}.nav-drawer{z-index:90;background:var(--bg);padding:calc(72px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));font-family:var(--font-mono);flex-direction:column;gap:24px;font-size:18px;display:none;position:fixed;inset:0}.nav-drawer.open{display:flex}.nav-drawer a{border-bottom:1px dashed var(--line);color:var(--fg);padding:12px 4px}.nav-drawer a:hover{color:var(--accent)}.nav-drawer .lang-toggle{align-self:flex-start;margin-top:12px}@media (max-width:720px){.nav-links{display:none}.nav-burger{display:inline-flex}.nav .lang-toggle,.nav-status{display:none}}@media (min-width:721px){.nav-burger,.nav-drawer{display:none}}.nav{padding-top:calc(18px + env(safe-area-inset-top))}.hero{padding-top:80px;padding-bottom:64px;position:relative}.hero-meta{color:var(--fg-dim);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;gap:8px 16px;margin-bottom:32px;font-size:12px;display:flex}.hero-name{font-family:var(--font-head);letter-spacing:-.04em;margin:0 0 8px;font-size:clamp(48px,10vw,128px);font-weight:500;line-height:.92}[data-style=editorial] .hero-name{font-style:italic;font-weight:400}[data-style=terminal] .hero-name{letter-spacing:-.02em;font-weight:700}.hero-name-zh{color:var(--fg-dim)}.hero-role{font-family:var(--font-mono);color:var(--accent);margin:16px 0 24px;font-size:16px}.hero-tag{font-family:var(--font-head);letter-spacing:-.01em;max-width:720px;margin:0 0 8px;font-size:clamp(20px,2.6vw,32px);line-height:1.3}.hero-tag-zh{color:var(--fg-dim);font-size:clamp(16px,1.8vw,22px)}.hero-now{border:1px solid var(--line);border-radius:var(--radius);font-family:var(--font-mono);color:var(--fg-dim);align-items:center;gap:10px;margin-top:32px;padding:8px 14px;font-size:12px;display:inline-flex}.hero-now .pulse{background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%;animation:1.6s ease-in-out infinite pulse}.metrics{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:0;margin-top:48px;display:grid}.metric{border-right:1px solid var(--line);padding:24px 20px}.metric:last-child{border-right:none}.metric-v{font-family:var(--font-head);letter-spacing:-.02em;color:var(--accent);font-size:clamp(28px,4vw,44px)}[data-style=editorial] .metric-v{color:var(--fg);font-style:italic;font-weight:400}.metric-k{font-family:var(--font-mono);color:var(--fg-dim);text-transform:uppercase;letter-spacing:.08em;margin-top:6px;font-size:12px}.metric-s{font-family:var(--font-mono);color:var(--fg-mute);margin-top:4px;font-size:11px}@media (max-width:800px){.metrics{grid-template-columns:1fr 1fr}.metric:nth-child(2){border-right:none}.metric:first-child,.metric:nth-child(2){border-bottom:1px solid var(--line)}}.skills-grid{grid-template-columns:repeat(3,1fr);gap:32px;display:grid}@media (max-width:900px){.skills-grid{grid-template-columns:1fr}}.skill-group h3{font-family:var(--font-mono);color:var(--fg-dim);text-transform:uppercase;letter-spacing:.1em;margin:0 0 16px;font-size:12px}.skill-row{border-bottom:1px dashed var(--line);grid-template-columns:1fr auto;align-items:center;gap:8px;padding:10px 0;display:grid}.skill-row:last-child{border-bottom:none}.skill-name{font-size:15px}.skill-bar{background:var(--bg-3);grid-column:1/-1;height:2px;position:relative}.skill-bar>span{background:var(--accent);width:0;height:100%;transition:width 1.2s cubic-bezier(.2,.8,.2,1);display:block}.skill-lv{font-family:var(--font-mono);color:var(--fg-dim);font-size:12px}.stack{flex-wrap:wrap;gap:8px;margin-top:36px;display:flex}.chip{font-family:var(--font-mono);border:1px solid var(--line);border-radius:var(--radius);color:var(--fg-dim);padding:5px 10px;font-size:12px;transition:all .15s}.chip:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.timeline{padding-left:24px;position:relative}.timeline:before{content:"";background:var(--line);width:1px;position:absolute;top:0;bottom:0;left:6px}.tl-item{opacity:0;padding:0 0 56px 36px;transition:opacity .8s,transform .8s;position:relative;transform:translateY(20px)}.tl-item.visible{opacity:1;transform:translateY(0)}.tl-item:before{content:"";background:var(--bg);border:2px solid var(--accent);border-radius:50%;width:13px;height:13px;transition:all .22s;position:absolute;top:8px;left:-20px}.tl-item:hover:before{background:var(--accent);box-shadow:0 0 0 6px var(--accent-soft)}.tl-year{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.tl-role{font-family:var(--font-head);letter-spacing:-.01em;margin:6px 0 2px;font-size:clamp(22px,2.6vw,30px)}[data-style=editorial] .tl-role{font-style:italic;font-weight:400}.tl-company{color:var(--fg-dim);margin-bottom:6px;font-size:15px}.tl-where{font-family:var(--font-mono);color:var(--fg-mute);margin-bottom:16px;font-size:12px}.tl-bullets{margin:0;padding-left:18px}.tl-bullets li{color:var(--fg-dim);margin-bottom:6px;line-height:1.55}.tl-bullets li::marker{color:var(--accent)}.tl-stack{margin-top:14px}.projects-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (max-width:900px){.projects-grid{grid-template-columns:1fr}}.proj-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);cursor:pointer;flex-direction:column;padding:28px;transition:all .28s cubic-bezier(.2,.8,.2,1);display:flex;position:relative;overflow:hidden}.proj-card:before{content:"";pointer-events:none;background:radial-gradient(circle 200px at var(--mx,50%) var(--my,50%), var(--accent-soft), transparent 60%);opacity:0;transition:opacity .24s;position:absolute;inset:0}.proj-card:hover{border-color:var(--accent);transform:translateY(-3px)}.proj-card:hover:before{opacity:1}.proj-head{align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.proj-name{font-family:var(--font-head);letter-spacing:-.01em;font-size:26px;font-weight:500}[data-style=editorial] .proj-name{font-style:italic;font-weight:400}[data-style=terminal] .proj-name{font-weight:700}.proj-name:before{content:"/";color:var(--accent);margin-right:4px}.proj-meta{font-family:var(--font-mono);color:var(--fg-dim);gap:12px;margin-left:auto;font-size:12px;display:flex}.proj-stars{color:var(--accent)}.proj-role{font-family:var(--font-mono);color:var(--fg-mute);margin-bottom:12px;font-size:12px}.proj-blurb{color:var(--fg-dim);margin:0 0 16px;line-height:1.5}.proj-metrics{flex-wrap:wrap;gap:24px;margin:8px 0 16px;display:flex}.proj-metric .k{font-family:var(--font-mono);color:var(--fg-mute);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.proj-metric .v{font-family:var(--font-mono);color:var(--accent);margin-top:2px;font-size:18px}.proj-expand{opacity:0;max-height:0;transition:max-height .36s cubic-bezier(.2,.8,.2,1),opacity .28s,margin-top .28s}.proj-card.open .proj-expand{opacity:1;max-height:420px;margin-top:8px}.proj-cta{font-family:var(--font-mono);color:var(--fg-dim);border-top:1px dashed var(--line);align-items:center;gap:8px;margin-top:auto;padding-top:16px;font-size:12px;display:flex}.proj-cta .arrow{transition:transform .24s}.proj-card.open .proj-cta .arrow{color:var(--accent);transform:rotate(90deg)}.code{font-family:var(--font-mono);background:var(--bg-3);border-radius:var(--radius);border:1px solid var(--line);color:var(--fg);white-space:pre;padding:16px;font-size:12.5px;line-height:1.55;overflow-x:auto}.code .tok-c{color:var(--fg-mute);font-style:italic}.code .tok-k{color:var(--accent)}.code .tok-s{color:color-mix(in oklab, var(--accent) 70%, var(--fg))}.code .tok-n{color:color-mix(in oklab, var(--accent) 40%, var(--fg))}.code .tok-fn{color:var(--fg);font-weight:600}.code .tok-p{color:var(--fg-dim)}.terminal{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);font-family:var(--font-mono);height:420px;box-shadow:var(--shadow);flex-direction:column;font-size:13.5px;line-height:1.55;display:flex}.term-head{border-bottom:1px solid var(--line);color:var(--fg-mute);letter-spacing:.06em;align-items:center;gap:10px;padding:10px 14px;font-size:11px;display:flex}.term-dot{background:var(--bg-3);border:1px solid var(--line);border-radius:50%;width:11px;height:11px}.term-dot.red{background:#ff5f57;border-color:#ff5f57}.term-dot.yel{background:#febc2e;border-color:#febc2e}.term-dot.grn{background:#28c840;border-color:#28c840}.term-title{margin-left:8px}.term-body{flex:1;padding:14px;overflow-y:auto}.term-line{white-space:pre-wrap;word-break:break-word}.term-line.prompt{color:var(--accent)}.term-line.echo{color:var(--fg)}.term-line.err{color:#f87171}.term-line.dim{color:var(--fg-dim)}.term-input-row{border-top:1px solid var(--line);align-items:center;gap:8px;padding:10px 14px;display:flex}.term-input-row .ps1{color:var(--accent)}.term-input{font:inherit;color:var(--fg);caret-color:var(--accent);background:0 0;border:none;outline:none;flex:1}.term-cursor{background:var(--accent);vertical-align:-2px;width:8px;height:14px;animation:1s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.chat{border:1px solid var(--line);background:var(--bg);height:420px;box-shadow:none;border-radius:0;flex-direction:column;display:flex}.chat-head{border-bottom:1px dashed var(--line);font-family:var(--font-mono);color:var(--fg-mute);align-items:center;gap:8px;padding:8px 12px;font-size:11.5px;display:flex}.chat-head:before{content:"▸";color:var(--accent)}.chat-head .pulse{background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%;animation:1.6s infinite pulse;display:none}.chat-body{flex-direction:column;flex:1;gap:14px;padding:16px;display:flex;overflow-y:auto}.bubble{max-width:92%;font-size:14px;line-height:1.5}.bubble.you{background:var(--accent-soft);color:var(--fg);border-radius:var(--radius);border:1px solid var(--accent-dim);align-self:flex-end;padding:10px 14px}.bubble.bot{color:var(--fg);font-family:var(--font-body);align-self:flex-start;padding:0}.bubble.bot .label{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:6px;margin-bottom:6px;font-size:11px;display:flex}.bubble.bot .label:before{content:"▸"}.chat-suggests{border-top:1px dashed var(--line);flex-wrap:wrap;gap:8px;padding:10px 14px;display:flex}.chat-suggest{font-family:var(--font-mono);border:1px solid var(--line);border-radius:var(--radius);color:var(--fg-dim);padding:4px 10px;font-size:11.5px;transition:all .15s}.chat-suggest:hover{color:var(--accent);border-color:var(--accent)}.chat-input-row{border-top:1px solid var(--line);align-items:center;gap:8px;padding:12px 14px;display:flex}.chat-input{font:inherit;color:var(--fg);font-family:var(--font-body);background:0 0;border:none;outline:none;flex:1;font-size:14px}.chat-send{font-family:var(--font-mono);color:var(--accent);border:1px solid var(--accent-dim);border-radius:var(--radius);padding:4px 8px;font-size:12px}.dot-typing{gap:4px;padding:4px 0;display:inline-flex}.dot-typing span{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1.2s infinite bounce}.dot-typing span:nth-child(2){animation-delay:.15s}.dot-typing span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.interact-single{max-width:820px;margin:0 auto}.interact-single .chat{height:560px}.chat-switches{border-top:1px dashed var(--line);background:color-mix(in oklab, var(--accent) 5%, transparent);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;display:flex}.chat-switches-label{font-family:var(--font-mono);color:var(--fg-mute);text-transform:uppercase;letter-spacing:.1em;margin-right:4px;font-size:10.5px}.chat-switch{font-family:var(--font-mono);border:1px solid var(--accent-dim);border-radius:var(--radius);color:var(--accent);background:0 0;padding:5px 10px;font-size:11.5px;transition:all .15s}.chat-switch:hover:not(:disabled){background:var(--accent);color:var(--bg);transform:translateY(-1px)}.chat-switch:disabled{opacity:.35;cursor:not-allowed}.talks-list{margin:0;padding:0;list-style:none}.talks-row{border-bottom:1px solid var(--line);grid-template-columns:80px 1fr auto;gap:16px;padding:14px 0;font-size:15px;line-height:1.5;display:grid}.talks-row.first{border-top:1px solid var(--line)}.talks-year{color:var(--fg-dim);font-variant-numeric:tabular-nums}.talks-venue{color:var(--fg-dim);white-space:nowrap}@media (max-width:720px){.talks-row{grid-template-columns:64px 1fr;row-gap:4px}.talks-venue{white-space:normal;grid-column:1/-1;font-size:13px}}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:56px;display:grid}@media (max-width:800px){.contact-grid{grid-template-columns:1fr;gap:32px}}.contact-list{flex-direction:column;gap:18px;display:flex}.contact-row{border-bottom:1px solid var(--line);font-family:var(--font-mono);justify-content:space-between;align-items:center;padding:14px 0;font-size:13px;display:flex}.contact-row .k{color:var(--fg-dim);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.contact-row .v{color:var(--fg);transition:color .12s}.contact-row a:hover .v{color:var(--accent)}.contact-row .arrow{color:var(--accent);margin-left:8px}.btn{border:1px solid var(--accent);color:var(--accent);font-family:var(--font-mono);border-radius:var(--radius);align-items:center;gap:10px;padding:12px 18px;font-size:13px;transition:all .18s;display:inline-flex}.btn:hover{background:var(--accent);color:var(--bg);transform:translateY(-1px)}.btn-primary{background:var(--accent);color:var(--bg)}.btn-primary:hover{color:var(--accent);background:0 0}.foot{border-top:1px solid var(--line);font-family:var(--font-mono);color:var(--fg-mute);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:40px;padding-bottom:80px;font-size:12px;display:flex}.cursor-trail{border:1px solid var(--accent);pointer-events:none;z-index:9999;mix-blend-mode:difference;border-radius:50%;width:14px;height:14px;transition:width .2s,height .2s,background .18s;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-trail.hovering{background:var(--accent);border-color:var(--accent);width:32px;height:32px}.cursor-dot{background:var(--accent);pointer-events:none;z-index:9998;border-radius:50%;width:4px;height:4px;position:fixed;transform:translate(-50%,-50%)}.fade-in{animation:.68s both fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.delay-1{animation-delay:60ms}.delay-2{animation-delay:.14s}.delay-3{animation-delay:.22s}.delay-4{animation-delay:.3s}.delay-5{animation-delay:.38s}.page-overlay{background:var(--bg);z-index:800;opacity:0;pointer-events:none;transform-origin:50%;position:fixed;inset:0}.page-overlay.show{animation:.36s cubic-bezier(.7,0,.3,1) forwards crt-poweroff}@keyframes crt-poweroff{0%{background:var(--bg);opacity:0;transform:scaleY(1)scaleX(1)}18%{background:var(--bg);opacity:1;transform:scaleY(.008)scaleX(1)}34%{background:var(--accent);opacity:1;transform:scaleY(.002)scaleX(.06)}52%{background:var(--accent);opacity:.6;transform:scaleY(.002)scaleX(.02)}to{background:var(--bg);opacity:0;transform:scaleY(1)scaleX(1)}}[data-style=terminal] .proj-card,[data-style=terminal] .terminal,[data-style=terminal] .chat,[data-style=terminal] .btn,[data-style=terminal] .chip{border-radius:0}[data-style=terminal] .hero-name{text-shadow:0 0 18px var(--accent-dim)}[data-style=editorial] .hero-name{font-size:clamp(56px,13vw,168px)}[data-style=editorial] .nav{background:var(--bg)}[data-style=editorial] .proj-name:before{content:"§ ";color:var(--accent)}[data-style=editorial] .section-title:before{content:""}[data-style=neon] .hero-role{background:linear-gradient(90deg, var(--accent), color-mix(in oklab, var(--accent) 40%, var(--fg)));color:#0000;-webkit-background-clip:text;background-clip:text}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:var(--radius)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}::-webkit-scrollbar-track{background:0 0}.boot{background:var(--bg);color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;z-index:1000;justify-content:center;align-items:center;font-size:13px;transition:opacity .32s;display:flex;position:fixed;inset:0}.tweak-btn{font-family:var(--font-mono);text-align:left;border:1px solid var(--line);color:var(--fg-dim);background:var(--bg-2);border-radius:var(--radius);cursor:pointer;padding:8px 10px;font-size:12px;transition:all .15s}.tweak-btn:hover{color:var(--accent);border-color:var(--accent)}@media (max-width:900px){.twk-panel,.twk-fab{display:none!important}}@media (max-width:720px){input,textarea,select,.chat-input,.term-input{font-size:16px}}.foot{padding-bottom:calc(80px + env(safe-area-inset-bottom))}@media (max-width:480px){.wrap{padding:0 16px}.section{padding-top:56px;padding-bottom:56px}[data-style=editorial] .section{padding-top:72px;padding-bottom:72px}.hero{padding-top:48px;padding-bottom:40px}.hero-name{font-size:clamp(40px,11vw,64px)}[data-style=editorial] .hero-name{font-size:clamp(48px,14vw,84px)}.metric{padding:16px 12px}.section-head{gap:10px;margin-bottom:32px}.timeline{padding-left:16px}.tl-item{padding:0 0 40px 28px}.chat{height:380px}.interact-single .chat{height:480px}.chat-suggests,.chat-switches{gap:6px;padding:8px 10px}.foot{padding-top:24px;padding-bottom:calc(40px + env(safe-area-inset-bottom));gap:8px;font-size:11px}}.hero-mobile-term{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);margin:0 0 32px;overflow:hidden}.term-tabs{background:var(--bg-2);border-bottom:1px solid var(--line);font-family:var(--font-mono);color:var(--fg-mute);align-items:stretch;font-size:11px;display:flex}.term-traffic{border-right:1px solid var(--line);align-items:center;gap:7px;padding:10px 14px 10px 12px;display:flex}.term-dot{border-radius:50%;width:11px;height:11px}.term-dot.r{background:#ff5f57}.term-dot.a{background:#febc2e}.term-dot.g{background:#28c840}.term-tab{border-right:1px solid var(--line);color:var(--fg-mute);white-space:nowrap;background:0 0;padding:10px 14px}.term-tab.active{background:var(--bg);color:var(--fg);box-shadow:inset 0 -2px 0 0 var(--accent)}.term-tab:not(.active):hover{color:var(--fg)}.term-body{font-family:var(--font-mono);padding:14px 14px 20px;font-size:12.5px;line-height:1.65}.ascii-banner{color:var(--accent);font-family:var(--font-mono);white-space:pre;opacity:.85;letter-spacing:0;margin:0 0 12px;font-size:9.5px;line-height:1.1;overflow:hidden}.term-prompt{color:var(--fg-mute)}.term-prompt .who{color:var(--accent)}.term-prompt .cwd{color:var(--accent);opacity:.7}.term-prompt .cmd{color:var(--fg)}.term-prompt-2{margin-top:18px}.term-prompt-3{margin-top:14px}a.term-prompt-cta{cursor:pointer;text-decoration:none;transition:opacity .15s;display:block}a.term-prompt-cta:hover{opacity:.75}a.term-prompt-cta:hover .term-cursor{animation-duration:.4s}.term-comment{color:var(--fg-mute);margin-bottom:4px}.term-kv{gap:8px;display:flex}.term-kv .k{color:#f59e0b;flex-shrink:0;min-width:88px}.term-kv .v{color:var(--fg)}.term-kv .v-dim{color:var(--fg-dim)}.term-highlight{border-left:2px solid var(--accent);margin:16px 0 4px;padding-left:14px}.term-name{font-family:var(--font-head);letter-spacing:-.04em;color:var(--fg);margin:0 0 6px;font-size:clamp(34px,8.5vw,44px);font-weight:500;line-height:1}[data-style=editorial] .term-name{font-style:italic;font-weight:400}[data-style=terminal] .term-name{font-weight:700}.term-role{font-family:var(--font-mono);color:var(--accent);margin:0 0 8px;font-size:13px}.term-tag{font-family:var(--font-head);letter-spacing:-.005em;color:var(--fg);margin:0 0 4px;font-size:clamp(16px,4.5vw,20px);line-height:1.35}[data-style=editorial] .term-tag{font-style:italic}.term-now{color:var(--fg-dim);font-family:var(--font-mono);margin-bottom:8px;font-size:12px}.term-pill{border:1px solid var(--accent-dim);font-family:var(--font-mono);color:var(--accent);border-radius:999px;align-items:center;gap:8px;margin-top:6px;padding:5px 10px;font-size:11px;display:inline-flex}a.term-pill-cta{text-decoration:none;transition:background .15s,color .15s}a.term-pill-cta:hover{background:var(--accent);color:var(--bg)}a.term-pill-cta:hover .pulse{background:var(--bg);box-shadow:0 0 8px var(--bg)}.term-pill .pulse{background:var(--accent);width:7px;height:7px;box-shadow:0 0 8px var(--accent);border-radius:50%;animation:1.6s ease-in-out infinite pulse}.term-cursor{background:var(--accent);vertical-align:-2px;width:8px;height:14px;margin-left:4px;animation:1s steps(2,end) infinite blink;display:inline-block}[data-style=terminal] .hero-mobile-term{background:0 0;border:none}[data-style=terminal] .term-tabs{border-bottom:1px dashed var(--line);background:0 0}[data-style=terminal] .term-traffic{display:none}[data-style=terminal] .term-tab{border-right:none;padding:6px 14px 6px 0}[data-style=terminal] .term-tab.active{box-shadow:none;color:var(--accent);background:0 0}[data-style=terminal] .term-body{padding:14px 0 20px}[data-style=terminal] .term-kv .k{color:var(--accent);opacity:.7}[data-style=editorial] .hero-mobile-term{border-radius:0}[data-style=editorial] .ascii-banner{display:none}[data-style=editorial] .term-kv .k{color:var(--accent);font-style:italic}.term-sec-head{font-family:var(--font-mono);margin-bottom:24px}.term-sec-title-row{color:var(--fg-mute);letter-spacing:.06em;align-items:center;gap:10px;margin-bottom:8px;font-size:12px;display:flex}.term-sec-num{color:var(--accent);font-weight:600}.term-sec-rule{color:var(--line);flex-shrink:0}.term-sec-title{color:var(--fg);text-transform:lowercase;letter-spacing:0;font-size:13px;font-weight:500}.term-sec-prompt{color:var(--fg-mute);font-size:12.5px;line-height:1.5}.term-sec-prompt .who{color:var(--accent)}.term-sec-prompt .cwd{color:var(--accent);opacity:.7}.term-sec-prompt .cmd{color:var(--fg)}.git-log{font-family:var(--font-mono);color:var(--fg);font-size:12.5px;line-height:1.6}.commit-entry{opacity:0;padding:18px 0 4px;transition:opacity .8s,transform .8s;transform:translateY(20px)}.commit-entry.visible{opacity:1;transform:translateY(0)}.commit-sep{border-top:1px dashed var(--line);margin:22px 0 0}.commit-line{line-height:1.55}.commit-sha-line{color:var(--accent);margin-bottom:8px}.commit-label{color:var(--accent);opacity:.7}.commit-sha{color:var(--accent);font-weight:600}.commit-ref{color:var(--fg-dim)}.commit-entry.head .commit-sha{text-shadow:0 0 12px var(--accent-soft)}.commit-key{color:#f59e0b}.commit-val{color:var(--fg);white-space:pre-wrap}.commit-date{color:var(--accent)}.commit-company{color:var(--fg-dim)}.commit-body{color:var(--fg);font-family:var(--font-body);margin:12px 0;padding-left:4ch;font-size:14px;line-height:1.55}.commit-body p{margin:0 0 10px}.commit-body p:last-child{margin-bottom:0}.commit-stack{color:var(--fg-dim);margin-top:4px}.commit-stack .commit-val{color:var(--accent)}[data-style=terminal] .commit-key{color:var(--accent);opacity:.7}[data-style=terminal] .commit-body{font-family:var(--font-mono);font-size:13px}[data-style=editorial] .commit-key{color:var(--accent);font-style:italic}[data-style=editorial] .commit-body{font-family:var(--font-sans);font-size:15px}[data-style=editorial] .commit-sep{border-top:1px solid var(--line)}[data-style=editorial] .term-sec-title{font-style:italic}.term-prompt-followup{font-family:var(--font-mono);color:var(--fg-mute);margin:18px 0 8px;font-size:12.5px}.term-prompt-followup .who{color:var(--accent)}.term-prompt-followup .cwd{color:var(--accent);opacity:.7}.term-prompt-followup .cmd{color:var(--fg)}.md-output{max-width:100%}.md-para{font-family:var(--font-body);color:var(--fg);margin:0 0 16px;padding-left:20px;font-size:15.5px;line-height:1.65;position:relative}.md-para:last-child{margin-bottom:0}.md-quote{color:var(--accent);opacity:.55;font-family:var(--font-mono);font-weight:600;position:absolute;top:0;left:0}.md-para em.hl{color:var(--accent);font-style:normal}[data-style=editorial] .md-para em.hl{font-style:italic}.tree-output{font-family:var(--font-mono);color:var(--fg);font-size:12.5px;line-height:1.7}.tree-root{color:var(--accent);margin-bottom:4px;font-weight:600}.tree-line{align-items:baseline;display:flex}.tree-rune{color:var(--fg-mute);white-space:pre;flex-shrink:0}.tree-dir{color:var(--accent);font-weight:500}.tree-file{color:var(--fg);margin-right:8px}.tree-note{color:var(--fg-dim);margin-left:4px}.tree-note:first-letter{color:var(--accent)}.tree-group{margin-bottom:8px}.pkg-list{font-family:var(--font-mono);color:var(--fg-dim);word-break:break-word;font-size:12.5px;line-height:1.7}.ls-output{font-family:var(--font-mono)}.ls-header{color:var(--fg-mute);margin-bottom:10px;font-size:11.5px}.projects-grid-mobile{grid-template-columns:1fr;gap:16px;display:grid}.projects-grid-mobile .proj-card{position:relative}.projects-grid-mobile .proj-card:before{content:"📁";opacity:.65;pointer-events:none;font-size:14px;position:absolute;top:24px;left:10px}.projects-grid-mobile .proj-head{padding-left:24px}.history-output{font-family:var(--font-mono);color:var(--fg);font-size:12.5px;line-height:1.85}.history-line{border-bottom:1px dashed var(--line);grid-template-columns:38px 44px 1fr;gap:2px 10px;padding:4px 0;display:grid}.history-line:last-child{border-bottom:none}.history-line.topic-line{border-bottom:none;align-items:baseline;gap:8px;padding:2px 0;display:flex}.topic-rune{color:var(--fg-mute);font-family:var(--font-mono)}.topic-name{color:var(--accent);font-family:var(--font-mono);word-break:break-word}.history-quote{opacity:.85;margin-top:6px;font-style:italic}.history-no{color:var(--fg-mute);text-align:right;font-variant-numeric:tabular-nums}.history-year{color:var(--accent)}.history-title{color:var(--fg)}.history-venue{color:var(--fg-dim);grid-column:2/-1;font-size:11.5px}.history-summary{margin-top:16px}.history-comment{font-family:var(--font-mono);color:var(--fg-mute);font-size:12px}.ssh-output{font-family:var(--font-mono);color:var(--fg-dim);margin-bottom:18px;font-size:12.5px;line-height:1.7}.ssh-line{color:var(--fg-dim)}.ssh-ok{color:var(--accent)}.ssh-mute{color:var(--fg-mute);margin-top:6px}.ssh-motd{color:var(--fg-mute);white-space:normal;margin-top:10px;font-size:11.5px;line-height:1.55}.env-output{font-family:var(--font-mono);color:var(--fg);font-size:13px;line-height:1.85}.env-comment{color:var(--fg-mute)}.env-comment-block{margin-top:14px}.env-line{flex-wrap:wrap;align-items:baseline;gap:4px;display:flex}.env-key{color:#f59e0b;font-weight:600}.env-val{color:var(--fg)}.env-link{color:var(--accent)}.env-link:hover{text-decoration:underline}.env-comment-inline{color:var(--fg-mute);margin-left:6px}[data-style=terminal] .env-key{color:var(--accent);opacity:.8}[data-style=editorial] .env-key{color:var(--accent);font-style:italic}.contact-actions-mobile{flex-wrap:wrap;gap:10px;display:flex}.term-metrics{border-top:1px dashed var(--line);grid-template-columns:repeat(2,1fr);gap:0;margin:8px 0 4px;display:grid}.term-metric{border-bottom:1px dashed var(--line);border-right:1px dashed var(--line);padding:12px 14px}.term-metric:nth-child(2n){border-right:none}.term-metric:nth-last-child(-n+2){border-bottom:none}.term-metric-v{font-family:var(--font-mono);color:var(--accent);letter-spacing:-.01em;font-size:18px;font-weight:600;line-height:1.2}.term-metric-k{font-family:var(--font-mono);color:var(--fg-dim);text-transform:uppercase;letter-spacing:.08em;margin-top:4px;font-size:10.5px}.term-metric-s{font-family:var(--font-mono);color:var(--fg-mute);margin-top:4px;font-size:11px;line-height:1.45}@media (min-width:721px){.term-metrics{grid-template-columns:repeat(4,1fr)}.term-metric:nth-child(2n){border-right:1px dashed var(--line)}.term-metric:nth-last-child(-n+2){border-bottom:1px dashed var(--line)}.term-metric:nth-child(4n),.term-metric:last-child{border-right:none}.term-metric:nth-last-child(-n+4){border-bottom:none}.term-body{padding:20px 22px 26px;font-size:15.5px}.ascii-banner{font-size:13px}.term-name{font-size:clamp(44px,5.5vw,64px)}.term-role{font-size:15.5px}.term-tag{font-size:clamp(19px,2.1vw,24px)}.term-now{font-size:14.5px}.git-log{font-size:15px}.commit-body{padding-left:5ch;font-size:16.5px;line-height:1.7}.tree-output,.pkg-list{font-size:15px}.projects-grid-mobile{grid-template-columns:1fr 1fr;gap:20px}.projects-grid-mobile>.proj-card:last-child:nth-child(odd){grid-column:1/-1}.history-output{font-size:15px}.history-no{font-size:14px}.env-output{font-size:15.5px;line-height:1.75}.md-para{max-width:720px;font-size:17px;line-height:1.7}.term-sec-prompt{font-size:15px}.nav{font-size:14.5px}.lang-toggle{font-size:13px}}[data-style=editorial] .commit-body,[data-style=editorial] .md-para,[data-style=editorial] .term-tag{font-family:var(--font-serif);font-style:italic;font-weight:400}[data-style=editorial] .term-now,[data-style=editorial] .history-title,[data-style=editorial] .commit-val:not(.commit-date){font-family:var(--font-serif);font-style:italic}[data-style=editorial] .term-metric-v{font-family:var(--font-serif);color:var(--fg);font-style:italic;font-weight:400}.foot{font-family:var(--font-mono);flex-direction:column;align-items:flex-start;gap:4px;font-size:12.5px;line-height:1.6;display:flex}.foot-prompt{color:var(--fg-mute);margin-bottom:2px}.foot-prompt .who{color:var(--accent)}.foot-prompt .cwd{color:var(--accent);opacity:.7}.foot-prompt .cmd{color:var(--fg)}.foot-line{color:var(--fg-dim);margin-bottom:10px}.foot-meta{flex-direction:column;gap:2px;display:flex}.foot-comment{color:var(--fg-mute);font-size:11.5px}.foot-link{color:var(--fg-mute);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:2px}.foot-link:hover{color:var(--fg);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}[data-style=editorial] .foot-line{font-family:var(--font-serif);font-style:italic}.ascii-banner{animation:7s ease-in-out infinite crt-flicker}@keyframes crt-flicker{0%,to{opacity:1}47%,53%{opacity:.97}49%,51%{opacity:.93}72%,74%{opacity:.96}}.boot{text-align:left;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:6px;padding:18vh 24px 24px}.boot-line{animation:.18s ease-out both boot-line-in}@keyframes boot-line-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:none}}.ssh-line{opacity:0;transition:opacity .26s,transform .26s;transform:translateY(2px)}.ssh-line.show,[data-style=editorial] .ssh-line{opacity:1;transform:none}.tw-caret{vertical-align:-.15em;background:currentColor;width:.6em;height:1em;margin-left:1px;animation:1s steps(2,end) infinite blink;display:inline-block}.tw-caret.tw-caret-done{animation-duration:.85s}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.ssh-line{opacity:1;transform:none}.page-overlay.show{opacity:0;animation:none}}[data-reduce-motion=true] *,[data-reduce-motion=true] :before,[data-reduce-motion=true] :after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}[data-reduce-motion=true] .ssh-line{opacity:1;transform:none}[data-reduce-motion=true] .page-overlay.show{opacity:0;animation:none}
