.light-game{position:relative;width:min(100%,540px);margin:0 auto;color:#51426c}
.light-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}
.light-hud>div{min-width:0;padding:8px 4px;border:2px solid #c5b0d7;border-radius:13px;background:#f8f0ff;text-align:center;box-shadow:0 3px 0 #ded0e9}
.light-hud small{display:block;color:#79688c;font-size:11px;font-weight:800}
.light-hud strong{display:block;font-size:17px;font-weight:900;white-space:nowrap;font-variant-numeric:tabular-nums}
.light-stage{padding:10px;border:4px solid #79668d;border-radius:20px;background:radial-gradient(circle at 50% 10%,#53446f,#251e3c 75%);box-shadow:0 5px 0 #b09fc1}
.light-stage-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 4px 8px;color:#f4e6ff;font-size:12px}
.light-stage-head strong{font-size:15px}
.light-board{position:relative;display:grid;grid-template-columns:repeat(var(--light-cols),minmax(0,1fr));grid-template-rows:repeat(var(--light-rows),minmax(0,1fr));gap:2px;width:min(100%,400px);aspect-ratio:var(--light-cols)/var(--light-rows);margin:0 auto;padding:4px;border:2px solid #8d77a3;border-radius:12px;background:#332c4d;overflow:hidden}
.light-cell{position:relative;display:grid;place-items:center;min-width:0;min-height:0;padding:0;border:1px solid #55476b;border-radius:4px;background:#39314f;color:#fff1af;font-family:inherit;font-size:clamp(16px,5vw,25px);font-weight:900;line-height:1;touch-action:manipulation}
.light-cell.is-wall{border-color:#272136;background:repeating-linear-gradient(45deg,#211b30 0 7px,#2a2340 7px 14px)}
.light-cell.is-source{background:#554363}
.light-cell.is-target{color:#d6cadc;font-size:clamp(19px,6vw,29px)}
.light-cell.is-target.is-lit{border-color:#ffe68a;background:#75663f;color:#fff3a0;text-shadow:0 0 12px #ffdf61;box-shadow:inset 0 0 10px #ffe58d9c}
.light-cell.is-splitter{background:#5d477d}
.light-cell.is-mirror{border-color:#92a3dc;background:#4b577f;color:#e3f5ff;cursor:pointer;box-shadow:inset 0 0 0 1px #afd0e577}
.light-cell.is-mirror:not(:disabled):hover{background:#6778aa}
.light-cell.is-mirror span{font-size:1.15em;text-shadow:0 0 6px #c4eeff}
.light-cell.is-mirror small{position:absolute;right:1px;bottom:0;color:#ffedab;font-size:10px;line-height:1}
.light-cell.is-hint{outline:3px solid #ffb75c;outline-offset:-4px}
.light-rays{position:absolute;inset:0;width:100%;height:100%;z-index:2;overflow:visible;pointer-events:none}
.light-rays line{stroke:#ffe679;stroke-width:.11;stroke-linecap:round;filter:drop-shadow(0 0 3px #ffdd67) drop-shadow(0 0 5px #ffc350)}
.light-mirror-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:11px 0}
.light-mirror-button{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:43px;padding:4px 6px;border:2px solid #a1a5cc;border-radius:10px;background:#edf0ff;color:#424e7a;font-family:inherit;font-size:13px;font-weight:900;box-shadow:0 3px 0 #cdd2e9;touch-action:manipulation}
.light-mirror-button strong{font-size:22px;line-height:1}
.light-mirror-button.is-hint{border-color:#e9a254;background:#fff1ce}
.light-mirror-button:disabled{opacity:.6}
.light-mirror-button:not(:disabled):active{transform:translateY(2px);box-shadow:0 1px 0 #cdd2e9}
.light-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:5px}
.light-tools .button{min-width:0;min-height:40px;padding:5px 3px;font-size:13px}
.light-game .toy-status{min-height:2.5em;margin:8px 0;text-align:center}
.light-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.light-controls .button{min-width:0;padding:7px 3px;font-size:13px;white-space:nowrap}
.light-overlay{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:16px;border-radius:18px;background:#241a42b8;backdrop-filter:blur(2px)}
.light-overlay[hidden]{display:none}
.light-dialog{width:min(100%,345px);padding:22px 18px;border:3px solid #a892c0;border-radius:19px;background:#fffaf1;box-shadow:0 8px 0 #2117338c;text-align:center}
.light-dialog h2{margin:0 0 10px;color:#68517e;font-size:24px}
.light-dialog p{margin:0 0 17px;color:#6c5e79;font-size:15px;line-height:1.6}
.light-dialog .button{min-width:145px}
.light-game button:focus-visible{outline:3px solid #ffb057;outline-offset:2px}
@media(max-width:480px){.toy-page:has(.light-game) .toy-card{padding:14px 11px}.toy-page:has(.light-game) .toy-card h1{font-size:22px}.toy-page:has(.light-game) .toy-instruction{margin:5px 0 10px;line-height:1.4}.light-hud{gap:5px}.light-hud strong{font-size:15px}.light-stage{padding:7px}.light-board{gap:1px;padding:3px}.light-cell{font-size:clamp(13px,5vw,21px)}.light-cell.is-mirror small{font-size:8px}}
