:root{--paper:#f4efe4;--ink:#3a362c;--glass:#fff6;--line:#3a362c2e;--soft:#ffffffa6;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px)}*{box-sizing:border-box}html,body{background:var(--paper);height:100%;color:var(--ink);overscroll-behavior:none;-webkit-font-smoothing:antialiased;margin:0;font-family:Avenir Next,Futura,PingFang SC,Noto Sans SC,Segoe UI,sans-serif;font-weight:300;overflow:hidden}#sky{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#vignette{pointer-events:none;z-index:5;background:radial-gradient(at 50% 42%,#0000 48%,#28241c1a 100%);position:fixed;inset:0}#ui-root{z-index:8;pointer-events:none;position:fixed;inset:0}#ui-root button,#ui-root input{pointer-events:auto}#hud{opacity:var(--hudFade,1);transition:opacity 1s;position:absolute;inset:0}#hud .mark{top:calc(24px + var(--sat));letter-spacing:.34em;font-size:12px;font-weight:700;position:absolute;left:4vw}#idx{top:calc(24px + var(--sat));letter-spacing:.28em;opacity:.62;text-align:right;font-size:11px;position:absolute;right:4vw}#journey{top:calc(48px + var(--sat));background:#3a362c1f;border-radius:2px;width:min(220px,28vw);height:2px;position:absolute;right:4vw;overflow:hidden}#jbar{opacity:.55;background:currentColor;width:0;height:100%;display:block}#hint{left:50%;top:calc(58px + var(--sat));letter-spacing:.28em;opacity:.5;white-space:nowrap;font-size:11px;transition:opacity 1s;position:absolute;transform:translate(-50%)}#poem{right:4vw;top:calc(84px + var(--sat));text-align:right;opacity:0;pointer-events:none;max-width:min(360px,52vw);transition:opacity 1.2s;position:absolute}#poemBar{opacity:.45;background:currentColor;width:0;height:1px;margin:0 0 12px auto}#poemTxt{letter-spacing:.14em;font-family:Noto Serif SC,Source Han Serif SC,STSong,serif;font-size:14px;font-weight:300;line-height:2.1}#poemTxt span{opacity:0;transition:opacity .85s,transform .85s;display:inline-block;transform:translateY(4px)}#poemTxt span.on{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){#poemTxt span{transition:opacity .4s;transform:none}}#startScreen{pointer-events:auto;align-content:center;place-items:center;gap:26px;transition:opacity 1s;display:grid;position:absolute;inset:0}#startScreen.hide{opacity:0;pointer-events:none}#startScreen .t1{letter-spacing:.5em;text-align:center;font-size:15px;font-weight:700}#startScreen .t2{letter-spacing:.32em;opacity:.5;text-align:center;margin-top:-14px;font-size:11px}.btn{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:inherit;font:inherit;letter-spacing:.4em;cursor:pointer;opacity:.9;border-radius:999px;padding:13px 32px 13px 36px;font-size:12px;transition:all .35s}.btn:hover{opacity:1;background:var(--soft);letter-spacing:.52em}.btn.quiet{letter-spacing:.14em;opacity:.55;padding:9px 14px;font-size:10px}.btn.quiet:hover{letter-spacing:.14em;opacity:.9}.sceneBar{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;background:#ffffff38;border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;max-width:92vw;padding:7px 10px 7px 12px;display:flex}.cap{letter-spacing:.18em;opacity:.55;margin-right:2px;font-size:9px}.chip{color:inherit;font:inherit;letter-spacing:.1em;cursor:pointer;opacity:.55;background:0 0;border:0;border-radius:999px;padding:6px 9px;font-size:10px;transition:all .2s}.chip:hover{opacity:.9}.chip.on{opacity:1;background:#ffffffb8}#dockL{left:4vw;bottom:calc(24px + var(--sab));gap:8px;display:flex;position:absolute}.setPanel{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);left:4vw;bottom:calc(72px + var(--sab));z-index:10;pointer-events:auto;background:#ffffff38;border-radius:16px;flex-direction:column;align-items:stretch;gap:10px;padding:12px 14px;display:none;position:absolute}.setPanel.open{display:flex}.setRow{align-items:center;gap:6px;display:flex}#numRange,#volRange{accent-color:#5c584d;cursor:pointer;width:120px}#numVal{opacity:.75;min-width:52px;font-size:10px}.chip.locked{opacity:.22;cursor:default;pointer-events:none}#joy{right:calc(5vw + var(--sar));bottom:calc(56px + var(--sab));border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto;touch-action:none;z-index:9;opacity:.55;background:#ffffff29;border-radius:50%;width:104px;height:104px;transition:opacity .4s;display:none;position:absolute}#joy.show{display:block}#joy.active{opacity:.92}#joyKnob{border:1px solid var(--line);pointer-events:none;background:#ffffffad;border-radius:50%;width:44px;height:44px;margin:-22px 0 0 -22px;transition:transform .18s cubic-bezier(.25,.6,.3,1);position:absolute;top:50%;left:50%;box-shadow:0 2px 10px #3a362c1f}#joy.active #joyKnob{transition:none}#ritual{z-index:15;pointer-events:none;opacity:0;background:radial-gradient(at 50% 40%,#12192c80 0%,#0a0e1ad9 100%);transition:opacity 2.4s;position:absolute;inset:0}#ritual.show{opacity:1;pointer-events:auto}#ritualStars{position:absolute;inset:0}.star{opacity:0;background:#dfe8ff;border-radius:50%;width:5px;height:5px;transition:opacity 1.2s,transform 1.2s,box-shadow 1.2s;position:absolute;transform:scale(.4)}.star.dim{opacity:.4;transform:scale(.8);box-shadow:0 0 6px #c8d8ff80}.star.lit{opacity:1;transform:scale(1.25);box-shadow:0 0 12px #dce8fff2,0 0 30px #bed2ff80}#ritualPoem{text-align:center;color:#dee6f6eb;letter-spacing:.18em;opacity:0;font-family:Noto Serif SC,serif;font-size:15px;line-height:2.3;transition:opacity 2s;position:absolute;top:52%;left:50%;transform:translate(-50%)}#ritualPoem.show{opacity:1}#ritualStats{color:#ced8ecbf;letter-spacing:.3em;white-space:nowrap;opacity:0;font-size:11px;transition:opacity 2s;position:absolute;top:72%;left:50%;transform:translate(-50%)}#ritualStats.show{opacity:1}#ritualBtns{opacity:0;pointer-events:none;gap:18px;transition:opacity 1.5s;display:flex;position:absolute;top:80%;left:50%;transform:translate(-50%)}#ritualBtns.show{opacity:1;pointer-events:auto}#ritualBtns .btn{color:#dee6f6eb;background:#ffffff14;border-color:#dee6f64d}
