/* Obstacle Remover · modern edition · arcade cabinet scene (desktop) */
html,body{margin:0;height:100%;overflow:hidden;background:#05080d;color:#e7f0f4;font-family:"Trebuchet MS",Arial,sans-serif}
#mc-scene{position:fixed;inset:0;overflow:hidden}
#mc-world{position:absolute;left:0;top:0;width:2752px;height:1536px;transform-origin:0 0}
body.zooming #mc-world{will-change:transform}
#mc-img{position:absolute;left:0;top:0;width:2752px;height:1536px;user-select:none;-webkit-user-drag:none}
#mc-teaser{position:absolute;left:0;top:0;width:1280px;height:702px;transform-origin:0 0;opacity:0;transition:opacity .45s ease;pointer-events:none}
#mc-teaser.on{opacity:1}
#mc-teaser.out{transition-duration:1s}
#mc-game{position:absolute;left:0;top:0;border:0;transform-origin:0 0;background:#020914;border-radius:16px;pointer-events:none;color-scheme:dark}
body.zoomed #mc-game{pointer-events:auto}
#mc-glass{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none;border-radius:16px;
  background:linear-gradient(125deg,rgba(255,255,255,.07),rgba(255,255,255,0) 32%),radial-gradient(ellipse at 50% 50%,transparent 62%,rgba(0,10,20,.45));
  box-shadow:inset 0 0 0 1px rgba(160,240,255,.18),0 0 60px rgba(90,220,255,.10);transition:opacity .8s}
