:root{--bg: #f6f3ec;--surface: #fffdf8;--surface-2: #efeadf;--text: #1d2340;--muted: #646a82;--line: #d8d1c2;--accent: #d9822b;--accent-strong: #b8641a;--accent-contrast: #ffffff;--accent-soft: #fbe6cf;--grid: #b9b2a3;--edge: #1d2340;--mark: #4b5270;--wrong: #c8372d;--ok: #2e8b57;--hint-area: rgb(255 214 120 / .38);--lantern-body: #e94f37;--lantern-rib: #b3301c;--lantern-cap: #2b2f45;--lantern-glow: #ffd27a;--shadow: 0 1px 2px rgb(29 35 64 / .06), 0 6px 18px rgb(29 35 64 / .08);--radius: 16px;--r0: #f4b9b2;--r1: #f8cf9a;--r2: #f2e49a;--r3: #c5e3a6;--r4: #9fd8c7;--r5: #a9cbf0;--r6: #c4bcf0;--r7: #eab8de;--r8: #d6b892;--r9: #cfcac4;--r10: #d3d68f;--r11: #7d93d6;--tint: 0%;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #12152a;--surface: #1b1f38;--surface-2: #242947;--text: #ecebf5;--muted: #9da2bd;--line: #333a5e;--accent: #f0a04b;--accent-strong: #ffb766;--accent-contrast: #1a1205;--accent-soft: #3a2c1c;--grid: #3b4266;--edge: #0a0c18;--mark: #c9cce0;--wrong: #ff7b70;--ok: #6fd39b;--hint-area: rgb(255 200 90 / .22);--lantern-cap: #11131f;--shadow: none;--tint: 30%;color-scheme:dark}}:root[data-theme=dark]{--bg: #12152a;--surface: #1b1f38;--surface-2: #242947;--text: #ecebf5;--muted: #9da2bd;--line: #333a5e;--accent: #f0a04b;--accent-strong: #ffb766;--accent-contrast: #1a1205;--accent-soft: #3a2c1c;--grid: #3b4266;--edge: #0a0c18;--mark: #c9cce0;--wrong: #ff7b70;--ok: #6fd39b;--hint-area: rgb(255 200 90 / .22);--lantern-cap: #11131f;--shadow: none;--tint: 30%;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}button,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}h1,h2,p{margin:0}.screen{max-width:560px;margin:0 auto;min-height:100dvh;padding:max(12px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.muted{color:var(--muted)}.btn{border:0;border-radius:999px;padding:11px 20px;background:var(--accent);color:var(--accent-contrast);font-weight:650}.btn:hover:not(:disabled){background:var(--accent-strong)}.btn.ghost{background:var(--surface-2);color:var(--text)}.btn.wide{width:100%}.btn.danger{color:var(--wrong);align-self:flex-start;margin-top:8px}.icon-btn{width:42px;height:42px;border:0;border-radius:12px;background:transparent;display:grid;place-items:center}.icon-btn:hover{background:var(--surface-2)}.icon-btn svg{width:24px;height:24px}.home-head{display:flex;align-items:center;justify-content:space-between;padding-top:8px}.brand{display:flex;align-items:center;gap:10px}.brand h1{font-size:30px;letter-spacing:-.02em}.brand-lantern{width:40px;height:40px;filter:drop-shadow(0 0 8px rgb(255 190 90 / .55))}.tagline{color:var(--muted);font-size:15px;line-height:1.4;margin-bottom:4px}.card{display:flex;flex-direction:column;gap:4px;text-align:left;padding:16px 18px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}.card.primary{background:linear-gradient(135deg,#2a3160,#1d2340);color:#fff;border:0;position:relative;overflow:hidden}.card.primary:after{content:"";position:absolute;right:-30px;top:-30px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgb(255 200 110 / .55),transparent 70%)}.card-kicker{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.card.primary .card-kicker{color:#ffc884}.card-title{font-size:22px;font-weight:750}.card-sub{color:var(--muted);font-size:14px}.card.primary .card-sub{color:#c9cbe0}.card.free{gap:10px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--line);background:var(--surface-2);border-radius:999px;padding:6px 12px;min-width:40px;font-size:14px}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:650}.stats-line{text-align:center;color:var(--muted);font-size:14px;margin-top:4px}.busy{position:fixed;inset:auto 0 24px;margin:0 auto;width:fit-content;padding:10px 18px;border-radius:999px;background:var(--text);color:var(--bg);font-size:14px}.topbar{display:grid;grid-template-columns:42px 1fr 64px;align-items:center;gap:8px}.title{text-align:center}.title h1{font-size:19px}.title p{color:var(--muted);font-size:13px}.timer{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-size:15px}.status-row{display:flex;justify-content:space-between;align-items:center;min-height:28px}.lives{display:flex;gap:4px;font-size:13px}.life{width:22px;height:22px;color:var(--wrong)}.life.lost{color:var(--grid)}.placed{display:flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums;color:var(--muted)}.mini-lantern{width:20px;height:20px}.board{--gap: 1px;display:grid;gap:var(--gap);width:min(100%,calc(100dvh - 330px),540px);min-width:min(100%,280px);aspect-ratio:1;margin:0 auto;padding:3px;background:var(--grid);border:3px solid var(--edge);border-radius:10px;touch-action:none;user-select:none;-webkit-user-select:none;overflow:hidden}.board.disabled{pointer-events:none}.cell{--er: 0px;--eb: 0px;--el: 0px;--et: 0px;--w: 2px;position:relative;display:grid;place-items:center;background:color-mix(in oklab,var(--rc) calc(100% - var(--tint)),#000);box-shadow:inset calc(-1 * var(--er)) 0 0 var(--edge),inset 0 calc(-1 * var(--eb)) 0 var(--edge),inset var(--el) 0 0 var(--edge),inset 0 var(--et) 0 var(--edge)}.edge-r{--er: var(--w)}.edge-b{--eb: var(--w)}.edge-l{--el: var(--w)}.edge-t{--et: var(--w)}.reg-0{--rc: var(--r0)}.reg-1{--rc: var(--r1)}.reg-2{--rc: var(--r2)}.reg-3{--rc: var(--r3)}.reg-4{--rc: var(--r4)}.reg-5{--rc: var(--r5)}.reg-6{--rc: var(--r6)}.reg-7{--rc: var(--r7)}.reg-8{--rc: var(--r8)}.reg-9{--rc: var(--r9)}.reg-10{--rc: var(--r10)}.reg-11{--rc: var(--r11)}.cell[class*=pat-]{--p: rgb(29 35 64 / .16);background-size:10px 10px}.pat-0{background-image:radial-gradient(var(--p) 1.6px,transparent 1.8px)}.pat-1{background-image:repeating-linear-gradient(45deg,var(--p) 0 2px,transparent 2px 7px)}.pat-2{background-image:repeating-linear-gradient(0deg,var(--p) 0 2px,transparent 2px 7px)}.pat-3{background-image:repeating-linear-gradient(90deg,var(--p) 0 2px,transparent 2px 7px)}.pat-4{background-image:repeating-linear-gradient(-45deg,var(--p) 0 2px,transparent 2px 7px)}.pat-5{background-image:linear-gradient(var(--p) 2px,transparent 2px),linear-gradient(90deg,var(--p) 2px,transparent 2px)}.pat-6{background-image:repeating-linear-gradient(45deg,var(--p) 0 1px,transparent 1px 5px),repeating-linear-gradient(-45deg,var(--p) 0 1px,transparent 1px 5px)}.pat-7{background-image:radial-gradient(circle at 50% 50%,transparent 2.5px,var(--p) 3px,transparent 3.6px)}.pat-8{background-image:repeating-linear-gradient(0deg,var(--p) 0 4px,transparent 4px 10px)}.pat-9{background-image:conic-gradient(var(--p) 25%,transparent 0 50%,var(--p) 0 75%,transparent 0)}.pat-10{background-image:repeating-linear-gradient(90deg,var(--p) 0 4px,transparent 4px 10px)}.pat-11{background-image:radial-gradient(var(--p) 3px,transparent 3.4px);background-size:12px 12px}.cell[class*=pat-]{background-color:color-mix(in oklab,var(--rc) calc(100% - var(--tint)),#000)}.mark{position:relative;width:34%;height:34%}.mark:before,.mark:after{content:"";position:absolute;left:50%;top:0;width:2px;height:100%;border-radius:2px;background:var(--mark);opacity:.75}.mark:before{transform:translate(-50%) rotate(45deg)}.mark:after{transform:translate(-50%) rotate(-45deg)}.lantern{width:78%;height:78%;filter:drop-shadow(0 0 5px rgb(255 190 90 / .75));animation:pop .22s ease-out}.lantern.conflict{--lantern-body: var(--wrong);filter:drop-shadow(0 0 4px var(--wrong));animation:shake .3s}.lantern.ghost{position:absolute;--lantern-body: var(--wrong);--lantern-glow: #ffb0a8;animation:wrong .9s ease-out forwards}@keyframes pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-12%)}75%{transform:translate(12%)}}@keyframes wrong{0%{transform:scale(.5);opacity:0}15%{transform:scale(1.05) translate(-8%);opacity:1}30%{transform:translate(8%)}45%{transform:translate(-6%)}60%{transform:translate(0);opacity:1}to{transform:translateY(-20%);opacity:0}}.cell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.hl-area:after{background:var(--hint-area)}.hl-place:after{box-shadow:inset 0 0 0 3px var(--ok);background:#2e8b5733;animation:pulse 1.2s ease-in-out infinite}.hl-elim:after{background:repeating-linear-gradient(45deg,rgb(200 55 45 / .28) 0 3px,transparent 3px 7px)}.hl-cause:after{box-shadow:inset 0 0 0 3px var(--accent)}.hl-wrong:after{box-shadow:inset 0 0 0 3px var(--wrong);animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}.hint-area{min-height:92px;display:flex;flex-direction:column;justify-content:center}.help-text{text-align:center;color:var(--muted);font-size:14px}.hint-card{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow);font-size:15px;line-height:1.4}.hint-wrong-lantern,.hint-wrong-mark{border-left-color:var(--wrong)}.hint-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.hint-actions .btn{padding:8px 16px}.toolbar{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:auto}.tool{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 0;border-radius:14px}.tool-icon{width:52px;height:52px;border-radius:50%;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;box-shadow:var(--shadow)}.tool.active .tool-icon{background:var(--accent-soft);border-color:var(--accent)}.tool-icon svg{width:24px;height:24px}.tool-icon .tool-lantern{width:30px;height:30px}.tool-label{font-size:12px;color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c1880;display:grid;place-items:center;padding:16px;animation:fade .2s}.modal{width:min(100%,380px);background:var(--surface);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:0 20px 60px #0000004d}.modal h2{font-size:24px}.modal-actions{display:flex;gap:10px;justify-content:center}.result{display:grid;grid-template-columns:repeat(3,1fr);margin:0}.result dt{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.result dd{margin:2px 0 0;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.win-glow{display:flex;justify-content:center;gap:18px;height:64px}.float-lantern{width:44px;height:44px;filter:drop-shadow(0 0 10px rgb(255 190 90 / .9));animation:float 2.4s ease-in-out infinite}.float-lantern.f1{animation-delay:.4s;margin-top:-10px}.float-lantern.f2{animation-delay:.8s}@keyframes float{50%{transform:translateY(-8px)}}@keyframes fade{0%{opacity:0}}.setting{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.setting span{display:flex;flex-direction:column;gap:2px}.setting small{color:var(--muted);font-size:13px;line-height:1.35}.setting input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent);flex:none}.setting select{padding:6px 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2)}.rules{padding:4px 4px 0}.rules h2{font-size:17px;margin-bottom:6px}.rules ul{margin:0;padding-left:20px;color:var(--muted);line-height:1.5;font-size:15px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}.account .btn{flex:none;padding:9px 16px}.sync-line{margin-top:4px}.error-text{color:var(--wrong)!important}
