.laser-game{color:#e2e8f0;background:linear-gradient(150deg,#1e293b,#15182f);border:1px solid #4d5685;border-radius:20px;min-width:0;max-width:500px;margin:auto;padding:12px;position:relative}.laser-game *{box-sizing:border-box}.laser-game [hidden]{display:none!important}.laser-game button{font:inherit;cursor:pointer;color:#e2e8f0;touch-action:manipulation;background:#202941;border:1px solid #6f689a;border-radius:11px;min-width:44px;min-height:44px}.laser-game button:disabled{opacity:.45;cursor:default}.laser-game :focus-visible{outline-offset:2px;outline:3px solid #fbbf24}.ll-toolbar{justify-content:space-between;align-items:center;gap:6px;margin-bottom:10px;display:flex}.ll-toolbar>span{color:#c4b5fd;letter-spacing:.12em;font-size:.66rem;font-weight:700}.ll-toolbar .game-toolbar-actions{gap:5px}.ll-hud{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0 0 12px;display:grid}.ll-hud>div{background:#0c172c;border:1px solid #394463;border-radius:10px;min-width:0;padding:8px 5px}.ll-hud dt{letter-spacing:.06em;color:#adbede;font-size:.5rem}.ll-hud dd{white-space:nowrap;margin:3px 0 0;font-size:1.08rem;font-weight:800}.ll-hud>div:nth-child(2) dd{color:#38bdf8}.ll-hud>div:last-child dd{color:#fbbf24;letter-spacing:.05em;font-size:.95rem}.ll-layout{min-width:0}.ll-caption{color:#afc6e3;justify-content:space-between;align-items:center;gap:5px;padding:0 3px 9px;font-size:.63rem;display:flex}.ll-caption>span{color:#fbbf24;white-space:nowrap;font-size:.55rem}.ll-board{aspect-ratio:1;isolation:isolate;background:#07182b;border-radius:11px;width:100%;padding:4px;position:relative;box-shadow:0 0 0 1px #5f75a2,inset 0 0 16px #38bdf81c}.ll-grid{grid-template-columns:repeat(var(--size,5), minmax(44px, 1fr));grid-template-rows:repeat(var(--size,5), minmax(44px, 1fr));width:100%;height:100%;display:grid}.laser-game .ll-cell{background:linear-gradient(140deg,#10223b,#0b172a);border:1px solid #273e60;border-radius:5px;place-items:center;min-width:44px;min-height:44px;padding:0;display:grid;position:relative}.ll-cell:after{content:"";pointer-events:none;border:1px solid #31476c25;border-radius:3px;position:absolute;inset:5px}.ll-cell[data-kind=empty]{background:radial-gradient(circle,#334d6644 1px,#0000 2px),#0c1a2d}.ll-cell[data-kind=mirror]{background:linear-gradient(145deg,#174264,#13233b)!important;border-color:#5f9ec0!important}.ll-mirror-line{pointer-events:none;background:#e0f2fe;border-radius:6px;width:68%;height:6%;position:absolute;top:47%;left:16%;transform:rotate(-45deg);box-shadow:0 0 5px #38bdf866}.ll-cell[data-orientation=backslash] .ll-mirror-line{transform:rotate(45deg)}.ll-cell[data-kind=fixed]{background:#252b40;border-color:#727887}.ll-cell[data-kind=fixed] .ll-mirror-line{box-shadow:none;background:#9faebe}.ll-lock{color:#e2e8f0;font-size:.48rem;position:absolute;top:1px;right:3px}.ll-cell[data-kind=blocker]{background:repeating-linear-gradient(135deg,#222337,#222337 6px,#1a1f30 6px 12px);border-color:#3e3b53}.ll-block{color:#667089;font-size:1.3rem;line-height:1}.ll-relay{aspect-ratio:1;background:#2f2a1b;border:3px solid #a17b2a;border-radius:50%;width:46%;box-shadow:inset 0 0 0 3px #091627}.ll-cell[data-lit=true] .ll-relay{background:#fbbf2477;border-color:#fde68a;box-shadow:0 0 9px #fbbf2444,inset 0 0 0 2px #fbbf24}.ll-cell[data-hint=true]{outline-offset:-3px;z-index:2;outline:3px solid #fbbf24}.ll-cell[data-hint=true]:before{content:"✧";color:#fde68a;font-size:.65rem;position:absolute;top:0;left:3px}.ll-beam{pointer-events:none;z-index:1;width:calc(100% - 8px);height:calc(100% - 8px);position:absolute;inset:4px;overflow:visible}.ll-beam path{fill:none;stroke-linecap:round;stroke-linejoin:round}.ll-beam-aura{stroke:#22d3ee;stroke-width:.14px;opacity:.22}.ll-beam-core{stroke:#a5f3fc;stroke-width:.045px}.ll-emitter{fill:#67e8f9;stroke:#0891b2;stroke-width:.07px}.ll-receiver{fill:#3e194c;stroke:#e879f9;stroke-width:.07px}.ll-receiver[data-lit=true]{fill:#f0abfc;stroke:#e879f9;stroke-width:.13px}.ll-port-label{z-index:3;pointer-events:none;color:#67e8f9;background:#07182be6;border-radius:3px;padding:1px 2px;font-size:.43rem;font-weight:800;line-height:1;position:absolute;transform:translate(-50%,-50%)}.ll-target-label{color:#f0abfc}.ll-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px;display:grid}.ll-actions>button{justify-content:center;align-items:center;gap:5px;min-height:50px;padding:8px 4px;font-size:1.2rem;display:flex}.ll-actions span{font-size:.72rem}.ll-hint-note{color:#b9a6da;margin:8px 2px;font-size:.58rem}.ll-status{color:#d6e6f5;min-height:3em;margin:8px 2px;font-size:.72rem;line-height:1.5}.ll-status[data-tone=hint]{color:#fde68a}.ll-status[data-tone=warning]{color:#fda4af}.ll-key{color:#9fb3d2;justify-content:space-between;gap:5px;margin:12px 1px;font-size:.5rem;display:flex}.ll-key span:nth-child(3){color:#fbbf24}.ll-key span:last-child{color:#f0abfc}.ll-lesson{color:#9eaccb;margin:9px 2px;font-size:.64rem;line-height:1.5}.ll-overlay,.ll-picker{z-index:4;text-align:center;background:linear-gradient(#0d1732fa,#191332fa);border:1px solid #5c5988;border-radius:16px;flex-direction:column;justify-content:safe center;align-items:center;gap:12px;padding:18px 12px;display:flex;position:absolute;inset:66px 10px 10px;overflow:auto}.ll-overlay h2{color:#a5f3fc;letter-spacing:-.04em;margin:0;font-size:clamp(2rem,7vw,3rem);line-height:1}.ll-overlay h2 em{color:#f0abfc;font-style:normal;display:block}.ll-overlay>p{max-width:34ch;margin:0;font-size:.8rem;line-height:1.5}.ll-eyebrow{color:#a6b7da;letter-spacing:.14em;font-size:.6rem}.ll-menu-art{justify-content:center;align-items:center;width:100%;max-width:240px;margin:5px 0;display:flex}.ll-menu-art span{color:#e0f2fe;background:#164e63;border:1px solid #38bdf8;border-radius:8px;width:55px;height:55px;font-size:2.4rem;line-height:1.3}.ll-menu-art i{background:#67e8f9;width:25px;height:3px}.ll-menu-art b{color:#fbbf24;font-size:2.4rem;font-weight:400}.ll-menu-art strong{color:#e879f9;font-size:2.4rem;font-weight:400}.ll-how{color:#c8d5e9}.ll-overlay>button,.ll-overlay>a,.ll-picker>button{width:min(100%,280px);min-height:44px;padding:10px;font-size:.85rem;font-weight:700}.laser-game .ll-primary{color:#fff;background:linear-gradient(100deg,#a855f7,#8b2ce9);border-color:#d8b4fe}.ll-overlay>a{color:#c4b5fd;font-size:.72rem;text-decoration:none}.ll-overlay>small{color:#9eafd0;font-size:.58rem}.ll-result-stars{letter-spacing:.15em;color:#fbbf24;font-size:2.2rem!important}.ll-record{color:#fbbf24;font-weight:800}.ll-results{background:#0c182d;border:1px solid #434966;border-radius:12px;grid-template-columns:1fr 1fr;gap:12px;width:min(100%,300px);margin:0;padding:13px;display:grid}.ll-results dt{color:#aebed6;font-size:.5rem}.ll-results dd{margin:3px 0 0;font-size:1.3rem;font-weight:800}.ll-picker{justify-content:flex-start;gap:9px}.ll-picker h2{margin:0;font-size:1.4rem}.ll-picker>p{color:#b7c7df;margin:0 0 5px;font-size:.65rem}.ll-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;display:grid}.ll-choices button{flex-direction:column;align-items:center;gap:5px;min-height:72px;padding:7px 2px;display:flex}.ll-choices strong{font-size:1rem}.ll-choices span{font-size:.5rem;line-height:1.25}.ll-choices small{color:#fbbf24;font-size:.6rem}.ll-choices button[aria-current=true]{background:#1a3c53;border-color:#38bdf8}.ll-effects{z-index:5;pointer-events:none;position:absolute;inset:0;overflow:hidden}.ll-particle{border-radius:1px;width:5px;height:5px;position:absolute;top:50%;left:50%}.laser-game[data-record=true] .ll-overlay{border:2px solid #fbbf24}@media (width<=380px){.laser-game{padding:6px}.ll-toolbar>span{letter-spacing:.04em;font-size:.55rem}.ll-toolbar{gap:3px}.ll-hud dd{font-size:.95rem}.ll-hud dt{font-size:.45rem}.ll-hud{gap:4px}.ll-actions{gap:5px}.ll-overlay,.ll-picker{gap:9px;padding:12px 8px;inset:60px 6px 6px}.ll-overlay>p{font-size:.72rem}}.game-viewport.is-expanded .laser-game{width:100%;max-width:600px;min-height:100%;padding:calc(8px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left));border:0;border-radius:0;flex-direction:column;justify-content:flex-start;display:flex}.game-viewport.is-expanded .ll-toolbar{flex-shrink:0}.game-viewport.is-expanded .ll-overlay,.game-viewport.is-expanded .ll-picker{top:64px}.game-viewport.is-expanded .ll-board{max-width:460px;margin:auto}.game-viewport.is-expanded .ll-lesson{margin-bottom:0}@media (height<=700px) and (orientation:portrait){.game-viewport.is-expanded .ll-toolbar{margin-bottom:5px}.game-viewport.is-expanded .ll-hud{margin-bottom:7px}.game-viewport.is-expanded .ll-hud>div{padding:5px}.game-viewport.is-expanded .ll-caption{padding-bottom:5px}.game-viewport.is-expanded .ll-actions{margin-top:8px}.game-viewport.is-expanded .ll-actions>button{min-height:44px;padding:5px}.game-viewport.is-expanded .ll-key,.game-viewport.is-expanded .ll-lesson{display:none}.game-viewport.is-expanded .ll-status{min-height:3em;font-size:.65rem}.game-viewport.is-expanded .ll-hint-note{margin:5px 0;font-size:.53rem}.game-viewport.is-expanded .ll-overlay{gap:8px;padding:9px}.game-viewport.is-expanded .ll-menu-art{display:none}.game-viewport.is-expanded .ll-overlay h2{font-size:1.8rem}.game-viewport.is-expanded .ll-overlay>p{font-size:.7rem}.game-viewport.is-expanded .ll-results{gap:8px;padding:8px}.game-viewport.is-expanded .ll-result-stars{font-size:1.8rem!important}.game-viewport.is-expanded .ll-overlay>small{display:none}}@media (orientation:landscape) and (height<=600px){.game-viewport.is-expanded .laser-game{justify-content:flex-start;max-width:900px}.game-viewport.is-expanded .ll-toolbar{margin-bottom:5px}.game-viewport.is-expanded .ll-hud{max-width:440px;margin-bottom:5px}.game-viewport.is-expanded .ll-hud>div{padding:4px}.game-viewport.is-expanded .ll-hud dd{font-size:.9rem}.game-viewport.is-expanded .ll-layout{align-items:flex-start;gap:16px;display:flex}.game-viewport.is-expanded .ll-puzzle{width:42%;min-width:272px;max-width:340px}.game-viewport.is-expanded .ll-panel{flex:1;min-width:0}.game-viewport.is-expanded .ll-actions{margin-top:24px}.game-viewport.is-expanded .ll-lesson{display:none}.game-viewport.is-expanded .ll-overlay{grid-template-rows:repeat(6,auto);grid-template-columns:1fr 1fr;align-content:center;justify-items:center;gap:6px 16px;padding:10px;display:grid;top:60px}.game-viewport.is-expanded .ll-eyebrow,.game-viewport.is-expanded .ll-menu-art,.game-viewport.is-expanded .ll-overlay>small{display:none}.game-viewport.is-expanded .ll-overlay h2{grid-area:1/1;font-size:1.8rem}.game-viewport.is-expanded [data-ll-detail]{grid-area:2/1;font-size:.65rem}.game-viewport.is-expanded .ll-how{grid-area:3/1;font-size:.65rem}.game-viewport.is-expanded .ll-result-stars{grid-area:1/2;font-size:1.5rem!important}.game-viewport.is-expanded .ll-results{grid-area:2/2/4;gap:6px;padding:6px}.game-viewport.is-expanded .ll-record{grid-area:4/1/auto/-1}.game-viewport.is-expanded [data-ll-primary]{grid-area:5/1}.game-viewport.is-expanded [data-ll-secondary]{grid-area:5/2}.game-viewport.is-expanded .ll-overlay>a{grid-area:6/1/auto/-1;padding:5px}.game-viewport.is-expanded .ll-picker{top:60px}}@media (prefers-reduced-motion:reduce){.laser-game *{transition:none!important;animation:none!important}}.game-viewport.is-expanded .laser-game{justify-content:flex-start}.game-viewport.is-expanded .ll-overlay,.game-viewport.is-expanded .ll-picker{top:calc(64px + env(safe-area-inset-top));bottom:calc(10px + env(safe-area-inset-bottom))}@media (orientation:landscape) and (height<=600px){.game-viewport.is-expanded .ll-overlay,.game-viewport.is-expanded .ll-picker{top:calc(60px + env(safe-area-inset-top))}.game-viewport.is-expanded .laser-game{padding:calc(4px + env(safe-area-inset-top)) calc(4px + env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) calc(4px + env(safe-area-inset-left));grid-template-rows:44px auto minmax(0,1fr);grid-template-columns:minmax(272px,1fr) minmax(180px,1fr);gap:6px 16px;height:100%;display:grid}.game-viewport.is-expanded .ll-layout{display:contents}.game-viewport.is-expanded .ll-toolbar{grid-area:1/2;justify-content:flex-end;margin:0}.game-viewport.is-expanded .ll-toolbar>span{display:none}.game-viewport.is-expanded .ll-hud{grid-area:2/2;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.game-viewport.is-expanded .ll-hud dd{font-size:.8rem}.game-viewport.is-expanded .ll-hud dt{letter-spacing:0;font-size:.45rem}.game-viewport.is-expanded .ll-puzzle{grid-area:1/1/4;place-self:center;width:clamp(272px,100dvh - 60px,340px);min-width:272px;max-width:100%}.game-viewport.is-expanded .ll-caption{padding-bottom:5px;font-size:.55rem;line-height:1.2}.game-viewport.is-expanded .ll-panel{grid-area:3/2;align-self:start}.game-viewport.is-expanded .ll-actions{margin-top:4px}.game-viewport.is-expanded .ll-actions>button{min-height:44px;padding:4px}.game-viewport.is-expanded .ll-actions span{font-size:.65rem}.game-viewport.is-expanded .ll-key{display:none}.game-viewport.is-expanded .ll-status{font-size:.64rem;line-height:1.4}.game-viewport.is-expanded .ll-hint-note{font-size:.53rem}}
