/* Bleepbook arcade v2 — phone-first playable controls, actual 3D cuboids and tilt physics */
#bb-decompression .bb2-arcade{width:min(100%,850px);box-sizing:border-box;margin:8px auto 28px;padding:13px;background:linear-gradient(165deg,#f8fbf6,#fffaf1);border:1px solid #d7e4db;border-radius:19px;color:#164747}
#bb-decompression .bb2-toolbar{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:7px;margin:0 0 11px}
#bb-decompression .bb2-action{border:1px solid #b9d2c4;background:#eef5ec;min-height:45px;padding:10px 13px;border-radius:11px;font-size:13px;font-weight:700;line-height:1.2;font-family:inherit;cursor:pointer;color:#185951;touch-action:manipulation;white-space:nowrap}
#bb-decompression .bb2-action:first-child{background:#075b63;border-color:#075b63;color:#fff}
#bb-decompression .bb2-action:disabled{opacity:.5;cursor:default}
#bb-decompression .bb2-action:focus-visible,#bb-decompression .bb2-arrow:focus-visible,#bb-decompression .bb2-tilt-arrow:focus-visible{outline:3px solid #f47c61;outline-offset:2px}
#bb-decompression .bb2-mini-select{display:flex;align-items:center;gap:6px;background:#f3f7ee;border:1px solid #d4e0d5;padding:5px 9px;border-radius:11px;font-size:12px;font-weight:750;white-space:nowrap}
#bb-decompression .bb2-mini-select select{min-height:34px;padding:2px 6px;border:0;background:transparent;color:#144943;max-width:112px;font-size:12px;font-weight:700;line-height:1.2;font-family:inherit}
#bb-decompression .bb2-hint{font-size:13px;line-height:1.55;text-align:center;color:#648174;max-width:660px;margin:8px auto 13px}
#bb-decompression .bb2-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin:13px auto 9px}
#bb-decompression .bb2-stat{display:flex;flex-direction:column;align-items:center;background:#e9f2e9;border:1px solid #d3e4d8;border-radius:12px;padding:7px 10px;min-width:86px;box-sizing:border-box}
#bb-decompression .bb2-stat span{font-size:11px;color:#627e73}
#bb-decompression .bb2-stat strong{font-size:20px;color:#185a56;line-height:1.3;font-weight:850}
#bb-decompression .bb2-feedback{text-align:center;font-size:13px;font-weight:750;line-height:1.5;color:#315e56;margin:9px 0 10px;min-height:25px}
#bb-decompression .bb2-snake-frame{width:min(100%,480px);margin:0 auto;overflow:hidden;border:9px solid #377c6f;border-radius:16px;box-shadow:0 8px 0 #225c55,0 15px 27px #22544930;background:#dfeddb;touch-action:none}
#bb-decompression .bb2-snake-canvas{display:block;width:100%;height:auto;aspect-ratio:1;touch-action:none;user-select:none;-webkit-user-select:none;cursor:crosshair}
#bb-decompression .bb2-inline-pad{display:grid;grid-template-columns:repeat(3,58px);grid-template-rows:repeat(2,52px);gap:6px;justify-content:center;margin:10px 0 0;touch-action:manipulation}
#bb-decompression .bb2-arrow{border:1px solid #a2bfac;background:#e5f0e6;color:#135d53;border-radius:12px;min-height:50px;min-width:55px;font-size:24px;font-weight:800;line-height:1;font-family:inherit;box-shadow:0 3px 0 #aacbb8;cursor:pointer;touch-action:manipulation}
#bb-decompression .bb2-arrow-up{grid-column:2;grid-row:1}
#bb-decompression .bb2-arrow-left{grid-column:1;grid-row:2}
#bb-decompression .bb2-arrow-down{grid-column:2;grid-row:2}
#bb-decompression .bb2-arrow-right{grid-column:3;grid-row:2}
/* Scene camera is transformed in 3D. Each obstacle has raised sides and a top surface. */
#bb-decompression .bb2-maze-view{width:min(100%,540px);aspect-ratio:1;margin:10px auto 24px;display:grid;place-items:center;perspective:900px;touch-action:none;overflow:visible;user-select:none}
#bb-decompression .bb2-maze-rig{position:relative;width:85%;aspect-ratio:1;transform-style:preserve-3d;transform:rotateX(var(--maze-rx,23deg)) rotateY(var(--maze-ry,-10deg));transition:transform .08s linear;will-change:transform}
#bb-decompression .bb2-maze-floor{position:absolute;inset:0;border:8px solid #2d756e;box-sizing:border-box;border-radius:12px;background:repeating-linear-gradient(0deg,transparent 0,transparent calc(100% / var(--maze-n) - 1px),#accfbc calc(100% / var(--maze-n))),repeating-linear-gradient(90deg,#edf4e9 0,#edf4e9 calc(100% / var(--maze-n) - 1px),#ccdfca calc(100% / var(--maze-n)));box-shadow:0 7px 0 #245e58,0 16px 0 #1b4847,0 24px 26px #154b455b;transform-style:preserve-3d}
#bb-decompression .bb2-wall{position:absolute;width:calc(100% / var(--maze-n));height:calc(100% / var(--maze-n));box-sizing:border-box;transform-style:preserve-3d;transform:translateZ(17px);background:linear-gradient(135deg,#477e75,#306e67);border:1px solid #2e675f;box-shadow:inset 2px 2px #81b6a0}
#bb-decompression .bb2-wall-front{position:absolute;left:-1px;right:-1px;bottom:0;height:17px;transform:rotateX(-90deg);transform-origin:bottom;background:#245b55;box-shadow:inset 0 -2px #174840}
#bb-decompression .bb2-wall-left{position:absolute;top:0;bottom:0;left:0;width:17px;transform:rotateY(90deg);transform-origin:left;background:#467e70}
#bb-decompression .bb2-wall-bottom{position:absolute;left:0;right:0;top:0;height:17px;transform:rotateX(90deg);transform-origin:top;background:#598d7e}
#bb-decompression .bb2-maze-ball{position:absolute;z-index:3;width:calc(60% / var(--maze-n));height:calc(60% / var(--maze-n));transform:translate(-50%,-50%) translateZ(32px);border-radius:50%;background:radial-gradient(circle at 28% 22%,#fff 0 10%,#f8dcc0 20%,#d5967e 57%,#a46a63 80%,#7d5457);box-shadow:5px 8px 6px #123e4670,inset -3px -5px 4px #8b6668;border:1px solid #f5e2c6;pointer-events:none}
#bb-decompression .bb2-maze-shadow{position:absolute;inset:-10%;border-radius:50%;box-shadow:0 0 11px 7px #28585025}
#bb-decompression .bb2-maze-goal{position:absolute;width:calc(100% / var(--maze-n));height:calc(100% / var(--maze-n));transform:translate(-50%,-50%) translateZ(2px);display:grid;place-items:center;background:#e9ca85;color:#9d6a50;border:2px solid #f9e3af;border-radius:50%;font-size:clamp(10px,2vw,26px);box-shadow:0 0 12px 3px #e6c2739c}
#bb-decompression .bb2-maze-pad{display:flex;justify-content:center;gap:8px;margin:0 auto 6px;touch-action:manipulation}
#bb-decompression .bb2-tilt-arrow{touch-action:none;user-select:none;min-width:62px;min-height:52px;border:1px solid #b0ccbb;background:#e6f1e7;color:#1b5d54;border-radius:13px;font-size:25px;font-weight:800;line-height:1;font-family:inherit;box-shadow:0 4px 0 #abc9b4}
#bb-decompression .bb2-tilt-arrow:active{background:#c9e3d4}
#bb-decompression .bb2-tower-stage{position:relative;width:min(100%,550px);height:510px;margin:10px auto 14px;overflow:hidden;border:1px solid #cfdfd3;border-radius:18px;background:linear-gradient(180deg,#e2efe7,#f9f5e9 55%,#d9e6d5);perspective:980px;touch-action:manipulation;user-select:none;cursor:pointer}
#bb-decompression .bb2-tower-stage:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 32%,#fff9efa8,transparent 68%);pointer-events:none}
#bb-decompression .bb2-tower-camera{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(9deg) rotateY(-9deg);perspective:850px;transform-origin:50% 75%}
#bb-decompression .bb2-tower-platform{position:absolute;bottom:12px;left:10%;width:80%;height:20px;border-radius:12px;background:#33766b;box-shadow:9px 13px 0 #1c514c,0 23px 24px #23595150;transform:translateZ(-12px)}
#bb-decompression .bb2-tower-stack{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none}
#bb-decompression .bb2-cube{position:absolute;height:31px;transform-style:preserve-3d;box-sizing:border-box;pointer-events:none;--cube-color:#568e83}
#bb-decompression .bb2-cube-front{position:absolute;inset:0;background:linear-gradient(100deg,var(--cube-color),#245f5d);border:2px solid #f9f0df;border-radius:2px;box-shadow:0 1px 0 #326765;transform:translateZ(20px)}
#bb-decompression .bb2-cube-top{position:absolute;left:0;right:0;top:0;height:20px;background:linear-gradient(110deg,#e0d3aa,var(--cube-color));border:1px solid #f5e9d0;transform:rotateX(90deg);transform-origin:top}
#bb-decompression .bb2-cube-side{position:absolute;top:0;bottom:0;right:0;width:20px;background:#235f5c;border:1px solid #f2e6d4;transform:rotateY(90deg);transform-origin:right}
#bb-decompression .bb2-moving{--cube-color:#e2a58e;filter:drop-shadow(1px 3px 2px #1e50532c)}
#bb-decompression .bb2-falling{animation:bb2-fall .62s ease-in forwards;z-index:4}
@keyframes bb2-fall{to{transform:translate3d(35px,100px,130px) rotateZ(24deg);opacity:0}}
@media(max-width:749px){
 #bb-decompression .bb2-arcade{padding:10px;border-radius:13px;width:100%}
 #bb-decompression .bb2-toolbar{gap:5px;justify-content:center}
 #bb-decompression .bb2-action{min-height:45px;padding:9px 11px;font-size:12px}
 #bb-decompression .bb2-snake-frame{width:min(100%,425px);border-width:6px;border-radius:12px}
 #bb-decompression .bb2-inline-pad{margin:8px auto 2px;grid-template-columns:repeat(3,55px);grid-template-rows:repeat(2,49px);gap:4px}
 #bb-decompression .bb2-maze-view{width:100%;margin:8px auto 15px;perspective:750px}
 #bb-decompression .bb2-maze-rig{width:90%}
 #bb-decompression .bb2-wall{transform:translateZ(11px)}
 #bb-decompression .bb2-wall-front{height:11px}
 #bb-decompression .bb2-wall-left{width:11px}
 #bb-decompression .bb2-wall-bottom{height:11px}
 #bb-decompression .bb2-maze-ball{transform:translate(-50%,-50%) translateZ(22px)}
 #bb-decompression .bb2-maze-pad{gap:5px}
 #bb-decompression .bb2-tilt-arrow{min-width:53px;min-height:51px;font-size:21px}
 #bb-decompression .bb2-tower-stage{height:440px}
}
@media(prefers-reduced-motion:reduce){#bb-decompression .bb2-maze-rig{transition:none}#bb-decompression .bb2-falling{animation:none}}