body.zoomed #mc-glass{opacity:.35}
.mc-glow{position:absolute;border-radius:50%;pointer-events:none;opacity:0;transition:opacity .08s;mix-blend-mode:screen}
.mc-glow-thrust{background:radial-gradient(circle,rgba(120,250,255,.95),rgba(60,220,255,.35) 40%,transparent 70%)}
.mc-glow-fire{background:radial-gradient(circle,rgba(255,230,140,.95),rgba(255,190,70,.35) 40%,transparent 70%)}
#mc-world.p-thrust .mc-glow-thrust,#mc-world.p-fire .mc-glow-fire{opacity:1}
#mc-world.demo.p-thrust .mc-glow-thrust,#mc-world.demo.p-fire .mc-glow-fire{opacity:.45}
.mc-hot{position:absolute;border:0;background:transparent;cursor:pointer;border-radius:10px}
.mc-hot:focus-visible{outline:3px solid #ecc277;outline-offset:4px}
body:not(.zoomed) #mc-world{cursor:pointer}
#mc-ui{position:fixed;inset:0;pointer-events:none;z-index:5}
#mc-ui button{pointer-events:auto;font:inherit;cursor:pointer}
#mc-hint{position:absolute;left:14px;bottom:14px;margin:0;padding:6px 11px;border-radius:30px;background:rgba(2,10,18,.72);border:1px solid rgba(158,248,255,.25);
  font-size:13px;letter-spacing:.08em;color:#cfe6ee;white-space:nowrap;transition:opacity .5s}
#mc-hint kbd{font:inherit;color:#ecc277;border:1px solid rgba(236,194,119,.5);border-radius:4px;padding:1px 6px}
body.zooming #mc-hint,body.zoomed #mc-hint,body.teaser #mc-hint{opacity:0}
#mc-teaser-ui{display:none}
body.teaser #mc-teaser-ui{display:block}
.mc-press{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);margin:0;font-size:18px;letter-spacing:.32em;color:#ffe1a2;text-shadow:0 0 18px rgba(233,191,111,.6);animation:mc-blink 1.2s steps(1,end) infinite}
@keyframes mc-blink{0%,64%{opacity:1}65%,100%{opacity:.15}}
#mc-skip{position:absolute;right:26px;bottom:22px;padding:9px 16px;border-radius:30px;border:1px solid rgba(158,248,255,.35);background:rgba(2,10,18,.7);color:#cfe6ee;font-size:12px;letter-spacing:.16em}
#mc-skip:hover{border-color:#9ef8ff;color:#fff}
#mc-step{display:none;position:absolute;left:22px;top:20px;padding:9px 16px;border-radius:30px;border:1px solid rgba(158,248,255,.35);background:rgba(2,10,18,.75);color:#cfe6ee;font-size:12px;letter-spacing:.14em}
#mc-step small{opacity:.55;margin-left:6px;font-size:10px}
body.zoomed #mc-step{display:inline-block}
#mc-tools{position:absolute;right:22px;top:20px;display:flex;gap:10px}
#mc-full small{opacity:.55;margin-left:6px;font-size:10px}
#mc-sound,#mc-full{padding:9px 16px;border-radius:30px;border:1px solid rgba(158,248,255,.35);background:rgba(2,10,18,.75);color:#cfe6ee;font-size:12px;letter-spacing:.14em}
#mc-sound[aria-pressed="true"]{border-color:#ecc277;color:#ecc277}
body.teaser #mc-sound{display:none}
#mc-full:hover,#mc-sound:hover,#mc-step:hover{border-color:#9ef8ff;color:#fff}
#mc-ui button:focus-visible{outline:2px solid #ecc277;outline-offset:3px}
.mc-noscript{position:fixed;inset:auto 0 40px;text-align:center;z-index:9}.mc-noscript a{color:#ecc277}
@media (prefers-reduced-motion:reduce){.mc-press{animation:none}#mc-teaser{transition:none}}
/* sound is on by default; until the browser lets audio start, a quiet hint */
#mc-soundhint{position:absolute;right:24px;top:64px;margin:0;font:11px/1 "Trebuchet MS",Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#ecc277;opacity:0;pointer-events:none;transition:opacity .6s;text-shadow:0 1px 8px #000}
body.needs-gesture #mc-soundhint{opacity:.75;animation:mc-hintpulse 2.4s ease-in-out infinite}
body.zoomed #mc-soundhint,body.game-fullscreen #mc-soundhint{display:none}
@keyframes mc-hintpulse{50%{opacity:.4}}

/* Paul, Oct 24 1:05 AM: controls ~50% smaller, low-key, in the outer corners, never over the cabinet screen */
#mc-step,#mc-sound,#mc-voice,#mc-full{min-height:28px;padding:5px 10px;border-radius:20px;border:1px solid rgba(158,248,255,.18);background:rgba(2,10,18,.42);color:rgba(207,230,238,.72);font:9px/1 "Trebuchet MS",Arial,sans-serif;letter-spacing:.14em;backdrop-filter:blur(4px);transition:color .2s,border-color .2s,box-shadow .2s,background .2s;cursor:pointer}
#mc-step small,#mc-full small{opacity:.5;margin-left:5px;font-size:8px}
#mc-step{left:12px;top:12px}
#mc-tools{right:12px;top:12px;gap:6px}
#mc-full{position:absolute;right:12px;bottom:12px}
#mc-sound[aria-pressed="true"],#mc-voice[aria-pressed="true"]{border-color:rgba(236,194,119,.35);color:rgba(236,194,119,.85)}
#mc-step:hover,#mc-sound:hover,#mc-voice:hover,#mc-full:hover,#mc-step:focus-visible,#mc-sound:focus-visible,#mc-voice:focus-visible,#mc-full:focus-visible{color:#fff;border-color:rgba(158,248,255,.7);background:rgba(2,10,18,.7);box-shadow:0 0 12px rgba(158,248,255,.3)}
body.teaser #mc-voice{display:none}
#mc-hint{font-size:10px;padding:6px 11px;opacity:.72;background:rgba(2,10,18,.42);border-color:rgba(158,248,255,.15)}
#mc-hint kbd{padding:0 4px}
#mc-soundhint{right:14px;top:46px;font-size:9px;letter-spacing:.14em}
#mc-ui #mc-step,#mc-ui #mc-sound,#mc-ui #mc-voice,#mc-ui #mc-full,#mc-ui #mc-skip{font:9px/1 "Trebuchet MS",Arial,sans-serif;letter-spacing:.14em}
#mc-ui #mc-skip{min-height:28px;padding:5px 11px;border-radius:20px;right:12px;bottom:12px;background:rgba(2,10,18,.42);border-color:rgba(158,248,255,.18);color:rgba(207,230,238,.75)}
#mc-ui #mc-skip:hover{color:#fff;border-color:rgba(158,248,255,.7);box-shadow:0 0 12px rgba(158,248,255,.3)}
.mc-press{font-size:14px}

/* room replay after zooming back out: soft fade in from the still, buttons stay, no SKIP INTRO */
#mc-teaser.fadein{transition-duration:.9s}
body.teaser.replay #mc-sound,body.teaser.replay #mc-voice{display:inline-block}
body.teaser.replay #mc-skip{display:none}

/* way out to the Arcade page: top-left corner, same low-key pill; STEP BACK sits right next to it */
body.game-fullscreen #mc-exit{display:none}

/* EXIT sign (Paul, Oct 24): the way back to the Arcade, a glowing red emergency-exit sign in the top-left room corner. Same link logic as before.
   --xs scales it down only if it would touch the game screen (see fitExitSign in the JS). */
.exit-sign{position:fixed;top:14px;left:14px;z-index:41;display:block;text-decoration:none;transform-origin:0 0;transform:scale(var(--xs,1));-webkit-tap-highlight-color:transparent}
.exit-sign .xs-box{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 15px 8px;border-radius:7px;background:linear-gradient(180deg,#1c0407,#0a0103);
  box-shadow:inset 0 0 0 2px #3d0b10,inset 0 0 20px rgba(255,30,40,.16),0 0 0 1px #000,0 8px 22px rgba(0,0,0,.6),0 0 28px rgba(255,36,36,.22);transition:box-shadow .3s}
.exit-sign .xs-row{display:flex;align-items:center;gap:8px;color:#ff3b30}
.exit-sign .xs-word{font:900 30px/1 "Arial Black",Impact,"Helvetica Neue",Arial,sans-serif;letter-spacing:.12em;margin-right:-.12em;color:#ff4136;
  text-shadow:0 0 3px #ff2a1f,0 0 10px #ff1a10,0 0 22px rgba(255,20,10,.75);animation:xs-hum 9s infinite}
.exit-sign .xs-man{width:26px;height:26px;filter:drop-shadow(0 0 3px #ff2a1f) drop-shadow(0 0 8px rgba(255,26,16,.7));animation:xs-hum 9s infinite}
.exit-sign .xs-arrow{font:900 24px/1 Arial,sans-serif;filter:drop-shadow(0 0 3px #ff2a1f) drop-shadow(0 0 8px rgba(255,26,16,.7));animation:xs-hum 9s infinite}
.exit-sign .xs-sub{font:800 10px/1 "Trebuchet MS",Arial,sans-serif;letter-spacing:.42em;margin-right:-.42em;color:#ffc2bd;text-shadow:0 0 6px rgba(255,60,50,.7);opacity:.9}
.exit-sign:hover .xs-box,.exit-sign:focus-visible .xs-box{box-shadow:inset 0 0 0 2px #6a121a,inset 0 0 26px rgba(255,40,40,.3),0 0 0 1px #000,0 8px 22px rgba(0,0,0,.6),0 0 46px rgba(255,40,40,.55)}
.exit-sign:hover .xs-word,.exit-sign:focus-visible .xs-word{color:#ff6a5f;text-shadow:0 0 4px #ff3a2f,0 0 14px #ff2a1f,0 0 34px rgba(255,30,20,.95)}
.exit-sign:focus-visible{outline:2px solid #ffd36b;outline-offset:4px;border-radius:9px}
@keyframes xs-hum{0%,100%{opacity:1}46%{opacity:1}47%{opacity:.72}47.6%{opacity:1}48.4%{opacity:.86}49%{opacity:1}82%{opacity:.97}83%{opacity:1}}
@media (prefers-reduced-motion:reduce){.exit-sign .xs-word,.exit-sign .xs-man,.exit-sign .xs-arrow{animation:none}}
/* modern: clean LED sign, crisp edge, glass face, fine LED dot grid */
.exit-sign.modern .xs-box{border-radius:10px;background:linear-gradient(180deg,rgba(26,6,9,.92),rgba(8,2,4,.92));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  box-shadow:inset 0 0 0 1px rgba(255,90,80,.45),inset 0 0 18px rgba(255,40,40,.14),0 8px 24px rgba(0,0,0,.55),0 0 26px rgba(255,40,40,.22)}
.exit-sign.modern .xs-word{font:800 29px/1 "Trebuchet MS",Arial,sans-serif;letter-spacing:.18em;margin-right:-.18em}
.exit-sign.modern .xs-box::after{content:"";position:absolute;inset:2px;border-radius:8px;pointer-events:none;background:radial-gradient(circle,transparent 0 .9px,rgba(0,0,0,.38) 1.3px) 0 0/3px 3px}
.exit-sign.modern:hover .xs-box,.exit-sign.modern:focus-visible .xs-box{box-shadow:inset 0 0 0 1px rgba(255,120,110,.8),inset 0 0 24px rgba(255,40,40,.28),0 8px 24px rgba(0,0,0,.55),0 0 46px rgba(255,40,40,.5)}
#mc-exit.exit-sign{pointer-events:auto}
#mc-ui #mc-step{left:calc(var(--xs-right,190px) + 12px);top:14px}
/* the room loops (replay mode): the play hint stays readable */
body.teaser.replay #mc-hint{opacity:1}
