:root{--board-bg:#2b2f36;--card-face:#d6d6d6;--card-border:#b8b8b8;--card-gap:10px;--card-radius:10px;--accent:#4c8bf5;--cols:4;--brand-badge:0px;--text:#e8eaed;--muted:#9aa3ad;--btn-bg:#3a4049;--btn-bg-hover:#464d57;--btn-border:#4b525c;--good:#34c77b;--bad:#f0616d;--warn:#f5b942;--dlg-bg:#f5f6f8;--dlg-text:#1f242b;--dlg-muted:#5f6873;--dlg-line:#dfe2e6}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{height:100%}body{background:var(--board-bg);height:100dvh;color:var(--text);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex}button,select,input{font:inherit;color:inherit}kbd{text-align:center;opacity:.6;border:1px solid;border-radius:4px;min-width:1.5em;padding:2px 5px;font:600 .75em/1 ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-block}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.hud{flex-wrap:wrap;align-items:center;gap:8px 20px;padding:10px 16px 6px;display:flex}.title{white-space:nowrap;margin:0;font-size:1.05rem;font-weight:700}.title small{color:var(--muted);margin-left:.2em;font-weight:500}.hud-stats{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:6px 24px;display:flex}.stat{flex-direction:column;align-items:center;min-width:3.2em;line-height:1.15;display:flex}.stat .label{color:var(--muted);letter-spacing:.09em;text-transform:uppercase;font-size:.68rem}.stat .value{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:600}#score{font-size:1.9rem;font-weight:750;display:inline-block}#score.bump{animation:.35s ease-out bump}.score-line{align-items:baseline;gap:4px;display:flex}.goal{color:var(--muted);font-variant-numeric:tabular-nums;font-size:1rem;font-weight:600}.badge{color:var(--warn);white-space:nowrap;background:#f5b94224;border:1px solid #f5b94273;border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:600}.dlg .mono{font-variant-numeric:tabular-nums;letter-spacing:.03em}.hud-menu{gap:6px;display:flex}.btn{appearance:none;border:1px solid var(--btn-border);background:var(--btn-bg);cursor:pointer;border-radius:10px;padding:7px 12px;transition:background .12s,transform 80ms,opacity .12s}.btn:hover:not(:disabled){background:var(--btn-bg-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.icon{place-items:center;width:44px;height:42px;padding:0;display:inline-grid}.btn.icon svg,.btn.wide svg{width:20px;height:20px}.btn.wide{align-items:center;gap:8px;height:42px;padding:0 16px;font-weight:600;display:inline-flex}.btn.help{font-weight:800}.btn.primary{border-color:var(--accent);background:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:#5d97f7}.board-area{flex:auto;place-items:center;min-height:0;margin:0 16px;display:grid;container:board-area/size}.board{grid-template-columns:repeat(var(--cols), minmax(0, 1fr));gap:var(--card-gap);width:min(100cqw, calc((100cqh - (var(--rows) - 1) * var(--card-gap) - 14px) / var(--rows) * 5 / 3 * var(--cols) + (var(--cols) - 1) * var(--card-gap)), calc(var(--cols) * 260px + (var(--cols) - 1) * var(--card-gap)));display:grid}.card{aspect-ratio:5/3;border:1px solid var(--card-border);border-radius:var(--card-radius);background:var(--card-face);outline-offset:2px;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;outline:3px solid #0000;justify-content:center;align-items:center;width:100%;margin:0;padding:0;transition:transform .12s,box-shadow .12s,outline-color .12s,outline-width .12s,outline-offset .12s;display:flex;position:relative;box-shadow:0 2px #00000047,0 6px 14px #0000002e}@media (hover:hover){.board .card:hover{transform:translateY(-2px)}}.card:focus-visible{outline-color:#fffc}.board .card.selected{outline:4px solid var(--accent);outline-offset:0;transform:translateY(-4px);box-shadow:0 0 0 8px #4c8bf552,0 8px #00000024,0 14px 24px #00000059}.board .card.hinted:after{content:"";border:5px solid var(--warn);border-radius:var(--card-radius);pointer-events:none;animation:.7s ease-in-out 3 hint-pulse;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #0000002e}.card.shake{outline-color:var(--bad);animation:.4s shake}.card.found{outline-color:var(--good);pointer-events:none;animation:.3s ease-in forwards found}.card.dealt{animation:.26s ease-out backwards deal}.symbols{pointer-events:none;justify-content:center;align-items:center;gap:4%;width:100%;height:100%;display:flex}.symbols>*{aspect-ratio:1;flex:none;width:27%;height:auto;display:block}@container board-area (orientation:portrait){.board{grid-template-columns:repeat(var(--pcols), minmax(0, 1fr));width:min(100cqw, calc((100cqh - (var(--prows) - 1) * var(--card-gap) - 14px) / var(--prows) * 3 / 4 * var(--pcols) + (var(--pcols) - 1) * var(--card-gap)), calc(var(--pcols) * 260px + (var(--pcols) - 1) * var(--card-gap)))}.board .card{aspect-ratio:3/4}.board .symbols{flex-direction:column;justify-content:space-evenly;gap:0}.board .symbols>*{width:34%}.board[data-cards=wide]{width:min(100cqw, calc((100cqh - (var(--prows) - 1) * var(--card-gap) - 14px) / var(--prows) * 5 / 3 * var(--pcols) + (var(--pcols) - 1) * var(--card-gap)), calc(var(--pcols) * 260px + (var(--pcols) - 1) * var(--card-gap)))}.board[data-cards=wide] .card{aspect-ratio:5/3}.board[data-cards=wide] .symbols{flex-direction:row;justify-content:center;gap:4%}.board[data-cards=wide] .symbols>*{width:27%}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@keyframes found{0%{transform:translateY(-4px)scale(1)}45%{opacity:1;transform:translateY(-6px)scale(1.06)}to{opacity:0;transform:scale(.82)}}@keyframes hint-pulse{50%{opacity:.35}}@keyframes deal{0%{opacity:0;transform:translateY(10px)scale(.96)}}@keyframes bump{40%{transform:scale(1.18)}}.actions{padding:10px 16px calc(14px + env(safe-area-inset-bottom) + var(--brand-badge));justify-content:center;gap:12px;display:flex}.btn.action{border-radius:12px;justify-content:center;align-items:center;gap:10px;min-width:150px;padding:12px 18px;font-size:1.02rem;font-weight:600;display:inline-flex}@media (hover:none){.btn kbd{display:none}}.toast{z-index:10;color:#fff;white-space:nowrap;opacity:0;pointer-events:none;background:#111418;border-radius:999px;padding:10px 18px;font-weight:600;transition:opacity .16s,transform .16s;position:fixed;top:76px;left:50%;transform:translate(-50%,-8px);box-shadow:0 8px 24px #0006}.toast.show{opacity:1;transform:translate(-50%)}.toast.good{background:#1f7a4d}.toast.bad{background:#9b2c36}dialog{background:var(--dlg-bg);width:min(560px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--dlg-text);border:0;border-radius:16px;padding:0;box-shadow:0 24px 64px #00000080}dialog::backdrop{background:#0c0e129e}dialog[open]{animation:.16s ease-out dlg-in}@keyframes dlg-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.dlg{flex-direction:column;gap:14px;margin:0;padding:20px 22px;display:flex}.dlg.small{padding-top:22px}.dlg h2{margin:0;font-size:1.3rem}.dlg h3{margin:6px 0 -6px;font-size:.95rem}.dlg p{margin:0}.dlg .btn{color:var(--dlg-text);background:#e6e9ed;border-color:#d3d7dc}.dlg .btn:hover:not(:disabled){background:#dadee3}.dlg .btn.primary{border-color:var(--accent);background:var(--accent);color:#fff}.dlg .btn.primary:hover:not(:disabled){background:#5d97f7}.dlg .btn.danger{color:#b3202f}.dlg kbd{opacity:.8}.dlg code{background:#e3e6ea;border-radius:4px;padding:1px 4px}.dlg-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.dlg-actions.spread{justify-content:space-between}.dlg-actions.sticky{z-index:1;padding:12px 22px calc(14px + env(safe-area-inset-bottom,0px));background:var(--dlg-bg);border-top:1px solid #d3d7dc;margin:4px -22px -20px;position:sticky;bottom:0}.sub{color:var(--dlg-muted)}.rows{border-top:1px solid var(--dlg-line);grid-template-columns:1fr auto;margin:0;display:grid}.rows>div{display:contents}.rows dt,.rows dd{border-bottom:1px solid var(--dlg-line);margin:0;padding:7px 0}.rows dd{font-variant-numeric:tabular-nums;text-align:right;font-weight:600}.note{color:var(--dlg-muted);margin-left:8px;font-size:.85em;font-weight:500}.note.best{color:#1f8a53;font-weight:700}.end-score{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}#end-score{font-variant-numeric:tabular-nums;font-size:3rem;font-weight:800;line-height:1}.end-score-label{color:var(--dlg-muted);font-weight:600}.field{border:0;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.field-label{padding:0;font-size:.9rem;font-weight:700}details.field>summary{cursor:pointer}select,input[type=url]{color:var(--dlg-text);background:#fff;border:1px solid #c9ced4;border-radius:8px;padding:8px 10px}.check{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.check input{width:18px;height:18px;accent-color:var(--accent);margin:0}.hint{color:var(--dlg-muted);font-size:.82rem}.error{color:#b3202f;font-size:.82rem}.pending{background:#e6edfb;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 10px;font-size:.88rem;display:flex}.dlg .modes{margin:0;padding-left:1.2em}.dlg .modes li+li{margin-top:6px}.preview{background:var(--board-bg);border-radius:12px;grid-template-columns:repeat(3,minmax(0,110px));justify-content:center;gap:8px;padding:12px;display:grid}.preview-card{cursor:default;box-shadow:none}.palette-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.swatches{gap:6px;display:flex}.swatch{border:1px solid #0000004d;border-radius:7px;width:28px;height:28px}.segmented{background:#e3e6ea;border-radius:10px;align-self:flex-start;gap:2px;padding:3px;display:inline-flex}.segmented label{position:relative}.segmented input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segmented span{color:var(--dlg-muted);border-radius:8px;padding:6px 16px;font-size:.9rem;font-weight:600;display:block}.segmented input:checked+span{color:var(--dlg-text);background:#fff;box-shadow:0 1px 3px #00000026}.segmented input:focus-visible+span{outline:3px solid var(--accent);outline-offset:1px}.score-table{border-collapse:collapse;width:100%}.score-table td{border-bottom:1px solid var(--dlg-line);padding:6px 0}.score-table td:last-child{text-align:right;padding-left:12px;font-weight:600}.fact{border-left:3px solid var(--accent);background:#e6edfb;border-radius:6px;padding:10px 12px!important}@media (width<=640px){:root{--brand-badge:44px}.hud{padding:max(8px, env(safe-area-inset-top)) 10px 4px;gap:6px 10px}.title small{display:none}.hud-menu{flex-basis:100%;order:4;gap:8px}.hud-menu .btn{white-space:nowrap;flex:auto;justify-content:center;height:44px}.hud-menu .btn.icon{flex:0 0 48px}.hud-reroll{order:1;margin-left:auto}.hud-stats{flex-basis:100%;order:3;justify-content:space-around;gap:4px 12px}#score{font-size:1.6rem}.board-area{margin:4px 10px}.board{--card-gap:8px;--card-radius:8px}.actions{padding:8px 10px calc(10px + env(safe-area-inset-bottom) + var(--brand-badge))}.btn.action{flex:1;min-width:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}
