/* V0.4 : le même décor reste monté, les étapes en changent les couches. */
.immersive .game-stage{height:calc(100svh - 116px);min-height:620px;background:#172c41}.immersive .game-header{min-height:68px}.immersive .game-footer{min-height:48px;padding-right:92px}.immersive .game-stage:after{background:linear-gradient(0deg,#07152699,transparent 33%),linear-gradient(90deg,#0b1b2f70,transparent 40%)}.immersive .landscape{transition:filter 1.3s;contain:paint}.immersive .story-panel{position:absolute;bottom:38px;left:3.5%;margin:0;width:350px;max-width:37%;padding:23px 25px 25px;border:1px solid #85ada970;border-radius:5px 26px 26px 26px;background:linear-gradient(135deg,#102538f2,#132638ed);box-shadow:0 14px 50px #0517264a;backdrop-filter:blur(12px);z-index:5}.immersive .story-panel:before{content:'';position:absolute;top:-9px;right:26px;width:16px;height:16px;background:#132a3d;border-top:1px solid #85ada970;border-left:1px solid #85ada970;transform:rotate(45deg)}.immersive .story-kicker{font-size:10px;letter-spacing:1.9px;color:#abcac0}.immersive .story-panel h1{font-size:30px;line-height:1.18;letter-spacing:-.6px;margin:10px 0}.immersive .story-panel>p{font-size:18px;line-height:1.5;margin:12px 0 0;color:#e1eade}.immersive .story-panel .primary,.immersive .story-panel .secondary{margin-top:20px;min-height:50px;padding:12px 19px;font-size:16px}.immersive .task-instruction{margin-top:15px;gap:15px;font-size:16px;justify-content:space-between;flex-wrap:nowrap}.immersive .task-instruction strong{font-size:63px;background:#193c4f;border-color:#b3eadc;box-shadow:0 0 28px #78dabb18;min-width:110px}.immersive .location-label{top:28px;left:3.5%;padding:12px 16px;border-left:2px solid #bcf2aa;background:#10243870;border-radius:0 12px 12px 0}.immersive .location-label>span{font-size:10px}.immersive .location-label strong{font-size:13px}.immersive .paper-cue{display:flex;gap:10px;align-items:center;font-size:13px;color:#b9d7cc;margin:17px 0 0}.paper-cue i{width:8px;height:8px;border-radius:50%;background:#b9e7d6;animation:breath 2.4s ease-in-out infinite}.paper-cue.received{color:#d9ff74}.immersive .stage-interaction{top:44%;width:39%;right:6%;z-index:4}.immersive .symbol-choices{padding:16px;gap:12px;background:#173444c9;border:1px solid #9ac1b7a6;border-radius:28px;box-shadow:0 0 65px #8bf3df20}.immersive .symbol-choice{background:#e0edda;border:1px solid #f0f7d5;min-width:70px;min-height:82px;font-size:38px;color:#12364a}.immersive .symbol-choice.found{background:#d9ff74;box-shadow:0 0 30px #c5fb8b77;opacity:1;transform:translateY(-5px)}.immersive .signal-meter{margin-top:90px;gap:16px;padding:12px 21px}.immersive .signal-meter i{width:18px;height:18px}.immersive .metal-target{width:195px;min-height:120px;text-shadow:0 1px 2px #0c263e}.immersive .game-inventory{right:3.5%;bottom:34px;min-height:62px;max-width:49%}.immersive .item-slot{background:#10283ef0;box-shadow:0 6px 20px #07172855}.immersive .item-button{min-height:70px;min-width:168px}.immersive .item-button.equipped{box-shadow:0 0 0 2px #d9ff74,0 0 30px #c9f89044}.immersive .item-slot svg{width:42px}.immersive .base-labels{display:none}.immersive.zone-base .base-labels,.immersive .zone-base .base-labels{display:flex;left:57%;right:21%;bottom:22%;font-size:12px}.immersive .story-code{padding:5px 15px;margin:15px 0 10px}.immersive .story-code strong{font-size:36px}.immersive .guide-address{font-size:12px!important}.immersive .story-panel .text-button{font-size:13px}.immersive .peer-warning{font-size:13px!important}.immersive .on-pause .story-panel,.immersive .session-ended .story-panel{border-color:#cae1b7;z-index:12}.immersive .on-pause .landscape{filter:saturate(.5) brightness(.6)}.immersive .on-pause .landscape *,.immersive .on-pause .atmosphere{animation-play-state:paused!important}
/* Couches SVG stables. Les transitions n’agissent que sur opacity/transform. */
.earth-layer,.world-layer,.base-layer,.revelation,.broyeur,.capsule-scene,.station{opacity:0;transition:opacity 1.2s ease,transform 1.2s ease;pointer-events:none}.zone-earth .earth-layer,.zone-world .world-layer,.zone-base .world-layer,.zone-base .base-layer{opacity:1}.zone-base .world-layer{opacity:.35}.revelation{transform:translateY(7px);transform-origin:650px 300px}.revealed .revelation{opacity:1;transform:translateY(0)}.immersive .rift,.immersive .hidden-signals{animation:none}.revealed .rift{animation:rift-breath 5s ease-in-out infinite}.hero-figure{transition:transform 1.5s ease;transform:translate(0 0)}.zone-base .hero-figure{transform:translate(135px,-53px) scale(.93)}.hero-body{transform-origin:430px 510px;animation:hero-breath 5s ease-in-out infinite}.hero-glasses,.hero-pen,.hero-glove{opacity:0;transition:opacity 1s}.revealed .hero-glasses,.zone-world .hero-glasses,.zone-base .hero-glasses{opacity:1}.joined .hero-pen{opacity:1}.has-glove .hero-glove{opacity:1}.hero-shadow{opacity:.6}.stars{animation:star-drift 11s ease-in-out infinite alternate}.cloud-band{animation:cloud-drift 22s ease-in-out infinite alternate}.foreground{pointer-events:none}.city-tram{animation:tram-glide 24s ease-in-out infinite alternate}.atmosphere{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 70% 27%,#99ffdd00 10%,#99ffdd00 65%);transition:background 1.5s}.revealed .atmosphere{background:radial-gradient(ellipse at 67% 37%,#9affda1a 3%,transparent 66%)}.zone-world .atmosphere{background:linear-gradient(135deg,transparent 35%,#e6c8ae1a 50%,transparent 63%)}.zone-base .atmosphere{background:radial-gradient(ellipse at 72% 60%,#c9e59112,transparent 65%)}.travel-light{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 65% 42%,#edffe2,#87e3d944 50%,transparent 75%);opacity:0;z-index:11}.game-stage[data-scene="arrival"] .travel-light{animation:travel-fade 1.8s ease-out both}.game-stage[data-scene="portal"] .revelation{transform:scale(1.1)}.game-stage[data-scene="glove"] .station,.game-stage[data-scene="obstacle"] .station{opacity:1}.game-stage[data-scene^="boss"] .broyeur,.game-stage[data-scene="victory"] .broyeur{opacity:1}.immersive .robot{animation:none}.game-stage[data-scene="boss_intro"] .broyeur{animation:broyeur-enter 1.3s cubic-bezier(.2,.7,.3,1)}.game-stage[data-scene="boss_scan"] .shield{filter:drop-shadow(0 0 10px #a9ddff55)}.game-stage[data-scene="boss_pull"] .broyeur{transform:translate(125px,-15px) rotate(2deg);transform-origin:595px 460px}.game-stage[data-scene="boss_write"] .core{animation:core-wait 2.2s ease-in-out infinite}.game-stage[data-scene="victory"] .broyeur{transform:translate(125px,-15px);filter:saturate(.55)}.immersive .sleeping{animation:power-down 1.5s ease-out both}.attack-scene{opacity:0;pointer-events:none}.game-stage[data-scene="victory"] .attack-scene{animation:final-strike 1.4s ease-out both}.game-stage[data-scene="victory"] .atmosphere{animation:victory-light 1.8s ease-out}.game-stage[data-scene="capsule"] .capsule-scene,.zone-base .capsule-scene{opacity:1}.world-reaction{position:absolute;left:69%;top:42%;width:0;height:0;pointer-events:none;z-index:3}.world-reaction i{position:absolute;width:70px;height:70px;border:2px solid #d9ff7477;border-radius:50%;opacity:0}.positive-reaction .world-reaction i{animation:signal-wave 1.1s ease-out both}.positive-reaction .world-reaction i:nth-child(2){animation-delay:.13s}.positive-reaction .world-reaction i:nth-child(3){animation-delay:.26s}.immersive [data-mode="retry"] .task-instruction strong{animation:soft-retry .7s ease-out}.immersive [data-mode="prompt"] .task-instruction strong,.immersive [data-mode="awaiting"] .task-instruction strong{animation:symbol-breath 3s ease-in-out infinite}.loot-reveal{position:absolute;top:28%;left:58%;width:230px;display:flex;align-items:center;flex-direction:column;gap:9px;color:#e5ffad;opacity:0;z-index:10;pointer-events:none}.loot-reveal svg{width:96px;height:96px;padding:15px;border-radius:26px;border:1px solid #daf4bb;background:#18384aea;filter:drop-shadow(0 0 22px #d3ff7466)}.loot-reveal strong{font-size:20px;text-shadow:0 2px 5px #0a2338}.loot-reveal span{font-size:14px}.loot-reveal.show-loot{animation:loot-flight 2.8s ease-in-out both}.immersive .capsule-toc{opacity:0;animation:none;right:27%;top:43%;z-index:10;pointer-events:none}.immersive .cliffhanger-curtain{position:absolute;inset:0;z-index:6;background:#081726;opacity:0;pointer-events:none}.immersive [data-scene="finale"] .capsule-toc{animation:final-toc 3.5s ease-out both}.immersive [data-scene="finale"] .cliffhanger-curtain{animation:quiet-cut 5s ease-in-out both}.immersive [data-scene="finale"] .story-panel{z-index:7;animation:final-title 4.5s ease-out both}.immersive .capsule.awakening{animation:capsule-knock 1.8s 1.1s ease-in-out 1}.immersive [data-scene="finale"] .capsule-light{animation:core-wait 2s ease-in-out infinite}.immersive [data-scene="finale"].session-ended .story-panel{animation:none}
/* Réglages locaux, en dehors du rendu de séance pour garder les sliders stables. */
.audio-controls{position:fixed;bottom:8px;right:22px;z-index:80}.sound-toggle{width:42px;height:36px;min-height:36px;display:grid;place-items:center;background:#172d40;border:1px solid #78958f;border-radius:20px;color:#d6e7d3}.sound-toggle svg{width:20px;height:20px}.sound-toggle.muted{opacity:.6}.sound-panel{position:absolute;right:0;bottom:49px;width:300px;max-width:calc(100vw - 32px);padding:22px;background:#122a3c;border:1px solid #789b94;border-radius:18px;box-shadow:0 10px 65px #061326aa}.sound-panel[hidden]{display:none}.sound-panel>div{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:22px}.sound-panel strong{font-size:16px}.sound-panel #sound-close{width:40px;height:40px;background:transparent;color:#dceadb;font-size:26px}.sound-panel label{display:flex;justify-content:space-between;font-size:15px;margin:16px 0 4px}.sound-panel output{font-size:13px;color:#c4e6b0}.sound-panel input[type="range"]{appearance:auto;width:100%;height:35px;min-height:35px;accent-color:#d9ff74;padding:0;border:0;background:transparent}.sound-panel #sound-mute{width:100%;margin-top:18px;font-size:14px;padding:13px 10px;min-height:46px}.sound-panel p{font-size:12px;line-height:1.5;margin-top:12px;color:#aec8c4}
@keyframes breath{50%{opacity:.35}}@keyframes rift-breath{50%{filter:brightness(1.15)}}@keyframes hero-breath{50%{transform:translateY(-2px)}}@keyframes cloud-drift{to{transform:translateX(20px)}}@keyframes star-drift{to{opacity:.7}}@keyframes tram-glide{to{transform:translateX(-25px)}}@keyframes travel-fade{0%,15%{opacity:.85}100%{opacity:0}}@keyframes broyeur-enter{0%{transform:translate(200px,-80px);opacity:0}65%{transform:translate(125px,-8px);opacity:1}100%{transform:translate(125px,-15px)}}@keyframes core-wait{50%{filter:brightness(1.4)}}@keyframes signal-wave{from{opacity:.8;transform:translate(-50%,-50%) scale(.5)}to{opacity:0;transform:translate(-50%,-50%) scale(4)}}@keyframes soft-retry{50%{border-color:#f1deb0;box-shadow:0 0 20px #e0dca533}}@keyframes symbol-breath{50%{box-shadow:0 0 30px #98e5c832;border-color:#d3f5d3}}@keyframes loot-flight{0%{opacity:0;transform:translateY(30px) scale(.7)}20%,62%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translate(130px,290px) scale(.25)}}@keyframes final-strike{0%{opacity:0}15%,40%{opacity:1}100%{opacity:0}}@keyframes victory-light{25%{background:#caffbd30}100%{background:transparent}}@keyframes final-toc{0%,35%{opacity:0;transform:translateY(8px)}45%,70%{opacity:1}100%{opacity:0;transform:translateY(-15px)}}@keyframes quiet-cut{0%,55%{opacity:0}100%{opacity:.86}}@keyframes final-title{0%,65%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:none}}
@media(min-width:701px) and (max-height:850px){.immersive .game-stage{min-height:580px}.immersive .story-panel{bottom:27px;padding:17px 21px;width:325px}.immersive .story-panel h1{font-size:26px}.immersive .story-panel>p{font-size:16px}.immersive .task-instruction strong{font-size:52px}.immersive .story-panel .primary{margin-top:13px}.immersive .location-label{top:20px}.immersive .stage-interaction{top:39%}}
@media(max-width:1000px){.immersive .story-panel{width:310px;max-width:38%;padding:20px}.immersive .story-panel h1{font-size:26px}.immersive .story-panel>p{font-size:16px}.immersive .symbol-choice{min-width:55px;font-size:31px}.immersive .stage-interaction{right:2%;width:44%}.immersive .symbol-choices{gap:8px;padding:12px}.loot-reveal{left:57%;width:180px}}
@media(max-width:700px){.immersive .game-header{min-height:92px}.immersive .game-stage{height:auto;min-height:850px}.immersive .landscape{height:460px;transform:none}.immersive .game-stage:after{background:linear-gradient(0deg,#0d2335 36%,transparent 65%)}.immersive .story-panel{top:465px;bottom:auto;left:20px;right:20px;max-width:none;width:auto;margin:0;padding:20px 22px}.immersive .story-panel h1{font-size:27px}.immersive .story-panel>p{font-size:17px}.immersive .stage-interaction{top:300px;right:4%;width:70%}.immersive .signal-meter{margin-top:0}.immersive .game-inventory{bottom:12px;left:auto;right:16px;max-width:95%;gap:7px}.immersive .item-slot{max-width:150px;font-size:11px;padding:7px}.immersive .item-button{min-width:0;font-size:12px;min-height:56px}.immersive .item-button svg{width:32px}.immersive .location-label{top:15px;left:20px}.immersive .zone-base .base-labels{top:337px;left:52%;right:8%;bottom:auto;font-size:10px}.immersive .loot-reveal{top:120px;left:50%;width:165px}.immersive .loot-reveal strong{font-size:16px}.immersive .metal-target{min-height:80px;min-width:155px;font-size:15px}.immersive .capsule-toc{top:255px}.sound-panel{width:285px}.immersive .game-stage:not(.joined){min-height:1000px}.immersive .cliffhanger-curtain{height:465px}}
@media(prefers-reduced-motion:reduce){.immersive *, .immersive *:before,.immersive *:after{animation:none!important;transition:none!important}.immersive .loot-reveal.show-loot{opacity:1;top:16%;transform:scale(.8)}.immersive .game-stage[data-scene="finale"] .capsule-toc{opacity:1}.immersive .game-stage[data-scene="finale"] .cliffhanger-curtain{opacity:.5}.immersive .metal-moving{display:none}.immersive .game-stage[data-scene="finale"] .story-panel{opacity:1}}

.immersive .game-stage[data-scene="portal"] .rift{animation:portal-charge 2.4s ease-in-out infinite alternate}
@media(prefers-reduced-motion:reduce){.immersive .game-stage[data-scene="portal"] .rift{animation:none}}
