:root{color-scheme:dark;--bg:#0e0b12;--panel:#1a131e;--tile:#2c2031;--tile-hover:#392a40;--text:#f5edf4;--muted:#b9a9ba;--line:#ffffff15;--accent:#f4517d;--accent-text:#230913;--shadow:#0006;--selected:#f4517d;--glow:#ae1b4930;--yellow:#eac96f;--green:#9bc58b;--blue:#91b2ee;--purple:#bc9be2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
:root[data-theme=light]{color-scheme:light;--bg:#f6f1f3;--panel:#fffafc;--tile:#eae1e8;--tile-hover:#e0d1dc;--text:#2c1d2b;--muted:#796476;--line:#5121401c;--accent:#bd2855;--accent-text:#fff7fb;--shadow:#50253a16;--selected:#bd2855;--glow:#ed9fb22b}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:radial-gradient(ellipse at 10% 0,var(--glow),transparent 65%),var(--bg);color:var(--text);transition:background-color .25s,color .25s}body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.22;background-image:radial-gradient(#e7406b44 .6px,transparent .8px);background-size:3px 3px;mask-image:linear-gradient(145deg,#000,transparent 65%)}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:0}button:disabled{opacity:.35;cursor:default}button:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:not(:disabled):active{transform:translateY(2px) scale(.97);box-shadow:none}.app{position:relative;max-width:860px;height:100dvh;max-height:100dvh;margin:auto;display:flex;flex-direction:column;padding:max(10px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));gap:10px}.toolbar{display:flex;align-items:center;justify-content:space-between;flex:none;min-height:42px}.brand{font-weight:700;letter-spacing:-.8px;font-size:21px}.brand>span{color:var(--accent);font-size:29px;vertical-align:-2px;margin-right:7px}.tools{display:flex;gap:7px;align-items:center}.icon-button{width:34px;height:34px;flex:none;background:transparent;border:1px solid var(--line);border-radius:50%;color:var(--text);display:grid;place-content:center;font-size:19px;transition:transform .12s,background .15s}.icon-button:hover{background:var(--tile)}.presence{color:var(--muted);font-size:10px;margin-right:5px;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.presence.connected::before{content:"";display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%;background:#7bb68a}.game{min-height:0;flex:1;display:flex;flex-direction:column;padding:clamp(12px,2.4vh,24px);background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 50px var(--shadow);overflow:hidden}.heading{display:flex;align-items:center;justify-content:space-between;flex:none;gap:10px}h1{font-size:clamp(21px,3.3vh,31px);font-weight:720;letter-spacing:-1px;margin:0;line-height:1.1}#edition{color:var(--muted);font:10px/1.4 ui-monospace,monospace;margin:5px 0 0}.quiet{color:var(--accent);background:transparent;font-size:12px;padding:8px}.rules{font-size:12px;line-height:1.45;color:var(--muted);margin:clamp(8px,1.8vh,16px) 0;flex:none}.board{min-height:0;flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:8px;perspective:900px}.tile{min-width:0;min-height:0;padding:5px 7px;border-radius:10px;background:var(--tile);color:var(--text);font-size:clamp(11px,1.8vw,16px);font-weight:700;letter-spacing:.2px;line-height:1.16;border:1px solid var(--line);box-shadow:0 3px 0 var(--shadow);transition:transform .12s;overflow-wrap:anywhere;user-select:none}.tile:hover:not(:disabled){background:var(--tile-hover)}.tile[aria-pressed=true]{background:var(--selected);color:var(--accent-text);border-color:transparent;box-shadow:0 3px 0 #8b224b,0 0 0 1px var(--selected)}.tile.long{font-size:clamp(9px,1.5vw,13px)}.solved-group{grid-column:1/-1;min-height:0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:10px;text-align:center;padding:6px 12px;overflow:hidden;color:#241b29}.solved-group strong{font-size:clamp(10px,1.7vw,15px);line-height:1.15;text-wrap:balance}.solved-group span{font-size:clamp(9px,1.4vw,12px);line-height:1.2;text-wrap:balance}.group-0,.yellow{background:var(--yellow)}.group-1,.green{background:var(--green)}.group-2,.blue{background:var(--blue)}.group-3,.purple{background:var(--purple)}.statusline{flex:none;display:flex;align-items:center;justify-content:space-between;min-height:27px;padding-top:8px;color:var(--muted);font:10px/1.2 ui-monospace,monospace}.lives{display:flex;gap:6px;align-items:center}.lives::before{content:"Mistakes left";margin-right:5px}.life{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);border:1px solid var(--muted)}.life.spent{background:transparent;transform:none}.feedback{color:var(--muted);font-size:11px;line-height:1.3;height:27px;margin:0;display:flex;align-items:center;justify-content:center;flex:none;text-align:center}.controls{display:flex;gap:8px;flex:none}.primary,.secondary{min-height:40px;border-radius:9px;padding:9px 17px;font-weight:650;font-size:12px;transition:transform .12s,box-shadow .12s,background .15s;white-space:nowrap}.primary{background:var(--accent);color:var(--accent-text);box-shadow:0 3px 0 #7e1b37}.secondary{background:var(--tile);border:1px solid var(--line);color:var(--text);box-shadow:0 3px 0 var(--shadow)}.secondary:hover:not(:disabled){background:var(--tile-hover)}#submit,#show-result{margin-left:auto;min-width:130px}#submit span{margin-left:22px;opacity:.7}footer{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:16px;flex:none;font:9px/1.3 ui-monospace,monospace;color:var(--muted)}footer span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}dialog{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:24px;width:min(400px,calc(100vw - 30px));max-height:calc(100dvh - 24px);overflow:hidden;box-shadow:0 20px 80px #0008}dialog[open]{animation:dialog-in .22s cubic-bezier(.2,.8,.2,1)}dialog::backdrop{background:#09060db3;backdrop-filter:blur(6px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}h2{margin:0;font-size:25px;letter-spacing:-.8px}dialog p{font-size:12px;line-height:1.55;color:var(--muted)}.legend{border-radius:4px;padding:1px 3px;color:#241b29}.wide{width:100%;margin-top:10px}.eyebrow{font:10px/1.4 ui-monospace,monospace;color:var(--muted)}#result-summary{margin:8px 0 16px}.result-grid{display:flex;flex-direction:column;align-items:center;gap:5px;margin:18px auto;min-height:30px}.result-row{display:flex;gap:5px}.result-cell{width:35px;height:27px;border-radius:6px}.share-status{min-height:32px;text-align:center;line-height:1.4!important;font-size:11px!important;margin:12px 0}.result-actions{display:flex;justify-content:center;gap:8px}textarea{width:100%;margin-top:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font:10px/1.3 ui-monospace,monospace;padding:8px;resize:none}.skeleton{pointer-events:none;background:var(--tile);border-radius:10px;animation:breathe 1.4s ease-in-out infinite}.board.busy .tile{pointer-events:none}.board button,.solved-group{will-change:transform}.theme-flash{animation:theme-flash .3s ease-out}[hidden]{display:none!important}@keyframes dialog-in{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}@keyframes breathe{50%{opacity:.5}}@keyframes theme-flash{from{opacity:.6}to{opacity:1}}
@media(max-width:480px){.app{padding-left:12px;padding-right:12px;gap:7px}.toolbar{min-height:38px}.game{padding:13px;border-radius:14px}.board{gap:6px}.tile{font-size:11px;padding:4px}.tile.long{font-size:9px}.rules{font-size:11px}.primary,.secondary{padding:8px 12px;font-size:11px}#submit,#show-result{min-width:110px}#submit span{margin-left:12px}.solved-group strong{font-size:11px}.solved-group span{font-size:9px}.brand{font-size:19px}.presence{max-width:70px}.tools{gap:5px}}
@media(max-height:570px){.app{padding-top:6px;padding-bottom:6px;gap:5px}.toolbar{min-height:30px}.icon-button{width:28px;height:28px;font-size:16px}.game{padding:10px 14px;border-radius:12px}.heading h1{font-size:20px}.rules{margin:6px 0;font-size:10px}.board{gap:5px}.tile{border-radius:7px;font-size:11px}.solved-group{gap:2px;border-radius:7px;padding:3px 8px}.solved-group strong{font-size:10px}.solved-group span{font-size:9px}.statusline{min-height:22px;padding-top:5px}.feedback{height:21px;font-size:10px}.primary,.secondary{min-height:32px;padding:6px 12px;font-size:11px}footer{font-size:8px;min-height:10px}dialog{padding:14px 18px}dialog p{font-size:11px;line-height:1.4;margin:8px 0}.dialog-top{margin-bottom:6px}h2{font-size:22px}.result-grid{margin:10px auto;gap:3px}.result-cell{height:16px;width:26px;border-radius:4px}.result-row{gap:3px}#result-summary{margin:5px 0 8px}.share-status{min-height:24px;margin:8px 0}}
@media(max-height:390px){.app{padding:4px 14px}.toolbar{min-height:26px}.brand{font-size:17px}.brand>span{font-size:21px}.game{padding:7px 12px}.heading h1{font-size:17px}#edition{font-size:8px;margin-top:2px}.rules{margin:4px 0;font-size:9px}.board{gap:4px}.tile{font-size:10px;box-shadow:none}.solved-group strong{font-size:9px}.solved-group span{font-size:8px}.statusline{min-height:17px;font-size:9px}.feedback{height:16px;font-size:9px}.primary,.secondary{min-height:28px;padding:4px 10px;font-size:10px}footer{display:none}.result-cell{height:12px}.result-grid{gap:2px;margin:6px auto}.dialog-top{margin-bottom:3px}dialog{padding:10px 16px}.share-status{min-height:20px;font-size:10px!important}.wide{margin-top:4px}#help-dialog p{font-size:10px;line-height:1.3;margin:6px 0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.toolbar{justify-content:flex-end}.selection-dots{display:flex;gap:5px;align-items:center}.selection-dots::before{content:"Selected";margin-right:5px}.selection-dot{height:7px;width:7px;border:1px solid var(--muted);border-radius:50%;background:transparent}.selection-dot.filled{background:var(--accent);border-color:var(--accent)}.history-note{text-align:center;font-size:10px;margin:0}#end-round{margin-left:0;margin-right:auto}#continue-dialog .result-actions{margin-top:18px}.tile:hover:not(:disabled)[aria-pressed=true]{background:var(--selected)}
