/* A paper-and-optics workbench, within the shared Break Room shell. */
.laser-page .br-game-title-group h1{text-shadow:3px 3px #f6beb7}.laser-page #game-panel{background:#fffdf5;padding:24px}.laser-kicker{font:800 11px/1.5 ui-monospace,monospace;letter-spacing:.1em;color:#526273;margin:0 0 10px}.laser-heading{font:800 clamp(28px,4vw,38px)/1.15 Arial,sans-serif;color:#17263a;letter-spacing:-1px;margin:0 0 10px;scroll-margin-top:110px}.laser-intro,.laser-feedback p{font:16px/1.6 Arial,sans-serif;color:#34465a;margin:10px 0 20px}.laser-hud{display:flex;justify-content:space-between;gap:8px;max-width:480px;margin:24px auto 12px;font:800 11px/1.5 ui-monospace,monospace}.laser-stage{position:relative;width:min(100%,480px);margin:0 auto;background:#dce9e9;outline:2px solid #17263a;outline-offset:-2px;box-shadow:4px 5px #17263a}.laser-grid{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));aspect-ratio:1}.laser-cell{position:relative;display:block;aspect-ratio:1;min-width:0;min-height:0!important;padding:0;border:1px solid #17263a38;border-radius:0;background:#edf3ed;color:#17263a;cursor:pointer;touch-action:manipulation;box-shadow:none!important}.laser-cell:nth-child(even){background:#e4eded}.laser-cell:not([aria-disabled=true]):hover{background:#f9e2a7}.laser-cell:focus-visible{z-index:3;outline:3px solid #17263a!important;outline-offset:-4px!important;background:#f9e2a7}.laser-cell.fixed{background:#c8d4d6;cursor:default}.laser-cell.placed{background:#d4eaf4}.laser-coordinate{position:absolute;top:3px;left:4px;font:700 clamp(8px,1.2vw,10px)/1.2 ui-monospace,monospace;color:#526273}.laser-mirror{position:absolute;width:75%;height:5px;background:#3e86a5;border:1px solid #17263a;left:12.5%;top:calc(50% - 2.5px);transform:rotate(-45deg);box-shadow:0 3px #91c7dc}.laser-mirror.back{transform:rotate(45deg)}.fixed .laser-mirror{background:#17263a;box-shadow:0 3px #829698}.laser-bullseye{position:absolute;inset:22%;border:3px solid #a33d33;border-radius:50%;background:#f6beb7;box-shadow:inset 0 0 0 4px #fffdf5}.laser-bullseye:after{content:'';position:absolute;inset:32%;background:#a33d33;border-radius:50%}.laser-block{position:absolute;inset:10%;border:2px solid #17263a;background:repeating-linear-gradient(135deg,#17263a 0 5px,#f9e2a7 5px 10px)}.laser-entry{position:absolute;left:0;bottom:0;display:grid;place-items:center;background:#d8ec91;border:1px solid #17263a;font:900 18px/1 Arial,sans-serif;width:22px;height:20px;z-index:1}.laser-cell.entry{border-left:4px solid #17263a}.laser-beam{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.laser-beam polyline{fill:none;stroke-linecap:square;stroke-linejoin:round}.beam-glow{stroke:#fff4d5;stroke-width:16}.beam-core{stroke:#d84e3f;stroke-width:7}.draw-beam{stroke-dasharray:1;animation:laser-trace .65s linear both}@keyframes laser-trace{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.laser-tools{display:flex;justify-content:center;gap:12px;margin:14px 0}.laser-tools .button{min-height:44px;font-size:11px;padding:10px 20px}.laser-page #fire-beam{display:block;width:min(100%,480px);min-height:48px;margin:16px auto;background:#b8d957}.laser-page button:disabled{opacity:.55;cursor:default}.laser-control-hint{font:13px/1.6 Arial,sans-serif;color:#526273;text-align:center;margin:16px auto;max-width:480px}.laser-live{font:14px/1.5 Arial,sans-serif;color:#34465a;min-height:21px;margin:12px 0}.laser-feedback{border:2px solid #17263a;background:#fae5de;padding:20px;margin:24px 0 4px;box-shadow:3px 3px #17263a}.laser-feedback.hit{background:#edf2d3}.laser-feedback h3{font:800 23px/1.3 Arial,sans-serif;letter-spacing:-.5px;margin:0;scroll-margin-top:110px}.laser-actions{display:flex;flex-wrap:wrap;gap:12px}.laser-actions>*{min-height:44px;flex:1;min-width:160px;text-align:center}.laser-feedback .laser-actions{flex-direction:column}.laser-final-score{font:900 32px/1.3 'Courier New',monospace;margin:22px 0 12px}.laser-recap{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}.laser-recap li{padding:16px;border:2px solid #17263a;background:#edf2d3;display:flex;flex-direction:column;gap:12px;font:800 11px/1.5 ui-monospace,monospace}.laser-recap .miss{background:#fae5de}.laser-recap strong{font-size:13px}.laser-recap button{font-size:10px;min-height:44px}.laser-summary-review h3{font:800 20px/1.4 Arial,sans-serif;scroll-margin-top:110px}.laser-summary-review:empty{display:none}.laser-summary-review{margin-top:24px}.laser-share-fallback{width:100%;min-height:150px;font:14px/1.6 ui-monospace,monospace}.laser-progress-dots{display:flex;gap:8px}.laser-progress-dots span{display:grid;place-items:center;width:27px;height:27px;border:1px solid #17263a;background:#fffdf5;font:800 11px ui-monospace,monospace}.laser-progress-dots .active{background:#91c7dc;box-shadow:2px 2px #17263a}.laser-progress-dots .hit{background:#d8ec91}.laser-progress-dots .miss{background:#f6beb7}.laser-page #game-progress{flex-direction:column;gap:10px}#laser-notice:empty{display:none}#laser-notice,.laser-warning{font:14px/1.6 Arial,sans-serif;padding:12px;background:#f9e2a7;border:1px solid #17263a}.laser-heading:focus-visible,#laser-feedback:focus-visible{outline:3px solid #17263a;outline-offset:3px}
@media(max-width:650px){.laser-page #game-panel{padding:20px 12px}.laser-hud{font-size:10px}.laser-feedback{padding:14px}.laser-actions{flex-direction:column}.laser-actions>*{width:100%;min-width:0}.laser-recap{grid-template-columns:1fr}.laser-heading{font-size:28px}}
@media(max-width:360px){.laser-page .br-game-page{padding-left:4px;padding-right:4px}.laser-page #game-panel{padding:18px 0;border-width:2px}.laser-page #engine-slot>p,.laser-page .laser-heading,.laser-page .laser-hud,.laser-page .laser-actions,.laser-page .laser-feedback,.laser-page .laser-recap,.laser-page .arcade-score,.laser-page .practice-panel,.laser-page .laser-summary-review{margin-left:8px;margin-right:8px}.laser-page .laser-summary-review .laser-stage{width:calc(100% + 16px);margin-left:-8px}.laser-page #fire-beam{width:calc(100% - 16px)}}
@media(prefers-reduced-motion:reduce){.draw-beam{animation:none;stroke-dasharray:none}}

/* A beam at the actual entry edge, with no side rail or mobile header. */
.laser-page .laser-stage,.laser-page[data-game-scene] .laser-stage{width:min(100%,480px);padding:0;background:transparent;outline:0;box-shadow:none}
.laser-board{position:relative;box-shadow:0 0 0 5px #17263a,0 0 0 8px #a3bcc3,7px 10px 0 #17263a}
.laser-source{position:absolute;left:-34px;top:var(--entry-y);width:34px;height:20px;transform:translateY(-50%);z-index:4;pointer-events:none}
.laser-source .laser-emitter{position:absolute;inset:0;display:block;background:radial-gradient(ellipse at right,#ff6255 0 20%,#ff625580 40%,transparent 70%)}
.laser-emitter:before{content:'';position:absolute;top:7px;left:2px;right:0;height:6px;background:#e84938;border-radius:5px 0 0 5px;box-shadow:0 0 5px #e8493890}
.laser-emitter:after{content:'';position:absolute;top:9px;left:3px;right:0;height:2px;background:#fff4dc}
.laser-source-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.laser-grid .laser-cell.entry{border-left:4px solid #d34c3a}
.laser-board .laser-beam{inset:0}
@media(max-width:650px){.laser-source{left:-6px;width:18px}.laser-source .laser-emitter{background:radial-gradient(ellipse at 40% 50%,#ff6255 0 15%,#ff625580 40%,transparent 70%)}}
/* Keep light-mode control labels legible, including unavailable actions. */
:root:not([data-theme=dark]) .laser-page :is(.laser-tools button,#fire-beam){color:#17263a!important}
:root:not([data-theme=dark]) .laser-page :is(.laser-tools button,#fire-beam):disabled{opacity:1!important;color:#34465a!important;background:#e2e7e8!important;border-color:#6d7f8a!important;box-shadow:none!important}
