*,:before,:after{box-sizing:border-box}:root{--space-0:2px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--tap:44px;--pill-h:36px;--gutter:12px;--gap-controls:var(--space-2);--gap-control-card:var(--space-3);--gap-control-text:var(--space-2);--gap-label-chip:var(--space-1);--gap-chip-cards:var(--space-2);--gap-hand:clamp(6px, 1.5vw, 12px);--gap-region:var(--space-2);--gap-group:var(--space-4);--gap-danger:var(--space-4)}@media (height<=500px){:root{--pill-h:30px;--gap-region:var(--space-0);--gap-control-card:var(--space-2);--gap-control-text:var(--space-1)}}@media (width>=768px) and (height>=700px){:root{--pill-h:44px;--gutter:16px;--gap-region:var(--space-3)}}html,body{-webkit-text-size-adjust:100%;background:#1d3b2a;height:100%;margin:0;overflow:hidden}body{-webkit-tap-highlight-color:transparent;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,Times New Roman,serif}#root{height:100%}.app{height:100%;color:var(--ink-on-felt);background:radial-gradient(ellipse at 50% 45%, var(--felt-light) 0%, var(--felt) 55%, var(--felt-shadow) 100%);overflow:clip}.table{--card-w:clamp(46px, min(17vw, 12.5dvh), 118px);--back-w:calc(var(--card-w) * .52);--reach-x:min(38vw, 400px);--reach-y:34dvh;--side-w:clamp(76px, 22vw, 128px);--prompt-lines:1;--prompt-line:1.125rem;--button-h:44px;grid-template-columns:var(--side-w) minmax(0, 1fr) var(--side-w);height:100%;max-inline-size:1040px;padding:max(var(--space-2), env(safe-area-inset-top)) max(var(--gutter), env(safe-area-inset-right)) max(var(--gutter), env(safe-area-inset-bottom)) max(var(--gutter), env(safe-area-inset-left));gap:var(--gap-region);grid-template-rows:auto auto minmax(0,1fr) auto auto;grid-template-areas:"score score score""top top top""left center right""actions actions actions""bottom bottom bottom";margin-inline:auto;display:grid}.score-bar{justify-content:space-between;align-items:center;gap:var(--space-3);grid-area:score;display:flex}.score .tricks dd{min-width:3ch}.score .trump dd{place-items:center;min-width:1.1rem;display:grid}.score-target{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--ink-muted);margin:0;font-size:.8rem}.menu-sound{display:none}.brand{letter-spacing:.02em;color:var(--brass);margin:0;font-size:1.15rem;font-style:italic}.score{gap:16px;margin:0;display:flex}.score div{white-space:nowrap;align-items:baseline;gap:6px;display:flex}.score dt{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);font-size:.8rem}.score dd{margin:0;font-size:1.25rem;font-weight:700}@media (width<=520px){.table .brand{display:none}.score{flex:1;justify-content:space-between;gap:6px;min-width:0}.score div{gap:4px}.score dt{letter-spacing:.04em;font-size:.68rem}.score dd{font-size:1.1rem}.score-bar{gap:var(--space-3)}.score-target,.score-sound{display:none}.menu-sound{justify-content:center;align-items:center;gap:var(--space-2);display:inline-flex}}.button{border:1px solid var(--brass);min-height:44px;color:var(--ink-on-felt);font:inherit;cursor:pointer;background:0 0;border-radius:22px;padding:0 16px;font-size:.95rem}.button:active{background:#c9a45c33}.button:disabled{opacity:.45;cursor:default}.button-small{min-height:var(--pill-h);white-space:nowrap;padding:0 12px;font-size:.85rem;position:relative}.button-small:after{content:"";inset:calc((var(--pill-h) - var(--tap)) / 2) 0;position:absolute}.button-icon{padding:0 8px}.sound-icon{width:1.25rem;height:1.25rem;display:block}.score-controls{gap:var(--gap-controls);display:flex}.button:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.seat{justify-content:center;align-items:center;gap:var(--gap-chip-cards);flex-direction:column;min-width:0;display:flex}.seat-top{grid-area:top}.seat-left{grid-area:left}.seat-left .seat-label,.seat-right .seat-label{max-width:100%}.seat-left .seat-status,.seat-right .seat-status{min-height:2.3rem}.seat-left .status-chip,.seat-right .status-chip{white-space:normal}.seat-right{grid-area:right}.seat-bottom{grid-area:bottom}.seat-label{align-items:center;gap:var(--gap-label-chip);color:var(--ink-muted);text-align:center;flex-direction:column;margin:0;font-size:.85rem;display:flex}.seat-name{align-items:center;gap:5px;display:inline-flex}.monogram{width:1.35rem;height:1.35rem;color:var(--felt-shadow);border-radius:50%;flex:none;place-items:center;font-size:.75rem;font-weight:700;display:inline-grid}.seat-status{align-items:center;min-height:1.25rem;display:flex}.seat-cards{position:relative}.dealer-button{border:2px solid var(--felt-shadow);background:var(--brass);width:1.35rem;height:1.35rem;color:var(--felt-shadow);border-radius:50%;flex:none;place-items:center;font-size:.75rem;font-weight:700;display:inline-grid;box-shadow:0 1px 3px #0006}.chip{text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-radius:9px;padding:1px 7px;font-size:.7rem;font-weight:700;line-height:1rem}.status-chip{border:1px solid var(--ink-muted);color:var(--ink-on-felt)}.seat-active .seat-name{color:var(--ink-on-felt);text-decoration:underline;-webkit-text-decoration-color:var(--brass);text-decoration-color:var(--brass);text-underline-offset:4px;text-decoration-thickness:2px}.seat-out .backs{opacity:.35}.trump-icon{width:1.1rem;height:1.1rem;display:block}.card{filter:drop-shadow(0 2px 3px #00000059);flex:none;display:block}.backs{min-height:calc(var(--back-w) * 1.4);display:flex}.back-card{width:var(--back-w)}.seat-top .back-card+.back-card{margin-left:calc(var(--back-w) * -.62)}.seat-left .backs,.seat-right .backs{flex-direction:column}.seat-left .back-card+.back-card,.seat-right .back-card+.back-card{margin-top:calc(var(--back-w) * -1.12)}.center{flex-direction:column;grid-area:center;justify-content:center;align-items:center;gap:6px;min-width:0;display:flex;position:relative}.center-corner{align-items:center;gap:var(--gap-controls);flex-direction:row-reverse;display:flex;position:absolute;bottom:0;right:0}@media (width<=520px){.center{justify-content:flex-end}.center .center-flight{align-items:flex-end}.center-corner{top:var(--space-1);bottom:auto}.seat-left,.seat-right{padding-bottom:calc(var(--card-w) * .8 * .95 * .5);justify-content:flex-end}}.kitty{width:calc(var(--card-w) + 12px);height:calc(var(--card-w) * 1.4 + 12px);position:relative}.kitty-card,.upcard{width:var(--card-w);position:absolute}.kitty-card:first-child{top:0;left:0}.kitty-card:nth-child(2){top:4px;left:4px}.kitty-card:nth-child(3){top:8px;left:8px}.upcard{top:12px;left:12px}.center-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-muted);margin:0;font-size:.75rem}.hand{justify-content:center;gap:var(--gap-hand);min-height:calc(var(--card-w) * 1.4);display:flex}.hand-card{width:min(var(--card-w), calc((100vw - 2 * var(--gutter)) / var(--count,5) - var(--gap-hand)))}.hand-slot{background:0 0;border:none;padding:0;transition:transform .12s ease-out;display:block;position:relative}.hand-choice{cursor:pointer}.hand-choice:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:6px}.hand-choice.raised{transform:translateY(-12%)}.card-illegal{opacity:.45}.card-illegal .card,.seat-out .card,.trick-done .trick-slot:not(.trick-winner) .card,.peek-play:not(.peek-winner) .card{filter:none}.bower-badge{z-index:1;background:var(--brass);color:var(--felt-shadow);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:8px;padding:0 6px;font-size:.65rem;font-weight:700;position:absolute;top:-.55rem;left:50%;transform:translate(-50%)}.action-bar{justify-content:flex-end;align-items:center;gap:var(--gap-control-text);height:calc(var(--space-2) + var(--prompt-lines) * var(--prompt-line) + var(--gap-control-text) + var(--button-h));z-index:3;flex-direction:column;grid-area:actions;display:flex}.turn-prompt{min-height:calc(var(--prompt-lines) * var(--prompt-line));color:var(--ink-on-felt);text-align:center;flex:none;margin:0;font-size:.9rem;line-height:1.25}.action-panel{min-height:var(--button-h);flex:none;justify-content:center;display:flex}@media (width<=520px){.table{--prompt-lines:2}}.bid-panel{justify-content:center;align-items:center;gap:var(--gap-controls);flex-wrap:wrap;display:flex}.button-primary{background:var(--brass);color:var(--felt-shadow);font-weight:700}.button-primary:active{background:#b38f4a}.suit-button{align-items:center;gap:6px;display:inline-flex}.suit-button-icon{width:1rem;height:1rem}@media (width<=520px){.suit-button{padding:0 14px}.suit-button-icon{width:1.35rem;height:1.35rem}.suit-button-name{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.alone-toggle{padding-inline:var(--space-2);min-height:var(--button-h,44px);align-items:center;gap:6px;font-size:.95rem;display:inline-flex}.alone-toggle input{width:1.2rem;height:1.2rem;accent-color:var(--brass)}.dialog-backdrop{z-index:10;padding:var(--space-4);background:#0a140e99;place-items:center;display:grid;position:fixed;inset:0}@media (width<=520px){.dialog-backdrop-sheet{padding-bottom:max(var(--space-4), env(safe-area-inset-bottom));align-items:end}}.dialog{width:min(100%,360px);max-height:calc(100dvh - 2 * var(--space-4));border:1px solid var(--brass);background:var(--felt-shadow);color:var(--ink-on-felt);border-radius:14px;padding:20px;overflow-y:auto;box-shadow:0 12px 40px #00000080}.dialog-title{color:var(--brass);margin:0 0 8px;font-size:1.4rem;font-style:italic}.dialog-body p{margin:0 0 8px}.dialog-result{font-size:1.05rem}.dialog-score{color:var(--ink-muted)}.dialog-actions{justify-content:flex-end;gap:var(--gap-controls);margin-top:var(--space-4);display:flex}.highlights{border-collapse:collapse;width:100%}.highlights th,.highlights td{text-align:center;padding:4px 6px}.highlights th[scope=row]{text-align:left;color:var(--ink-muted);font-weight:400}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.home{justify-content:safe center;align-items:center;gap:var(--space-5);height:100%;padding:max(var(--space-5), env(safe-area-inset-top)) var(--space-5) max(var(--space-5), env(safe-area-inset-bottom));text-align:center;flex-direction:column;display:flex;overflow-y:auto}.home-hero,.home-actions,.home-primary{flex-direction:column;align-items:center;display:flex}.home-actions{gap:var(--space-5);width:100%}.home-primary{gap:var(--space-3);width:min(100%,280px)}.home-title{color:var(--brass);margin:0;font-size:clamp(2.4rem,10vw,4rem);font-style:italic}.home-tagline{margin:var(--space-2) 0 0;color:var(--ink-muted)}.home-button{width:100%;font-size:1.1rem}.trick{--trick-w:calc(var(--card-w) * .8);--trick-row:calc(var(--trick-w) * .95);grid-template-columns:repeat(3, calc(var(--trick-w) * 1.05));grid-template-rows:repeat(3, var(--trick-row));padding-block:calc((var(--trick-w) * 1.4 - var(--trick-row)) / 2);grid-template-areas:".top.""left.right"".bottom.";place-items:center;display:grid}.trick-slot{width:var(--trick-w)}.trick-top{grid-area:top}.trick-left{grid-area:left}.trick-right{grid-area:right}.trick-bottom{grid-area:bottom}.trick-card{width:100%}.trick-done .trick-slot:not(.trick-winner){opacity:.55}.trick-winner .trick-card{outline:2px solid var(--brass);outline-offset:2px;border-radius:6px}.app-dev{grid-template-columns:minmax(0,1fr) 320px;height:100%;display:grid}.app-dev .table{min-height:0}.dev-panel{border-left:1px solid var(--felt-light);background:#00000059;flex-direction:column;gap:8px;min-height:0;padding:12px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.85rem;display:flex}.dev-panel h2{color:var(--brass);margin:0;font-size:.9rem}.dev-status{color:var(--ink-muted);margin:0}.dev-buttons{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.dev-buttons .button{min-height:36px;padding:0 12px;font-size:.85rem}.dev-buttons .button:disabled{opacity:.4;cursor:default}.dev-toggle{align-items:center;gap:4px;display:flex}.dev-log{min-height:0;color:var(--ink-on-felt);flex:1;margin:0;padding-left:2.2em;overflow-y:auto}@media (width<=899px){html:has(.app-dev){height:auto;overflow:visible}html:has(.app-dev) body{height:auto;overflow:visible}html:has(.app-dev) #root{height:auto;overflow:visible}.app-dev{height:auto;display:block}.app-dev .table{height:100dvh}.dev-panel{border-left:none;border-top:1px solid var(--felt-light)}.dev-log{max-height:40dvh}}@media (height<=500px){.table{--card-w:clamp(40px, 14dvh, 80px);--button-h:36px}.center{gap:var(--space-3);flex-direction:row}.action-bar{height:calc(var(--prompt-lines) * var(--prompt-line) + var(--gap-control-text) + var(--button-h));margin-bottom:var(--gap-control-card)}.score-bar{padding-bottom:var(--space-1)}.home{gap:var(--space-6);flex-direction:row}.home-title{white-space:nowrap;font-size:clamp(2rem,12dvh,3rem)}.menu-groups{column-gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.menu-group-danger{grid-column:1/-1}.dialog:has(.menu-groups){width:min(100%,560px)}.trick{--trick-w:calc(var(--card-w) * .65);--trick-row:calc(var(--trick-w) * .75)}.seat-top,.seat-bottom{grid-template-columns:1fr auto 1fr;align-items:center;column-gap:10px;display:grid}.seat-top .seat-label,.seat-bottom .seat-label{grid-area:1/1;justify-self:end}.seat-top .seat-cards,.seat-bottom .seat-cards{grid-area:1/2}.brand{font-size:1rem}.button{min-height:36px}.button-small{min-height:var(--pill-h)}}.menu-groups{gap:var(--gap-group);flex-direction:column;display:flex}.menu-group+.menu-group{padding-top:var(--gap-group);border-top:1px solid #c9a45c40}.menu-heading{margin:0 0 var(--space-2);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);font-size:.75rem;font-weight:400}.menu-list{gap:var(--gap-controls);flex-direction:column;display:flex}.dialog-body .menu-note{color:var(--ink-muted);margin:0;font-size:.85rem}.peek{grid-template-columns:repeat(4,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.peek-play{text-align:center;flex-direction:column;align-items:center;gap:4px;font-size:.8rem;display:flex}.peek-card{width:100%;max-width:64px}.peek-play:not(.peek-winner) .peek-card{opacity:.7}.settings{max-width:560px;height:100%;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));margin:0 auto;overflow-y:auto}.settings-header{top:calc(-1 * max(16px, env(safe-area-inset-top)));z-index:1;justify-content:space-between;align-items:center;gap:var(--space-3);margin:calc(-1 * max(16px, env(safe-area-inset-top))) calc(-1 * var(--space-4)) var(--space-2);padding:max(16px, env(safe-area-inset-top)) var(--space-4) var(--space-2);background:var(--felt-shadow);display:flex;position:sticky;box-shadow:0 6px 12px -8px #0009}.settings-title{color:var(--brass);margin:0;font-size:1.8rem;font-style:italic}.settings-group{margin:0 0 var(--gap-group);padding:var(--space-4);border:1px solid #c9a45c66;border-radius:12px}.settings-group legend{color:var(--brass);padding:0 4px;font-size:1rem;font-weight:700}.settings-row{align-items:center;gap:var(--space-1) var(--space-3);margin-bottom:var(--space-4);grid-template-columns:9rem 1fr;display:grid}.settings-row-dependent{margin-left:var(--space-5);grid-template-columns:1fr 1fr}.settings-row .settings-detail{grid-column:1/-1}.settings-row select{appearance:none;min-height:var(--tap);padding:0 32px 0 var(--space-3);border:1px solid var(--brass);background:var(--felt-shadow) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23c9a45c' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 12px center / 12px 8px;color:var(--ink-on-felt);font:inherit;border-radius:8px}.settings-choice{align-items:flex-start;gap:10px;min-height:44px;padding:6px 0;display:flex}.settings-choice input{width:1.2rem;height:1.2rem;accent-color:var(--brass);flex:none;margin:2px 0 0}.settings-detail{color:var(--ink-muted);margin:2px 0 0;font-size:.85rem;display:block}.center-flight{z-index:2;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.flight-card{width:var(--card-w)}@keyframes fly-in{0%{transform:translate(calc(var(--dx) * var(--reach-x)), calc(var(--dy) * var(--reach-y))) scale(.8);opacity:.3}}@keyframes fly-out{to{transform:translate(calc(var(--dx) * var(--reach-x)), calc(var(--dy) * var(--reach-y))) scale(.5);opacity:0}}@keyframes flip{0%{transform:scaleX(.05)}}.fly-in{animation:fly-in var(--flight) cubic-bezier(.2, .7, .3, 1) backwards;animation-delay:calc(var(--step,0) * var(--deal-stagger))}.fly-out{animation:fly-out var(--flight) ease-in forwards}.flip{animation:flip var(--flip) ease-out}@media (prefers-reduced-motion:reduce){.fly-in,.fly-out,.flip{animation:none}}.hinted{box-shadow:0 0 0 3px var(--brass), 0 0 14px 2px #c9a45cb3}.hand-slot.hinted{border-radius:8px}.alone-toggle.hinted{border-radius:6px;padding:2px 6px}.hint-text{color:var(--brass)}.page-section p{margin:0 0 8px;line-height:1.45}.page-heading{color:var(--brass);margin:0 0 6px;font-size:1rem}.page-lede{color:var(--ink-muted);margin:4px 0 12px}.page a{color:var(--brass)}.rules-list{margin:0 0 8px;padding-left:1.3rem;line-height:1.45}.rules-list li+li{margin-top:4px}.rules-cards{gap:8px;margin:4px 0 8px;display:flex}.rules-card{width:min(64px,20vw)}.stats-scroll{margin-bottom:8px;overflow-x:auto}.stats-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.92rem}.stats-table th,.stats-table td{text-align:right;white-space:nowrap;border-bottom:1px solid #c9a45c40;padding:6px 4px}.stats-table th[scope=row]{white-space:normal;text-align:left;color:var(--ink-muted);font-weight:400}.stats-table thead th{color:var(--brass)}.home-links{justify-content:center;gap:var(--gap-controls);flex-wrap:wrap;max-width:360px;display:flex}.stats-reset{margin-top:var(--gap-danger)}.dialog-body .rules-list{text-align:left}.settings-group select:disabled,.settings-choice input:disabled+span{opacity:.55}.settings-group>.button-small{justify-self:start;margin-top:4px}.deck-preview{gap:8px;margin-top:4px;display:flex}.deck-preview-card{width:44px;height:auto}@media (width>=768px) and (height>=700px){.table{--card-w:clamp(46px, min(17vw, 14dvh), 128px);--side-w:160px;--button-h:48px;--prompt-line:1.3125rem}.score dt{font-size:.9rem}.score dd{font-size:1.5rem}.trump-icon,.score .trump dd{min-width:1.5rem}.trump-icon{width:1.5rem;height:1.5rem}.score-target{font-size:.9rem}.seat-label{font-size:1rem}.monogram,.dealer-button{width:1.6rem;height:1.6rem}.chip{font-size:.8rem}.turn-prompt{font-size:1.05rem}.button-small{font-size:.95rem}.home-primary{width:320px}.home-button{min-height:48px}.home-title{font-size:clamp(2.4rem,10vw,5rem)}.dialog{padding:var(--space-5)}}.app-dev .table{max-inline-size:none}
