/* 量子世界：深色是夜空里的发光点（叠加混合），浅色是纸面上的墨点（world.js 的合成着色器按 uLight 切换）。
   面板和按钮用站点的配色（shared-nav.css 的绿与金），蓝 / 橙两种颜色是相位，深浅主题各取一组看得清的。 */
:root{
  --font-sans:Inter,"Segoe UI",-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --bg:#f6f5ee; --ink:#1c3a2f; --ink-2:#30493e; --dim:#5f6f63; --faint:#8a978c;
  --glass:rgb(253 252 248/.82); --edge:rgb(32 79 61/.18); --edge-hi:#2e6550; --tile:rgb(32 79 61/.05); --tile-hi:rgb(32 79 61/.1);
  --on:rgb(32 79 61/.14); --gold:#a67d42; --accent:#204f3d; --accent-ink:#fff;
  --a:#1f6fa8; --b:#b8562a; --track:rgb(32 79 61/.16); --knob:#fff;
  --shadow:0 1px 2px rgb(28 58 47/.06),0 18px 50px rgb(28 58 47/.14);
  --label:#1c3a2f; --label-shadow:0 0 10px rgb(246 245 238/.95),0 0 3px rgb(246 245 238/.9);
  --chart-grid:rgb(32 79 61/.16); --chart-text:#5f6f63; --chart-dot:#1c3a2f;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#02030a; --ink:#e9edf9; --ink-2:#c7cfea; --dim:#9aa3c2; --faint:#69728f;
  --glass:rgb(9 13 28/.68); --edge:rgb(150 170 255/.18); --edge-hi:#62ccff; --tile:rgb(120 140 255/.07); --tile-hi:rgb(98 204 255/.12);
  --on:rgb(98 204 255/.2); --gold:#ffd166; --accent:#3f7d60; --accent-ink:#fff;
  --a:#62ccff; --b:#ff9563; --track:rgb(150 170 255/.2); --knob:#dfe6ff;
  --shadow:0 24px 70px rgb(0 0 0/.5);
  --label:#cfd8ff; --label-shadow:0 0 12px rgb(0 0 10/.9),0 1px 2px #000;
  --chart-grid:rgb(150 170 255/.2); --chart-text:#9aa3c2; --chart-dot:#fff;
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --bg:#02030a; --ink:#e9edf9; --ink-2:#c7cfea; --dim:#9aa3c2; --faint:#69728f;
  --glass:rgb(9 13 28/.68); --edge:rgb(150 170 255/.18); --edge-hi:#62ccff; --tile:rgb(120 140 255/.07); --tile-hi:rgb(98 204 255/.12);
  --on:rgb(98 204 255/.2); --gold:#ffd166; --accent:#3f7d60; --accent-ink:#fff;
  --a:#62ccff; --b:#ff9563; --track:rgb(150 170 255/.2); --knob:#dfe6ff;
  --shadow:0 24px 70px rgb(0 0 0/.5);
  --label:#cfd8ff; --label-shadow:0 0 12px rgb(0 0 10/.9),0 1px 2px #000;
  --chart-grid:rgb(150 170 255/.2); --chart-text:#9aa3c2; --chart-dot:#fff;
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html,body{height:100%;background:var(--bg);color:var(--ink);overflow:hidden;
  font:14px/1.65 var(--font-sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
button,input{font:inherit;color:inherit}
em{font-style:normal}
:focus-visible{outline:2px solid var(--a);outline-offset:2px}
#gl{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;outline:none}
#gl.drag{cursor:grabbing}

#brand{position:fixed;left:24px;top:20px;user-select:none;z-index:3;pointer-events:none}
#brand h1{font-size:21px;font-weight:600;letter-spacing:.3em}
html[lang="en"] #brand h1{letter-spacing:.12em}
#brand p{color:var(--dim);font-size:12px;letter-spacing:.24em;margin-top:3px}
html[lang="en"] #brand p{letter-spacing:.08em}
#home{pointer-events:auto;display:inline-block;margin-top:8px;font-size:12px;color:var(--dim);text-decoration:none;border:1px solid var(--edge);border-radius:999px;padding:2px 10px;background:var(--glass)}
#home:hover{color:var(--ink);border-color:var(--edge-hi)}
html[data-embed] #home{display:none}

#labels{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.lbl{position:absolute;left:0;top:0;white-space:nowrap;opacity:0;transition:opacity .35s;will-change:transform;border:0;background:none;
  font-size:12px;letter-spacing:.12em;color:var(--label);text-shadow:var(--label-shadow);pointer-events:none}
.lbl.major{font-size:13px;padding:5px 13px;border:1px solid var(--edge);border-radius:999px;background:var(--glass);text-shadow:none;
  cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.lbl.major:hover{border-color:var(--edge-hi)}
.lbl.res{font-size:15px;font-weight:600;letter-spacing:.18em;color:var(--gold)}

#panel{position:fixed;right:20px;top:20px;width:340px;max-height:calc(100% - 112px);overflow:auto;z-index:4;
  background:var(--glass);border:1px solid var(--edge);border-radius:18px;padding:20px 20px 16px;
  -webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);
  box-shadow:var(--shadow);scrollbar-width:thin;scrollbar-color:var(--edge) transparent}
#panel.folded section>*:not(.tag):not(h2){display:none}
#fold{position:absolute;right:14px;top:14px;border:0;background:none;color:var(--faint);font-size:12px;cursor:pointer;padding:4px 6px;border-radius:6px}
#fold:hover{color:var(--ink)}
.tag{font-size:10.5px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase}
#panel h2{font-size:18px;font-weight:600;letter-spacing:.04em;margin:1px 0 4px;padding-right:44px}
#panel p{color:var(--ink-2);font-size:13.5px;margin:9px 0}
#panel p.note{color:var(--dim);font-size:12px;line-height:1.6}
#panel b{color:var(--ink);font-weight:600}
.ca{color:var(--a)} .cb{color:var(--b)}
.wheel{display:inline-block;width:13px;height:13px;border-radius:50%;background:var(--wheel);vertical-align:-2px;box-shadow:0 0 0 1px var(--edge)}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0}
.b{border:1px solid var(--edge);background:var(--tile);border-radius:9px;padding:7px 4px;cursor:pointer;font-size:12.5px;transition:.15s;line-height:1.3;color:var(--ink)}
.b:hover{border-color:var(--edge-hi)}
.b.on{background:var(--on);border-color:var(--edge-hi)}
.b.wide{grid-column:span 2}
.b.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.b.pri:hover{filter:brightness(1.1)}
.row{display:flex;gap:8px;margin:10px 0}
.row .b{flex:1;padding:8px 10px}
.seg{display:flex;border:1px solid var(--edge);border-radius:10px;overflow:hidden;margin:10px 0}
.seg button{flex:1;border:0;background:none;padding:7px 0;cursor:pointer;font-size:13px;color:var(--dim);transition:.15s}
.seg button+button{border-left:1px solid var(--edge)}
.seg button.on{background:var(--on);color:var(--ink)}
.sl{display:block;margin:12px 0 6px;font-size:13px;color:var(--ink-2)}
.sl output{float:right;color:var(--ink);font-variant-numeric:tabular-nums}
.sl input{width:100%;margin-top:6px;accent-color:var(--a)}
.sw{display:flex;align-items:center;gap:10px;margin:12px 0;cursor:pointer;font-size:13.5px;position:relative}
.sw input{position:absolute;opacity:0}
.sw span{width:38px;height:22px;border-radius:11px;background:var(--track);position:relative;transition:.2s;flex:none}
.sw span::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:var(--knob);transition:.2s;box-shadow:0 1px 2px rgb(0 0 0/.2)}
.sw input:checked+span{background:var(--b)}
.sw input:checked+span::after{left:19px}
.sw input:focus-visible+span{outline:2px solid var(--a);outline-offset:2px}
.read{font-size:12.5px;color:var(--ink-2);background:var(--tile);border:1px solid var(--edge);border-radius:10px;
  padding:9px 12px;margin:10px 0;font-variant-numeric:tabular-nums;line-height:1.75}
