/* ══ VOXEL LABS // play layer — easter eggs, mascot, sound, arcade ══ */
#door-b{display:inline-block;margin-left:12px;color:#92a095;font-family:"DM Mono",monospace;cursor:pointer;opacity:.3;transition:.25s;user-select:none;-webkit-user-select:none;font-size:11px}
#door-b:hover{opacity:1;color:var(--lime2);text-shadow:0 0 12px rgba(216,251,94,.9)}
body.lab-glitch{animation:labGlitch .4s steps(4) 1}
@keyframes labGlitch{0%{filter:none}20%{filter:invert(1);transform:translateX(-7px)}45%{filter:hue-rotate(120deg);transform:translateX(5px)}70%{filter:invert(1) contrast(1.5)}100%{filter:none}}
#cube0{pointer-events:none;image-rendering:pixelated;will-change:transform;display:block;width:36px;height:41px}
/* ── CUBE_0 speech bubble ── */
#pet-bubble{position:fixed;left:0;bottom:64px;z-index:26;pointer-events:none;background:var(--ink);color:var(--lime);border:1px solid rgba(216,251,94,.45);border-radius:8px;padding:8px 12px;font:500 11px/1.45 "DM Mono";letter-spacing:.02em;box-shadow:0 10px 26px rgba(10,20,14,.28);max-width:min(250px,calc(100vw - 24px));opacity:0;visibility:hidden;transform:translateY(8px) scale(.94);transition:opacity .18s ease,transform .18s ease,visibility .18s}
#pet-bubble.show{opacity:1;visibility:visible;transform:none}
#pet-bubble:after{content:"";position:absolute;bottom:-5px;left:var(--tail,50%);width:10px;height:10px;background:var(--ink);border-right:1px solid rgba(216,251,94,.45);border-bottom:1px solid rgba(216,251,94,.45);transform:translateX(-50%) rotate(45deg)}
#sfx-toggle{position:fixed;left:18px;bottom:58px;z-index:26;font:500 10px/1 "DM Mono";letter-spacing:.1em;color:#57665d;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:999px;padding:8px 13px;cursor:pointer;box-shadow:0 8px 20px rgba(25,43,32,.08);opacity:.8;transition:.25s;user-select:none}
#sfx-toggle:hover{opacity:1;color:var(--ink)}
#sfx-toggle b{color:var(--ink)}
#sfx-toggle.off{color:#9aa59d}
.play-game{display:inline-flex;align-items:center;gap:8px;font:700 10px/1 "DM Mono";letter-spacing:.14em;text-transform:uppercase;color:#5a8c3e;background:transparent;border:1px solid rgba(129,163,93,.45);border-radius:999px;padding:7px 12px;cursor:pointer;transition:.25s;user-select:none}
.play-game:hover{color:#16231d;background:var(--lime);border-color:var(--lime);box-shadow:0 0 16px rgba(216,251,94,.55)}
.play-game:active{transform:scale(.96)}
#start-chip{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(16px);z-index:28;display:flex;align-items:center;gap:12px;background:var(--ink);color:#fff;border:1px solid rgba(216,251,94,.4);border-radius:999px;padding:5px 7px 5px 16px;font:500 10.5px/1 "DM Mono";letter-spacing:.08em;box-shadow:0 14px 34px rgba(10,20,14,.38);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}
#start-chip.show{opacity:1;transform:translateX(-50%);pointer-events:auto}
#start-chip button{background:var(--lime);color:var(--ink);border:0;border-radius:999px;font:800 10px/1 "DM Mono";letter-spacing:.04em;padding:10px 14px;cursor:pointer;transition:background .2s}
#start-chip button:hover{background:var(--lime2)}
#lab-toast{position:fixed;right:18px;bottom:20px;z-index:500;background:var(--ink);color:#fff;padding:12px 14px;border-radius:999px;font:600 12.5px/1.4 Manrope,sans-serif;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);transition:.3s;pointer-events:none;max-width:min(360px,80vw)}
#lab-toast.show{opacity:1;transform:none}
.ticker-track.fast{animation-duration:.9s!important}
.browser.tilt{animation:none}
/* ══ VOXEL RUNNER ══ */
#runner{position:fixed;inset:0;z-index:400;display:none;background:#04070c;font-family:"DM Mono",monospace;user-select:none;-webkit-user-select:none;touch-action:none}
#runner.open{display:block}
#runner canvas{position:absolute;inset:0;width:100%;height:100%}
#runner.glitched{animation:runGlitch .18s steps(3) 3}
@keyframes runGlitch{0%{filter:invert(1);transform:translateX(0)}33%{transform:translateX(-9px)}66%{filter:hue-rotate(60deg);transform:translateX(9px)}100%{transform:none}}
.run-hud{position:absolute;top:20px;left:0;right:0;display:flex;justify-content:space-between;padding:0 22px;color:#5f6e64;font:500 11px/1 "DM Mono";letter-spacing:.14em;text-transform:uppercase}
.run-hud b{color:var(--lime);text-shadow:0 0 12px rgba(216,251,94,.6)}
.run-panel{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);text-align:center;color:#d8fb5e;text-shadow:0 0 22px rgba(216,251,94,.5);width:min(430px,88vw)}
.run-panel b.run-big{display:block;font-size:clamp(20px,4.4vw,34px);letter-spacing:-.03em;margin-bottom:10px}
.run-panel span.run-hint{display:block;color:#5f6e64;font:500 11px/1.8 "DM Mono";letter-spacing:.14em;text-transform:uppercase}
.run-keys{display:flex;justify-content:center;gap:10px;margin-top:26px}
.run-keys button{background:transparent;color:var(--lime);border:1px solid rgba(216,251,94,.4);border-radius:999px;padding:11px 20px;font:700 11px/1 "DM Mono";letter-spacing:.12em;cursor:pointer;transition:.2s}
.run-keys button:hover{background:var(--lime);color:var(--ink)}
@media(max-width:720px){#sfx-toggle{left:8px;bottom:64px}.run-hud{padding:0 14px;font-size:9.5px}.run-panel{top:40%}.bottom .play-game{margin-top:2px}}
@media(prefers-reduced-motion:reduce){#cube0,#sfx-toggle{display:none}}