/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.\!hidden{display:none!important}.hidden{display:none}.table{display:table}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--ink:#07141f;--ink-2:#0f1e2e;--felt:#123d31;--felt-deep:#0b2b23;--oxblood:#6b1f2e;--cream:#f3e9d6;--paper:#f7eedc;--brass:#c8a15a;--brass-light:#f1d28d;--walnut:#4a3226;--red:#a72d36;--shadow:0 18px 50px #00000061}*{box-sizing:border-box}html{background:var(--ink);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--ink);color:var(--cream);font-family:var(--font-geist-sans), system-ui, sans-serif;margin:0}button,select,input{font:inherit}button{color:inherit}button:focus-visible,select:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #ffe19a}button{cursor:pointer}button:disabled{cursor:default}.home-shell{background:linear-gradient(90deg,#061019f5,#0610199e 45%,#061019e0),url(/assets/backgrounds/table-room-desktop.png) 50%/cover;grid-template-rows:1fr auto;min-height:100svh;padding:clamp(24px,5vw,68px);display:grid}.club-card{text-align:center;width:min(490px,100%);box-shadow:var(--shadow), inset 0 0 0 6px #c8a15a0f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#05111ce0;border:1px solid #c8a15aa8;border-radius:3px;place-self:center start;padding:30px 38px 34px}.logo{justify-content:center;height:238px;display:flex;overflow:hidden}.logo img{object-fit:contain;object-position:top;filter:drop-shadow(0 8px 22px #00000040);width:178px;height:385px}.logo.compact{justify-content:flex-start;align-items:center;gap:8px;width:178px;height:58px}.logo.compact img{width:68px;height:148px}.logo.compact span{color:#efd6a3;text-transform:uppercase;letter-spacing:.07em;font:18px/1 Georgia,serif}.tagline{color:#dbc59b;margin:-2px 0 22px;font-family:Georgia,serif;font-size:18px}.primary,.secondary,.suit-button,.header-actions button,.text-button{border-radius:4px;min-height:46px;transition:transform .18s,filter .18s,border-color .18s}.primary{color:#201507;background:linear-gradient(#e2b85f,#bd8b36);border:1px solid #f4d38b;font-family:Georgia,serif;font-weight:700;box-shadow:inset 0 0 0 2px #ffffff2e,0 6px 16px #00000040}.primary:hover{filter:brightness(1.08);transform:translateY(-1px)}.secondary,.suit-button,.header-actions button{color:var(--cream);background:#071621d1;border:1px solid #c8a15a9e}.secondary:hover,.suit-button:hover,.header-actions button:hover{border-color:var(--brass-light);background:#132738}.deal-button{width:100%;min-height:58px;color:var(--cream);border-color:var(--brass);background:linear-gradient(#7f2938,#571521);font-size:25px}.text-button{color:var(--brass-light);text-underline-offset:4px;background:0 0;border:0;text-decoration:underline}.resume{margin:7px 0 -2px}.quick-choices{border:1px solid #c8a15a6b;margin-top:24px}.select-row{color:#d9c8a7;text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;align-items:center;gap:20px;min-height:50px;padding:0 14px;font-size:12px;display:flex}.select-row+.select-row{border-top:1px solid #c8a15a4d}.select-row select{min-height:38px;color:var(--cream);text-transform:none;letter-spacing:0;text-align:right;background:0 0;border:0}.home-actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;display:grid}.credit{color:#d0ba90;letter-spacing:.035em;padding:22px 12px max(8px, env(safe-area-inset-bottom));opacity:.86;justify-content:center;align-items:center;gap:9px;font-family:Georgia,serif;font-size:12px;display:flex}.credit img{object-fit:contain;width:22px;height:22px}.game-shell{background:radial-gradient(circle at 50% 0, #13283a 0, var(--ink) 58%);min-height:100svh;padding:14px clamp(12px,2vw,30px) 0}.game-header{grid-template-columns:1fr auto 1fr;align-items:center;max-width:1440px;height:64px;margin:auto;display:grid}.header-actions{justify-self:end;gap:8px;display:flex}.header-actions button{min-height:40px;padding:0 16px}.scoreboard{border:1px solid var(--brass);background:#07141e;grid-template-columns:1fr auto 1fr;align-items:stretch;min-width:310px;display:grid;box-shadow:0 5px 20px #00000040}.scoreboard>div{text-transform:uppercase;letter-spacing:.12em;background:linear-gradient(90deg,#133b5b,#10283c);justify-content:space-between;align-items:center;gap:22px;padding:6px 15px;font-size:11px;display:flex}.scoreboard .them{background:linear-gradient(90deg,#3d1720,#6b1f2e)}.scoreboard b{color:#fff0cc;font:30px/1 Georgia,serif}.scoreboard em{color:#d6bb87;text-transform:uppercase;letter-spacing:.12em;align-self:center;padding:0 14px;font-size:10px;font-style:normal}.table-frame{border:1px solid var(--brass);width:min(1440px,100%);height:min(740px,100svh - 120px);min-height:610px;box-shadow:var(--shadow), inset 0 0 0 2px #f6d38c24;background:url(/assets/backgrounds/table-room-desktop.png) 50%/cover no-repeat;border-radius:44%/9%;margin:auto;position:relative;overflow:hidden}.table-frame:after{content:"";pointer-events:none;border:1px solid #c8a15a38;border-radius:45%;position:absolute;inset:12%}.status-panel{z-index:4;background:#051419d1;border:1px solid #c8a15aa3;grid-template-columns:1fr 1fr;gap:8px 12px;width:240px;margin:0;padding:10px 13px;display:grid;position:absolute;top:22px;right:28px}.status-panel div{min-width:0}.status-panel dt{color:var(--brass);text-transform:uppercase;letter-spacing:.13em;font-size:9px}.status-panel dd{white-space:nowrap;text-overflow:ellipsis;text-transform:capitalize;margin:2px 0 0;font-size:12px;overflow:hidden}.red-ink{color:#dc424d}.seat{z-index:5;color:#f8e8c7;align-items:center;gap:10px;display:flex;position:absolute}.seat-2{flex-direction:column;gap:3px;top:24px;left:50%;transform:translate(-50%)}.seat-1{top:46%;left:24px;transform:translateY(-50%)}.seat-3{flex-direction:row-reverse;top:46%;right:24px;transform:translateY(-50%)}.seat-0{bottom:18px;left:24px}.portrait-wrap{border:2px solid var(--brass);background:#10202a;border-radius:50%;width:80px;height:80px;padding:3px;position:relative;box-shadow:0 7px 18px #0006}.portrait-wrap img{object-fit:cover;border-radius:50%;width:100%;height:100%}.you-avatar{height:100%;color:var(--brass-light);background:linear-gradient(135deg,#28465c,#0b1c28);border-radius:50%;place-items:center;font:34px Georgia,serif;display:grid}.seat-copy{text-align:center;background:#06121ae0;border:1px solid #c8a15a9e;flex-direction:column;min-width:80px;padding:5px 9px;display:flex;box-shadow:0 4px 10px #0000004d}.seat-copy strong{font-family:Georgia,serif}.seat-copy span{color:#bba982;text-transform:uppercase;letter-spacing:.09em;font-size:9px}.seat-2 .seat-copy{margin-top:-12px}.seat-2 .mini-hand{display:none}.dealer-chip{background:var(--brass);color:#1a1209;border:2px solid #f0d79f;border-radius:50%;place-items:center;width:25px;height:25px;font:700 12px Georgia,serif;display:grid;position:absolute;top:-7px;right:-7px}.seat.is-turn .portrait-wrap{box-shadow:0 0 0 4px #f8d58638,0 0 28px #ecbe5ca8}.seat.sitting-out{opacity:.5;filter:grayscale(.7)}.mini-hand{z-index:-1;margin-left:-28px;display:flex}.seat-3 .mini-hand{margin-left:0;margin-right:-28px}.mini-hand span{width:25px;height:48px;transform:rotate(calc((var(--i,0) - 2) * 5deg));background:url(/assets/cards/card-back.png) 50%/cover;border:1px solid #a88248;border-radius:4px;margin-left:-16px;display:block}.trick-area{z-index:3;background:#052e259e;border:1px solid #c8a15aa8;border-radius:10px;flex-direction:column;display:flex;position:absolute;inset:19% 25% 33%;box-shadow:inset 0 0 26px #00000038}.trick-panes{flex:1;grid-template-columns:1fr 1fr;min-height:0;display:grid}.trick-panes>section{flex-direction:column;min-width:0;display:flex}.trick-panes>section+section{border-left:1px solid #c8a15a4d}.trick-heading{border-bottom:1px solid #c8a15a3d;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.trick-heading span{color:var(--brass);text-transform:uppercase;letter-spacing:.12em;font-size:10px}.trick-heading strong{color:#e6d8ba;font-size:12px;font-weight:500}.played-cards{flex:1;min-height:170px;position:relative}.previous-cards{flex:1;justify-content:center;align-items:center;padding:10px;display:flex}.previous-cards span{color:#171b1e;background:#f6edd9;border:1px solid #d6c39d;border-radius:4px;flex-direction:column;justify-content:flex-start;align-items:center;width:48px;height:72px;margin-left:-5px;padding-top:5px;font:16px/1 Georgia,serif;display:flex;box-shadow:0 4px 9px #0003}.previous-cards span.red{color:var(--red)}.played{color:#ddcda9;flex-direction:column;align-items:center;gap:3px;font-size:9px;display:flex;position:absolute}.seat-play-0{bottom:2%;left:50%;transform:translate(-50%)}.seat-play-1{top:50%;left:22%;transform:translateY(-50%)rotate(7deg)}.seat-play-2{top:4%;left:50%;transform:translate(-50%)rotate(-2deg)}.seat-play-3{top:50%;right:22%;transform:translateY(-50%)rotate(-6deg)}.empty-trick{color:#f1ddb48c;place-items:center;font-family:Georgia,serif;display:grid;position:absolute;inset:0}.trick-count{color:#c5b38d;text-transform:uppercase;letter-spacing:.08em;border-top:1px solid #c8a15a38;justify-content:center;gap:30px;padding:7px;font-size:11px;display:flex}.trick-count b{color:var(--cream);font-size:17px}.upcard-panel{z-index:4;color:#cdb985;text-transform:uppercase;letter-spacing:.1em;flex-direction:column;align-items:center;gap:5px;font-size:9px;display:flex;position:absolute;top:26%;left:18%}.playing-card{color:#15191c;text-align:left;background:#f6edd9;border:1px solid #d4c19e;border-radius:7px;width:106px;height:154px;padding:0;display:block;position:relative;overflow:hidden;box-shadow:0 5px 14px #0000004d}.playing-card.red{color:var(--red)}.playing-card.small{border-radius:5px;width:64px;height:92px}.playing-card.playable{border:3px solid #f4d78d;transform:translateY(-11px);box-shadow:0 0 0 3px #072021a6,0 8px 22px #0000006b}.playing-card.playable:hover{transform:translateY(-18px)}.playing-card:disabled{opacity:.76}.card-corner{z-index:2;flex-direction:column;align-items:center;font:17px/15px Georgia,serif;display:flex;position:absolute;top:5px;left:6px}.card-corner i{font-size:15px;font-style:normal}.card-corner.bottom{inset:auto 6px 5px auto;transform:rotate(180deg)}.small .card-corner{font-size:12px;line-height:10px;top:3px;left:4px}.small .card-corner i{font-size:10px}.small .card-corner.bottom{inset:auto 4px 3px auto}.court-art{filter:saturate(.8)contrast(1.05);mix-blend-mode:multiply;background-position:50%;background-size:cover;position:absolute;inset:21px 13px}.small .court-art{inset:14px 8px}.pip{opacity:.86;place-items:center;font:52px Georgia,serif;display:grid;position:absolute;inset:0}.small .pip{font-size:32px}.human-hand{z-index:8;justify-content:center;align-items:flex-end;width:min(620px,53%);height:210px;display:flex;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.hand-card{transform:rotate(calc((var(--i) - 2) * 3deg)) translateY(calc(abs(var(--i) - 2) * 3px));transform-origin:50% 120%;margin-left:-20px}.hand-card:first-child{margin-left:0}.size-compact .playing-card{width:92px;height:134px}.size-large .playing-card{width:116px;height:168px}.waiting,.bid-controls{z-index:9;background:#06151beb;border:1px solid #c8a15ab8;width:250px;padding:12px;position:absolute;bottom:26px;right:24px;box-shadow:0 8px 24px #00000059}.waiting{color:#decda8;text-align:center;font-family:Georgia,serif}.bid-copy{justify-content:space-between;align-items:center;margin-bottom:9px;display:flex}.bid-copy span{color:var(--brass);text-transform:uppercase;letter-spacing:.12em;font-size:9px}.bid-copy strong{text-transform:capitalize;font:16px Georgia,serif}.alone-toggle{color:#d7c8aa;align-items:center;gap:7px;min-height:34px;font-size:12px;display:flex}.action-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.action-grid button{text-transform:capitalize;min-height:42px;padding:5px 8px}.bid-controls .text-button{width:100%;font-size:11px}.live-region{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.dialog-backdrop{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#02080cc2;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.summary-card,.info-dialog,.settings-dialog{border:1px solid var(--brass);width:min(560px,100%);max-height:calc(100svh - 36px);box-shadow:var(--shadow), inset 0 0 0 5px #c8a15a0f;background:linear-gradient(145deg,#0c1e2d,#07141f);padding:30px;position:relative;overflow:auto}.eyebrow{color:var(--brass);text-transform:uppercase;letter-spacing:.16em;font-size:10px}.summary-card h2,.info-dialog h2,.settings-dialog h2{color:#f3dfb4;margin:7px 0 12px;font:42px/1 Georgia,serif}.summary-card p,.info-dialog p,.info-dialog li{color:#cfc0a1;line-height:1.65}.summary-tricks{gap:12px;margin:20px 0;display:flex}.summary-tricks span{text-align:center;border:1px solid #c8a15a59;flex:1;padding:12px}.summary-tricks b{color:#f4d68d;font:28px Georgia,serif;display:block}.summary-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.dialog-close{width:44px;height:44px;color:var(--cream);background:0 0;border:1px solid #c8a15a80;font-size:26px;position:absolute;top:16px;right:16px}.info-dialog ol{padding-left:22px}.info-dialog .primary{width:100%;margin-top:14px}.settings-dialog{width:min(920px,100%)}.settings-dialog>header{justify-content:space-between;display:flex}.settings-dialog>header .dialog-close{position:static}.settings-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.settings-grid fieldset{border:1px solid #c8a15a57;min-width:0;margin:0;padding:14px}.settings-grid legend{color:var(--brass-light);padding:0 8px;font:18px Georgia,serif}.settings-grid .select-row{border:0;padding:0}.toggle-row{border-top:1px solid #c8a15a29;justify-content:space-between;align-items:flex-start;gap:16px;min-height:50px;padding:9px 0;display:flex}.toggle-row span{flex-direction:column;gap:3px;display:flex}.toggle-row b{font-size:13px}.toggle-row small,.applies{color:#aa9d84;font-size:10px;line-height:1.4}.toggle-row input{width:20px;height:20px;accent-color:var(--brass)}.range-row{border-top:1px solid #c8a15a29;justify-content:space-between;align-items:center;gap:16px;min-height:46px;display:flex}.range-row input{accent-color:var(--brass)}.save-settings{width:100%;margin-top:16px}.loading-screen{background:var(--ink);color:#cfbd98;align-content:center;place-items:center;gap:12px;min-height:100svh;display:grid}@media (width<=900px){.game-shell{padding:8px 6px 0}.game-header{grid-template-columns:auto 1fr auto;gap:6px;height:56px}.game-header .logo{width:42px}.scoreboard{min-width:230px}.scoreboard>div{gap:8px;padding:5px 9px}.scoreboard em{padding:0 7px}.header-actions button{width:44px;min-height:44px;padding:0 8px;font-size:0}.header-actions button:first-letter{font-size:15px}.table-frame{background-image:url(/assets/backgrounds/table-room-mobile.png);background-size:cover;border-radius:26px;height:710px;min-height:710px}.status-panel{grid-template-columns:repeat(4,1fr);width:auto;top:12px;left:12px;right:12px}.seat-2{top:86px}.seat-1{top:210px;left:9px;transform:none}.seat-3{top:210px;right:9px;transform:none}.seat-0{display:none}.portrait-wrap{width:55px;height:55px}.seat-copy{min-width:62px;padding:3px 5px;font-size:11px}.mini-hand{display:none}.trick-area{height:250px;inset:205px 12px auto}.upcard-panel{top:370px;left:18px}.human-hand{width:100%;height:180px;bottom:122px}.playing-card{width:82px;height:124px}.hand-card{margin-left:-19px}.size-large .playing-card{width:88px;height:132px}.size-compact .playing-card{width:72px;height:110px}.waiting,.bid-controls{width:auto;bottom:10px;left:10px;right:10px}.settings-grid{grid-template-columns:1fr}}@media (width<=520px){.home-shell{background-image:linear-gradient(#051019bf,#051019ed),url(/assets/backgrounds/table-room-mobile.png);padding:18px 12px 0}.club-card{align-self:start;margin-top:5px;padding:18px 18px 22px}.logo{height:190px}.logo img{width:145px;height:314px}.tagline{font-size:16px}.game-header .logo{display:none}.game-header{grid-template-columns:1fr auto}.scoreboard{justify-self:stretch;min-width:0}.header-actions button{width:44px}.table-frame{height:710px;min-height:710px}.status-panel{gap:5px;padding:8px}.status-panel dt{font-size:7px}.status-panel dd{font-size:9px}.seat-1,.seat-3{flex-direction:column;gap:2px;top:196px}.seat-2{top:78px}.seat-copy{margin-top:-8px}.trick-area{height:205px;top:286px}.trick-heading{padding:7px 9px}.trick-heading strong{font-size:10px}.previous-cards{padding:5px 2px}.previous-cards span{width:31px;height:48px;margin-left:-4px;padding-top:3px;font-size:12px}.played-cards{min-height:130px}.upcard-panel{display:none}.human-hand{bottom:116px}.playing-card{width:72px;height:112px}.card-corner{font-size:14px;line-height:12px}.court-art{inset:17px 9px}.hand-card{margin-left:-17px}.settings-dialog,.info-dialog,.summary-card{padding:24px 18px}.summary-card h2,.info-dialog h2,.settings-dialog h2{font-size:34px}.summary-actions{grid-template-columns:1fr}.credit{padding-top:14px;font-size:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
