:root{color-scheme:dark;--bg:#14161a;--bg-raised:#1c2028;--panel:#232833;--line:#333a47;--text:#e8eaee;--text-muted:#98a1b2;--gold:#d9a441;--gold-soft:#f0c977;--p1:#5aa9e6;--p2:#e07a5f;--good:#4fb477;--bad:#d9534f;--gold-fill-1:#f0c977;--gold-fill-2:#d9a441;--hs-best:var(--p1);--hs-rank:var(--good);--pick-1:#f0c977;--pick-1-soft:rgba(240, 201, 119, 0.16);--pick-1-fill:rgba(240, 201, 119, 0.22);--pick-2:#a78bfa;--pick-2-soft:rgba(167, 139, 250, 0.20);--pick-2-fill:rgba(167, 139, 250, 0.26);--card-back-1:#2b3140;--card-back-2:#1b1f28;--card-back-tint:rgba(217, 164, 65, 0.22);--card-back-border:rgba(217, 164, 65, 0.28);--card-back-shadow:rgba(0, 0, 0, 0.4);--card-back-hover-shadow:rgba(0, 0, 0, 0.5);--board-chip-bg:rgba(20, 22, 26, 0.85);--board-blank-edge:rgba(255, 255, 255, 0.05);--coin-size:180px;--radius:10px;--radius-lg:16px;--safe-top:env(safe-area-inset-top, 0px);--safe-bottom:env(safe-area-inset-bottom, 0px);--safe-left:env(safe-area-inset-left, 0px);--safe-right:env(safe-area-inset-right, 0px)}:root[data-theme=light]{color-scheme:light;--bg:#f1f4f7;--bg-raised:#ffffff;--panel:#e6ebf0;--line:#d3dbe3;--text:#1e2530;--text-muted:#6b7684;--gold:#b8802a;--gold-soft:#8f5f16;--p1:#2f6fb0;--p2:#b8492c;--good:#2f8f5b;--bad:#c23b34;--pick-1:#c17f0a;--pick-1-soft:rgba(193, 127, 10, 0.30);--pick-1-fill:rgba(193, 127, 10, 0.32);--pick-2:#7057c9;--pick-2-soft:rgba(112, 87, 201, 0.32);--pick-2-fill:rgba(112, 87, 201, 0.34);--card-back-1:#ffffff;--card-back-2:#eef1f4;--card-back-tint:rgba(184, 128, 42, 0.16);--card-back-border:rgba(184, 128, 42, 0.35);--card-back-shadow:rgba(30, 37, 48, 0.15);--card-back-hover-shadow:rgba(30, 37, 48, 0.22);--board-chip-bg:rgba(255, 255, 255, 0.92);--board-blank-edge:rgba(30, 37, 48, 0.08)}*,::after,::before{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;overflow-x:hidden;overscroll-behavior:none}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:16px;line-height:1.4;-webkit-text-size-adjust:100%;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}#app{height:100%;height:100dvh}.screen{display:none;height:100%}.screen.is-active{display:flex}.screen-panel{flex-direction:column;align-items:center;justify-content:center;padding:calc(var(--safe-top) + 1.5rem) calc(var(--safe-right) + 1.25rem) calc(var(--safe-bottom) + 1.5rem) calc(var(--safe-left) + 1.25rem);overflow-y:auto;overflow-x:hidden}#screen-game{flex-direction:column;padding:calc(var(--safe-top) + .5rem) calc(var(--safe-right) + .5rem) calc(var(--safe-bottom) + .5rem) calc(var(--safe-left) + .5rem);gap:.5rem}.panel-inner{position:relative;width:min(100%,30rem);text-align:center;min-height:100%;display:flex;flex-direction:column}.panel-content{margin:auto 0}.screen-header{display:flex;align-items:center;gap:.7rem;margin-bottom:1.5rem;text-align:left}.screen-header h2{flex:1 1 auto;margin:0;font-size:1.3rem;font-weight:700}.btn-back{flex:0 0 auto;width:2.2rem;height:2.2rem;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-raised);border:1px solid var(--line);border-radius:999px;color:var(--text-muted);line-height:1;cursor:pointer;transition:border-color .15s,color .15s}.btn-back:hover{border-color:var(--gold);color:var(--text)}.btn-back svg,.hs-pager .btn-ghost svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.app-title-row{display:inline-flex;align-items:center;gap:.45em;font-size:clamp(2rem, 9vw, 3rem)}.app-title{margin:0;font-size:1em;font-weight:700;letter-spacing:-.02em;background:linear-gradient(140deg,var(--gold-soft),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}.app-tagline{margin:.4rem 0 2rem;color:var(--text-muted)}.app-title-icon{width:1.15em;height:1.15em;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:3px;flex:none}.title-icon-cell{position:relative;perspective:200px}.title-icon-card{position:absolute;inset:0;border-radius:3px;transform-style:preserve-3d;transition:transform 640ms,opacity 640ms}.title-icon-face{position:absolute;inset:0;border-radius:3px;backface-visibility:hidden}.title-icon-back{background:radial-gradient(circle at 50% 50%,var(--card-back-tint) 0,var(--card-back-tint) 30%,transparent 31%),linear-gradient(150deg,var(--card-back-1),var(--card-back-2));box-shadow:inset 0 0 0 1px var(--card-back-border)}.title-icon-front{background:radial-gradient(circle at 35% 30%,var(--gold-soft),var(--gold) 70%);transform:rotateY(180deg)}.title-icon-front.is-blue{background:radial-gradient(circle at 35% 30%,#8dc3f0,var(--p1) 70%)}.title-icon-card.is-flipped{transform:rotateY(180deg)}.title-icon-card.is-gone{opacity:0;transform:rotateY(180deg) scale(.5)}.board-choice{margin-bottom:1.25rem;text-align:left}.choice-label{display:block;margin-bottom:.4rem;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.segmented{display:flex;gap:.25rem;padding:.25rem;background:var(--bg-raised);border:1px solid var(--line);border-radius:999px}.seg{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.05rem;padding:.5rem .75rem;background:0 0;border:none;border-radius:999px;color:var(--text-muted);font:inherit;cursor:pointer;transition:background .15s,color .15s}.seg:hover{color:var(--text)}.seg.is-active,.seg[aria-checked=true]{background:var(--panel);box-shadow:inset 0 0 0 1px var(--gold);color:var(--text)}.seg-name{font-size:.95rem;font-weight:600}.seg-meta{font-size:.72rem;color:var(--text-muted)}.seg-ai-persona .seg-meta{font-size:.95rem}.seg-ai-persona .seg.is-active .seg-meta,.seg-ai-persona .seg[aria-checked=true] .seg-meta{color:var(--text)}.seg-more{flex-direction:row;align-items:stretch;gap:.15rem;padding:.35rem .5rem .35rem .75rem}.seg-more-btn{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:.05rem;min-width:0;padding:.15rem 0;background:0 0;border:none;color:inherit;font:inherit;text-align:center;cursor:pointer}.seg-more-toggle{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:1.5rem;color:var(--text-muted);cursor:pointer}.seg-more-chevron{width:.7rem;height:.7rem}.seg-more-toggle select{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:none;opacity:0;cursor:pointer;font-size:16px}.chip-grid{display:flex;flex-wrap:wrap;gap:.4rem}.chip{padding:.35rem .8rem;background:var(--bg-raised);border:1px solid var(--line);border-radius:999px;color:var(--text-muted);font:inherit;font-size:.82rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.chip:hover{color:var(--text)}.chip[aria-checked=true]{background:var(--panel);box-shadow:inset 0 0 0 1px var(--gold);color:var(--text)}.mode-list{display:flex;flex-direction:column;gap:.75rem}.mode-card{display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.15rem;text-align:left;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-lg);color:inherit;font:inherit;text-decoration:none;cursor:pointer;transition:border-color .15s,background .15s,transform .1s}.mode-card:hover{border-color:var(--gold);background:var(--panel)}.mode-card:active{transform:scale(.985)}.mode-name{font-size:1.1rem;font-weight:600}.mode-desc{font-size:.85rem;color:var(--text-muted)}.mode-list-more{display:flex;gap:.75rem;margin-top:1.5rem}.mode-list-more .mode-card{flex:1 1 0;align-items:center;padding:.85rem 1rem;text-align:center}.mode-list-more .mode-name{font-size:1rem}.mode-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.mode-board-size{flex:none;font-size:.85rem;font-weight:500;color:var(--text-muted)}.mode-highscore{margin:.65rem -1.15rem -1rem;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;background:var(--panel);border-radius:0 0 calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px);overflow:hidden}.mode-highscore .hs-seg{padding:.2rem .3rem;text-align:center;min-width:0}.mode-highscore .hs-seg+.hs-seg{border-left:1px solid rgba(255,255,255,.07)}.mode-highscore .hs-label{font-size:.85rem;color:var(--text-muted)}.mode-highscore .hs-value{font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums}.mode-highscore .hs-value.hs-best{color:var(--hs-rank)}.mode-highscore .hs-value.hs-mine{color:var(--hs-best)}.mode-highscore .hs-value.is-empty{color:var(--text-muted);font-weight:600}.mode-highscore .hs-value.hs-result{color:var(--hs-best)}.mode-highscore .hs-outcome,.mode-highscore .hs-when{font-size:.85rem;color:var(--text-muted)}.mode-highscore .hs-when{white-space:normal;text-align:center}.mode-highscore .hs-outcome.is-win{color:var(--good)}.mode-highscore .hs-outcome.is-loss{color:var(--bad)}.start-hint{margin:-.5rem 0 1.25rem;text-align:left;font-size:.8rem;color:var(--text-muted)}.btn-start-game{display:block;width:100%;margin-top:.5rem;text-align:center}.end-eyebrow{margin:0;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}#end-headline{margin:.3rem 0 1.5rem;font-size:clamp(1.6rem, 7vw, 2.25rem);color:var(--gold-soft);transition:opacity .4s,transform .4s}#end-headline.is-pending{opacity:0;transform:scale(.85)}#end-scores{display:flex;justify-content:center;gap:.75rem;margin-bottom:1rem}.end-score{flex:1 1 0;max-width:11rem;padding:.9rem .75rem;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius)}.end-score.is-winner{border-color:var(--gold)}.end-score .label{display:block;font-size:.8rem;color:var(--text-muted)}.end-score .value{display:block;font-size:1.9rem;font-weight:700}.end-score--animated{display:flex;overflow:hidden;min-height:6.7rem;max-width:14rem}.end-score-side{flex:1 1 100%;min-width:0;transition:flex-basis .6s}.end-score-side.is-split{flex-basis:50%}.end-score-bonus{flex-basis:0%;opacity:0;padding-left:0;border-left:0 solid var(--line);overflow:hidden;white-space:nowrap;transition:flex-basis .6s,opacity .5s,padding-left .6s,border-left-width .6s}.end-score-bonus.is-shown{flex-basis:50%;opacity:1;padding-left:.75rem;border-left-width:1px}.end-score-bonus .value{color:var(--gold-soft)}.end-score-bonus-sub{display:block;font-size:.65rem;color:var(--text-muted)}.end-score-points .value{transition:font-size .6s}.end-score-points .value.is-final{font-size:2.6rem}.end-score--flip{min-height:5rem;transform-style:preserve-3d;transition:transform .28s,border-color .3s,box-shadow .3s}.end-score--flip.is-turning{transform:rotateY(90deg)}#confetti-layer{position:absolute;inset:0;pointer-events:none;z-index:2}.confetti-piece{position:absolute;width:7px;height:12px;margin:-6px 0 0 -3.5px;opacity:0;animation-name:confetti-burst;animation-fill-mode:forwards;animation-timing-function:cubic-bezier(0.12,0.7,0.25,1)}@keyframes confetti-burst{0%{transform:translate(0,0) rotate(0) scale(1);opacity:1}38%{transform:translate(var(--burst-x),var(--burst-y)) rotate(var(--spin-1)) scale(1);opacity:1}100%{transform:translate(var(--burst-x),var(--burst-y)) rotate(var(--spin-2)) scale(.82);opacity:0}}#end-extra:not(:empty){margin:0 0 1rem}.end-highscore-box{width:100%;max-width:20rem;margin:0 auto;padding:.9rem 1rem;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);text-align:center}.end-highscore-box.is-best{border-color:var(--hs-best)}.end-highscore-box.is-ranked{border-color:var(--hs-rank)}.end-highscore-box .label{display:block;font-size:.8rem;color:var(--text-muted)}.end-highscore-box .value{display:block;margin-top:.15rem;font-size:1.5rem;font-weight:700}.highscore-when{display:block;margin-top:.2rem;font-size:.75rem;color:var(--text-muted)}.highscore-name-prompt{margin:.75rem 0 0;font-size:.85rem;color:var(--text)}.highscore-name-bar{margin-top:.55rem;display:flex;align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:.2rem .2rem .2rem .9rem}.highscore-name-bar:focus-within{border-color:var(--gold);outline:2px solid var(--gold);outline-offset:2px}.highscore-name-input{flex:1 1 auto;min-width:0;padding:.3rem;background:0 0;border:none;color:var(--text);font:inherit;font-size:.9rem}.highscore-name-input::placeholder{color:var(--text-muted);opacity:.75}.highscore-name-input:disabled{opacity:.6}.highscore-name-input:focus-visible{outline:0}.highscore-name-submit{flex:none;padding:.45rem .9rem}.highscore-name-hint{margin:.5rem 0 0;font-size:.72rem;color:var(--text-muted)}.highscore-name-confirmed{margin:.75rem 0 0;font-size:.85rem;color:var(--text)}#end-detail{margin:0 0 1.75rem;color:var(--text-muted);font-size:.9rem}.end-actions{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap}.btn-ghost,.btn-primary{padding:.6rem 1.2rem;border-radius:999px;font:inherit;font-weight:600;cursor:pointer;transition:filter .15s,border-color .15s,color .15s}.btn-primary{background:linear-gradient(140deg,var(--gold-fill-1),var(--gold-fill-2));border:none;color:#1a1206}.btn-primary:hover{filter:brightness(1.08)}.btn-ghost{background:0 0;border:1px solid var(--line);color:var(--text-muted)}.btn-ghost:hover{border-color:var(--gold);color:var(--text)}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.hs-game-select{position:relative}#hs-game{width:100%;padding:.55rem 2rem .55rem .75rem;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);font:inherit;font-size:.95rem;appearance:none;-webkit-appearance:none}.hs-game-chevron{position:absolute;top:50%;right:.85rem;width:.7rem;height:.7rem;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}#hs-list{display:flex;flex-direction:column;gap:.4rem;margin:0 0 1rem;padding:0;list-style:none}.hs-entry{display:grid;grid-template-columns:2.2rem 1fr 3rem 7.5rem;align-items:baseline;gap:.6rem;padding:.5rem .75rem;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);text-align:left}.hs-entry.is-highlighted{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.hs-rank{font-weight:700;color:var(--text-muted)}.hs-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hs-score{font-weight:700;color:var(--gold-soft);text-align:right;font-variant-numeric:tabular-nums}.hs-when{font-size:.75rem;color:var(--text-muted);white-space:normal;text-align:right}#hs-empty{margin:1rem 0;color:var(--text-muted);text-align:center}.hs-pager{display:flex;align-items:center;justify-content:space-between;gap:1rem}.hs-plays{font-size:.85rem;color:var(--text-muted);text-align:left}.hs-pager-nav{display:flex;align-items:center;gap:1rem;flex:none}.hs-pager .btn-ghost{width:2.2rem;height:2.2rem;padding:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center}.hs-pager .btn-ghost:disabled{opacity:.4;cursor:default}#hs-page-label{font-size:.85rem;color:var(--text-muted)}#app-footer{margin-top:1.1rem;margin-bottom:calc(-1 * (var(--safe-bottom) + 1.5rem));width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:.2rem calc(var(--safe-right) + 1.25rem) calc(var(--safe-bottom) + .2rem) calc(var(--safe-left) + 1.25rem);border-top:1px solid var(--line);font-size:.68rem;line-height:1.15;color:var(--text-muted);text-align:center}#app-footer a{color:var(--text-muted);text-decoration:underline;text-decoration-color:rgba(152,161,178,0.4);text-underline-offset:2px}#app-footer a:hover{color:var(--gold);text-decoration-color:var(--gold)}#version-badge{font-variant-numeric:tabular-nums}#top-controls{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;margin-bottom:1.1rem;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:0 calc(var(--safe-right) + 1.25rem) 0 calc(var(--safe-left) + 1.25rem)}.theme-switcher{display:flex;padding:.2rem;background:var(--bg-raised);border:1px solid var(--line);border-radius:999px}.theme-switcher button{width:1.8rem;height:1.8rem;display:inline-flex;align-items:center;justify-content:center;background:0 0;border:none;border-radius:999px;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.theme-switcher button:hover{color:var(--text)}.theme-switcher button.is-current{background:var(--panel);color:var(--gold)}.theme-switcher button svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.4}#theme-dark-btn svg{fill:currentColor}#lang-switcher{position:relative}#lang-switcher-btn{width:2.2rem;height:2.2rem;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-raised);border:1px solid var(--line);border-radius:999px;color:var(--text-muted);cursor:pointer;transition:border-color .15s,color .15s}#lang-switcher-btn:hover,#lang-switcher-btn[aria-expanded=true]{border-color:var(--gold);color:var(--text)}#lang-switcher-btn svg{width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-width:1.4}#lang-menu{position:absolute;top:calc(100% + .5rem);right:0;margin:0;padding:.35rem;list-style:none;min-width:8rem;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px rgba(0,0,0,.35);z-index:30}#lang-menu[hidden]{display:none}.lang-option{display:block;width:100%;padding:.5rem .7rem;border:0;border-radius:calc(var(--radius) - 3px);background:0 0;color:var(--text);font-size:.9rem;text-align:left;cursor:pointer}.lang-option:hover{background:var(--bg-raised)}.lang-option.is-current{color:var(--gold-soft);font-weight:700}.credits-list{display:flex;flex-direction:column;gap:1rem;margin:0 0 1.5rem;text-align:left}.credits-row{margin:0}.credits-row dd{margin:.2rem 0 0;font-size:1rem}.credits-row dd a{color:var(--text);text-decoration:underline;text-decoration-color:rgba(152,161,178,0.4);text-underline-offset:2px}.credits-row dd a:hover{color:var(--gold);text-decoration-color:var(--gold)}.credits-copyright{margin:0;font-size:.85rem;color:var(--text-muted);text-align:left}.app-install-block{margin:0 0 2.5rem;text-align:left}.app-install-block:last-child{margin-bottom:0}.app-install-block[hidden]{display:none}.app-install-steps{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.7rem}.app-install-step{display:flex;gap:.7rem;align-items:flex-start}.app-install-step-num{flex:0 0 auto;width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-raised);border:1px solid var(--line);border-radius:999px;font-size:.75rem;font-weight:700}.app-install-share-icon{width:1rem;height:1rem;vertical-align:-.15em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.app-install-hint{margin:.6rem 0 0;font-size:.8rem;color:var(--text-muted);line-height:1.4}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;transition-duration:0s!important}}