@font-face{font-family:Bodoni Moda;font-style:normal;font-display:swap;font-weight:600;src:url(./bodoni-moda-latin-600-normal-DbXDFeqY.woff2) format("woff2"),url(./bodoni-moda-latin-600-normal-DgnCXU2s.woff) format("woff")}@font-face{font-family:Bodoni Moda;font-style:italic;font-display:swap;font-weight:700;src:url(./bodoni-moda-latin-700-italic-5ZJN59qX.woff2) format("woff2"),url(./bodoni-moda-latin-700-italic-NDgNjuOk.woff) format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(./figtree-latin-400-normal-g7Dtegnw.woff2) format("woff2"),url(./figtree-latin-400-normal-BD4aNku5.woff) format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(./figtree-latin-600-normal-Cv_xCTDl.woff2) format("woff2"),url(./figtree-latin-600-normal-BM_oTo4n.woff) format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:700;src:url(./figtree-latin-700-normal-th6qEP7c.woff2) format("woff2"),url(./figtree-latin-700-normal-BCCt2T1q.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(./jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff")}:root{color-scheme:dark;--felt: #12493a;--felt-deep: #0a2a21;--room: #081d17;--rail: #2a1810;--rail-hi: #5a3521;--chalk: #efe8d6;--chalk-dim: #a9bcb2;--chalk-faint: rgba(239, 232, 214, .18);--brass: #d6b25e;--brass-deep: #94742b;--panel: #0e2f26;--panel-line: rgba(214, 178, 94, .22);--good: #84d3a1;--warn: #efb84f;--bad: #ee7a62;--f-display: "Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;--f-body: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--s-xs: .75rem;--s-sm: .875rem;--s-md: 1rem;--s-lg: 1.25rem;--s-xl: 1.75rem;--s-2xl: clamp(2.6rem, 7vw, 4.6rem);--radius: 14px;--gutter: 16px;--card-gap: clamp(6px, 1.2vw, 12px);--card-w: min(98px, calc((100vw - 2 * var(--gutter) - 52px - 4 * var(--card-gap) - 14px) / 5))}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;background:radial-gradient(120% 80% at 50% 0%,#0f3a2e 0%,var(--room) 60%) fixed,var(--room);color:var(--chalk);font-family:var(--f-body);font-size:var(--s-md);line-height:1.5;-webkit-font-smoothing:antialiased}#root{min-height:100%}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:6px}h1,h2,h3{text-wrap:balance;margin:0}p{margin:0}.muted{color:var(--chalk-dim)}.eyebrow{font-size:var(--s-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45em;border:1px solid transparent;border-radius:999px;padding:.6em 1.2em;cursor:pointer;font-weight:600;transition:background-color .15s,border-color .15s,transform .1s,color .15s;-webkit-tap-highlight-color:transparent}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-brass{background:linear-gradient(180deg,#e6c674,var(--brass) 55%,var(--brass-deep));color:#1b1307;border-color:#f1d791;box-shadow:0 2px #5d4515,0 6px 16px #00000059}.btn-brass:hover{filter:brightness(1.06)}.btn-ghost{background:transparent;border-color:var(--panel-line);color:var(--chalk)}.btn-ghost:hover,.btn-ghost.is-on{border-color:var(--brass);color:var(--brass)}.btn-small{padding:.35em .9em;font-size:var(--s-sm)}.btn-icon{width:38px;height:38px;padding:0;background:transparent;border-color:var(--panel-line);color:var(--chalk)}.btn-icon:hover{border-color:var(--brass);color:var(--brass)}.btn-replay{background:var(--chalk);color:#10241d;letter-spacing:.08em;font-size:var(--s-sm);box-shadow:0 2px #9a9483}.btn-replay:hover{background:#fff8e6}.home{max-width:1080px;margin:0 auto;padding-inline:var(--gutter);padding-block:clamp(24px,6vh,64px) 48px;display:flex;flex-direction:column;gap:clamp(28px,6vh,56px)}.hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:center}.hero-text{display:flex;flex-direction:column;gap:18px;align-items:flex-start;min-width:0}.hero h1{font-family:var(--f-display);font-weight:600;font-size:var(--s-2xl);line-height:.95;letter-spacing:-.01em}.hero h1 em{font-style:italic;font-weight:700;color:var(--brass)}.hero-lede{max-width:52ch;color:var(--chalk-dim);font-size:1.05rem}.btn-play{font-family:var(--f-display);font-size:clamp(1.6rem,4vw,2.1rem);font-weight:700;letter-spacing:.14em;padding:.55em 2.2em;margin-top:6px;background:linear-gradient(180deg,#e9cb7c,var(--brass) 55%,var(--brass-deep));color:#1b1307;border:1px solid #f3dc9c;border-radius:999px;cursor:pointer;box-shadow:0 3px #5d4515,0 14px 34px #00000073,inset 0 1px #ffffff80}.hero-cards{display:flex;justify-content:center;padding:12px 0;--card-w: clamp(92px, 16vw, 150px)}.hero-cards .pcard+.pcard{margin-left:calc(var(--card-w) * -.32);margin-top:18px}.home-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px;align-items:start}.panel{background:linear-gradient(180deg,#12493a8c,#0a2a21b3);border:1px solid var(--panel-line);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:16px;min-width:0;transition:border-color .3s,box-shadow .3s}.panel.is-focused{border-color:var(--brass);box-shadow:0 0 0 3px #d6b25e2e}.panel h2{font-family:var(--f-display);font-size:var(--s-xl);font-weight:600}.settings-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label{font-weight:600;font-size:var(--s-sm)}.field-input{display:flex;align-items:center;gap:8px}.field input,.field select{width:100%;min-width:0;font:inherit;font-family:var(--f-mono);font-size:1.05rem;padding:.5em .7em;border-radius:10px;color:var(--chalk);background:#00000047;border:1px solid var(--chalk-faint)}.field select{font-family:var(--f-body);font-size:var(--s-md)}.field input[aria-invalid=true]{border-color:var(--bad)}.field-input span{color:var(--chalk-dim);font-family:var(--f-mono)}.field-help{font-size:var(--s-xs);color:var(--chalk-dim)}.field-range{opacity:.8;white-space:nowrap}.settings-actions{grid-column:1 / -1;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.saved-note{font-size:var(--s-xs);color:var(--chalk-dim)}.method ul{margin:0;padding-left:1.1em;display:flex;flex-direction:column;gap:10px;color:var(--chalk-dim);font-size:var(--s-sm)}.method strong{color:var(--chalk)}.game{min-height:100%;display:flex;flex-direction:column}.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-inline:var(--gutter);padding-block:10px;background:#081d17db;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--panel-line)}.brand{display:flex;align-items:center;gap:8px;background:none;border:0;cursor:pointer;padding:4px}.brand-mark{color:var(--brass);font-size:1.3rem;line-height:1}.brand-name{font-family:var(--f-display);font-weight:600;font-size:1.15rem}.steps{display:flex;gap:4px;list-style:none;margin:0;padding:0;font-size:var(--s-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:600}.steps li{padding:4px 9px;border-radius:999px;color:#efe8d666;border:1px solid transparent}.steps li.is-done{color:var(--chalk-dim)}.steps li.is-current{color:var(--brass);border-color:var(--panel-line);background:#d6b25e14}.topbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.chrono{display:grid;grid-template-columns:auto auto;align-items:baseline;column-gap:10px;margin-left:auto;padding:4px 14px;border-radius:12px;background:#00000059;border:1px solid var(--chalk-faint)}.chrono-label{font-size:var(--s-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--chalk-dim)}.chrono-value{font-family:var(--f-mono);font-weight:500;font-size:clamp(1.4rem,3.4vw,1.9rem);font-variant-numeric:tabular-nums;letter-spacing:.02em;transition:color .3s}.chrono-penalty{grid-column:1 / -1;justify-self:end;font-size:var(--s-xs);color:var(--warn);font-family:var(--f-mono)}.chrono.is-running .chrono-value{color:var(--chalk)}.chrono.is-running{animation:chrono-glow 2s ease-in-out infinite}.chrono-warn .chrono-value{color:var(--warn)!important}.chrono-danger .chrono-value{color:var(--bad)!important}.chrono.is-stopped .chrono-value{color:var(--brass)}@keyframes chrono-glow{0%,to{box-shadow:0 0 #d6b25e00}50%{box-shadow:0 0 0 3px #d6b25e24}}.game-body{flex:1;width:100%;max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start;padding-inline:var(--gutter);padding-block:18px 32px}.table-area{display:flex;flex-direction:column;gap:16px;min-width:0}.rail{border-radius:120px/90px;padding:12px;background:linear-gradient(180deg,var(--rail-hi),var(--rail) 45%,#1a0e09);box-shadow:0 20px 50px #0000008c,inset 0 2px #ffffff1f}.felt{position:relative;border-radius:108px/80px;padding:clamp(18px,3.5vw,34px) 14px clamp(16px,3vw,28px);background:radial-gradient(70% 60% at 50% 35%,rgba(255,255,255,.07),transparent 70%),radial-gradient(120% 100% at 50% 50%,var(--felt) 0%,var(--felt-deep) 100%);box-shadow:inset 0 0 40px #0000008c;display:flex;flex-direction:column;align-items:center;gap:clamp(18px,4vw,34px);overflow:hidden}.felt:before{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border-radius:100px/72px;border:1.5px dashed rgba(239,232,214,.13);pointer-events:none}.shoe{position:absolute;top:24px;right:clamp(28px,5vw,56px);display:flex;flex-direction:column;align-items:center;gap:2px}.shoe-stack{width:30px;height:42px;border-radius:4px;background:linear-gradient(135deg,#2b4c8c,#1c3366);box-shadow:2px 2px #e8e1cf,4px 4px #1c3366,5px 5px #e8e1cf,7px 7px 10px #0006}.shoe-count{margin-top:6px;font-family:var(--f-mono);font-size:var(--s-xs);color:var(--chalk-dim);font-variant-numeric:tabular-nums}.board{display:flex;gap:var(--card-gap);align-items:flex-start}.slot{display:flex;flex-direction:column;align-items:center;gap:6px}.slot-gap{margin-left:calc(var(--card-gap) * .6)}.slot-empty{display:block;width:var(--card-w);aspect-ratio:224 / 313;border-radius:7px;border:1.5px dashed rgba(239,232,214,.2);background:#0000001a}.slot-label{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:#efe8d661}.hand{display:flex;align-items:center;gap:14px}.hand-cards{display:flex;--card-w: min(108px, calc((100vw - 2 * var(--gutter)) * .24))}.hand-cards .pcard+.pcard{margin-left:calc(var(--card-w) * -.18)}.eye{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:52px;padding:8px 6px;border-radius:12px;cursor:pointer;background:#00000038;border:1px solid var(--chalk-faint);color:var(--chalk-dim)}.eye:hover:not(:disabled){color:var(--brass);border-color:var(--brass)}.eye.is-open{color:var(--warn);border-color:var(--warn)}.eye:disabled{opacity:.35;cursor:default}.eye-label{font-size:.68rem;font-family:var(--f-mono)}.pcard{width:var(--card-w);aspect-ratio:224 / 313;perspective:900px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.45));flex-shrink:0}.pcard-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d}.pcard-face{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:none;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-user-select:none;user-select:none}.pcard-back{transform:rotateY(180deg)}.mini-card{width:30px;height:auto;border-radius:3px;box-shadow:0 1px 3px #0006}.action-zone{min-height:120px}.status{display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px 0}.status-title{font-family:var(--f-display);font-size:var(--s-xl);font-style:italic;color:var(--chalk)}.countdown{width:min(340px,100%);height:6px;border-radius:3px;background:var(--chalk-faint);overflow:hidden}.countdown-fill{display:block;height:100%;background:var(--brass);transform-origin:left;animation-name:drain;animation-timing-function:linear;animation-fill-mode:both}@keyframes drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.answer{display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 0}.answer-label{font-weight:600;text-align:center}.answer-row{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;justify-content:center}.answer-field{position:relative}.answer-field input{width:9ch;font-family:var(--f-mono);font-size:2rem;font-variant-numeric:tabular-nums;text-align:right;padding:.2em 1.4em .2em .4em;border-radius:12px;background:#00000059;color:var(--chalk);border:1.5px solid var(--chalk-faint)}.answer-field input:focus{border-color:var(--brass);outline:none;box-shadow:0 0 0 3px #d6b25e33}.answer-unit{position:absolute;right:.6em;top:50%;transform:translateY(-50%);font-family:var(--f-mono);font-size:1.3rem;color:var(--chalk-dim)}.answer .btn-brass{font-size:1.1rem;padding-inline:1.6em}.answer-hint{font-size:var(--s-sm);color:var(--chalk-dim)}.answer-error{font-size:var(--s-sm);color:var(--bad)}.answer-locked{padding:18px;border:1px dashed var(--warn);border-radius:var(--radius);text-align:center;color:var(--warn)}.correction-wrap{display:flex;flex-direction:column;gap:12px}.next-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.next-bar .countdown{flex:1;min-width:120px}.next-label{font-size:var(--s-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--chalk-dim)}.correction{background:linear-gradient(180deg,#f3ecd9,#e8dfc6);color:#1d2a24;border-radius:var(--radius);padding:18px 20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 12px 30px #0006}.correction .eyebrow{color:#8a6a1f}.correction.made{text-align:center;align-items:center}.corr-title{font-family:var(--f-display);font-size:var(--s-xl)}.corr-sub{color:#4d5c55}.corr-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.corr-hand{font-size:var(--s-sm);color:#4d5c55}.corr-hand strong{color:#1d2a24}.verdict{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.verdict-tag{font-weight:700;padding:2px 12px;border-radius:999px;font-size:var(--s-sm)}.verdict-good .verdict-tag{background:#2f7a4d;color:#f3fff6}.verdict-close .verdict-tag{background:#b57a12;color:#fff8e8}.verdict-off .verdict-tag{background:#b2432d;color:#fff2ee}.verdict-detail{font-size:var(--s-xs);color:#4d5c55;font-variant-numeric:tabular-nums}.corr-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.corr-line{padding:8px 0;border-bottom:1px solid rgba(29,42,36,.12);display:flex;flex-direction:column;gap:6px}.corr-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.corr-label{font-weight:600}.corr-value{font-family:var(--f-mono);font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}.corr-note{font-size:var(--s-xs);color:#5c6a63}.corr-cards{display:flex;flex-wrap:wrap;gap:4px}.corr-strong .corr-label,.corr-strong .corr-value{color:#0f3b2d}.corr-muted .corr-label{color:#5c6a63;font-weight:500}.corr-summary{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.corr-summary div{background:#1d2a240f;border-radius:10px;padding:8px 10px;min-width:0}.corr-summary dt{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#5c6a63;font-weight:600}.corr-summary dd{margin:2px 0 0;font-family:var(--f-mono);font-size:1.05rem;font-variant-numeric:tabular-nums}.corr-summary .sum-total{background:#12493a;color:var(--chalk)}.corr-summary .sum-total dt{color:var(--brass)}.corr-summary .sum-total dd{font-size:1.5rem;font-weight:500}.final{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.final-hand{font-family:var(--f-display);font-size:clamp(1.6rem,4vw,2.2rem)}.final-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.final .correction{text-align:left;width:100%}.side-panel{position:sticky;top:84px;background:linear-gradient(180deg,#12493a80,#0a2a21bf);border:1px solid var(--panel-line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}.side-title{font-family:var(--f-display);font-size:var(--s-lg);font-weight:600}.score-block{position:relative;padding:10px 12px;border-radius:10px;border:1px solid var(--chalk-faint);display:flex;flex-direction:column;gap:6px;transition:border-color .25s,background-color .25s}.score-block.is-active{border-color:var(--brass);background:#d6b25e0f}.score-block h3{font-size:var(--s-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--brass)}.score-block dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:var(--s-sm)}.score-block dl div{display:contents}.score-block dt{color:var(--chalk-dim)}.score-block dd{margin:0;text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums}.score-empty{color:#efe8d659;font-size:var(--s-sm)}.score-made{font-size:var(--s-sm)}.score-final{font-family:var(--f-display);font-size:var(--s-lg)}.score-hits{margin:0;padding:0;list-style:none;font-size:var(--s-sm);color:var(--chalk-dim)}.pill{position:absolute;top:8px;right:10px;font-size:.68rem;font-weight:700;padding:1px 8px;border-radius:999px}.pill-good{background:#84d3a12e;color:var(--good)}.pill-close{background:#efb84f2e;color:var(--warn)}.pill-off{background:#ee7a622e;color:var(--bad)}.side-deck{font-size:var(--s-xs);color:var(--chalk-dim);font-family:var(--f-mono)}@media (max-width: 900px){.game-body{grid-template-columns:minmax(0,1fr)}.side-panel{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.side-title,.side-deck{grid-column:1 / -1}.hero,.home-grid{grid-template-columns:minmax(0,1fr)}.hero-cards{order:-1}}@media (max-width: 640px){:root{--gutter: 12px}.home{padding-inline:16px}.topbar{gap:8px;padding-inline:16px;padding-block:8px}.brand-name{display:none}.chrono{order:1;margin-left:auto;padding:2px 10px}.chrono-label{display:none}.chrono-value{font-size:1.35rem}.topbar-actions{order:2;margin-left:0;gap:6px}.btn-replay{padding:.5em .9em}.steps{order:3;width:100%;justify-content:center}.shoe{display:none}.verdict{align-items:flex-start}.rail{border-radius:48px;padding:7px}.felt{border-radius:42px;padding-inline:7px}.felt:before{border-radius:36px;top:6px;right:6px;bottom:6px;left:6px}.shoe{top:10px;right:14px;transform:scale(.8)}.game-body{padding-inline:16px}.side-panel{grid-template-columns:minmax(0,1fr)}.corr-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-form{grid-template-columns:minmax(0,1fr)}.correction{padding:14px}}@media (prefers-reduced-motion: reduce){.chrono.is-running{animation:none}}.next-bar-manual{justify-content:space-between;padding:6px 0}.next-bar-manual .btn-brass{font-size:1rem;padding-inline:1.4em}
