:root{color:#151922;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#f6f7f4;--panel:#fff;--panel-strong:#fefefe;--ink:#151922;--muted:#69717c;--border:#d8ddd6;--border-strong:#bcc4ba;--accent:#15a39b;--accent-strong:#0d756f;--danger:#d53b47;--black-suit:#141820;--shadow:0 18px 50px #1e231c1c;--radius:8px;background:#f6f7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(90deg, #15a39b14 0 1px, transparent 1px), linear-gradient(#15a39b0f 0 1px, transparent 1px), var(--bg);background-size:44px 44px;min-width:320px;min-height:100vh;margin:0}button{font:inherit}.app-shell{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(196px,232px) minmax(620px,1fr) minmax(172px,220px);gap:16px;min-height:100vh;padding:16px;display:grid}.top-bar,.stats-panel,.play-surface,.turn-panel{border:1px solid var(--border);min-width:0;box-shadow:var(--shadow);background:#ffffffed}.top-bar{grid-column:1/-1;grid-template-columns:minmax(210px,.7fr) minmax(520px,1.6fr) minmax(250px,.7fr);align-items:center;gap:22px;padding:12px 18px;display:grid}.stats-panel{flex-direction:column;gap:18px;padding:18px;display:flex}.brand-block{grid-template-columns:46px 1fr;align-items:center;gap:12px;display:grid}.brand-mark{border:2px solid var(--ink);background:var(--ink);color:#fff;letter-spacing:0;place-items:center;width:46px;height:46px;font-size:13px;font-weight:900;display:grid}h1,h2,p{margin:0}h1{letter-spacing:0;font-size:24px;line-height:1}.brand-block p{color:var(--muted);margin-top:5px;font-size:13px;font-weight:800}.top-controls{gap:10px;display:grid}.difficulty-control,.parallel-control{grid-template-columns:52px 1fr;align-items:center;gap:10px;display:grid}.difficulty-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.difficulty-picker button{border:1px solid var(--border);min-height:44px;color:var(--muted);cursor:pointer;text-align:left;background:#f9faf8;border-radius:6px;gap:2px;padding:7px 10px;font-size:11px;font-weight:850;display:grid}.difficulty-picker strong{color:currentColor;font-size:13px;line-height:1}.difficulty-picker span{color:currentColor;opacity:.78;font-size:11px;line-height:1}.difficulty-picker button:hover,.difficulty-picker button:focus-visible{border-color:var(--accent);color:var(--accent-strong);outline:none}.difficulty-picker .is-selected{border-color:var(--ink);background:var(--ink);color:#fff}.parallel-picker{grid-template-columns:repeat(10,44px);gap:6px;display:grid}.parallel-picker button{aspect-ratio:1;border:1px solid var(--border);color:var(--muted);cursor:pointer;background:#f9faf8;border-radius:6px;font-size:13px;font-weight:850}.parallel-picker button:hover,.parallel-picker button:focus-visible{border-color:var(--accent);color:var(--accent-strong);outline:none}.parallel-picker .is-selected{border-color:var(--ink);background:var(--ink);color:#fff}.stat-grid{gap:8px;display:grid}.metric{border:1px solid var(--border);background:#fbfcfa;grid-template-columns:32px 1fr;align-items:center;gap:2px 9px;padding:10px;display:grid}.metric-icon{border:1px solid var(--border);width:32px;height:32px;color:var(--accent-strong);grid-row:span 2;place-items:center;display:grid}.metric svg,.icon-button svg{stroke-width:2px;width:17px;height:17px}.metric span:not(.metric-icon){color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:850}.metric strong{color:var(--ink);letter-spacing:0;font-size:22px;line-height:1}.command-actions{grid-template-columns:repeat(2,minmax(142px,1fr));justify-self:end;gap:10px;width:min(100%,360px);display:grid}.icon-button{border:1px solid var(--border-strong);cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:42px;font-size:13px;font-weight:850;display:inline-flex}.icon-button.secondary{color:var(--ink);background:#fff}.icon-button.primary{border-color:var(--accent-strong);background:var(--accent);color:#fff}.icon-button.share-button{border-color:var(--ink);background:var(--ink);color:#fff}.icon-button:hover,.icon-button:focus-visible{outline:none;transform:translateY(-1px)}.play-surface{grid-template-rows:auto auto;align-self:start;padding:14px;display:grid}.board-header{justify-content:space-between;align-items:center;gap:12px;padding:2px 2px 12px;display:flex}.label{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}h2{letter-spacing:0;margin-top:3px;font-size:27px;line-height:1}.status-pill{border:1px solid var(--border);min-width:86px;color:var(--muted);text-align:center;border-radius:999px;padding:8px 10px;font-size:12px;font-weight:900}.status-pill.ready{color:var(--accent-strong);border-color:#15a39b73}.status-pill.checking{color:var(--danger);border-color:#d53b4747}.status-pill.complete{border-color:var(--ink);color:var(--ink)}.card-grid{grid-template-columns:repeat(var(--board-columns), minmax(0, 1fr));width:100%;max-width:var(--board-max-width);justify-self:center;gap:8px;height:auto;min-height:0;display:grid}.playing-card{aspect-ratio:5/7;border-radius:var(--radius);min-width:0;min-height:0;color:var(--black-suit);cursor:pointer;background:#fff;border:1px solid #c9d0c5;padding:0;transition:transform .16s,border-color .16s,box-shadow .16s,opacity .16s;display:grid;position:relative;overflow:hidden;box-shadow:0 6px 14px #1a201a1f}.playing-card:hover:not(:disabled),.playing-card:focus-visible{border-color:var(--accent);outline:none;transform:translateY(-2px);box-shadow:0 8px 18px #0f7a7438}.playing-card:disabled{cursor:default}.playing-card.is-matched{opacity:.44;box-shadow:none}.playing-card.red{color:var(--danger)}.card-face,.card-back{grid-area:1/1;display:block}.card-face{opacity:0;background:linear-gradient(135deg,#0000 0 46%,#12161d0d 46% 54%,#0000 54%),#fff;position:relative;transform:rotateY(180deg)}.playing-card.is-revealed .card-face{opacity:1;transform:rotateY(0)}.playing-card.is-revealed .card-back{opacity:0;transform:rotateY(180deg)}.card-back{background:linear-gradient(135deg,#ffffff2e 25%,#0000 25%) 0 0/12px 12px,linear-gradient(225deg,#ffffff26 25%,#0000 25%) 0 0/12px 12px,#18202a;place-items:center;transition:opacity .18s,transform .18s;display:grid}.card-back span{aspect-ratio:1;border:2px solid #ffffffb8;width:52%;transform:rotate(45deg)}.corner{flex-direction:column;align-items:center;min-width:18px;line-height:.94;display:flex;position:absolute}.corner strong{font-size:clamp(9px,.9vw,16px);font-weight:950}.corner em{font-size:clamp(11px,1vw,18px);font-style:normal}.corner.top{top:6px;left:6px}.corner.bottom{bottom:6px;right:6px;transform:rotate(180deg)}.center-suit{place-items:center;font-size:clamp(19px,2vw,38px);line-height:1;display:grid;position:absolute;inset:0}.turn-panel{flex-direction:column;align-self:start;gap:12px;max-height:calc(100vh - 126px);padding:16px;display:flex}.turn-header{justify-content:space-between;align-items:end;gap:8px;display:flex}.turn-header strong{color:var(--ink);font-size:18px}.board-list{gap:9px;padding-right:2px;display:grid;overflow:auto}.board-progress{border:1px solid var(--border);background:#fbfcfa;gap:8px;min-width:0;padding:10px;display:grid;overflow:hidden}.board-progress.is-active{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.board-progress-main{grid-template-columns:28px 1fr;align-items:center;gap:8px;display:grid}.board-progress-main span{border:1px solid var(--border);background:#fff;place-items:center;width:28px;height:28px;font-size:13px;font-weight:900;display:grid}.board-progress-main strong{font-size:13px;line-height:1}.mini-grid{grid-template-columns:repeat(var(--mini-columns), minmax(0, 1fr));width:100%;max-width:var(--mini-grid-max-width);justify-content:center;justify-self:center;gap:2px;display:grid}.mini-grid span{aspect-ratio:5/7;background:#e8ece6;border:1px solid #cbd2c8;min-width:0}.mini-grid .is-lit{background:var(--accent);border-color:#15a39b80}.progress-track{background:#e6eae3;height:5px}.progress-track span{background:var(--accent);height:100%;display:block}.board-progress-meta{color:var(--muted);justify-content:space-between;gap:8px;font-size:11px;font-weight:850;display:flex}.result-backdrop{z-index:18;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#f6f7f4b3;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.result-modal{border:1px solid var(--ink);background:#fff;gap:10px;width:min(100%,500px);max-height:calc(100vh - 40px);padding:14px;animation:.42s cubic-bezier(.2,.8,.2,1) both result-in;display:grid;overflow:auto;box-shadow:0 28px 80px #1519223d}.result-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.result-rank{border:1px solid var(--ink);background:var(--ink);color:#fff;place-items:center;width:66px;height:66px;display:grid}.result-rank span{text-transform:uppercase;align-self:end;font-size:11px;font-weight:900}.result-rank strong{align-self:start;font-size:31px;line-height:1}.result-modal h2{font-size:24px}.result-rank.rank-s,.result-rank.rank-a{border-color:var(--accent-strong);background:var(--accent)}.result-summary{border:1px solid var(--border);color:var(--muted);background:#fbfcfa;justify-content:space-between;gap:12px;padding:9px 10px;font-size:13px;font-weight:850;display:flex}.result-summary strong{color:var(--ink)}.result-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.result-stat{border:1px solid var(--border);background:#fbfcfa;gap:5px;min-width:0;padding:9px 10px;display:grid}.result-stat span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}.result-stat strong{min-width:0;font-size:20px;line-height:1}.result-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.result-actions .icon-button{min-height:38px}.clear-celebration{z-index:24;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.confetti-field{position:absolute;inset:0}.confetti-field span{top:-18px;left:calc((var(--i,0) + 1) * 5%);background:var(--accent);width:9px;height:28px;animation:1.5s ease-out both confetti-drop;position:absolute}.confetti-field span:nth-child(3n){background:#f2c94c}.confetti-field span:nth-child(3n+1){background:#d53b47}.confetti-field span:first-child{--i:1;animation-delay:40ms}.confetti-field span:nth-child(2){--i:3;animation-delay:.12s}.confetti-field span:nth-child(3){--i:5;animation-delay:60ms}.confetti-field span:nth-child(4){--i:7;animation-delay:.18s}.confetti-field span:nth-child(5){--i:9;animation-delay:20ms}.confetti-field span:nth-child(6){--i:11;animation-delay:.15s}.confetti-field span:nth-child(7){--i:13;animation-delay:80ms}.confetti-field span:nth-child(8){--i:15;animation-delay:.21s}.confetti-field span:nth-child(9){--i:17;animation-delay:.11s}.confetti-field span:nth-child(10){--i:2;animation-delay:.17s}.confetti-field span:nth-child(11){--i:4;animation-delay:50ms}.confetti-field span:nth-child(12){--i:6;animation-delay:.2s}.confetti-field span:nth-child(13){--i:8;animation-delay:90ms}.confetti-field span:nth-child(14){--i:10;animation-delay:.24s}.confetti-field span:nth-child(15){--i:12;animation-delay:.13s}.confetti-field span:nth-child(16){--i:14;animation-delay:30ms}.confetti-field span:nth-child(17){--i:16;animation-delay:.19s}.confetti-field span:nth-child(18){--i:18;animation-delay:70ms}@keyframes result-in{0%{opacity:0;transform:scale(.96)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes confetti-drop{0%{opacity:0;transform:translateY(-24px)rotate(0)}12%{opacity:1}to{opacity:0;transform:translateY(102vh)rotate(540deg)}}@media (width<=1080px){.app-shell{grid-template-rows:none;grid-template-columns:1fr;min-height:auto}.top-bar{grid-template-columns:1fr;align-items:stretch;display:grid}.command-actions{justify-self:stretch;width:100%}.difficulty-control,.parallel-control{grid-template-columns:1fr;align-items:flex-start;gap:8px}.parallel-picker{grid-template-columns:repeat(10,minmax(0,1fr));width:100%}.stats-panel{order:1}.play-surface{order:2}.turn-panel{order:3;max-height:none}.board-list{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.card-grid{min-height:0}}@media (width<=720px){.app-shell{gap:10px;padding:10px}.top-bar,.stats-panel,.play-surface,.turn-panel{padding:12px}.parallel-picker{grid-template-columns:repeat(5,minmax(0,1fr))}h1{font-size:20px}h2{font-size:22px}.command-actions{grid-template-columns:1fr}.card-grid{grid-template-columns:repeat(var(--mobile-board-columns), minmax(0, 1fr));grid-template-rows:none;gap:7px;max-width:100%;min-height:0}.playing-card{aspect-ratio:5/7}.corner strong{font-size:clamp(10px,3.4vw,16px)}.corner em{font-size:clamp(11px,3.6vw,18px)}.center-suit{font-size:clamp(20px,8vw,38px)}.result-backdrop{padding:10px}.result-modal{max-height:calc(100vh - 20px)}.result-header{align-items:flex-start}.result-rank{width:62px;height:62px}.result-rank strong{font-size:29px}.result-summary{gap:4px;display:grid}.result-grid,.result-actions{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
