:root{--bg:#f8f9fa;--surface:#fff;--ink:#17191c;--muted:#5b636d;--accent:#287d69;--accent-soft:#e6f2ee;--border:#e3e7ea;--grid:#e9edef;--warn:#8a5a00;--warn-bg:#fff6e0;--sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#101314;--surface:#161a1c;--ink:#eceff1;--muted:#9aa3ab;--accent:#4db89d;--accent-soft:#14282a;--border:#262c30;--grid:#1b2124;--warn:#e8b54a;--warn-bg:#2a2310;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#101314;--surface:#161a1c;--ink:#eceff1;--muted:#9aa3ab;--accent:#4db89d;--accent-soft:#14282a;--border:#262c30;--grid:#1b2124;--warn:#e8b54a;--warn-bg:#2a2310;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{margin:0}img{max-width:100%}[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:88px}body{background:var(--bg);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.wrap{max-width:1120px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0 auto}.mono{font-family:var(--mono)}.eyebrow{font:500 12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.nav{z-index:20;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);position:sticky;top:0}.nav .wrap{flex-wrap:wrap;align-items:center;gap:24px;min-height:60px;padding-block:8px;display:flex}.brand{font:600 14px var(--mono);letter-spacing:.04em;margin-right:auto;text-decoration:none}.brand span{color:var(--accent)}.links{gap:4px;display:flex;overflow-x:auto}.links a{color:var(--muted);white-space:nowrap;border-radius:6px;padding:10px 12px;font-size:14px;text-decoration:none;transition:color .2s,background .2s}.links a:hover{color:var(--ink)}.links a[aria-current=true]{color:var(--accent);background:var(--accent-soft)}.btn{min-height:44px;font:500 14px var(--sans);border:1px solid var(--border);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:0 18px;text-decoration:none;transition:border-color .2s,background .2s,color .2s;display:inline-flex}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}:root[data-theme=dark] .btn.primary{color:#0b1210}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn.primary{color:#0b1210}}.btn.primary:hover{filter:brightness(1.08)}.icon-btn{justify-content:center;width:44px;padding:0}@media (width<=639px){.links{order:3;width:100%}.nav .wrap{gap:8px 12px}}.hero{border-bottom:1px solid var(--border);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-position:-1px -1px;background-size:48px 48px;position:relative}.hero .wrap{grid-template-columns:repeat(12,minmax(0,1fr));gap:32px;padding-block:88px 80px;display:grid}.hero-copy{grid-column:1/span 7;min-width:0}.hero h1{letter-spacing:-.025em;text-wrap:balance;margin:16px 0 24px;font-size:clamp(38px,6vw,62px);font-weight:700;line-height:1.08}.hero h1 em{color:var(--accent);font-style:normal}.lede{color:var(--muted);max-width:56ch;margin:0 0 32px;font-size:18px}.cta{flex-wrap:wrap;gap:12px;display:flex}.hero-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;grid-column:9/span 4;align-self:end;min-width:0;padding:20px 22px}.hero-card dl{font:400 12px/1.5 var(--mono);grid-template-columns:auto 1fr;gap:10px 16px;margin:0;display:grid}.hero-card dt{color:var(--muted);letter-spacing:.06em}.hero-card dd{text-align:right;margin:0}@media (width<=899px){.hero .wrap{padding-block:56px 48px}.hero-copy,.hero-card{grid-column:1/-1}}section.block{border-bottom:1px solid var(--border);padding-block:104px}.sh{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px 32px;margin-bottom:48px;display:grid}.sh .eyebrow{grid-column:1/span 3;padding-top:10px}.sh h2{letter-spacing:-.02em;text-wrap:balance;grid-column:4/span 9;margin:0;font-size:clamp(28px,4vw,36px);line-height:1.15}.sh p{color:var(--muted);grid-column:4/span 7;max-width:64ch;margin:0}@media (width<=799px){section.block{padding-block:64px}.sh .eyebrow,.sh h2,.sh p{grid-column:1/-1;padding-top:0}}.profile{grid-template-columns:repeat(12,minmax(0,1fr));gap:32px;display:grid}.profile .txt{grid-column:4/span 7;max-width:720px;font-size:17px}.profile .txt p{margin:0 0 16px}@media (width<=799px){.profile .txt{grid-column:1/-1}}.tag{font:400 12px/1 var(--mono);border:1px solid var(--border);background:var(--bg);color:var(--ink);border-radius:6px;align-items:center;padding:6px 8px;display:inline-flex}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag.learn{color:var(--muted);border-style:dashed}.project{background:var(--surface);border:1px solid var(--border);border-radius:12px;grid-template-columns:repeat(12,minmax(0,1fr));gap:28px 32px;margin-bottom:24px;padding:32px;transition:border-color .2s;display:grid}.project:hover{border-color:var(--accent)}.project .head{flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:8px 24px;display:flex}.project h3{letter-spacing:-.015em;margin:0;font-size:26px}.project .meta{font:400 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;gap:6px 20px;display:flex}.project .meta b{color:var(--ink);font-weight:500}.project .body{grid-column:1/span 6;min-width:0}.project .side{grid-column:8/span 5;min-width:0}.project h4{font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 6px}.project .body p{margin:0 0 20px;font-size:15px}.project ul{margin:0 0 20px;padding-left:18px;font-size:15px}.project li{margin-bottom:4px}.metrics{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:20px;display:grid}.metric{background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:0;padding:14px 16px}.metric strong{overflow-wrap:anywhere;font:500 22px var(--mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums;display:block}.metric span{color:var(--muted);font-size:12px}.diagram{border:1px solid var(--border);background:var(--bg);border-radius:8px;padding:12px;overflow-x:auto}.diagram svg{width:100%;min-width:420px;height:auto;display:block}.diagram svg text{font-family:var(--mono);fill:var(--ink);font-size:11px}.diagram svg .m{fill:var(--muted)}.diagram svg .box{fill:var(--surface);stroke:var(--border);stroke-width:1.2px}.diagram svg .hot{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.2px}.diagram svg .ln{stroke:var(--muted);stroke-width:1.2px;fill:none}.diagram svg .arr{fill:var(--muted)}.cap{font:400 11px var(--mono);color:var(--muted);margin:8px 0 0}.link{min-height:44px;color:var(--accent);border-bottom:1px solid #0000;align-items:center;gap:6px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.link:hover{border-bottom-color:var(--accent)}.project.slot{background:0 0;border-style:dashed}@media (width<=899px){.project{padding:24px}.project .body,.project .side{grid-column:1/-1}}@media (width<=799px){.profile>.tags{grid-column:1/-1!important}}.tl{border-left:1px solid var(--border);grid-column:4/-1;margin:0;padding:0;list-style:none}.tl li{padding:0 0 36px 32px;position:relative}.tl li:before{content:"";background:var(--accent);border-radius:50%;width:9px;height:9px;position:absolute;top:8px;left:-5px}.tl li.pending:before{background:var(--bg);border:1px solid var(--muted)}.tl .when{font:400 12px var(--mono);color:var(--muted);letter-spacing:.04em}.tl h3{margin:4px 0 6px;font-size:18px}.tl p{color:var(--muted);max-width:62ch;margin:0 0 8px;font-size:15px}@media (width<=799px){.tl{grid-column:1/-1}}.contact{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.contact a,.contact .item{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;min-width:0;min-height:44px;padding:22px 24px;text-decoration:none;transition:border-color .2s;display:flex}.contact a:hover{border-color:var(--accent)}.contact .v{font:500 15px var(--mono);overflow-wrap:anywhere}@media (width<=719px){.contact{grid-template-columns:1fr}}footer{font:400 12px var(--mono);color:var(--muted);padding-block:32px}footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:8px 24px;display:flex}.stack{border-top:1px solid var(--border);margin:0}.stack>div{border-bottom:1px solid var(--border);grid-template-columns:220px 1fr;align-items:center;gap:12px 24px;padding:18px 0;display:grid}.stack dt{font-size:15px;font-weight:600}.stack dd{margin:0}@media (width<=639px){.stack>div{grid-template-columns:1fr;gap:10px}}.project .hook{max-width:52ch;margin:0 0 16px;font-size:16px}.project .metrics{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:20px;display:grid}.project .side .link{margin-top:8px}.more{border-top:1px solid var(--border);grid-column:1/-1;padding-top:4px}.more>summary{cursor:pointer;min-height:44px;color:var(--accent);justify-content:space-between;align-items:center;gap:12px;font-size:14px;font-weight:500;list-style:none;display:flex}.more>summary::-webkit-details-marker{display:none}.more>summary:after{content:"+";font:400 20px var(--mono);transition:transform .2s}.more[open]>summary:after{content:"−"}.more[open]>summary{margin-bottom:20px}.more-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:28px 32px;display:grid}.more .body,.more .side{min-width:0}.project .more .body p{margin:0 0 20px}.plain{gap:10px;margin:0 0 8px;padding:0;font-size:15px;list-style:none;display:grid}.plain .when{min-width:150px;font:400 12px var(--mono);color:var(--muted);display:inline-block}.earlier{border-top:0;padding-top:0}@media (width<=799px){.earlier{grid-column:1/-1!important}.plain .when{display:block}}.copy{border:1px solid var(--border);background:var(--bg);min-height:44px;color:var(--ink);font:500 13px var(--sans);cursor:pointer;border-radius:8px;align-self:flex-start;padding:0 14px}.copy:hover{border-color:var(--accent)}@media (prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}@media (prefers-reduced-motion:no-preference){.fade{animation:.35s ease-out both rise}@keyframes rise{0%{opacity:.001;transform:translateY(6px)}to{opacity:1;transform:none}}}@media (width<=899px){.project,.more-grid,.hero .wrap{grid-template-columns:minmax(0,1fr);gap:20px}}@media (width<=799px){.sh,.profile{grid-template-columns:minmax(0,1fr);gap:16px}}
