/* Story layer: readable on desktops, phones, and browsers without WebGL. */
#stage{background:radial-gradient(circle at 50% 38%,#495A58,#303636 72%)}
.choices{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin:16px 0;max-height:35vh;overflow:auto}
.choices button{text-align:left;background:#495A58;color:#ffffff;font-weight:600;padding:10px 12px}
.dialogue{top:50%;transform:translate(-50%,-50%);max-height:calc(100dvh - 110px);overflow:auto;z-index:4}
.dialogue #dismiss{border-color:#495A58;background:transparent;font-weight:500}
.dialogue #dismiss:hover{background:#303636}
#hint{z-index:1;max-width:min(80vw,500px);color:#ffffff}
body.text-mode #stage:after{content:'The stones are quiet today. The goblins can still be consulted below.';position:absolute;top:32%;left:50%;transform:translateX(-50%);width:min(80vw,460px);color:#ffffff;text-align:center;font:italic 20px/1.5 Georgia,serif;opacity:.8;pointer-events:none}
@media(max-width:600px){.dialogue{max-height:calc(100dvh - 140px);padding:16px}.choices{max-height:30vh}.dialogue #speech{font-size:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.controls button[hidden]{display:none!important}
.scene-veil[hidden]{display:none}
.scene-veil{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at center,#495A58,#303636 75%);color:#ffffff;opacity:0;transition:opacity .65s ease;pointer-events:none}
.scene-veil.visible{opacity:1;pointer-events:auto}
.scene-veil:before{content:'';position:absolute;left:8%;right:8%;top:50%;height:3px;background:#FF5E1F;box-shadow:0 0 30px #FF5E1F;transform:rotate(-4deg)}
.scene-veil p{position:relative;max-width:600px;padding:22px;background:#303636eb;border:1px solid #FF5E1F;text-align:center;font:italic clamp(19px,3vw,26px)/1.5 Georgia,serif}
body.text-mode[data-scene="whisper-hedges"] #stage:after{content:'The hedges rustle, gossip, and complain about their working conditions.'}
@media(prefers-reduced-motion:reduce){.scene-veil{transition:none}}
