:root{--bg:#f7f3ea;--ink:#20242e;--accent:#b3242a;--card-back:#b3242a;--accent-ink:#fff;--panel:#fff;--line:#d8d2c2}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.topbar{justify-content:space-between;align-items:center;max-width:920px;margin:0 auto;padding:12px 16px 4px;display:flex}.brand{letter-spacing:.2px;font-size:20px;font-weight:800}.icon-btn{width:40px;height:40px;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:#20242e12}.main{max-width:920px;margin:0 auto;padding:8px 16px 24px}.app-footer{opacity:.85;text-align:center;flex-wrap:wrap;justify-content:center;gap:6px 10px;padding:18px 12px 24px;font-size:13px;display:flex}.app-footer a{color:inherit}.settings-panel{z-index:40;background:var(--panel);border:1px solid var(--line);border-radius:14px;width:min(320px,100vw - 32px);padding:14px 16px;position:absolute;top:56px;right:max(16px,50% - 444px);box-shadow:0 12px 32px #20242e2e}.settings-row{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:15px;display:flex}.settings-note{opacity:.6;padding-top:8px;font-size:12px}.switch{flex:none;width:50px;height:28px;display:inline-block;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.switch-track{pointer-events:none;background:#c9c2ae;border-radius:999px;transition:background .15s;position:absolute;inset:0}.switch-track:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track:after{transform:translate(22px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--ink);outline-offset:2px}.btn{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:12px;padding:10px 18px;font-weight:600}.btn:hover{border-color:var(--ink)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{border-color:var(--accent);filter:brightness(1.08)}.btn-big{text-align:center;border-radius:14px;width:100%;padding:16px 18px;font-size:18px;display:block}.btn-disabled{opacity:.55;cursor:not-allowed;pointer-events:none;-webkit-user-select:none;user-select:none}.btn-small{padding:6px 12px;font-size:14px}.home{text-align:center;max-width:520px;margin:24px auto 0}.home-title{margin:8px 0 6px;font-size:40px}.home-sub{opacity:.8;margin:0 0 26px;font-size:17px}.home-actions{gap:10px;display:grid}.online-note{opacity:.65;margin:2px 0 0;font-size:13px}.learn-toggle{width:100%;font:inherit;border:none;border-top:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;margin-top:30px;padding:12px 4px;font-weight:700;display:flex}.learn-body{text-align:left;padding-bottom:6px;font-size:15px;line-height:1.5}.credits{border-top:1px solid var(--line);opacity:.85;margin-top:14px;padding-top:10px;font-size:13px}.credits h3{margin:0 0 6px;font-size:14px}.credits p{margin:4px 0}.setup{max-width:520px;margin:12px auto 0}.screen-title{text-align:center;margin:6px 0 18px;font-size:26px}.setup-group{margin-bottom:22px}.setup-label{margin-bottom:8px;font-weight:700}.setup-hint{opacity:.65;margin-top:2px;font-size:13px}.theme-select{width:100%;font:inherit;color:var(--ink);border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;padding:10px 12px;font-weight:600}.seg-row{grid-auto-columns:1fr;grid-auto-flow:column;gap:8px;display:grid}.seg-btn{font:inherit;border:2px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:1px;padding:10px 4px;display:flex}.seg-btn.selected{border-color:var(--accent);background:#fdf0ee}.seg-main{white-space:nowrap;font-size:17px;font-weight:800}.seg-sub{opacity:.65;white-space:nowrap;font-size:12px}.setup-toggle-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.setup-actions{justify-content:space-between;gap:12px;margin-top:8px;display:flex}.game{max-width:680px;margin:0 auto}.scoreboard{flex-wrap:wrap;justify-content:center;gap:8px;margin:6px 0 4px;display:flex}.chip{background:var(--panel);border:2px solid var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:14px;display:inline-flex}.chip.active{border-color:var(--chip-color,var(--accent));box-shadow:0 0 0 2px var(--chip-color,var(--accent));font-weight:700}.chip-dot{border-radius:50%;flex:none;width:11px;height:11px}.solo-stats{justify-content:center;gap:18px;margin-top:4px;font-size:15px;display:flex}.turn-line{justify-content:center;align-items:center;gap:7px;margin:8px 0 2px;font-size:16px;font-weight:700;display:flex}.board{--cols:4;width:min(100%, calc(var(--cols) * 104px));gap:6px;margin:12px auto 0;display:grid}.card{aspect-ratio:3/4;width:100%;font:inherit;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:4px 2px 2px;display:flex;position:relative;overflow:hidden}.card.down{border:2px solid var(--card-back-edge,#7e1a1e);background:radial-gradient(circle at 32% 26%, #ffffff47, transparent 55%), linear-gradient(150deg, var(--card-back-hi,#cf352c), var(--card-back) 62%, var(--card-back-lo,#8f1f24));cursor:pointer}.card.down:hover{filter:brightness(1.07)}.board[data-theme=emoji]{--card-back:#f59e0b;--card-back-hi:#fbbf24;--card-back-lo:#b45309;--card-back-edge:#92400e}.board[data-theme=disney]{--card-back:#312e81;--card-back-hi:#4c3fb3;--card-back-lo:#1e1b4b;--card-back-edge:#171233}.board[data-theme=flags]{--card-back:#16a34a;--card-back-hi:#22c55e;--card-back-lo:#14532d;--card-back-edge:#052e16}.card-back-ball,.card-back-motif{opacity:.95;width:62%;height:auto}.card.up{border:2px solid var(--line);background:#fff}.card.up.matched{border-color:#2e9e4f;box-shadow:0 0 0 2px #2e9e4f}.card-art{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;flex:1;width:100%;min-height:0}.card-name{text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:clamp(7px,2vw,11px);font-weight:600;line-height:1.15;overflow:hidden}.slot{aspect-ratio:3/4;background:#20242e08;border:2px dashed #20242e29;border-radius:10px;width:100%}.game-actions{justify-content:space-between;gap:12px;max-width:680px;margin:16px auto 0;display:flex}.finish-overlay{z-index:50;background:#20242e73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.finish-card{background:var(--panel);text-align:center;border-radius:18px;width:100%;max-width:440px;padding:28px 26px 22px;position:relative;box-shadow:0 18px 48px #0000004d}.finish-title{font-size:32px;font-weight:800}.finish-detail{opacity:.85;font-size:15px;line-height:1.5}.finish-actions{justify-content:space-between;gap:12px;margin-top:14px;display:flex}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti-piece{border-radius:2px;width:8px;height:14px;animation:1.8s ease-in forwards confetti-fall;position:absolute;top:-16px}@keyframes confetti-fall{to{opacity:.85;transform:translateY(106vh)rotate(560deg)}}@media (width<=480px){.board{gap:4px}.home-title{font-size:32px}.finish-title{font-size:26px}}
