:root{--bg: #0f1115;--bg-2: #161a21;--panel: #1b2029;--panel-2: #222835;--ink: #eef1f6;--ink-2: #a9b2c1;--ink-3: #7a8494;--line: #2a3140;--amber: #f0b35e;--amber-ink: #141414;--teal: #5ecfc0;--ok: #4ade80;--blue: #7cb1ff;--orange: #f59e0b;--purple: #b48cff;--radius: 14px;--mono: ui-monospace, "SF Mono", Menlo, monospace;--shadow: 0 12px 32px rgba(0, 0, 0, .35);--prose-width: 46rem}[data-theme=light]{--bg: #f7f6f3;--bg-2: #ffffff;--panel: #ffffff;--panel-2: #efede7;--ink: #1a1e26;--ink-2: #454f5e;--ink-3: #6f7887;--line: #e0ddd5;--amber: #a1661c;--amber-ink: #ffffff;--teal: #0e7d72;--ok: #177a47;--blue: #2563c9;--orange: #a35a08;--purple: #7757c2;--shadow: 0 12px 28px rgba(26, 30, 38, .1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.7 -apple-system,PingFang SC,Segoe UI,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:3px solid var(--amber);outline-offset:2px;border-radius:4px}.wrap{max-width:1120px;margin:0 auto;padding:0 22px}.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--amber);color:var(--amber-ink);padding:8px 16px;border-radius:8px;font-weight:700}.skip-link:focus{left:8px}.topbar{position:sticky;top:0;z-index:60;backdrop-filter:blur(10px);background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:1px solid var(--line)}.nav{display:flex;align-items:center;gap:6px;min-height:60px}.logo{display:flex;align-items:center;gap:10px;margin-right:auto;color:var(--ink);font-weight:800;font-size:16px}.logo .dot{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,var(--amber),var(--teal))}.logo:hover{text-decoration:none}.nav-links{display:flex;align-items:center;gap:4px}.nav-links a{padding:8px 14px;border-radius:999px;color:var(--ink-2);font-size:14.5px;font-weight:600}.nav-links a:hover{color:var(--ink);background:var(--panel-2);text-decoration:none}.nav-links a[aria-current=page]{color:var(--amber-ink);background:var(--amber)}.pill-btn{background:var(--panel-2);color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:7px 14px;cursor:pointer;font-size:14px}.pill-btn:hover{color:var(--ink);border-color:var(--ink-3)}#menuBtn{display:none}.hero{padding:64px 0 30px}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:34px;align-items:center}.kicker{font-family:var(--mono);color:var(--amber);font-size:13px;letter-spacing:.16em;text-transform:uppercase;margin:0}h1.mega{font-size:42px;line-height:1.18;margin:12px 0 14px;letter-spacing:-.02em}.lede{color:var(--ink-2);font-size:17px;margin:0 0 20px;max-width:34em}.cta-row{display:flex;flex-wrap:wrap;gap:12px}.btn{display:inline-block;padding:11px 20px;border-radius:12px;font-weight:700;font-size:15px}.btn.primary{background:var(--amber);color:var(--amber-ink)}.btn.ghost{border:1px solid var(--line);color:var(--ink)}.btn:hover{text-decoration:none;transform:translateY(-1px)}.hero-card{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);display:block;color:var(--ink)}.hero-card:hover{text-decoration:none}.hero-card .cover{position:relative;aspect-ratio:16/9}.hero-card .cover img{width:100%;height:100%;object-fit:cover;display:block}.hero-card .body{padding:16px 18px 18px}.hero-card .body h2{margin:8px 0 4px;font-size:19px}.hero-card .body p{margin:0 0 10px;color:var(--ink-2);font-size:14px}.ph-flag{position:absolute;left:12px;bottom:12px;font-family:var(--mono);font-size:11px;background:#0000009e;color:#ffd9a0;border:1px dashed rgba(255,217,160,.7);padding:3px 9px;border-radius:6px;backdrop-filter:blur(3px)}[data-theme=light] .ph-flag{background:#ffffffd9;color:#7a4c0d;border-color:#7a4c0d8c}.badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:11px;padding:2px 9px;border-radius:999px;border:1px solid var(--line);color:var(--ink-2);white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.released{color:var(--ok)}.badge.beta{color:var(--blue)}.badge.prototype{color:var(--orange)}.badge.research{color:var(--purple)}.badge.archived{color:var(--ink-3)}.badge.private{color:var(--ink-3);border-style:dashed}.badge-stack,.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-family:var(--mono);font-size:11px;background:var(--panel-2);color:var(--ink-2);border-radius:6px;padding:2px 8px}[data-theme=light] .chip{background:#e9e6df}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:54px 0 6px}.section-head h2{font-size:24px;margin:0;letter-spacing:-.01em}.section-head .more{font-size:14px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:16px}.card{position:relative;display:flex;flex-direction:column;border-radius:var(--radius);overflow:hidden;background:var(--panel);border:1px solid var(--line);color:var(--ink);transition:transform .18s ease,box-shadow .18s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);text-decoration:none}.card .cover{position:relative;aspect-ratio:16/10;overflow:hidden}.card .cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.card:hover .cover img{transform:scale(1.04)}.hero-card .real-cover img,.card .real-cover img{object-fit:contain;background:var(--bg-2)}.card:hover .real-cover img{transform:none}.cover-caption{margin:0;padding:7px 16px;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:12px}.card .body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}.card .body h3{margin:0;font-size:17px}.card .body p{margin:0;color:var(--ink-2);font-size:13.5px;flex:1}.case-strip{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:16px}.case-card{border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:12px;background:var(--panel);padding:18px 20px;color:var(--ink);display:block}.case-card:hover{text-decoration:none;background:var(--panel-2)}.case-card .k{font-family:var(--mono);font-size:11px;color:var(--ink-3)}.case-card h3{margin:6px 0;font-size:17px}.case-card p{margin:0;color:var(--ink-2);font-size:14px}.case-card.pending{border-left-color:var(--ink-3)}.case-card.pending h3{color:var(--ink-2)}.skills-band{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px}.skill-tile{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--panel)}.skill-tile b{display:block;font-size:13px;color:var(--amber);margin-bottom:4px}.skill-tile span{font-size:13.5px;color:var(--ink-2)}.crumb{font-size:13.5px;color:var(--ink-3);margin:22px 0 0}.detail-hero{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);margin-top:16px}.detail-hero img{width:100%;aspect-ratio:21/9;object-fit:cover;display:block}.detail-hero.real-cover img{object-fit:contain;background:var(--bg-2);aspect-ratio:16/7}.cover-link-label{position:absolute;right:12px;bottom:12px;padding:3px 10px;border-radius:6px;background:var(--panel);color:var(--teal);font-size:12px;border:1px solid var(--line)}.detail-hero a:focus-visible{display:block;outline-offset:-4px}.media-note{font-size:13px;color:var(--ink-2);margin:16px 0 0;padding:12px 16px;border-left:3px solid var(--amber);background:var(--panel)}.media-note a{display:inline-block;margin-left:8px}.detail-head{padding:30px 0 6px}.detail-head h1{font-size:34px;margin:8px 0 6px;letter-spacing:-.015em}.detail-head .sum{color:var(--ink-2);font-size:16.5px;margin:0}.detail-cols{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:34px;margin-top:26px;align-items:start}aside.meta-panel{position:sticky;top:80px;display:flex;flex-direction:column;gap:14px}.meta-box{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:14px 16px;font-size:13.5px}.meta-box b{display:block;font-size:11.5px;font-family:var(--mono);color:var(--ink-3);margin-bottom:6px;letter-spacing:.08em}.meta-box ul{margin:0;padding-left:16px;color:var(--ink-2)}.meta-box p{margin:0;color:var(--ink-2)}.prose{max-width:var(--prose-width)}.prose h2{font-size:21px;margin:34px 0 10px}.prose h3{font-size:16.5px;margin:22px 0 6px;color:var(--amber)}.prose p,.prose li{color:var(--ink-2);font-size:15.5px}.prose ul{padding-left:22px}.prose blockquote{margin:18px 0;padding:12px 18px;border-left:3px solid var(--amber);background:var(--panel);border-radius:0 10px 10px 0;color:var(--ink-2);font-size:14.5px}.prose blockquote p{margin:0}.prose code{font-family:var(--mono);font-size:.88em;background:var(--panel-2);padding:1px 6px;border-radius:4px}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 6px}.gallery figure{margin:0;position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--panel)}.gallery img{width:100%;height:auto;display:block}.gallery figcaption{display:grid;gap:8px;font-size:13px;color:var(--ink-2);padding:12px 14px;background:var(--panel)}.gallery-video{grid-column:1 / -1}.gallery video{display:block;width:100%;height:auto;background:#101216}.gallery .gallery-placeholder{border-style:dashed}.original-image{display:block}.original-image:focus-visible{outline-offset:-4px}.project-demo,.section-head[id]{scroll-margin-top:80px}.project-demo>.section-head{margin-top:0}.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.case-embed{border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,var(--panel),var(--bg-2));padding:20px 22px;margin-top:26px;max-width:var(--prose-width)}.case-embed .k{font-family:var(--mono);font-size:11px;color:var(--ink-3)}.case-embed h3{margin:6px 0 8px;font-size:18px}.case-embed p{color:var(--ink-2);font-size:15px;margin:0 0 10px}.case-prose{max-width:var(--prose-width);counter-reset:step}.case-prose h2{counter-increment:step;position:relative;padding-left:40px;font-size:20px;margin:40px 0 12px}.case-prose h2:before{content:counter(step,cjk-ideographic);position:absolute;left:0;top:-1px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;border:2px solid var(--amber);color:var(--amber);font-size:14px;font-family:var(--mono)}.case-prose>h2:not(:first-of-type):after{content:"";position:absolute;left:13px;bottom:30px;height:26px;border-left:2px solid var(--line)}.case-prose p,.case-prose li{color:var(--ink-2);font-size:15.5px;line-height:1.85}.case-prose ul{padding-left:22px}.case-prose ol{padding-left:24px}.case-prose li{margin:4px 0}.case-prose b{color:var(--ink)}.case-prose code{font-family:var(--mono);font-size:.88em;background:var(--panel-2);padding:1px 6px;border-radius:4px}.evidence-box{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:16px 18px;margin:28px 0 8px;max-width:var(--prose-width)}.evidence-box b.cap{display:block;font-size:11.5px;font-family:var(--mono);color:var(--ink-3);letter-spacing:.08em;margin-bottom:10px}.ev-chips{display:flex;flex-wrap:wrap;gap:8px}.ev-chip{font-family:var(--mono);font-size:12px;border:1px solid var(--line);color:var(--ink-2);padding:4px 10px;border-radius:8px;background:var(--panel-2)}.ev-chip.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,transparent)}.ev-chip.unverified{opacity:.65;border-style:dashed}.verify-note{color:var(--ink-3);font-size:12.5px;font-family:var(--mono);margin:24px 0 0;max-width:var(--prose-width)}.type-nav{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 6px}.type-nav a{font-size:13.5px;font-weight:600;padding:6px 14px;border-radius:999px;border:1px solid var(--line);color:var(--ink-2)}.type-nav a:hover{color:var(--ink);background:var(--panel-2);text-decoration:none}.type-nav a[aria-current=true]{color:var(--amber-ink);background:var(--amber);border-color:var(--amber)}footer.site{border-top:1px solid var(--line);margin-top:80px;padding:30px 0 52px;color:var(--ink-3);font-size:13px}footer.site a{color:var(--ink-3)}@media(max-width:980px){.hero-grid{grid-template-columns:1fr}.grid,.skills-band{grid-template-columns:repeat(2,1fr)}.detail-cols{grid-template-columns:1fr}aside.meta-panel{position:static;flex-direction:row;flex-wrap:wrap}.meta-box{flex:1 1 220px}}@media(max-width:720px){#menuBtn{display:inline-block}.nav-links{display:none;position:absolute;top:60px;left:0;right:0;background:var(--bg-2);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:10px 18px 16px;gap:2px}.nav-links.open{display:flex}.nav{position:relative}h1.mega{font-size:32px}.grid,.case-strip,.gallery,.featured-grid{grid-template-columns:1fr}.detail-hero.real-cover img{aspect-ratio:auto}.cover-link-label{position:static;display:block;border:0;border-radius:0;padding:8px 12px}.detail-head h1{font-size:28px;overflow-wrap:anywhere}}@media(max-width:360px){.wrap{padding:0 14px}h1.mega{font-size:27px}.detail-head h1{font-size:26px}.skill-tile span,.card .body p{font-size:13px}.cta-row .btn{padding:10px 16px;font-size:14px}}@media print{.topbar,footer.site,.ph-flag{display:none}body{background:#fff;color:#000}}
