:root{--bg:#faf9f5;--panel:#f5f4ed;--line:#e8e6dc;--strong-line:#d1cfc5;--ink:#141413;--muted:#5e5d59;--faint:#87867f;--clay:#d97757;--pink:#c46686;--blue:#6a9bcc;--olive:#788c5d;--purple:#6f5b8a;--sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--serif:Charter,"Iowan Old Style","Palatino Linotype",Georgia,"Songti SC",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:4px}button,a,summary,[tabindex]{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--blue);outline-offset:5px;border-radius:3px}.skip-link{position:fixed;left:18px;top:-100px;background:var(--ink);color:#fff;padding:12px;z-index:100}.skip-link:focus{top:10px}.topbar{height:56px;padding:0 28px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;background:rgba(250,249,245,.97);position:sticky;top:0;z-index:20;font-size:13px}.brand{text-decoration:none;font-weight:650;white-space:nowrap;margin-right:auto}.brand span{font-weight:400;margin-left:12px;color:var(--faint);font-size:12px}.topnav{display:flex;align-items:center;gap:22px}.topnav>a,.topnav summary{text-decoration:none;color:var(--muted)}.topnav>a:hover,.topnav summary:hover{color:var(--ink)}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.nav-menu{position:relative}.nav-menu summary span{padding-left:4px;color:var(--faint)}.nav-menu>div{position:absolute;top:28px;left:-18px;width:335px;border:1px solid var(--line);padding:9px;background:var(--bg);box-shadow:0 8px 24px #1414130d;border-radius:8px}.nav-menu a{display:block;text-decoration:none;padding:11px 10px;line-height:1.4;border-radius:4px}.nav-menu a:hover{background:var(--panel)}.lang-switch{display:flex;background:var(--panel);padding:3px;border:1px solid var(--line);border-radius:99px;gap:2px;white-space:nowrap}.lang-switch a{text-decoration:none;padding:5px 11px;color:var(--faint);border-radius:99px;font-size:11px;font-weight:600}.lang-switch a[aria-current]{background:#fff;color:var(--ink);box-shadow:0 1px 3px #1414130b}.post{max-width:700px;margin:0 auto}.post-header{margin:76px -210px 64px;text-align:center}.eyebrow{text-transform:uppercase;letter-spacing:1.7px;font-size:11px;font-weight:600;color:var(--muted);margin-bottom:24px}h1{font-size:54px;line-height:1.08;letter-spacing:-2px;font-weight:650;margin:0 0 24px}.subtitle{font-family:var(--serif);font-size:21px;color:var(--muted);line-height:1.5;margin:0 0 22px}.keywords{font-size:13px;color:var(--muted);line-height:1.8;margin:0 0 21px}.byline{font-size:13px;font-weight:500;margin:0 0 8px}.hardware{font-size:12px;color:var(--faint);margin:0}article{font-family:var(--serif);font-size:20px;line-height:1.5}article p{margin:0 0 1.1em}article strong{font-weight:650}article p a{text-decoration-color:var(--strong-line)}article p a:hover{text-decoration-color:var(--clay);color:var(--clay)}h2{font-family:var(--sans);font-size:29px;line-height:1.25;letter-spacing:-.7px;font-weight:620;margin:78px 0 23px}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75em;background:var(--panel);border:1px solid var(--line);padding:2px 4px;border-radius:4px;overflow-wrap:anywhere}.wide{position:relative;left:50%;transform:translateX(-50%);width:960px;max-width:calc(100vw - 48px)}.chart{margin:35px 0 30px;padding:28px 30px 20px;background:var(--panel);border:1px solid var(--line);border-radius:8px;font-family:var(--sans)}.chart-title{font-size:18px;font-weight:600;letter-spacing:-.35px;line-height:1.4;margin-bottom:4px}.chart-subtitle{font-size:12px;color:var(--muted);margin-bottom:28px}.bar-row{display:grid;grid-template-columns:230px minmax(0,1fr) 58px;gap:18px;align-items:center;margin:15px 0}.bar-label{font-size:13px;line-height:1.4}.bar-track{height:25px;background:repeating-linear-gradient(to right,var(--strong-line) 0,var(--strong-line) 1px,transparent 1px,transparent var(--tick));border-left:1px solid var(--strong-line)}.bar{height:100%;border-radius:0 3px 3px 0;background:var(--faint)}.color-1{background:var(--clay)}.color-2{background:var(--pink)}.color-3{background:var(--blue)}.color-4{background:var(--olive)}.color-5{background:var(--purple)}.bar-value{font-size:14px;font-variant-numeric:tabular-nums;text-align:right;font-weight:600}.axis{padding:0 76px 0 248px;margin-top:18px;height:20px}.axis>div{position:relative;font-size:10px;color:var(--faint)}.axis span{position:absolute;transform:translateX(-50%)}figcaption{font-family:var(--sans);font-size:12px;line-height:1.6;color:var(--muted);margin-top:22px;border-top:1px solid var(--line);padding-top:14px}.table-scroll{overflow-x:auto;margin:32px 0;font-family:var(--sans);font-size:13px;line-height:1.55;scrollbar-width:thin}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top}thead th{font-size:12px;font-weight:650;color:var(--muted);border-top:1px solid var(--strong-line);border-bottom:1px solid var(--strong-line)}tbody th{font-weight:500}tbody tr:last-child{background:var(--panel)}.numeric{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.toc{display:none}.mobile-menu{display:none}.resources{margin-top:32px;padding-top:22px;border-top:1px solid var(--line);display:flex;gap:25px;font-family:var(--sans);font-size:13px;flex-wrap:wrap}.resources a{text-decoration:none}.resources a:hover{color:var(--clay)}footer{border-top:1px solid var(--line);margin:64px 0 36px;padding-top:24px;display:flex;justify-content:space-between;font-size:12px;color:var(--faint)}footer a{text-decoration:none}
@media(min-width:1620px){.toc{display:block;position:fixed;left:calc(50vw - 790px);top:150px;width:210px;font-family:var(--sans)}.toc>span{text-transform:uppercase;letter-spacing:1px;font-size:10px;font-weight:600;color:var(--faint)}.toc nav{display:flex;flex-direction:column;gap:2px;margin-top:15px}.toc a{font-size:12px;line-height:1.5;color:var(--faint);border-left:1px solid var(--line);padding:7px 0 7px 13px;text-decoration:none}.toc a:hover,.toc a.active{color:var(--ink);border-color:var(--clay)}}
@media(max-width:1180px){.brand span{display:none}.topbar{gap:18px}.topnav{gap:16px}.post-header{margin-left:-100px;margin-right:-100px}h1{font-size:50px}}
@media(max-width:1000px){.topnav{display:none}.post{padding:0 24px;max-width:748px}.post-header{margin:64px 0 48px}.mobile-menu{display:block;margin-bottom:34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:13px}.mobile-menu summary{display:flex;justify-content:space-between;padding:14px 0}.mobile-menu nav{display:flex;flex-direction:column;gap:12px;padding:5px 0 20px}.mobile-menu a{text-decoration:none;color:var(--muted)}h1{font-size:46px}.bar-row{grid-template-columns:190px minmax(0,1fr) 58px;gap:15px}.axis{padding-left:205px;padding-right:73px}}
@media(max-width:600px){.topbar{padding:0 16px;gap:10px}.brand{font-size:12px}.lang-switch a{padding:5px 8px;font-size:10px}.post-header{margin:46px 0 38px}.eyebrow{font-size:10px;margin-bottom:21px}h1{font-size:36px;letter-spacing:-1.3px;line-height:1.12}.subtitle{font-size:18px}.keywords{font-size:11px;margin-bottom:18px}.byline{font-size:12px}article{font-size:18px;line-height:1.6}h2{font-size:26px;margin-top:58px}.chart{padding:21px 18px 17px}.chart-title{font-size:16px}.chart-subtitle{margin-bottom:21px}.bar-row{grid-template-columns:minmax(0,1fr) 48px;gap:6px 13px;margin:17px 0}.bar-label{grid-column:1/-1;font-size:12px}.bar-track{height:23px}.bar-value{font-size:13px}.axis{padding-left:0;padding-right:61px;margin-top:14px}figcaption{font-size:11px}.resources{gap:18px;font-size:12px}.table-scroll{font-size:12px}footer{margin-top:45px;font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.topbar,.toc,.mobile-menu,.resources,.skip-link{display:none}.post{max-width:none;padding:0}.post-header{margin:30px 0}article{font-size:12pt}h1{font-size:30pt}h2{margin-top:32px;font-size:20pt}.wide{width:100%;max-width:100%;left:0;transform:none}.chart,table{break-inside:avoid}body{background:#fff}}

/*
 * Local-only typography alignment with:
 * https://solarx-team.github.io/H3-Streaming-VAE-Decoder/assets/style.css
 * Checked 2026-10-20. Use the same system-font stacks, without remote fonts.
 * Selector names differ because this article nests its paragraphs in sections.
 */
:root {
  --serif: Charter, "Bitstream Charter", "Iowan Old Style", "Source Serif 4", "Source Serif Pro", Georgia, Cambria,
    "Songti SC", "STSong", "Noto Serif SC", "Noto Serif CJK SC", "Source Han Serif SC", serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB",
    "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  color-scheme: light;
}

html { -webkit-text-size-adjust: 100%; }
body { -moz-osx-font-smoothing: grayscale; }

.author-fold {
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: inherit;
  cursor: pointer;
}
.author-fold > .author-names { border-bottom: 1px dotted var(--strong-line); }
.author-fold:hover > .author-names,
.author-fold:focus-visible > .author-names { border-bottom-color: var(--clay); }
.author-fold:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; border-radius: 3px; }
.author-fold [hidden] { display: none; }
.post-header .byline.team { margin-top: 4px; }
.post .cite { color: var(--muted); font-family: var(--sans); font-size: 0.78em; font-weight: 400; white-space: nowrap; }
.post .cite a { color: inherit; text-decoration: none; }
.post .cite a:hover { color: var(--clay); }
.post .reference-list {
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: var(--sans);
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--muted);
}
.post .reference-list li {
  display: grid;
  grid-template-columns: 2.7em minmax(0, 1fr);
  margin: 0 -10px;
  padding: 7px 10px;
  border-radius: 8px;
}
.reference-list .ref-number { color: var(--faint); font-variant-numeric: tabular-nums; }
.reference-list .ref-title { color: var(--ink); font-style: italic; overflow-wrap: anywhere; }
.reference-list a { overflow-wrap: anywhere; }
.reference-list li:target { background: rgba(217, 119, 87, 0.12); }

@media screen {
  article,
  article p,
  article ul,
  article ol {
    font-family: var(--serif);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.62;
    letter-spacing: normal;
    text-align: start;
  }
  html:lang(zh) article,
  html:lang(zh) article p,
  html:lang(zh) article ul,
  html:lang(zh) article ol {
    font-size: 17px;
    line-height: 1.9;
  }
  article p { margin: 0 0 1.1em; }
  article ul, article ol { margin: 0 0 1.2em; padding-left: 1.4em; }
  article li { margin: 0.4em 0; padding-left: 4px; }
  article li::marker { color: var(--faint); }
  article b, article strong { color: var(--ink); font-weight: 650; }

  .post-header h1 {
    font-family: var(--sans);
    font-size: clamp(36px, 5.4vw, 58px);
    line-height: 1.06;
    font-weight: 700;
    letter-spacing: -0.028em;
    margin: 0 0 22px;
  }
  .post h2 {
    font-family: var(--sans);
    font-size: 30px;
    line-height: 1.2;
    font-weight: 650;
    letter-spacing: -0.02em;
    margin: 88px 0 20px;
  }
  .post h3 {
    font-family: var(--sans);
    font-size: 21px;
    line-height: 1.3;
    font-weight: 600;
    letter-spacing: -0.01em;
    margin: 56px 0 14px;
  }
  .post-header .eyebrow {
    font-size: 15px;
    font-weight: 600;
    letter-spacing: normal;
    text-transform: none;
    color: var(--ink);
    margin: 0 0 24px;
  }
  .post-header .keywords {
    font-size: 15px;
    line-height: 1.6;
    font-weight: 600;
    color: var(--ink);
    margin: 0;
  }
  .post-header .byline,
  .post-header .hardware {
    font-size: 15px;
    line-height: 1.6;
    font-weight: 400;
    color: var(--muted);
    margin: 10px 0 0;
  }
  .post-header .hardware { margin-top: 4px; }
  /* The reference has no subtitle. Use its reading-face scale for ours. */
  .post-header .subtitle { font-size: 18px; line-height: 1.62; }
  html:lang(zh) .post-header .subtitle { font-size: 17px; line-height: 1.9; }

  .post code {
    font-family: var(--mono);
    font-size: 0.8em;
    padding: 0.12em 0.36em;
  }
  .post table {
    font-family: var(--sans);
    font-size: 14px;
    line-height: 1.5;
    font-variant-numeric: tabular-nums;
  }
  .post thead th { font-size: inherit; font-weight: 500; }
  .post figcaption {
    font-family: var(--sans);
    font-size: 14px;
    line-height: 1.65;
  }
}

@media screen and (max-width: 860px) {
  .post-header h1 { font-size: 36px; }
  article, article p, article ul, article ol { font-size: 17px; }
  html:lang(zh) article,
  html:lang(zh) article p,
  html:lang(zh) article ul,
  html:lang(zh) article ol { font-size: 16.5px; }
  .post h2 { margin-top: 64px; font-size: 25px; }
  .post h3 { margin-top: 44px; font-size: 19px; }
  .post-header .subtitle { font-size: 17px; }
  html:lang(zh) .post-header .subtitle { font-size: 16.5px; }
}

/* Keep the requested English title on one line, including narrow phones. */
html:lang(en) .post-header h1 { white-space: nowrap; }
@media screen and (max-width: 480px) {
  html:lang(en) .post-header h1 {
    font-size: clamp(18px, calc((100vw - 48px) * 0.08), 36px);
  }
}

/* Reference-aligned article layout; all assets stay in the offline export. */
:root { --panel-2:#f0eee6; --card:#fff; }
::selection { background:rgba(217,119,87,.24); }
html { scroll-padding-top:84px; }
button { font:inherit; }
.topbar { height:56px; gap:16px; padding:0 28px; z-index:30; background:rgba(250,249,245,.9); backdrop-filter:saturate(160%) blur(10px); -webkit-backdrop-filter:saturate(160%) blur(10px); }
.topbar .name { display:flex; align-items:center; gap:9px; min-width:0; margin-right:auto; overflow:hidden; color:var(--ink); font-size:15px; font-weight:600; letter-spacing:-.01em; text-decoration:none; white-space:nowrap; }
.topbar .team-logo { display:block; width:40px; height:40px; flex:none; object-fit:contain; border-radius:6px; }
.topbar .brand-label { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.name small { margin-left:12px; color:var(--faint); font-size:13px; font-weight:400; letter-spacing:0; }
.nav { display:flex; align-self:stretch; margin-right:4px; }
.nav-item { position:relative; display:flex; }
.nav>a,.nav-item>a { display:flex; align-items:center; gap:5px; padding:0 11px; color:var(--muted); font-size:14px; text-decoration:none; white-space:nowrap; }
.nav a:hover { color:var(--ink); }
.nav-item svg { width:9px; height:6px; fill:none; stroke:currentColor; stroke-width:1.5; opacity:.7; }
.nav-sub { position:absolute; top:100%; left:0; min-width:240px; padding:6px; border:1px solid var(--line); border-radius:12px; background:var(--card); box-shadow:0 10px 30px #1414131f,0 1px 3px #1414130f; visibility:hidden; opacity:0; transform:translateY(4px); transition:opacity .15s,transform .15s; }
.nav-item:hover .nav-sub,.nav-item:focus-within .nav-sub { visibility:visible; opacity:1; transform:none; }
.nav-item.closed .nav-sub { visibility:hidden; opacity:0; }
.nav-sub a { display:block; padding:7px 12px; border-radius:8px; font-size:13.5px; line-height:1.4; text-decoration:none; white-space:nowrap; color:var(--muted); }
.nav-sub a:hover { background:var(--panel-2); }
.toc-btn { display:none; align-items:center; gap:6px; height:32px; padding:0 11px; border:1px solid var(--line); border-radius:9px; background:var(--panel-2); color:var(--muted); font-size:12.5px; font-weight:500; cursor:pointer; flex:none; }
.toc-btn svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; }
.segmented { display:inline-flex; gap:2px; padding:2px; border:1px solid var(--line); border-radius:9px; background:var(--panel-2); flex:none; }
.segmented a { padding:3px 10px; border-radius:7px; color:var(--muted); font-size:12.5px; font-weight:500; line-height:1.6; white-space:nowrap; text-decoration:none; }
.segmented a[aria-current] { background:var(--card); color:var(--ink); box-shadow:0 0 0 1px var(--strong-line),0 1px 2px #1414130f; }
.gh { display:grid; place-items:center; width:24px; height:30px; flex:none; }
.gh svg { width:20px; height:20px; }
main { padding:76px 24px 120px; }
.post { max-width:960px; padding:0; margin:0 auto; }
.post .wide { width:100%; max-width:100%; left:0; transform:none; }
.post-header { width:100%; margin:0 0 64px; text-align:center; }
.post .post-header p { font-family:var(--sans); text-align:center; line-height:1.6; }
.post-header h1 { white-space:nowrap; }
.chart { padding:0; background:none; border:0; border-radius:0; margin:44px 0 52px; }
/* SolarWM title gold (#8b6b3f), rendered as one light-to-dark stage palette. */
.chart { --solarwm-gold:#8b6b3f; --solarwm-gold-deep:#70522d; --solarwm-paper:#f3f0ec; }
.chart .bar-track { height:20px; border-left-color:#b8b8b8; background:repeating-linear-gradient(to right,#dedede 0,#dedede 1px,transparent 1px,transparent var(--tick)); }
.chart .bar { background:var(--solarwm-gold); border-radius:0; }
.chart .bar.color-1 { background:#b39e7d; }
.chart .bar.color-2 { background:#a1875d; }
.chart .bar.color-3 { background:var(--solarwm-gold); }
.chart .bar.color-4 { background:var(--solarwm-gold-deep); }
.chart .bar.color-0 { background:#c6b79d; }
.vae-chart .bar-row:last-child .bar { background:var(--solarwm-gold-deep); }
.post figure figcaption { border:0; padding:0; margin-top:14px; max-width:100%; }
.table-scroll { width:100%; max-width:100%; left:0; transform:none; margin:28px 0 32px; }
.post table { min-width:620px; }
.post th,.post td { padding:9px 8px; border-bottom:1px solid var(--line); vertical-align:top; }
.post th:first-child,.post td:first-child { padding-left:0; }
.post th:last-child,.post td:last-child { padding-right:0; }
.post thead th { border-top:0; border-bottom-color:var(--ink); }
.post tbody tr:last-child { background:none; }
.post tbody tr:last-child th,.post tbody tr:last-child td { font-weight:650; }
.post code { background:var(--panel-2); border:0; color:#3d3d3a; }
.post pre { margin:0 0 24px; padding:16px 18px; border:1px solid var(--line); border-radius:10px; background:var(--panel); overflow-x:auto; font-size:13px; line-height:1.65; }
.post pre code { padding:0; background:none; font-size:inherit; white-space:pre; overflow-wrap:normal; }
.bib { position:relative; }
.bib pre { padding-top:48px; }
.copy { position:absolute; top:10px; right:10px; padding:3px 10px; border:1px solid var(--strong-line); border-radius:6px; color:var(--muted); background:var(--card); font-family:var(--sans); font-size:12px; cursor:pointer; }
.copy-status { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.toc { position:fixed; top:112px; left:calc(50% - 560px - 236px); width:200px; display:none; font-family:var(--sans); font-size:13px; line-height:1.45; }
.toc nav { display:block; margin:0; }
.toc a { display:block; padding:5px 0 5px 14px; border-left:1px solid var(--line); color:var(--faint); font-size:13px; line-height:1.45; text-decoration:none; }
.toc a.sub { padding-left:26px; font-size:12.5px; }
.toc a:hover,.toc a.active { color:var(--ink); border-left-color:var(--ink); }
footer { display:block; margin:0; padding:30px 24px 44px; border-top:1px solid var(--line); color:var(--faint); font-size:13px; text-align:center; }
footer .authors { margin:0 0 8px; color:var(--muted); font-size:14px; }
footer .repo { display:inline-flex; align-items:center; gap:7px; margin-top:10px; text-decoration:none; }
.repo svg { width:16px; height:16px; }
footer .repo-note { margin:8px 0 0; font-size:12px; }
@media(min-width:1620px) { .toc { display:block; } }
@media(max-width:1259px) { .name small { display:none; } }
@media(max-width:999px) {
  .nav { display:none; }
  .toc-btn { display:inline-flex; }
  .toc.open { display:block; top:64px; left:auto; right:12px; z-index:35; width:min(300px,calc(100vw - 24px)); max-height:calc(100vh - 80px); overflow-y:auto; padding:12px 16px 12px 10px; border:1px solid var(--line); border-radius:12px; background:var(--card); box-shadow:0 10px 30px #1414131f,0 1px 3px #1414130f; }
}
@media(max-width:860px) {
  main { padding:44px 18px 80px; }
  .topbar { padding:0 16px; }
  .post-header { width:auto; margin:0 0 48px; }
  .chart.wide { width:100%; max-width:100%; left:0; transform:none; }
  .post table { min-width:600px; }
}
@media(max-width:520px) {
  .topbar { gap:10px; padding:0 14px; }
  .topbar .name { font-size:14px; }
  .segmented a { padding:3px 8px; }
  .toc-btn { padding:0 9px; }
  .toc-btn span { display:none; }
}
@media(max-width:480px) {
  .post-header h1 { font-size:clamp(18px,calc((100vw - 48px) * .08),36px); }
}
@media(prefers-reduced-motion:reduce) { .nav-sub { transition:none; } }
@media print { .toc-btn,.gh,.copy { display:none; } main { padding:0; } .post-header { width:auto; margin:30px 0; } }
/* Review placeholder: replaced with the interaction demo when the video is ready. */
.interaction-demo { margin:32px 0 44px; }
.interaction-demo video { display:block; width:100%; height:auto; border-radius:6px; background:#f7f5f1; }
.post .interaction-demo figcaption { text-align:center; font-family:var(--sans); }
.interaction-video-placeholder { box-sizing:border-box; aspect-ratio:16 / 9; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; margin:32px 0 44px; padding:24px; border:1px dashed #c6b79d; border-radius:6px; background:#f7f5f1; text-align:center; }
.interaction-video-placeholder svg { width:56px; height:56px; color:#8b6b3f; flex:none; }
.post .interaction-video-placeholder figcaption { margin:0; padding:0; border:0; font-family:var(--sans); line-height:1.6; }
.interaction-video-placeholder .placeholder-title { display:block; color:var(--ink); font-size:18px; font-weight:600; }
.interaction-video-placeholder .placeholder-note { display:block; margin-top:4px; color:var(--muted); font-size:14px; }
/* Local measured-speed comparison: no external player or asset dependency. */
.realtime-comparison { margin: 36px 0 42px; }
.realtime-comparison video { display: block; width: 100%; height: auto; aspect-ratio: 1856 / 688; background: #eeede6; border-radius: 6px; }
.post .realtime-comparison figcaption { margin: 14px auto 0; text-align: left; line-height: 1.65; }
.realtime-comparison .comparison-scope { color: var(--muted, #6f7069); }
@media(max-width:860px) {
  .realtime-comparison.wide { width:100%; max-width:100%; left:0; transform:none; }
}

.chunk-demo { margin:0 0 36px; padding:20px 24px; border:1px solid var(--line); border-radius:10px; background:var(--panel,#f0eee6); font-family:var(--sans); }
.post .chunk-demo p,.post .chunk-demo ol,.post .chunk-demo li,.post .chunk-demo figcaption { font-family:var(--sans); }
.chunk-demo:focus-visible { outline:2px solid #347565; outline-offset:4px; }
.chunk-demo-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px; }
.post .chunk-demo .chunk-demo-title { margin:0; font-size:18px; font-weight:600; line-height:1.3; text-align:start; }
.chunk-demo-actions { display:flex; align-items:center; gap:12px; flex:none; }
.chunk-replay,.chunk-toggle { display:inline-flex; align-items:center; gap:7px; flex:none; min-height:36px; padding:6px 10px; border:1px solid #c9c5b8; border-radius:7px; background:#faf9f5; color:var(--ink); font-family:var(--sans); font-size:12px; cursor:pointer; }
.chunk-replay:hover:not(:disabled),.chunk-toggle:hover:not(:disabled) { background:#fff; border-color:#9b705f; }
.chunk-replay:disabled,.chunk-toggle:disabled { cursor:wait; opacity:.6; }
.chunk-replay:focus-visible,.chunk-toggle:focus-visible { outline:2px solid #347565; outline-offset:3px; }
.chunk-replay kbd { display:inline-grid; place-items:center; width:22px; height:22px; border:1px solid #d7d2c6; border-bottom-width:2px; border-radius:4px; font-family:inherit; font-size:12px; font-weight:600; line-height:1; }
.chunk-demo[data-running="true"] .chunk-replay kbd { background:#347565; border-color:#347565; color:#fff; }
.chunk-clock { min-width:52px; text-align:right; font-variant-numeric:tabular-nums; font-size:13px; color:var(--muted); }
.chunk-lane + .chunk-lane { margin-top:16px; padding-top:16px; border-top:1px solid var(--line); }
.chunk-lane-heading { display:flex; align-items:center; gap:10px; margin-bottom:6px; font-size:15px; line-height:1.4; }
.chunk-phase { margin-left:auto; color:var(--muted); font-size:12px; }
.chunk-total { min-width:64px; text-align:right; font-weight:600; font-variant-numeric:tabular-nums; }
.chunk-lane[data-phase="done"] .chunk-phase { color:#347565; }
.chunk-lane-body { display:grid; grid-template-columns:minmax(0,1fr) 128px; gap:18px; align-items:start; }
.chunk-timing { min-width:0; }
.chunk-dependency { position:relative; height:34px; margin-top:0; font-size:11px; color:#95641f; }
.chunk-dependency span { position:absolute; bottom:6px; display:flex; align-items:center; justify-content:center; min-height:22px; border:1px solid #b9945c; border-top:0; text-align:center; line-height:1.3; }
.chunk-dependency.no-lookahead { display:flex; align-items:center; color:#347565; }
.chunk-track { position:relative; height:16px; border-radius:4px; background:#e7e4db; }
.chunk-segment { position:absolute; top:0; height:100%; background:color-mix(in srgb,var(--stage-color) 22%,#eeece5); overflow:hidden; }
.chunk-segment i { position:absolute; inset:0 auto 0 0; width:0; background:var(--stage-color); display:block; }
.kind-dit { --stage-color:#347565; }
.kind-previous { --stage-color:#8d8999; }
.kind-lookahead { --stage-color:#c18d42; }
.kind-vae { --stage-color:#d97757; }
.kind-handoff { --stage-color:#77756d; }
.chunk-ready-marker { position:absolute; top:-3px; height:22px; width:2px; transform:translateX(-1px); background:#6f7069; }
.chunk-lane[data-phase="done"] .chunk-ready-marker { background:#347565; }
.chunk-axis { display:flex; justify-content:space-between; margin-top:5px; color:var(--muted); font-size:10px; font-variant-numeric:tabular-nums; line-height:1.4; }
.post .chunk-demo .chunk-parts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px 20px; margin:8px 0 0; padding:0; list-style:none; color:var(--muted); font-size:12px; line-height:1.4; }
.post .chunk-demo .chunk-parts li { display:grid; grid-template-columns:7px minmax(0,1fr) auto; align-items:center; gap:7px; margin:0; padding:0; }
.chunk-parts b { color:var(--ink); font-weight:500; font-variant-numeric:tabular-nums; }
.chunk-dot { display:inline-block; flex:none; width:7px; height:7px; border-radius:2px; background:var(--stage-color); }
.response-frame { margin:0; min-width:0; }
.response-image-wrap { position:relative; aspect-ratio:1344/768; background:#e7e4db; border:1px solid #d7d2c6; border-radius:4px; overflow:hidden; }
.response-frame img { display:block; width:100%; height:auto; visibility:hidden; }
.response-frame video { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; visibility:hidden; }
.response-pending { position:absolute; inset:0; display:grid; place-items:center; color:var(--muted); font-size:11px; }
.chunk-lane[data-phase="done"] .response-frame img { visibility:visible; }
.chunk-lane[data-phase="done"] .response-frame video[data-ready="true"] { visibility:visible; }
.chunk-lane[data-phase="done"] .response-pending { visibility:hidden; }
.post .chunk-demo .response-frame figcaption { margin:4px 0 0; font-size:10px; line-height:1.3; text-align:center; color:var(--muted); }
.post .chunk-demo .chunk-demo-note { margin:16px 0 6px; font-size:12.5px; line-height:1.6; text-align:start; color:var(--muted); }
.chunk-demo-scope { color:var(--muted); font-size:12px; line-height:1.65; }
.chunk-demo-scope summary { cursor:pointer; }
.post .chunk-demo .chunk-demo-scope p { margin:8px 0; font-size:12px; line-height:1.65; text-align:start; }
.chunk-announcement { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@media(max-width:860px) { .chunk-demo.wide { width:100%; max-width:100%; left:0; transform:none; } }
@media(max-width:600px) {
  .chunk-demo { padding:16px; }
  .chunk-demo-heading { flex-wrap:wrap; gap:10px; margin-bottom:14px; }
  .post .chunk-demo .chunk-demo-title { flex:1 0 100%; font-size:17px; }
  .chunk-demo-actions { margin-left:auto; }
  .chunk-phase { font-size:10px; max-width:140px; text-align:right; }
  .chunk-lane-heading { gap:6px; font-size:14px; }
  .chunk-total { min-width:51px; }
  .chunk-lane-body { grid-template-columns:minmax(0,1fr) 86px; gap:12px; }
  .chunk-dependency { height:42px; font-size:10px; }
  .chunk-dependency span { bottom:6px; min-height:34px; }
  .response-frame { margin-top:8px; }
  .response-pending { font-size:9px; }
  .post .chunk-demo .response-frame figcaption { font-size:9px; }
  .post .chunk-demo .chunk-parts { grid-template-columns:1fr; gap:4px; }
}

/* Progressive enhancement: all recorded results remain readable without JS. */
.stage-chart .stage-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.stage-chart .chart-title { margin:0; }
.stage-chart .stage-controls { display:flex; flex:none; gap:6px; }
.stage-chart .stage-controls[hidden] { display:none; }
.stage-chart .stage-controls button { padding:5px 12px; border:1px solid var(--strong-line); border-radius:7px; background:transparent; color:var(--muted); font-family:var(--sans); font-size:12px; line-height:1.5; cursor:pointer; min-width:56px; }
.stage-chart .stage-controls button:hover { color:var(--ink); background:var(--panel-2); }
.stage-chart button:focus-visible { outline:2px solid var(--solarwm-gold-deep); outline-offset:3px; }
.stage-chart .stage-readout { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px; align-items:center; min-height:136px; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:18px; }
.stage-chart .stage-current { display:flex; flex-direction:column; gap:6px; min-width:0; }
.stage-chart .stage-count { font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums; }
.stage-chart .stage-current strong { font-family:var(--sans); font-size:16px; font-weight:600; line-height:1.4; }
.stage-chart .stage-detail { color:var(--muted); font-size:12px; line-height:1.5; min-height:36px; }
.stage-chart .stage-stats { display:flex; gap:26px; align-items:start; }
.stage-chart .stage-stats>span { display:flex; flex-direction:column; gap:4px; }
.stage-chart .stage-stats strong { font-family:var(--sans); font-size:27px; font-weight:600; line-height:1.3; letter-spacing:-.6px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.stage-chart .stage-stats [data-stage-fps] { color:var(--solarwm-gold); min-width:77px; }
.stage-chart .stage-stats [data-stage-ms] { min-width:122px; }
.stage-chart .stage-stats small { color:var(--muted); font-size:11px; line-height:1.4; white-space:nowrap; }
.stage-chart .stage-step { width:100%; padding:9px 0; margin:6px 0; border:0; border-radius:6px; background:none; color:var(--ink); text-align:left; font-family:var(--sans); cursor:pointer; grid-template-columns:260px minmax(0,1fr) 58px; gap:18px; }
.stage-chart .stage-step:disabled { opacity:1; cursor:default; }
.stage-chart .stage-step:hover { background:var(--solarwm-paper); }
.stage-chart .stage-step .bar-label { font-size:13px; line-height:1.5; }
.stage-chart .stage-step[aria-pressed="true"] .bar-label { font-weight:600; }
.stage-chart .stage-step .bar { display:block; transform:scaleX(1); transform-origin:left; transition:transform .35s cubic-bezier(.2,.7,.2,1),background-color .2s; }
.stage-chart[data-stage-ready] .stage-step[data-future="true"] .bar { transform:scaleX(0); }
.stage-chart[data-stage-ready] .stage-step[data-future="true"] .bar-label,
.stage-chart[data-stage-ready] .stage-step[data-future="true"] .bar-value { color:var(--faint); }
.stage-chart .stage-step[aria-pressed="true"] .bar-label { color:var(--solarwm-gold-deep); }
.stage-chart .axis { padding-left:278px; padding-right:76px; }
.stage-chart .stage-status { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@media(max-width:860px) {
  .stage-chart .stage-readout { grid-template-columns:1fr; gap:12px; }
  .stage-chart .stage-current { min-height:104px; }
  .stage-chart .stage-detail { min-height:0; }
  .stage-chart .stage-stats { justify-content:space-between; gap:12px; }
  .stage-chart .stage-step { grid-template-columns:210px minmax(0,1fr) 58px; }
  .stage-chart .axis { padding-left:228px; }
}
@media(max-width:600px) {
  .stage-chart .stage-heading { align-items:start; flex-direction:column; gap:10px; }
  .stage-chart .stage-step { grid-template-columns:minmax(0,1fr) 48px; gap:6px 13px; padding:9px 0; }
  .stage-chart .stage-step .bar-label { grid-column:1/-1; font-size:12px; }
  .stage-chart .stage-stats strong { font-size:23px; }
  .stage-chart .stage-stats [data-stage-ms] { min-width:105px; }
  .stage-chart .stage-stats small { font-size:10px; }
  .stage-chart .axis { padding-left:0; padding-right:61px; }
}
@media(prefers-reduced-motion:reduce) { .stage-chart .stage-step .bar { transition:none; } }
@media print {
  .stage-chart .stage-controls,.stage-chart .stage-readout { display:none; }
  .stage-chart .stage-step .bar { transform:scaleX(1)!important; opacity:1!important; transition:none; }
  .stage-chart .stage-step .bar-label,.stage-chart .stage-step .bar-value { color:var(--ink)!important; }
}
