:root{--bg: #f7f1ec;--surface: #ffffff;--surface-2: #f1e9e3;--text: #6b4a45;--muted: #a38c86;--line: #eadfd8;--accent: #e0973f;--accent-strong: #c97f2a;--accent-contrast: #ffffff;--accent-soft: #fbe8d2;--card: #ffffff;--mark: #6b4a45;--wrong: #d2463a;--ok: #3f9b62;--hint-area: rgb(255 255 255 / .42);--fur: #8b5a3c;--fur-dark: #5e3a26;--face: #f4d3b0;--eye: #2b1b14;--cheek: #f2a5a0;--shadow: 0 2px 4px rgb(107 74 69 / .06), 0 8px 24px rgb(107 74 69 / .08);--radius: 22px;--r0: #e2be5c;--r1: #efb5cf;--r2: #82b8e4;--r3: #b6da9b;--r4: #f2a08c;--r5: #b8a5e6;--r6: #84d0c4;--r7: #f7c99a;--r8: #d6c1a3;--r9: #b4bccb;--r10: #cdcb78;--r11: #e59aab;--tint: 0%;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #1d1716;--surface: #2a2220;--surface-2: #362c29;--text: #f2e6e1;--muted: #b7a29c;--line: #433733;--accent: #f0a04b;--accent-strong: #ffb766;--accent-contrast: #24170a;--accent-soft: #45321f;--card: #2a2220;--mark: #2b2220;--wrong: #ff7b70;--ok: #6fd39b;--hint-area: rgb(255 255 255 / .25);--shadow: none;--tint: 14%;color-scheme:dark}}:root[data-theme=dark]{--bg: #1d1716;--surface: #2a2220;--surface-2: #362c29;--text: #f2e6e1;--muted: #b7a29c;--line: #433733;--accent: #f0a04b;--accent-strong: #ffb766;--accent-contrast: #24170a;--accent-soft: #45321f;--card: #2a2220;--mark: #2b2220;--wrong: #ff7b70;--ok: #6fd39b;--hint-area: rgb(255 255 255 / .25);--shadow: none;--tint: 14%;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:clamp(20px,6.4vw,30px);letter-spacing:-.02em;white-space:nowrap}.brand-lantern{width:44px;height:44px;filter:drop-shadow(0 2px 3px rgb(94 58 38 / .25))}.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,#a8724f,#7a4a32);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 210 150 / .45),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:#f1dccd}.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;z-index:40;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(--line)}.placed{display:flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums;color:var(--muted)}.mini-lantern{width:20px;height:20px}.board{position:relative;z-index:1;--gap: clamp(3px, calc(34px / var(--n)), 9px);display:grid;gap:var(--gap);width:min(100%,calc(100dvh - 360px),540px);min-width:min(100%,280px);aspect-ratio:1;margin:0 auto;padding:calc(var(--gap) * 2);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);touch-action:none;user-select:none;-webkit-user-select:none}.board.disabled{pointer-events:none}.cell{position:relative;display:grid;place-items:center;border-radius:clamp(3px,calc(60px / var(--n)),10px);background:color-mix(in oklab,var(--rc) calc(100% - var(--tint)),#000);transition:filter .12s}.cell:active{filter:brightness(.96)}.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(70 45 40 / .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:62%;height:62%;opacity:.82;animation:mark-in .14s ease-out}.mark:before,.mark:after{content:"";position:absolute;left:50%;top:0;width:clamp(4px,calc(50px / var(--n)),10px);height:100%;border-radius:99px;background:var(--mark)}.mark:before{transform:translate(-50%) rotate(45deg)}.mark:after{transform:translate(-50%) rotate(-45deg)}@keyframes mark-in{0%{transform:scale(.5)}}.lantern{width:82%;height:82%;filter:drop-shadow(0 2px 2px rgb(60 35 20 / .28));animation:pop .24s cubic-bezier(.3,1.6,.6,1)}.lantern.conflict{--fur: var(--wrong);--fur-dark: #7a1d16;animation:shake .3s}.lantern.ghost{position:absolute;--fur: var(--wrong);--fur-dark: #7a1d16;--face: #ffd9d4;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;border-radius:inherit;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;z-index:50;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:48px;height:48px;filter:drop-shadow(0 3px 4px rgb(94 58 38 / .3));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}.tray{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin:0 auto -14px;padding:8px 14px 12px;position:relative;z-index:0;background:var(--card);border-radius:18px 18px 0 0;max-width:100%}.chip-region{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:color-mix(in oklab,var(--rc) calc(100% - var(--tint)),#000);opacity:.55;transition:opacity .2s,transform .2s}.chip-region.lit{opacity:1;transform:scale(1.08)}.chip-region .lantern{width:82%;height:82%;animation:none}
