.dream-scene{z-index:0;pointer-events:none;background:#0b0907;position:fixed;inset:0;overflow:hidden}.dream-bg{opacity:0;transition:opacity 1.4s;position:absolute;inset:0}.dream-art{background-repeat:no-repeat;background-size:cover;position:absolute;inset:-3%}.dream-bg.room .dream-art{filter:brightness(1.4);background-image:url(/assets/dream/room.webp);background-position:9% -218px;background-size:230%;animation:14s ease-in-out infinite alternate dream-breathe}.dream-bg.water .dream-art{background-image:url(/assets/dream/water.webp);background-position:50% 22%;animation:18s ease-in-out infinite alternate dream-breathe}.dream-bg.scroll .dream-art{background-image:url(/assets/dream/scroll.webp);background-position:0;background-size:auto 100%;animation:120s linear infinite alternate dream-pan}.dream[data-phase=boot] .dream-bg.room,.dream[data-phase=ask] .dream-bg.room,.dream[data-phase=probe] .dream-bg.room,.dream[data-phase=gather] .dream-bg.water,.dream[data-phase=read] .dream-bg.scroll{opacity:1}@keyframes dream-breathe{0%{transform:scale(1.02)translate(0,0)}to{transform:scale(1.07)translate(-1%,-.8%)}}@keyframes dream-pan{0%{background-position:0}to{background-position:100%}}.dream-moon-glow{background:radial-gradient(closest-side,#f5d6968c,#e3a95029 55%,#0000 72%);border-radius:50%;width:22vmin;height:22vmin;margin:-11vmin 0 0 -11vmin;animation:7s ease-in-out infinite alternate dream-glow;position:absolute;top:41%;left:86%}@keyframes dream-glow{0%{opacity:.55;transform:scale(.94)}to{opacity:1;transform:scale(1.06)}}.dream-art.mirror{opacity:.22;filter:blur(2px);background-image:url(/assets/dream/water.webp);background-position:50% 22%;animation:9s ease-in-out infinite alternate dream-mirror;transform:scaleY(-1);-webkit-mask-image:linear-gradient(#0000 40%,#000 100%);mask-image:linear-gradient(#0000 40%,#000 100%)}@keyframes dream-mirror{0%{transform:scaleY(-1)translate(0,0)}to{transform:scaleY(-1.03)translate(1.2%)}}.dream-lines{opacity:.6;background:repeating-linear-gradient(0deg,#0000 0 14px,#e3a9500d 14px 15px);animation:8s linear infinite dream-lap;position:absolute;inset:0}@keyframes dream-lap{to{background-position:0 30px}}.dream-moon{opacity:0;background:radial-gradient(circle at 38% 36%,#fbe7b4,#e3a950 70%,#b27d32);border-radius:50%;width:44px;height:44px;transition:opacity 1.4s;animation:8s ease-in-out infinite alternate dream-moonlight;position:absolute;top:11%;right:12%;box-shadow:0 0 26px 6px #f0bb6252}@keyframes dream-moonlight{0%{box-shadow:0 0 20px 3px #f0bb6238}to{box-shadow:0 0 34px 9px #f0bb6266}}.dream[data-phase=boot] .dream-moon,.dream[data-phase=ask] .dream-moon,.dream[data-phase=probe] .dream-moon{opacity:.85}.dream .yao-shade{background:radial-gradient(120% 80% at 50% 38%,#0a08062e,#0a0806cc 82%),linear-gradient(#0a08065c,#0a0806bd)}.dream[data-phase=gather] .yao-shade{background:radial-gradient(120% 80% at 50% 34%,#0a08060d,#0a08069e 85%),linear-gradient(#0a08061f,#0a08068c)}.dream-window{flex:none;height:clamp(110px,24vh,240px)}.dream-label{text-align:center;font:14px/1.5 var(--ui);color:var(--muted);margin-top:2px}.yao-chip.on{border-color:var(--gold);color:var(--vellum-hi);background:var(--gold-soft)}.dream-toggle{align-self:center}.yao-count.warm{color:var(--gold)}.dream-gather{align-items:stretch;gap:10px;padding-bottom:8px}.dream-gather .yao-lead{text-shadow:0 1px 8px #000000e6}.dream-pond{touch-action:manipulation;--tilt-x:0;--tilt-y:0;width:100%;height:clamp(300px,46vh,420px);margin-top:6px;position:relative}.dream-drift{transform:translate3d(calc(var(--tilt-x) * 14px), calc(var(--tilt-y) * 10px), 0);transition:transform .35s ease-out;position:absolute;inset:0}.dream-frag{animation:dream-float var(--dur,7s) ease-in-out var(--delay,0s) infinite alternate;position:absolute;transform:translate(-50%,-50%)}.dream-frag-in{min-width:56px;min-height:48px;color:var(--vellum-hi);font:400 21px/1.4 var(--title);letter-spacing:.06em;text-align:center;text-shadow:0 1px 10px #000000f2,0 0 14px #f0bb6259;background:radial-gradient(closest-side,#140f0a8c,#140f0a26);border:1px solid #e3a95047;border-radius:28px;padding:6px 16px 14px;transition:transform .25s,border-color .25s,box-shadow .25s,color .25s;display:block;position:relative}.dream-frag-in:hover:not(:disabled){border-color:var(--gold)}.dream-frag-in:active{transform:scale(.94)}.dream-word{z-index:1;white-space:nowrap;display:block;position:relative}.dream-ref{z-index:0;white-space:nowrap;transform-origin:50% 0;opacity:.22;filter:blur(1.2px);font:400 21px/1.4 var(--title);letter-spacing:.06em;color:var(--vellum);pointer-events:none;display:block;position:absolute;top:78%;left:0;right:0;transform:scaleY(-1);-webkit-mask-image:linear-gradient(#000,#0000 80%);mask-image:linear-gradient(#000,#0000 80%)}.dream-frag.held .dream-frag-in{color:var(--gold);border-color:var(--gold);background:radial-gradient(closest-side,#e3a95042,#140f0a33);box-shadow:0 0 22px #f0bb6273}@keyframes dream-float{0%{transform:translate(-50%,-50%)translate(0,0)}to{transform:translate(-50%, -50%) translate3d(var(--dx,10px), var(--dy,-8px), 0)}}.dream-pond[data-stir="0"] .dream-frag.j .dream-frag-in{animation:.9s cubic-bezier(.2,.8,.3,1) dream-jolt-a}.dream-pond[data-stir="1"] .dream-frag.j .dream-frag-in{animation:.9s cubic-bezier(.2,.8,.3,1) dream-jolt-b}@keyframes dream-jolt-a{0%{transform:translate(0)rotate(0)}20%{transform:translate(-9px,7px)rotate(-5deg)}45%{transform:translate(8px,-9px)rotate(4deg)}75%{transform:translate(-3px,3px)rotate(-1deg)}to{transform:none}}@keyframes dream-jolt-b{0%{transform:translate(0)rotate(0)}20%{transform:translate(9px,-7px)rotate(5deg)}45%{transform:translate(-8px,9px)rotate(-4deg)}75%{transform:translate(3px,-3px)rotate(1deg)}to{transform:none}}.dream-ring{pointer-events:none;border:1px solid #f0bb62b3;border-radius:50%;width:20px;height:8px;margin:-4px 0 0 -10px;animation:1.4s ease-out forwards dream-ripple;position:absolute}@keyframes dream-ripple{0%{opacity:.9;transform:scale(.4)}to{opacity:0;transform:scale(9)}}.dream-flight{z-index:30;pointer-events:none;font:400 21px/1 var(--title);letter-spacing:.06em;color:var(--gold);text-shadow:0 0 14px #f0bb62cc,0 1px 8px #000000e6;white-space:nowrap;animation:.52s cubic-bezier(.45,0,.25,1) forwards dream-fly;position:fixed;top:0;left:0}@keyframes dream-fly{0%{transform:translate(calc(var(--x0) - 50%), calc(var(--y0) - 50%)) scale(1);opacity:1}60%{opacity:1}to{transform:translate(calc(var(--x1) - 50%), calc(var(--y1) - 50%)) scale(.82);opacity:.9}}.dream-tray{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:4px;display:grid}.dream-slot{border:1px dashed var(--line-hi);min-height:56px;color:var(--dim);font:400 19px/1.3 var(--title);letter-spacing:.05em;background:#0e0b088c;border-radius:16px;place-items:center;padding:6px 8px;transition:border-color .3s,background .3s,color .3s,box-shadow .3s;display:grid}.dream-slot-n{font:13px var(--ui);letter-spacing:0;color:var(--dim)}.dream-slot.coming{border-style:solid;border-color:var(--gold-soft)}.dream-slot.lit{border:1px solid var(--gold);color:var(--gold);background:radial-gradient(closest-side,#e3a9503d,#0e0b08b3);animation:.6s ease-out dream-lit;box-shadow:0 0 18px #f0bb6259}@keyframes dream-lit{0%{transform:scale(.92)}60%{transform:scale(1.05)}to{transform:scale(1)}}.dream-acts{padding-bottom:env(safe-area-inset-bottom,0px);flex-direction:column;align-items:center;gap:10px;display:flex}.dream-pin{gap:12px}.dream-pin-moon{background:radial-gradient(circle at 38% 36%,#fbe7b4,#e3a950 70%,#b27d32);border-radius:50%;flex:none;width:34px;height:34px;box-shadow:0 0 14px #f0bb6266}.dream-pin-words{font:14px/1.5 var(--ui);color:var(--gold);flex-wrap:wrap;gap:4px 10px;display:flex}.dream-pin-words em{font-style:normal}.dream-pin-words em+em:before{content:"·";color:var(--dim);margin-right:10px}@media (width>=720px){.dream-bg.room .dream-art{filter:brightness(1.5);background-position:56% 30%;background-size:auto 112%}.dream-window{height:clamp(120px,20vh,220px)}.dream-pond{height:clamp(320px,44vh,440px)}.dream-moon{width:56px;height:56px;right:18%}.dream-moon-glow{width:16vmin;height:16vmin;margin:-8vmin 0 0 -8vmin}}@media (prefers-reduced-motion:reduce){.dream-art,.dream-moon,.dream-moon-glow,.dream-lines,.dream-frag,.dream-frag-in,.dream-slot.lit,.dream-flight{animation:none!important}.dream-ring{display:none}.dream-drift,.dream-bg,.dream-moon{transition:none}.dream-flight{opacity:0}}
