:root{--bg:#15171e;--surface:#1d2029;--surface-high:#262a35;--line:#333846;--line-soft:#282c38;--order:#8fb3cf;--chaos:#dd9455;--unknown:#6c7384;--text:#e8e5df;--text-mid:#a6a49f;--text-dim:#787c86;--hub:#c9a34a;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans:"Space Grotesk", system-ui, -apple-system, "Segoe UI", "Noto Sans TC", "PingFang TC", sans-serif;--r:10px;--dock-pad:clamp(12px, 2vw, 20px)}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;font-size:15px;line-height:1.5;overflow:hidden}#app{grid-template-rows:1fr auto;height:100dvh;display:grid;position:relative}.top{z-index:10;pointer-events:none;background:linear-gradient(#15171ef0,#15171e00);align-items:center;gap:14px;padding:10px clamp(12px,2vw,20px);display:flex;position:absolute;inset:0 0 auto}.top>*{pointer-events:auto}.brand{letter-spacing:3.5px;color:var(--text);white-space:nowrap;font-size:15px;font-weight:700;text-decoration:none}.brand:hover{color:var(--hub)}.exhibits{scrollbar-width:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;flex:auto;gap:6px;min-width:0;padding:2px;display:flex;overflow-x:auto}.exhibits::-webkit-scrollbar{display:none}.exhibits .chip{scroll-snap-align:center}.tools{flex-shrink:0;gap:6px;display:flex}.chip{font:inherit;color:var(--text-mid);border:1px solid var(--line-soft);cursor:pointer;white-space:nowrap;background:#262a35c7;border-radius:999px;flex-shrink:0;padding:8px 14px;font-size:13px;line-height:1;transition:color .12s,background .12s,border-color .12s}.chip:hover{color:var(--text);border-color:var(--line)}.chip:focus-visible{outline:2px solid var(--order);outline-offset:2px}.chip.is-active{color:var(--bg);background:var(--text);border-color:var(--text);font-weight:600}.chip.is-flash{animation:1.4s flash}@keyframes flash{30%{color:var(--order);border-color:var(--order);background:#8fb3cf24}}.tool{padding:8px 12px;font-size:12.5px}.stage{min-height:0;padding-top:52px;position:relative;overflow:hidden}.scene{height:100%;display:block}.panels{gap:8px;height:100%;min-height:0;padding:8px;display:flex}.panels.is-stacked{flex-direction:column}.panel{border-radius:var(--r);border:1px solid var(--line-soft);background:#0f1117;flex-direction:column;flex:1 1 0;min-width:0;min-height:0;margin:0;display:flex;position:relative;overflow:hidden}.panel>canvas{flex:auto;width:100%;min-height:0;display:block}.panel>canvas.strip{flex:0 0 clamp(96px,16vh,150px)}.panel-small{flex-grow:.62;min-width:0}.panel-square{aspect-ratio:1;flex:0 auto;height:100%}.panels.is-stacked .panel-square{aspect-ratio:auto;flex:1 1 0;height:auto}.panel figcaption{font-family:var(--mono);letter-spacing:.5px;color:var(--text-dim);pointer-events:none;font-size:10.5px;position:absolute;top:8px;right:10px}.panel .overlay{position:absolute;inset:0}.fallback{flex-direction:column;justify-content:center;align-items:flex-start;gap:14px;max-width:44ch;height:100%;padding:clamp(24px,6vw,60px);display:flex}.dock{border-top:1px solid var(--line);background:var(--surface);padding:var(--dock-pad);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:clamp(14px,2.5vw,32px);display:grid}.primary{min-width:0}.primary-head{align-items:baseline;gap:clamp(10px,1.6vw,20px);margin-bottom:4px;display:flex}.primary-name{letter-spacing:2.5px;color:var(--text-dim);font-size:13px}.primary-value{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.5px;color:var(--text);text-align:left;background:0 0;border:none;border-bottom:2px solid #0000;width:7ch;max-width:55vw;padding:0 2px 2px;font-size:clamp(2rem,4.6vw,3.3rem);font-weight:500;line-height:1}.primary-value:focus{border-bottom-color:var(--order);outline:none}.primary-state{letter-spacing:1.5px;color:var(--text-dim);flex-shrink:0;font-size:15px}.rail{padding:10px 0 4px;position:relative}.rail input[type=range]{appearance:none;background:var(--line);border-radius:999px;outline:none;width:100%;height:8px;margin:0;display:block}.rail.is-critical input[type=range]{background:linear-gradient(90deg, var(--regime,var(--line)), var(--regime,var(--line)));box-shadow:inset 0 0 0 1px #ffffff0d}.rail input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--text);border:4px solid var(--surface);cursor:grab;border-radius:50%;width:26px;height:26px;box-shadow:0 2px 8px #00000080}.rail input[type=range]::-webkit-slider-thumb:active{cursor:grabbing}.rail input[type=range]::-moz-range-thumb{background:var(--text);border:4px solid var(--surface);cursor:grab;border-radius:50%;width:26px;height:26px}.rail input[type=range]:focus-visible{outline:2px solid var(--order);outline-offset:6px}.rail-ticks{height:14px;margin-top:2px;position:relative}.rail-ticks span{font-family:var(--mono);color:var(--text-dim);white-space:nowrap;font-size:10px;position:absolute;top:0;transform:translate(-50%)}.rail-ticks span:before{content:"";background:var(--text-dim);opacity:.55;width:1px;height:5px;position:absolute;top:-6px;left:50%}.side{flex-direction:column;gap:10px;min-width:0;display:flex}.stats{flex-wrap:wrap;gap:clamp(12px,2vw,26px);margin:0;display:flex}.stat{min-width:0}.stat dt{letter-spacing:1.6px;color:var(--text-dim);white-space:nowrap;margin-bottom:1px;font-size:11px}.stat dd{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap;margin:0;font-size:clamp(1.05rem,1.7vw,1.35rem);line-height:1.2}.stat-note{font-family:var(--sans);color:var(--text-dim);letter-spacing:.2px;font-size:11px;display:block}.extras{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toggle{color:var(--text-mid);background:var(--surface-high);border:1px solid var(--line-soft);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:7px;padding:7px 13px;font-size:12.5px;display:inline-flex}.toggle input{accent-color:var(--order);margin:0}.toggle:has(input:checked){color:var(--text);border-color:var(--order)}.segmented{gap:5px;display:inline-flex}.hint{color:var(--text-dim);margin:0;font-size:12.5px;line-height:1.55}.hint:empty{display:none}.collection{background:var(--surface);border-left:1px solid var(--line);z-index:40;flex-direction:column;gap:16px;width:min(400px,94vw);padding:20px;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-20px 0 50px #00000073}.collection[hidden]{display:none}.collection-head{justify-content:space-between;align-items:baseline;display:flex}.collection-head h2{letter-spacing:2px;margin:0;font-size:16px}.collection-count{font-family:var(--mono);color:var(--text-dim);font-size:12px}.collection-list{flex-direction:column;gap:18px;display:flex}.collection-group h3{color:var(--text-mid);letter-spacing:1px;margin:0 0 8px;font-size:12.5px;font-weight:500}.collection-row{border-top:1px solid var(--line-soft);grid-template-columns:1fr auto;align-items:baseline;gap:2px 12px;padding:8px 0;display:grid}.collection-method{color:var(--text-dim);font-size:12px}.collection-value{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--unknown);font-size:1.3rem}.collection-value.is-match{color:var(--order)}.collection-sample{font-family:var(--mono);color:var(--text-dim);grid-column:1/-1;font-size:10.5px}.collection-foot{gap:8px;margin-top:auto;display:flex}.note{color:var(--text-dim);margin:0;font-size:12px;line-height:1.6}.note:empty{display:none}@media (max-width:900px){.top{flex-wrap:wrap;row-gap:8px}.exhibits{flex-basis:100%;order:3}.dock{grid-template-columns:1fr;gap:12px}.stage{padding-top:98px}.panels{flex-direction:column;gap:6px;padding:6px}.panel-wide{flex:1.5 1 0}.panel-small{flex:1 1 0}.panel-square{aspect-ratio:auto;flex:1.5 1 0;height:auto}.panel-stack2{flex:2 1 0}.stats{gap:16px}.top{gap:10px}.brand{letter-spacing:2px;font-size:13px}}@media (max-height:560px) and (orientation:landscape){.stage{padding-top:46px}.dock{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;padding:8px clamp(10px,2vw,16px)}.primary-value{font-size:clamp(1.5rem,3.4vw,2.2rem)}.stat dd{font-size:1rem}.rail{padding:6px 0 2px}.hint{display:none}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
