:root{--felt-950:#041a13;--felt-900:#06231a;--felt-800:#0b3327;--felt-700:#0f4634;--felt-600:#14563f;--felt-500:#1c6a4e;--ivory:#f4ecd8;--ivory-soft:#e9dfc6;--ivory-dim:#c9bea3;--ivory-muted:#a89e86;--brass:#b8925a;--brass-bright:#e0c186;--brass-dim:#8a6b3d;--brass-glow:#e0c18629;--ink:#1b1a17;--suit-red:#a8322b;--good:#8fd3a7;--good-deep:#1f5f3d;--bad:#e79a8a;--bad-deep:#6b2a22;--warn:#e6c46b;--shadow:0 10px 30px #00000059;--radius:14px;--font-serif:"Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, "Times New Roman", serif;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--dur:.22s;--tap:52px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}body{background:radial-gradient(1200px 600px at 50% -10%, #1c6a4e8c, transparent 60%), radial-gradient(900px 500px at 100% 100%, #e0c18614, transparent 55%), var(--felt-900);color:var(--ivory);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-size:17px;line-height:1.45}a{color:var(--brass-bright);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:var(--font-serif);letter-spacing:.01em;color:var(--ivory);margin:0 0 .4em;font-weight:500}h1{font-size:clamp(1.8rem,4vw,2.6rem)}h2{font-size:clamp(1.3rem,3vw,1.7rem)}h3{font-size:1.1rem}p{margin:0 0 .8em}code,.mono{font-family:var(--font-mono);font-size:.95em}button,input,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--brass-bright);outline-offset:3px}.shell{flex-direction:column;min-height:100vh;display:flex}.shell__header{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10;background:#041a1399;border-bottom:1px solid #e0c1862e;justify-content:space-between;align-items:center;gap:16px;padding:14px clamp(14px,3vw,32px);display:flex;position:sticky;top:0}.wordmark{font-family:var(--font-serif);letter-spacing:.12em;text-transform:uppercase;color:var(--brass-bright);align-items:baseline;gap:8px;font-size:1.35rem;display:inline-flex}.wordmark:hover{text-decoration:none}.wordmark small{font-family:var(--font-sans);letter-spacing:.2em;color:var(--ivory-dim);font-size:.65rem}.nav{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.nav a{color:var(--ivory-soft);border-radius:999px;align-items:center;min-height:40px;padding:8px 12px;font-size:.95rem;display:inline-flex}.nav a:hover{background:var(--brass-glow);text-decoration:none}.shell__main{flex:1;width:min(1080px,100%);margin:0 auto;padding:clamp(16px,3vw,32px) clamp(14px,3vw,32px) 48px}.shell__footer{color:var(--ivory-muted);text-align:center;border-top:1px solid #e0c1861f;padding:18px clamp(14px,3vw,32px) 28px;font-size:.85rem}.panel{border-radius:var(--radius);box-shadow:var(--shadow);background:linear-gradient(#0f46348c,#0b3327bf);border:1px solid #e0c18638;padding:clamp(16px,3vw,26px)}.panel--tight{padding:14px 16px}.panel+.panel{margin-top:18px}.stack{flex-direction:column;gap:14px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row--between{justify-content:space-between}.grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.muted{color:var(--ivory-dim)}.small{font-size:.9rem}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin-bottom:6px;font-size:.75rem}.hr{border:0;border-top:1px solid #e0c1862e;margin:16px 0}.btn{min-height:var(--tap);min-width:var(--tap);color:var(--ivory);cursor:pointer;transition:background var(--dur), transform var(--dur), border-color var(--dur);touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#e0c18614;border:1px solid #e0c18659;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:1.02rem;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--brass-bright);background:#e0c18629}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:linear-gradient(180deg, var(--brass-bright), var(--brass));color:var(--ink);border-color:var(--brass-bright);font-weight:600}.btn--primary:hover:not(:disabled){background:linear-gradient(180deg, #ecd3a0, var(--brass-bright))}.btn--ghost{background:0 0;border-color:#e0c18633}.btn--danger{color:var(--bad);border-color:#e79a8a80}.btn--big{min-height:64px;padding:12px 24px;font-size:1.25rem}.btn--good{background:#8fd3a724;border-color:#8fd3a780}.btn--bad{background:#e79a8a1f;border-color:#e79a8a80}.btn__key{font-family:var(--font-mono);color:var(--ivory-muted);border:1px solid #e0c18640;border-radius:5px;padding:1px 5px;font-size:.7rem;line-height:1.2}.btn--primary .btn__key{color:#1b1a17b3;border-color:#1b1a174d}.seg{background:#041a1366;border:1px solid #e0c1864d;border-radius:12px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.seg button{min-height:46px;color:var(--ivory-soft);cursor:pointer;background:0 0;border:0;flex:auto;padding:8px 16px}.seg button+button{border-left:1px solid #e0c18633}.seg button[aria-pressed=true]{background:var(--brass-bright);color:var(--ink);font-weight:600}.field{flex-direction:column;gap:6px;display:flex}.field__label{color:var(--ivory-dim);font-size:.9rem}.field input[type=text],.field input[type=number],.field select{min-height:48px;color:var(--ivory);background:#041a1380;border:1px solid #e0c1864d;border-radius:10px;width:100%;padding:8px 12px}.field input[type=range]{width:100%;accent-color:var(--brass-bright);min-height:40px}.toggle{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:8px 0;display:flex}.toggle input{width:26px;height:26px;accent-color:var(--brass-bright)}.card{--card-w:112px;width:var(--card-w);aspect-ratio:5/7;border-radius:calc(var(--card-w) * .09);perspective:800px;flex:none;position:relative}.card--lg{--card-w:clamp(140px, 34vw, 200px)}.card--md{--card-w:clamp(84px, 18vw, 118px)}.card--sm{--card-w:60px}.card__inner{transform-style:preserve-3d;transition:transform var(--dur) ease;position:absolute;inset:0}.card--down .card__inner{transform:rotateY(180deg)}.card__face,.card__back{border-radius:inherit;backface-visibility:hidden;position:absolute;inset:0;box-shadow:0 4px 12px #0006,inset 0 0 0 1px #00000014}.card__face{background:linear-gradient(160deg, #faf4e4, var(--ivory));color:var(--ink);padding:calc(var(--card-w) * .07);grid-template-rows:auto 1fr auto;display:grid}.card__face--red{color:var(--suit-red)}.card__corner{font-family:var(--font-serif);font-weight:600;font-size:calc(var(--card-w) * .22);flex-direction:column;align-items:center;width:max-content;line-height:1;display:flex}.card__corner small{font-size:calc(var(--card-w) * .16)}.card__corner--bottom{justify-self:end;transform:rotate(180deg)}.card__pip{font-size:calc(var(--card-w) * .5);place-self:center;line-height:1}.card__back{background:repeating-linear-gradient(45deg, #e0c1861f 0 6px, transparent 6px 12px), linear-gradient(160deg, var(--felt-600), var(--felt-800));border:calc(var(--card-w) * .05) solid var(--ivory);transform:rotateY(180deg)}.card--placeholder{border-radius:calc(var(--card-w) * .09);border:2px dashed #e0c18640}.card--enter .card__inner{animation:card-enter var(--dur) ease-out}@keyframes card-enter{0%{opacity:0;transform:translateY(-10px)scale(.96)}to{opacity:1;transform:none}}.card-row{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.card-stage{justify-content:center;align-items:center;min-height:240px;padding:18px 0;display:flex}.pad{gap:10px;display:grid}.pad--tags{grid-template-columns:repeat(3,minmax(0,1fr))}.pad--numbers{grid-template-columns:repeat(3,minmax(0,1fr));max-width:360px}.pad--decks{grid-template-columns:repeat(4,minmax(0,1fr))}.pad .btn{min-height:60px;font-size:1.35rem;font-family:var(--font-serif)}.pad__display{font-family:var(--font-mono);text-align:right;background:#041a1399;border:1px solid #e0c18640;border-radius:10px;grid-column:1/-1;min-height:60px;padding:8px 14px;font-size:2rem}@media (min-width:600px){.pad--tags{grid-template-columns:repeat(6,minmax(0,1fr))}}.session-bar{background:#041a1380;border:1px solid #e0c1862e;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;display:flex}.session-bar__status{font-variant-numeric:tabular-nums;color:var(--ivory-dim)}.paused-overlay{color:var(--warn);text-align:center;background:#e6c46b1a;border:1px solid #e6c46b66;border-radius:12px;margin:12px 0;padding:14px}.feedback{border:1px solid;border-radius:12px;margin:8px 0;padding:12px 14px}.feedback--ok{background:#8fd3a71a;border-color:#8fd3a766}.feedback--miss{background:#e79a8a1a;border-color:#e79a8a73}.feedback__title{font-weight:600}.count-panel{flex-wrap:wrap;gap:14px;display:flex}.count-tile{background:#041a1380;border:1px solid #e0c1862e;border-radius:12px;flex:140px;padding:10px 14px}.count-tile__label{letter-spacing:.14em;text-transform:uppercase;color:var(--brass);font-size:.75rem}.count-tile__value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.6rem}.count-tile__sub{color:var(--ivory-dim);font-size:.85rem}.table{background:radial-gradient(600px 300px at 50% 0%, #1c6a4e80, transparent 70%), var(--felt-800);border:2px solid #e0c1864d;border-radius:18px;padding:clamp(14px,3vw,28px)}.table__seats{grid-template-columns:1fr 1fr;gap:18px;display:grid}.seat__label{font-family:var(--font-serif);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);justify-content:space-between;margin-bottom:8px;font-size:.85rem;display:flex}.seat__total{font-family:var(--font-mono);color:var(--ivory)}.banner{background:var(--brass-glow);border:1px solid #e0c18666;border-radius:10px;margin:12px 0;padding:10px 14px}.result-line{font-family:var(--font-serif);margin:10px 0;font-size:1.3rem}.result-line--hit{color:var(--brass-bright)}.stat-tiles{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;display:grid}.stat-tile{background:#041a1380;border:1px solid #e0c1862e;border-radius:12px;padding:12px 14px}.stat-tile__value{font-family:var(--font-serif);font-size:1.8rem}.stat-tile__label{color:var(--ivory-dim);font-size:.8rem}.attempt-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.attempt-list li{border-left:4px solid var(--good-deep);background:#041a1366;border-radius:10px;padding:8px 12px;font-size:.95rem}.attempt-list li.miss{border-left-color:var(--bad)}.mode-card{color:var(--ivory);min-height:160px;transition:transform var(--dur), border-color var(--dur);flex-direction:column;gap:8px;display:flex}.mode-card:hover{border-color:var(--brass-bright);text-decoration:none;transform:translateY(-2px)}.mode-card__num{font-family:var(--font-serif);color:var(--brass);letter-spacing:.2em;font-size:.9rem}.mode-card h2{margin:0}.mode-card p{color:var(--ivory-dim);margin:0}.tag-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.tag-table th,.tag-table td{text-align:center;border-bottom:1px solid #e0c18626;padding:8px 10px}.tag-table th:first-child,.tag-table td:first-child{text-align:left}.notice{color:var(--warn);background:#e6c46b1f;border:1px solid #e6c46b66;border-radius:10px;margin-bottom:14px;padding:10px 14px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.progress-track{background:#041a1399;border:1px solid #e0c18633;border-radius:999px;height:8px;overflow:hidden}.progress-track>div{background:linear-gradient(90deg, var(--brass), var(--brass-bright));height:100%;transition:width var(--dur)}.shoe-visual{align-items:flex-end;gap:4px;height:36px;display:flex}.shoe-visual span{background:#e0c18640;border-radius:3px;flex:1}.shoe-visual span.seen{background:var(--brass-bright)}@media (prefers-reduced-motion:reduce){:root[data-motion=system]{--dur:0s}}:root[data-motion=reduced]{--dur:0s}:root[data-motion=reduced] .card--enter .card__inner,:root[data-motion=system] .card--enter .card__inner{animation-duration:var(--dur)}@media (max-width:560px){body{font-size:16px}.shell__header{flex-direction:column;align-items:flex-start;gap:6px;padding:10px 14px;position:static}.nav{justify-content:flex-start}.nav a{min-height:36px;padding:6px 10px;font-size:.9rem}.table__seats{grid-template-columns:1fr}}
