:root{--bg:#0c1216;--panel:#121b20;--panel-2:#162126;--line:#1f2c33;--ink:#cedfe3;--ink-soft:#a7bcc2;--dim:#6b8189;--trace:#4ec2c6;--amber:#d89a3f;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--sans:"PingFang SC","HarmonyOS Sans SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,sans-serif;--wrap:74rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;max-width:100%;overflow-x:hidden}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;width:100%;min-width:0;max-width:100%;margin:0;font-size:16px;line-height:1.72;overflow-x:hidden}#app{width:100%;min-width:0;max-width:100%}img,video,canvas,svg,iframe{max-width:100%;height:auto}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--trace);outline-offset:3px}button:focus-visible{outline:2px solid var(--trace);outline-offset:3px}.wrap{max-width:var(--wrap);width:100%;min-width:0;margin:0 auto;padding:0 clamp(1.25rem,5vw,3.5rem)}.skip{background:var(--trace);color:var(--bg);z-index:99;padding:.6rem 1rem;font-size:.85rem;position:absolute;top:0;left:-9999px}.skip:focus{top:1rem;left:1rem}.bar{z-index:20;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0}.bar-in{flex-wrap:wrap;align-items:center;gap:1rem;min-height:3.1rem;padding-top:.5rem;padding-bottom:.5rem;display:flex}.bar-id{font-family:var(--mono);color:var(--ink);align-items:center;gap:.45rem;font-size:.86rem;font-weight:600;display:inline-flex}.bar-id:before{content:"";background:var(--trace);border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 0 3px #4ec2c629}.bar-role{color:var(--dim);font-size:.8rem}.bar-nav{font-family:var(--mono);flex-wrap:wrap;gap:1rem 1.4rem;min-width:0;max-width:100%;margin-left:auto;font-size:.82rem;display:flex}.bar-nav a{color:var(--ink-soft);border-bottom:1px solid #0000;padding-bottom:.15rem}.bar-nav a:hover{color:var(--trace);border-bottom-color:var(--trace)}.hero{grid-template-columns:minmax(0,1fr) minmax(0,19rem);align-items:start;gap:clamp(2rem,6vw,5rem);min-width:0;padding-top:clamp(2.4rem,6vw,4.6rem);padding-bottom:clamp(2.4rem,5vw,3.6rem);display:grid;position:relative;overflow:hidden}.hero-scope{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#0000 0,#000 26% 80%,#0000 100%);mask-image:linear-gradient(#0000 0,#000 26% 80%,#0000 100%)}.hero-copy,.readout{z-index:1;position:relative}.prompt{font-family:var(--mono);color:var(--trace);flex-wrap:wrap;gap:.5rem;margin:0 0 1.3rem;font-size:.8rem;display:flex}.prompt span{color:var(--dim)}.hero h1{letter-spacing:-.028em;max-width:min(22ch,100%);margin:0;font-size:clamp(2rem,5.2vw,3.5rem);font-weight:700;line-height:1.16}.lede{max-width:min(46ch,100%);color:var(--ink-soft);margin:1.5rem 0 0;font-size:1rem;line-height:1.85}.cta{flex-wrap:wrap;gap:.7rem;margin-top:2.1rem;display:flex}.btn{background:var(--trace);color:#06110f;border:1px solid var(--trace);padding:.62rem 1.35rem;font-size:.9rem;font-weight:600;transition:background-color .18s,border-color .18s,color .18s;display:inline-block}.btn:hover{background:#63d6da;border-color:#63d6da}.btn.ghost{color:var(--ink);border-color:var(--line);background:0 0}.btn.ghost:hover{color:var(--trace);border-color:var(--trace);background:0 0}.readout{background:var(--panel);border:1px solid var(--line);width:100%;min-width:0;padding:1.1rem 1.15rem .9rem}.readout-head{font-family:var(--mono);color:var(--dim);border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;padding-bottom:.7rem;font-size:.72rem;display:flex}.readout-rows{margin:0}.readout-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding:.58rem 0;display:flex}.readout-row:last-of-type{border-bottom:none}.readout-row dt{color:var(--dim);margin:0;font-size:.82rem}.readout-row dd{font-family:var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;margin:0;font-size:.92rem;font-weight:600}.readout-row dd em{color:var(--dim);margin-left:.25rem;font-size:.76rem;font-style:normal;font-weight:400}.readout-stamp{color:var(--dim);border-top:1px solid var(--line);margin:.4rem 0 0;padding-top:.7rem;font-size:.72rem;line-height:1.65}.sec{border-top:1px solid var(--line);padding:clamp(2.4rem,5vw,3.4rem) 0}.sec-title{letter-spacing:.01em;font-size:.95rem;font-weight:700;font-family:var(--mono);color:var(--ink);align-items:center;gap:.6rem;margin:0 0 .6rem;display:flex}.sec-title:before{content:"";background:var(--trace);flex:none;width:3px;height:.95em}.sec-note{max-width:min(54ch,100%);color:var(--dim);margin:0 0 2rem;font-size:.9rem;line-height:1.75}.bars{max-width:44rem;margin:0;padding:0;list-style:none}.bars li{grid-template-columns:minmax(6.5rem,9rem) minmax(0,1fr) 2.6rem;align-items:center;gap:1rem;padding:.42rem 0;display:grid}.b-name{font-family:var(--mono);color:var(--ink-soft);overflow-wrap:break-word;font-size:.82rem}.b-track{background:var(--panel-2);border:1px solid var(--line);height:.62rem;display:block;position:relative;overflow:hidden}.b-fill{height:100%;width:var(--w,0%);background:var(--trace);transform-origin:0;display:block}.bars li.top .b-fill{background:var(--amber)}.bars li.top .b-name{color:var(--ink)}.b-num{font-family:var(--mono);color:var(--dim);text-align:right;font-variant-numeric:tabular-nums;font-size:.8rem}.projects{margin:0;padding:0;list-style:none}.project{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,17rem) minmax(0,1fr) minmax(0,max-content);align-items:baseline;gap:.4rem clamp(1rem,3vw,2.4rem);min-width:0;padding:1.05rem 0;display:grid}.project:first-child{padding-top:0}.project:last-child{border-bottom:none}.p-title{font-family:var(--mono);color:var(--ink);overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none;font-size:.9rem;font-weight:600}.p-title:hover{color:var(--trace);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.p-desc{color:var(--ink-soft);margin:0;font-size:.89rem;line-height:1.7}.p-meta{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.p-meta span{font-family:var(--mono);color:var(--dim);border:1px solid var(--line);white-space:normal;overflow-wrap:anywhere;padding:.1rem .45rem;font-size:.68rem}.p-meta span.live{color:var(--amber);border-color:#d89a3f73}.links{max-width:48rem;margin:0;padding:0;list-style:none}.links li{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:.5rem 1.2rem;padding:.7rem 0;display:flex}.links li:last-child{border-bottom:none}.links a{font-family:var(--mono);min-width:6.5rem;color:var(--ink);border-bottom:1px solid var(--line);font-size:.88rem;font-weight:600}.links a:hover{color:var(--trace);border-bottom-color:var(--trace)}.links .note{color:var(--dim);font-size:.85rem}.foot{border-top:1px solid var(--line);background:var(--panel);padding:1.6rem 0 3rem}.foot p{font-family:var(--mono);color:var(--dim);margin:0;font-size:.74rem;line-height:1.95}.foot a{color:var(--ink-soft);border-bottom:1px solid var(--line)}.foot a:hover{color:var(--trace);border-bottom-color:var(--trace)}@media (max-width:880px){.hero{grid-template-columns:minmax(0,1fr);gap:2.2rem;padding-top:2.4rem}.hero h1{max-width:none}.readout{width:100%;max-width:min(28rem,100%)}.project{grid-template-columns:minmax(0,1fr);gap:.45rem}.p-meta{justify-content:flex-start;margin-top:.3rem}.bar-nav{flex-wrap:wrap;gap:1rem 1.2rem;width:100%;margin-left:0;padding-top:.1rem}.bar-in{min-height:0;padding-top:.7rem;padding-bottom:.7rem}}@media (max-width:440px){.bar-role{display:none}.links li{flex-direction:column;gap:.15rem}.bars li{grid-template-columns:minmax(0,7rem) minmax(0,1fr) minmax(0,2.6rem);gap:.7rem}}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}html.js-anim .b-fill{transform:scaleX(0)}html.js-anim .b-fill.armed{animation:.8s cubic-bezier(.2,.7,.25,1) forwards grow}html.js-anim .fx{opacity:0;transform:translateY(14px)}html.js-anim .fx.in{opacity:1;transition:opacity .55s,transform .55s cubic-bezier(.2,.7,.25,1);transform:none}.bar.scrolled{box-shadow:0 8px 24px #040a0d80}@media print{.fx{opacity:1!important;transform:none!important}.hero-scope{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