.read .big{font-size:21px;font-weight:600;color:var(--ink)}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.card{text-align:left;border:1px solid var(--edge);background:var(--tile);border-radius:12px;padding:10px 12px;cursor:pointer;transition:.15s}
.card:hover{border-color:var(--edge-hi);background:var(--tile-hi)}
.card b{display:block;font-size:14px}
.card span{display:block;font-size:11.5px;color:var(--dim);line-height:1.45;margin-top:2px}
.sbar{position:relative;height:8px;border-radius:4px;background:var(--track);margin:20px 0 30px}
.sbar i{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:linear-gradient(90deg,var(--b),var(--a));width:0;transition:width .3s}
.sbar em{position:absolute;top:-5px;height:18px;border-left:1px dashed var(--dim);font-size:10.5px;color:var(--dim);white-space:nowrap}
.sbar em span{position:absolute;top:19px;left:0;transform:translateX(-50%)}
#bChart{width:100%;height:auto;display:block;margin:8px 0;border-radius:10px;background:var(--tile)}

#nav{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);display:flex;gap:4px;padding:5px;z-index:4;max-width:calc(100% - 20px);overflow-x:auto;scrollbar-width:none;
  background:var(--glass);border:1px solid var(--edge);border-radius:999px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow)}
#nav::-webkit-scrollbar{display:none}
#nav button{border:0;background:none;padding:8px 18px;border-radius:999px;cursor:pointer;color:var(--dim);font-size:13.5px;letter-spacing:.1em;transition:.15s;white-space:nowrap;flex:none}
html[lang="en"] #nav button{letter-spacing:.02em}
#nav button:hover{color:var(--ink)}
#nav button.on{background:var(--on);color:var(--ink)}
#hint{position:fixed;left:24px;bottom:28px;color:var(--faint);font-size:11.5px;letter-spacing:.1em;pointer-events:none;z-index:3;max-width:calc(50% - 200px)}
#nogl{position:fixed;inset:0;display:grid;place-items:center;text-align:center;padding:40px;color:var(--dim);z-index:9;background:var(--bg)}
#nogl h2{color:var(--ink);margin-bottom:8px}
@media (max-width:1100px){#hint{display:none}}
@media (max-width:820px){
  #panel{left:10px;right:10px;top:auto;bottom:66px;width:auto;max-height:44%;padding:14px 16px 12px}
  #brand{left:14px;top:12px} #brand h1{font-size:17px} #brand p{font-size:11px}
  #nav{bottom:10px} #nav button{padding:8px 12px;letter-spacing:.04em}
}
@media (max-width:400px){
  #nav button{padding:7px 9px;font-size:13px}
  .grid4{grid-template-columns:repeat(4,1fr);gap:4px} .b{font-size:11.5px}
}
@media (max-height:460px){#panel{max-height:calc(100% - 80px)} #brand p{display:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media (max-width:520px){.lbl.major{font-size:11px;padding:3px 9px;letter-spacing:.05em} .lbl{font-size:11px}}
