:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--bg:#f6f6f4;--panel:#fff;--panel-2:#fafaf8;--border:#e4e3de;--text:#1c1c1e;--muted:#6b6b70;--faint:#a0a0a6;--accent:#2563eb;--row-hover:#2563eb12;--row-selected:#2563eb21;--hex-bg:#fff;--hex-text:#1f1f22;--hex-zero:#bdbdc2;--hex-offset:#a4a4aa;--tint-sig:#16a34a;--tint-ihdr:#2563eb;--tint-plte:#9333ea;--tint-idat:#ea7a0c;--tint-iend:#8e8e93;--tint-text:#0e9aa7;--tint-anc:#5b6475;--tint-gps:#d6336c;--tint-warning:#d69e00;--tint-error:#e5383b;--alpha-base:.1;--alpha-selected:.22;--alpha-hover:.34}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f0f11;--panel:#161618;--panel-2:#1a1a1d;--border:#28282c;--text:#ececef;--muted:#a1a1aa;--faint:#6b6b74;--accent:#6b9bff;--row-hover:#6b9bff17;--row-selected:#6b9bff2b;--hex-bg:#131315;--hex-text:#e4e4e7;--hex-zero:#4d4d55;--hex-offset:#5d5d66;--tint-sig:#34d17a;--tint-ihdr:#5b8cff;--tint-plte:#b57bff;--tint-idat:#ffa53d;--tint-iend:#9a9aa2;--tint-text:#2fc6d1;--tint-anc:#8a93a6;--tint-gps:#ff5c9a;--tint-warning:#ffd23f;--tint-error:#ff5a5f;--alpha-base:.13;--alpha-selected:.27;--alpha-hover:.4}}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased;grid-template-rows:52px 1fr;display:grid;overflow:hidden}button,input{font:inherit}.topbar{border-bottom:1px solid var(--border);background:var(--panel);align-items:center;gap:20px;min-width:0;padding:0 16px;display:flex}.brand{letter-spacing:-.01em;flex:none;align-items:center;gap:8px;font-weight:650;display:flex}.brand svg,.empty-mark{width:22px;height:22px}.brand svg path,.empty-mark path{fill:var(--accent)}.brand svg circle,.empty-mark circle{fill:none;stroke:#fff;stroke-width:2.5px}.fileinfo{min-width:0;color:var(--muted);white-space:nowrap;flex:1;align-items:baseline;gap:12px;display:flex;overflow:hidden}.crumb-back{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.crumb-back:hover{text-decoration:underline}.crumb-sep{color:var(--faint);margin:0 6px}.entry-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.filename{color:var(--text);text-overflow:ellipsis;font-weight:600;overflow:hidden}.meta{text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.actions{flex:none;gap:8px;display:flex}.btn{border:1px solid var(--border);background:var(--panel);height:32px;color:var(--text);cursor:pointer;border-radius:8px;align-items:center;padding:0 12px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{border-color:var(--faint);background:var(--panel-2)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent);filter:brightness(1.08)}.problems{cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:7px;height:32px;padding:0 12px 0 10px;font-weight:600;display:inline-flex}.problems:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px}.problems[data-severity=error]{color:var(--tint-error);background:color-mix(in srgb, var(--tint-error) 12%, transparent);border-color:color-mix(in srgb, var(--tint-error) 30%, transparent)}.problems[data-severity=warning]{color:var(--tint-warning);background:color-mix(in srgb, var(--tint-warning) 14%, transparent);border-color:color-mix(in srgb, var(--tint-warning) 35%, transparent)}.layout{grid-template-rows:minmax(0,1fr) 250px;grid-template-columns:290px minmax(0,1fr);min-height:0;display:grid}.pane{min-width:0;min-height:0}.pane-tree{border-right:1px solid var(--border);background:var(--panel);overflow:auto}.pane-hex{background:var(--hex-bg);position:relative}.pane-drawer{border-top:1px solid var(--border);background:var(--panel);grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,600px);display:grid;overflow:hidden}.hex-scroller{overscroll-behavior:contain;position:absolute;inset:0 14px 0 0;overflow:hidden auto}.minimap{border-left:1px solid var(--border);cursor:pointer;touch-action:none;width:14px;height:100%;position:absolute;top:0;right:0}.hex-canvas{display:block;position:sticky;top:0}.status{z-index:1;background:var(--panel);border:1px solid var(--border);color:var(--muted);font:12px var(--mono);pointer-events:none;border-radius:6px;padding:4px 10px;position:absolute;bottom:12px;right:30px;box-shadow:0 2px 8px #0000000f}.tree{font:12.5px/1 var(--mono);position:relative}.row{height:26px;padding:0 12px 0 calc(var(--depth) * 14px + 8px);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;display:flex;position:absolute;left:0;right:0}.row.is-hover{background:var(--row-hover)}.row.is-selected{background:var(--row-selected)}.row.is-selected:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:3px;bottom:3px;left:0}.twisty{width:12px;color:var(--faint);text-align:center;flex:none;font-size:10px}.swatch{background:var(--tint-anc);border-radius:2px;flex:none;width:8px;height:8px}.row[data-tint=sig] .swatch{background:var(--tint-sig)}.row[data-tint=ihdr] .swatch{background:var(--tint-ihdr)}.row[data-tint=plte] .swatch{background:var(--tint-plte)}.row[data-tint=idat] .swatch{background:var(--tint-idat)}.row[data-tint=iend] .swatch{background:var(--tint-iend)}.row[data-tint=text] .swatch{background:var(--tint-text)}.row[data-tint=gps] .swatch{background:var(--tint-gps)}.row[data-tint=warning] .swatch{background:var(--tint-warning);border-radius:50%}.row[data-tint=error] .swatch{background:var(--tint-error);border-radius:50%}.label{text-overflow:ellipsis;flex:none;max-width:100%;overflow:hidden}.row.is-warning .label{color:var(--tint-warning)}.row.is-error .label{color:var(--tint-error)}.value{color:var(--muted);text-overflow:ellipsis;min-width:0;margin-left:auto;padding-left:10px;overflow:hidden}.drawer-node,.drawer-file{padding:16px 20px;overflow:auto}.drawer-file{border-left:1px solid var(--border);background:var(--panel-2);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-content:start;gap:0 28px;display:grid}.drawer-file h3{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin:0 0 8px;font-size:11px;font-weight:650}.hint{color:var(--faint);margin:0}.crumbs{font:13px var(--mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;display:flex}.crumb.is-current{color:var(--text);font-weight:600}.sep{color:var(--faint)}.pin{font:600 10.5px var(--font);text-transform:uppercase;letter-spacing:.05em;color:var(--accent);background:var(--row-selected);border-radius:999px;margin-left:6px;padding:1px 7px}.problem{border-radius:7px;margin:-4px 0 12px;padding:7px 10px;font-weight:500}.problem.is-error{color:var(--tint-error);background:color-mix(in srgb, var(--tint-error) 11%, transparent)}.problem.is-warning{color:color-mix(in srgb, var(--tint-warning) 80%, var(--text));background:color-mix(in srgb, var(--tint-warning) 13%, transparent)}.problem.is-hidden{color:color-mix(in srgb, var(--tint-plte) 85%, var(--text));background:color-mix(in srgb, var(--tint-plte) 12%, transparent)}.explain{color:var(--text);margin:-4px 0 12px;line-height:1.45}.spec-link{color:var(--accent);text-decoration:none}.spec-link:hover{text-decoration:underline}.role-0{--role:var(--tint-idat)}.role-1{--role:var(--tint-text)}.role-2{--role:var(--tint-gps)}.role-3{--role:var(--tint-ihdr)}.role-4{--role:var(--tint-plte)}.role-5{--role:var(--tint-error)}.drawer-file .makeup{grid-column:1/-1;margin-bottom:14px}.makeup-bar{background:var(--border);border-radius:5px;height:10px;margin-bottom:8px;display:flex;overflow:hidden}.makeup-part{background:var(--role);cursor:pointer;min-width:1px}.makeup-part:hover{filter:brightness(1.2)}.makeup-legend{flex-wrap:wrap;gap:4px 18px;margin:0;padding:0;font-size:12.5px;list-style:none;display:flex}.makeup-row{align-items:center;gap:6px;display:flex}.makeup-row.is-link{cursor:pointer}.makeup-row.is-link:hover .makeup-name{text-decoration:underline}.makeup-swatch{background:var(--role);border-radius:2px;width:9px;height:9px}.makeup-pct{font-family:var(--mono);color:var(--text)}.makeup-size{font-family:var(--mono);color:var(--faint)}.drawer-file .verdict{grid-column:1/-1;margin-bottom:14px}.verdict-lines{gap:6px;margin:0 0 8px;padding:0;list-style:none;display:grid}.verdict-line{--tone:var(--muted);background:color-mix(in srgb, var(--tone) 11%, transparent);border-radius:8px;align-items:baseline;gap:8px;padding:7px 10px;line-height:1.4;display:flex}.verdict-line:before{content:"";background:var(--tone);border-radius:50%;flex:none;width:8px;height:8px;transform:translateY(-1px)}.verdict-line.is-damage{--tone:var(--tint-error)}.verdict-line.is-hidden{--tone:var(--tint-plte)}.verdict-line.is-reveals{--tone:var(--tint-gps)}.verdict-line.is-oddity{--tone:var(--tint-warning)}.verdict-line.is-healthy{--tone:var(--tint-sig)}.verdict-line.is-unknown{--tone:var(--tint-iend)}.verdict-text{flex:1;min-width:0}.verdict-show{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;font-size:12.5px}.verdict-show:hover{text-decoration:underline}.facts{grid-template-columns:max-content minmax(0,1fr);gap:5px 16px;margin:0;display:grid}.facts dt{color:var(--faint)}.facts dd{overflow-wrap:anywhere;margin:0}.facts dd.mono{font-family:var(--mono);font-size:13px}.split{background:var(--border);border-radius:4px;height:8px;margin-top:12px;display:flex;overflow:hidden}.split-lit{background:var(--tint-anc)}.split-match{background:var(--tint-idat)}.split-legend{color:var(--muted);margin:6px 0 0;font-size:12px}.empty,.dropzone,.loading{place-items:center;display:none;position:fixed;inset:52px 0 0}body[data-state=empty] .empty{background:var(--bg);display:grid}body[data-state=empty] .layout{visibility:hidden}.empty-card{text-align:center;max-width:480px;padding:40px}.empty-mark{width:48px;height:48px}.empty-card h1{letter-spacing:-.02em;margin:18px 0 10px;font-size:24px}.empty-card p{color:var(--muted);margin:0 0 24px}.empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}body.is-dragging .dropzone{z-index:10;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid}.dropzone div{border:2px dashed var(--accent);color:var(--accent);border-radius:16px;padding:36px 56px;font-size:18px;font-weight:600}body[data-state=loading] .loading{z-index:5;color:var(--muted);background:color-mix(in srgb, var(--bg) 70%, transparent);display:grid}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.btn-play{gap:7px}.btn-play svg{fill:currentColor;width:11px;height:11px}body.is-playing .btn-play{background:var(--accent);border-color:var(--accent);color:#fff}body.is-playing .layout{grid-template-rows:minmax(0,1fr) 400px}body.is-playing .pane-drawer{grid-template-columns:minmax(0,1fr)}body.is-playing .drawer-node,body.is-playing .drawer-file{display:none}.drawer-player{grid-template-rows:auto auto auto auto minmax(0,1fr) auto;gap:6px;min-height:0;padding:12px 20px 14px;display:grid}.player-bar{align-items:center;gap:18px;min-width:0;display:flex}.player-buttons{gap:4px;display:flex}.player-buttons button,.player-close{border:1px solid var(--border);background:var(--panel);width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:8px;place-items:center;padding:0;display:grid}.player-buttons button:hover,.player-close:hover{border-color:var(--faint)}.player-buttons svg,.player-close svg{fill:currentColor;width:13px;height:13px}.player-buttons .is-play{background:var(--accent);border-color:var(--accent);color:#fff;width:42px}.player-speed{color:var(--muted);align-items:center;gap:8px;font-size:12.5px;display:flex}.player-speed input{width:120px;accent-color:var(--accent)}.player-speed output{min-width:92px;font:12px var(--mono);color:var(--text)}.player-counter{font:12.5px var(--mono);color:var(--muted);white-space:nowrap}.player-badge{white-space:nowrap;color:var(--tint-ihdr);background:color-mix(in srgb, var(--tint-ihdr) 14%, transparent);border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:600}.player-close{flex:none;margin-left:auto}.player-sentence{margin:4px 0 0;font-size:15px}.player-sentence .is-literal{color:var(--tint-sig)}.player-sentence .is-match{color:var(--tint-idat)}.player-sentence .is-block{color:var(--tint-ihdr)}.player-sentence .is-failure{color:var(--tint-error)}.player-meta{font:12px var(--mono);color:var(--faint);margin:0}.player-strip{width:100%;height:100%;min-height:96px;display:block}.player-progress{background:var(--border);cursor:pointer;border-radius:3px;height:6px;overflow:hidden}.player-progress div{background:var(--accent);width:0;height:100%}.player-stage{grid-template-columns:minmax(0,1fr) minmax(300px,40%);gap:16px;min-height:0;display:grid}.player-bits{flex-wrap:wrap;gap:4px 6px;min-height:38px;display:flex}.bits-part{background:color-mix(in srgb, var(--part) 14%, transparent);border:1px solid color-mix(in srgb, var(--part) 35%, transparent);border-radius:6px;gap:1px;padding:3px 7px;display:grid}.bits-part code{font:600 12.5px var(--mono);color:var(--part);letter-spacing:.04em}.bits-part small{color:var(--muted);white-space:nowrap;font-size:11px}.bits-part.is-code{--part:var(--tint-idat)}.bits-part.is-extra{--part:var(--tint-sig)}.bits-part.is-header{--part:var(--tint-ihdr)}.bits-part.is-byte{--part:var(--tint-anc)}.bits-part.is-bad{--part:var(--tint-error)}.bits-error{color:var(--tint-error);align-self:center;font-size:12.5px}.player-codes{min-height:0;font-size:12px;overflow:auto}.codes-table+.codes-table{margin-top:10px}.codes-table h4{margin:0 8px 0 0;font-size:12px;display:inline}.codes-hint{color:var(--faint);font-size:11px}.codes-note{color:var(--muted);margin:0 0 8px;font-size:12px}.codes-row{font-family:var(--mono);border-radius:5px;grid-template-columns:44px 40px auto minmax(0,1fr);align-items:baseline;gap:2px 8px;padding:2px 6px;display:grid}.codes-len{color:var(--muted)}.codes-count{color:var(--faint)}.codes-range{color:var(--text)}.codes-symbols{color:var(--muted);flex-wrap:wrap;gap:0 5px;display:flex}.codes-gap{color:var(--faint)}.codes-why{color:var(--faint);grid-column:3/-1;font-size:11px}.codes-row.is-passed{opacity:.55}.codes-row.is-passed .codes-why:before{content:"✗ ";color:var(--tint-error)}.codes-row.is-after{opacity:.35}.codes-row.is-hit{background:color-mix(in srgb, var(--tint-idat) 12%, transparent)}.codes-row.is-hit .codes-why:before{content:"✓ ";color:var(--tint-sig)}.codes-sym.is-hit{background:var(--tint-idat);color:var(--bg);border-radius:4px;padding:0 4px;font-weight:600}.location-badge{border:1px solid color-mix(in srgb, var(--tint-gps) 35%, transparent);background:color-mix(in srgb, var(--tint-gps) 12%, transparent);height:32px;color:var(--tint-gps);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 12px 0 10px;font-weight:600;display:inline-flex}.location-badge svg{fill:currentColor;width:14px;height:14px}.reveal-list{grid-template-columns:max-content minmax(0,1fr);align-items:baseline;gap:2px 14px;margin:0;display:grid}.reveal-list dt{color:var(--faint)}.reveal-list dt.is-strong{color:var(--tint-gps);font-weight:600}.reveal-list dd{flex-wrap:wrap;align-items:baseline;gap:2px 10px;min-width:0;margin:0;display:flex}.reveal-link{color:var(--text);text-align:left;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;border-bottom:1px dashed #0000;padding:0}.reveal-link:hover{border-bottom-color:var(--faint)}.reveal-link.is-strong{color:var(--tint-gps);font-weight:600;font-family:var(--mono);font-size:13px}.map-link{color:var(--accent);white-space:nowrap;font-size:12px;text-decoration:none}.map-link:hover{text-decoration:underline}.pane-drawer:has(.reveals){grid-template-columns:minmax(0,1fr) minmax(0,760px)}.drawer-file:has(.reveals){grid-template-columns:minmax(180px,.6fr) minmax(0,1.4fr)}body:has(.reveals) .layout{grid-template-rows:minmax(0,1fr) 300px}@media (max-width:900px){.player-stage{grid-template-rows:110px auto;grid-template-columns:minmax(0,1fr)}.player-codes{max-height:240px}.drawer-player{grid-template-rows:none}body.is-playing .pane-drawer{max-height:62vh;display:block}.layout,body.is-playing .layout{grid-template-rows:22vh minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}body:has(.reveals) .layout{grid-template-rows:22vh minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.pane-tree{border-right:0;border-bottom:1px solid var(--border)}:is(.pane-drawer,.pane-drawer:has(.reveals),.drawer-file:has(.reveals)){grid-template-columns:minmax(0,1fr)}.pane-drawer{max-height:32vh;overflow:auto}.drawer-file{border-left:0;border-top:1px solid var(--border)}.topbar{gap:10px;padding:0 10px}.fileinfo .meta,.btn-play .btn-label,.location-badge .badge-label{display:none}.player-bar{flex-wrap:wrap;gap:8px 14px}.player-speed input{width:90px}}
