:root{--bg:#fafaf7;--fg:#1d1d1b;--muted:#6b6b66;--card:#fff;--line:#e2e2dc;--accent:#0b6bcb}@media (prefers-color-scheme:dark){:root{--bg:#151514;--fg:#ecece8;--muted:#9a9a94;--card:#1f1f1d;--line:#33332f;--accent:#6db3ff}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);margin:0;font:16px/1.4 system-ui,sans-serif}main{max-width:720px;margin:0 auto;padding:16px}h1{margin:0 0 4px;font-size:1.4rem}header p{color:var(--muted);margin:0 0 12px}.stage{aspect-ratio:1;border:1px solid var(--line);border-radius:12px;width:100%;overflow:hidden}canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.cards{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;display:flex}.label{color:var(--muted);font-size:.8rem}.val{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:1.05rem}@media (width>=600px){.cards{grid-template-columns:repeat(4,1fr)}}a{color:var(--accent)}.controls{gap:8px;margin-top:12px;display:grid}.controls label{background:var(--card);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.controls input[type=range]{width:100%}.stage.dark{background:#0d0d0f}.row{grid-template-columns:1fr 1fr;gap:8px;display:grid}button{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--fg);cursor:pointer;border-radius:10px;padding:12px}button:active{background:var(--line)}.check{align-items:center;flex-direction:row!important;gap:10px!important}.scenes{grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:14px;display:grid}.thumb{min-width:0;color:var(--muted);flex-direction:column;gap:3px;text-decoration:none;display:flex}.thumb canvas{aspect-ratio:3/2;border:2px solid var(--line);cursor:pointer;border-radius:8px;width:100%;height:auto;display:block}.thumb span{text-align:center;white-space:nowrap;text-overflow:ellipsis;font-size:.65rem;overflow:hidden}.thumb.current canvas{border-color:var(--accent)}.thumb.current span{color:var(--fg);font-weight:600}.thumb.soon{opacity:.55}.thumb.soon canvas{cursor:default;border-style:dashed}@media (width>=600px){.thumb span{font-size:.8rem}}[hidden]{display:none!important}.controls.top:not(:has(>:not([hidden]))){display:none}@media (width<=599px){.stage{z-index:5;position:sticky;top:8px}}
