/* Bubble Wrap V1 — additions scoped to the isolated prototype only. */
body.bw-prototype #gameStage #board,
body.bw-prototype #gameStage>#sheet>#board{
 display:block!important;aspect-ratio:1/1!important;position:relative!important;
 touch-action:none!important;overflow:hidden!important;
}
body.bw-prototype #gameStage #board>.cell.bw-bubble{
 position:absolute!important;display:flex!important;
 width:12.1%!important;height:12.1%!important;
 margin:0!important;aspect-ratio:1!important;
 border-radius:50%!important;touch-action:none!important;
 transition:filter .15s ease!important;
}
/* Empty membranes resemble inflated transparent bubble wrap, not holes. */
body.bw-prototype #gameStage #board>.cell.empty.bw-bubble::before{
 inset:1.4%!important;
 border:1px solid rgba(228,239,255,.38)!important;
 background:radial-gradient(ellipse at 24% 19%,rgba(255,255,255,.46),transparent 18%),radial-gradient(ellipse at 47% 40%,rgba(211,230,255,.23),rgba(132,164,214,.11) 63%,rgba(16,29,59,.30) 95%)!important;
 box-shadow:inset 2px 3px 5px rgba(255,255,255,.25),inset -3px -5px 6px rgba(11,21,47,.28),0 1px 5px rgba(6,11,29,.18)!important;
}
body.bw-prototype #gameStage #board>.cell.empty.bw-bubble::after{opacity:.75!important}
body.bw-prototype #gameStage #board>.cell.preview-ok::before{
 background:radial-gradient(circle at 24% 18%,rgba(255,255,255,.78),var(--preview) 75%)!important;
 box-shadow:0 0 0 2px rgba(206,253,234,.76),0 0 13px rgba(145,237,220,.55)!important;
 opacity:.76!important;
}
body.bw-prototype #gameStage #board>.cell.preview-bad::before{box-shadow:0 0 0 2px #ed668f!important}
body.bw-prototype #gameStage #board>.cell.bw-pop-now{animation:bwBurst .25s ease-in forwards!important}
@keyframes bwBurst{0%{transform:scale(1);opacity:1}44%{transform:scale(1.18);opacity:1}100%{transform:scale(.6);opacity:0}}
body.bw-prototype #gameStage>#rack .bw-mini{display:block!important;position:relative!important;flex:none!important;transform:none!important;scale:1!important;}
body.bw-prototype #gameStage>#rack .bw-mini>.minicell{position:absolute!important;border-radius:50%!important;}
body.bw-prototype #gameStage>#rack .piece{touch-action:none!important;cursor:grab!important;}
body.bw-prototype #gameStage>#rack .piece:active{cursor:grabbing!important;}
body.bw-prototype #gameStage>.queue-title .challenge-hud{display:flex!important;align-items:center!important;justify-content:space-between!important;}
body.bw-prototype #gameStage>.queue-title .challenge-hud .ch-timer{font-size:15px!important;letter-spacing:3px!important;white-space:nowrap!important;}
body.bw-prototype #gameStage>.queue-title .challenge-hud .ch-goal{font-size:clamp(10px,2.9vw,13px)!important;letter-spacing:.045em!important;}
body.bw-prototype #gameStage>.queue-title .challenge-hud .ch-eyebrow{font-size:8px!important;letter-spacing:.13em!important;}
#bwGhost{position:fixed;z-index:5000;pointer-events:none;filter:drop-shadow(0 5px 7px #020b2699)}
.bw-ghost-dot{position:absolute;width:25px;height:25px;border-radius:50%;border:1px solid #ffffffa0;box-shadow:inset 0 2px 4px #ffffff80,inset 0 -4px 4px #0003;}
.bw-gameover{position:absolute;inset:4px;z-index:100;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;background:rgba(12,22,48,.81);border-radius:18px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#f2f3ff;}
.bw-gameover strong{font-size:clamp(26px,7vw,37px);letter-spacing:.11em;text-shadow:0 4px 18px #101c3b}
.bw-gameover span{font-size:14px;letter-spacing:.08em;color:#cad5ed}
.bw-gameover button{color:#0e2441;background:#dbe9ff;border:0;border-radius:22px;padding:12px 22px;font-weight:800;cursor:pointer}
.bw-instructions{color:#b8c6e6;font-size:12px;line-height:1.45;margin:12px 1px}
.bw-status{color:#bcc9e6;font-size:12px;line-height:1.4;margin:3px 0 8px}
.bw-qa{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 0 4px}
.bw-qa span{color:#b7c6e5;font-size:12px}
.bw-qa strong{display:block;color:#e4ecfe;font-size:22px}
@media(max-width:355px){body.bw-prototype #gameStage>.queue-title .challenge-hud .ch-timer{font-size:12px!important;letter-spacing:1px!important}}
@media(prefers-reduced-motion:reduce){body.bw-prototype #gameStage #board>.cell.bw-pop-now{animation:none!important}}
/* v163 legacy board rule has three IDs and forces 100%-sized grid cells.
   Match its specificity so absolute honeycomb cells use their actual pitch. */
body.bw-prototype #gameStage>#sheet>#board>.cell.bw-bubble{
 width:12.1%!important;height:12.1%!important;min-width:0!important;min-height:0!important;
 position:absolute!important;box-sizing:border-box!important;
}
