:root{--lo-panel-1: #d7dee4;--lo-panel-2: #b9c4cd;--lo-frame: rgba(70, 92, 108, .35);--lo-panel-shadow: rgba(60, 78, 92, .35);--lo-vignette: rgba(30, 44, 54, .14);--lo-off-1: #aebac3;--lo-off-2: #8092a0;--lo-off-3: #6d7f8d;--lo-off-inset: rgba(35, 50, 62, .45);--lo-on-core: #ecfdff;--lo-on-mid: #1cc7e6;--lo-on-edge: #069cc2;--lo-glow-1: rgba(28, 199, 230, .55);--lo-glow-2: rgba(28, 199, 230, .3);--lo-glow-3: rgba(28, 199, 230, .12);--lo-gloss: rgba(255, 255, 255, .55);--lo-cursor: #0a8fb0;--lo-ripple: rgba(255, 255, 255, .75);--lo-flash: rgba(28, 199, 230, .42);--lo-solve: #0a90b4}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--lo-panel-1: #0e1a22;--lo-panel-2: #05090d;--lo-frame: rgba(56, 214, 255, .16);--lo-panel-shadow: rgba(0, 0, 0, .6);--lo-vignette: rgba(0, 0, 0, .55);--lo-off-1: #1d2f39;--lo-off-2: #0e1b22;--lo-off-3: #0a151b;--lo-off-inset: rgba(0, 0, 0, .72);--lo-on-core: #e2fcff;--lo-on-mid: #37e3ff;--lo-on-edge: #10afe0;--lo-glow-1: rgba(55, 227, 255, .85);--lo-glow-2: rgba(55, 227, 255, .5);--lo-glow-3: rgba(55, 227, 255, .26);--lo-gloss: rgba(210, 248, 255, .35);--lo-cursor: #8af1ff;--lo-ripple: rgba(190, 246, 255, .9);--lo-flash: rgba(55, 227, 255, .55);--lo-solve: #7fefff}}:root[data-theme=dark]{--lo-panel-1: #0e1a22;--lo-panel-2: #05090d;--lo-frame: rgba(56, 214, 255, .16);--lo-panel-shadow: rgba(0, 0, 0, .6);--lo-vignette: rgba(0, 0, 0, .55);--lo-off-1: #1d2f39;--lo-off-2: #0e1b22;--lo-off-3: #0a151b;--lo-off-inset: rgba(0, 0, 0, .72);--lo-on-core: #e2fcff;--lo-on-mid: #37e3ff;--lo-on-edge: #10afe0;--lo-glow-1: rgba(55, 227, 255, .85);--lo-glow-2: rgba(55, 227, 255, .5);--lo-glow-3: rgba(55, 227, 255, .26);--lo-gloss: rgba(210, 248, 255, .35);--lo-cursor: #8af1ff;--lo-ripple: rgba(190, 246, 255, .9);--lo-flash: rgba(55, 227, 255, .55);--lo-solve: #7fefff}*{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;touch-action:manipulation;overflow-x:hidden}#app{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px}.game{width:min(94vw,420px);display:flex;flex-direction:column;gap:14px}.crumb{font-size:14px}.crumb a{color:var(--accent);text-decoration:none;font-weight:700}.crumb a:hover{text-decoration:underline}.topbar{display:flex;align-items:center;justify-content:space-between}.title{font-size:clamp(28px,8vw,44px);font-weight:800;line-height:1;letter-spacing:-1px;text-shadow:0 0 18px var(--lo-glow-3)}.stats{display:flex;gap:8px}.stat{flex:1;background:var(--board-bg);color:var(--accent-text);border-radius:6px;padding:6px 10px;text-align:center}.stat .label{font-size:10px;text-transform:uppercase;letter-spacing:1px;opacity:.85;font-weight:700}.stat .value{font-size:22px;font-weight:800;line-height:1.1}.sizes{display:flex;gap:8px}.size-btn{flex:1;min-height:44px;background:var(--surface);color:var(--text);border:2px solid var(--line);border-radius:6px;padding:10px;font-size:15px;font-weight:700;cursor:pointer;transition:border-color .12s ease,color .12s ease,box-shadow .16s ease,filter .12s ease}.size-btn:hover{filter:brightness(1.04)}.size-btn.active{border-color:var(--lo-on-mid);color:var(--lo-on-edge);box-shadow:0 0 12px -2px var(--lo-glow-2),inset 0 0 10px -4px var(--lo-glow-2)}.status{font-size:16px;font-weight:700;text-align:center;min-height:22px}.board{position:relative;width:min(100%,66dvh);margin:0 auto}.grid{display:grid;gap:5%;padding:5.5%;border-radius:16px;background:radial-gradient(120% 90% at 50% 18%,var(--lo-panel-1),var(--lo-panel-2) 78%),var(--lo-panel-2);border:1px solid var(--lo-frame);box-shadow:0 18px 44px -18px var(--lo-panel-shadow),inset 0 1px #ffffff0f,inset 0 0 60px 8px var(--lo-vignette)}.light{position:relative;aspect-ratio:1 / 1;border:none;border-radius:22%;cursor:pointer;overflow:hidden;background:radial-gradient(circle at 36% 28%,var(--lo-off-1),var(--lo-off-2) 58%,var(--lo-off-3));box-shadow:inset 0 3px 7px var(--lo-off-inset),inset 0 -2px 4px #ffffff0f,0 1px #ffffff0a;transition:background .14s ease,box-shadow .2s ease,transform 90ms ease}.light:before{content:"";position:absolute;left:8%;right:8%;top:6%;height:42%;border-radius:999px;background:linear-gradient(180deg,var(--lo-gloss),transparent);opacity:.7;pointer-events:none;transition:opacity .16s ease}.light:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(circle,var(--lo-ripple) 0%,transparent 62%)}.light.on{background:radial-gradient(circle at 38% 30%,var(--lo-on-core),var(--lo-on-mid) 46%,var(--lo-on-edge) 100%);box-shadow:0 0 10px 1px var(--lo-glow-1),0 0 22px 4px var(--lo-glow-2),0 0 42px 10px var(--lo-glow-3),inset 0 1px 4px #ffffffa6}.light.on:before{opacity:.9}.light:hover{filter:brightness(1.05)}.light:active{transform:scale(.94)}.light.cursor{outline:3px solid var(--lo-cursor);outline-offset:-1px}.light.cursor:before{opacity:.85}.light.flip{animation:lo-pop .26s ease}.light.flip:after{animation:lo-ripple .34s ease-out}@keyframes lo-pop{0%{transform:scale(1)}38%{transform:scale(1.13)}to{transform:scale(1)}}@keyframes lo-ripple{0%{opacity:.6;transform:scale(.25)}to{opacity:0;transform:scale(1.6)}}.overlay{position:absolute;inset:0;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:20px;background:var(--overlay-bg);z-index:10;opacity:0;pointer-events:none;transition:opacity .22s ease}.overlay.show{opacity:1;pointer-events:auto;animation:lo-power-down .72s ease-out}.overlay .msg{font-size:clamp(28px,9vw,44px);font-weight:800;color:var(--lo-solve);text-shadow:0 0 18px var(--lo-glow-1),0 0 40px var(--lo-glow-2)}.overlay.show .msg{animation:lo-msg-pop .72s cubic-bezier(.2,.9,.25,1)}.overlay .sub{font-size:15px;font-weight:700;opacity:.9}@keyframes lo-power-down{0%{background:var(--lo-flash)}22%{background:var(--lo-flash)}to{background:var(--overlay-bg)}}@keyframes lo-msg-pop{0%{transform:scale(.6);opacity:0}45%{transform:scale(1.12);opacity:1}to{transform:scale(1);opacity:1}}.controls{display:flex;align-items:center;justify-content:space-between;gap:10px}.how{font-size:13px;opacity:.85;flex:1}.how b{font-weight:700}.btn{background:var(--accent);color:var(--accent-text);border:none;border-radius:6px;padding:10px 16px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;transition:filter .12s ease}.btn:hover{filter:brightness(1.05)}.btn:active{filter:brightness(.95)}@media(prefers-reduced-motion:reduce){.light.flip,.light.flip:after,.overlay.show,.overlay.show .msg{animation:none}}
