@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2)format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff)format("woff")}:root{--preferans-green:#123d36;--preferans-ivory:#f4eedc;--preferans-vermilion:#d9583b;--preferans-gold:#c5a45d;--preferans-ink:#17201e;--preferans-sage:#9eaea7;--preferans-bg:var(--preferans-ivory);--preferans-surface:#fff;--preferans-table:var(--preferans-green);--preferans-text:var(--preferans-ink);--preferans-text-muted:#65736e;--preferans-primary:var(--preferans-green);--preferans-action:var(--preferans-vermilion);--preferans-highlight:var(--preferans-gold);--preferans-focus:#2f7f70;--preferans-success:#257a52;--preferans-success-on-dark:#64c994;--preferans-failure:#b83246;--preferans-failure-on-dark:#ff9ba5;--preferans-border:#17201e29;--preferans-radius-sm:.5rem;--preferans-radius-md:.875rem;--preferans-radius-lg:1.5rem;--preferans-shadow:0 12px 32px #17201e24}@media (prefers-color-scheme:dark){:root{--preferans-bg:#0d2925;--preferans-surface:#123d36;--preferans-text:#f4eedc;--preferans-text-muted:#b9c5c0;--preferans-border:#f4eedc2e}}:focus-visible{outline:3px solid var(--preferans-focus);outline-offset:3px}:root{color:var(--preferans-ivory);background:var(--preferans-ink);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100dvh;margin:0}button,a,input,select{font:inherit}.app-shell{background:radial-gradient(circle at 80% 25%, #c5a45d1a, transparent 28rem), linear-gradient(145deg, var(--preferans-green), var(--preferans-ink));min-height:100vh;overflow:hidden}.masthead{justify-content:space-between;align-items:center;max-width:1280px;margin:0 auto;padding:2rem clamp(1.25rem,4vw,4rem);display:flex}.brand-logo{width:220px;height:auto;display:block}.product-status{color:var(--preferans-sage);font-size:.875rem}.onboarding-panel{max-width:36rem;margin:2rem auto;padding:1.5rem}.onboarding-panel h1{font-size:clamp(2rem,6vw,3rem);line-height:1.1}.onboarding-panel label{margin:1.5rem 0 .5rem;display:block}.onboarding-panel input{border:1px solid var(--preferans-sage);background:var(--preferans-ink);width:100%;min-height:48px;color:var(--preferans-ivory);border-radius:.55rem;padding:.75rem}.onboarding-panel input:focus-visible{outline:3px solid var(--preferans-ivory);outline-offset:2px}.welcome{grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);align-items:center;gap:clamp(3rem,8vw,8rem);max-width:1180px;min-height:calc(100vh - 112px);margin:0 auto;padding:3rem clamp(1.25rem,4vw,4rem) 6rem;display:grid}.welcome-copy{max-width:650px}.eyebrow{color:var(--preferans-gold);letter-spacing:.04em;font-weight:600}h1{letter-spacing:-.055em;margin:.35rem 0 1.5rem;font-size:clamp(3rem,7vw,6.5rem);line-height:.94}.lede{max-width:58ch;color:var(--preferans-sage);font-size:clamp(1rem,2vw,1.2rem);line-height:1.7}.primary-action,.secondary-action{cursor:pointer;border:1px solid #0000;border-radius:.55rem;justify-content:center;align-items:center;min-height:48px;margin-top:1.5rem;padding:.8rem 1.25rem;font-weight:600;text-decoration:none;display:inline-flex}.primary-action{color:#fff;background:var(--preferans-vermilion)}.secondary-action{color:var(--preferans-ivory);border-color:var(--preferans-sage);background:0 0}.primary-action:focus-visible,.secondary-action:focus-visible{outline:3px solid var(--preferans-ivory);outline-offset:3px}.secondary-action:disabled{cursor:wait;opacity:.65}.signed-in{margin-top:1.5rem}.error-message{max-width:48ch;color:var(--preferans-ivory)}.dialog-close{border-radius:var(--preferans-radius-sm);width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:4px;right:4px}.dialog-close:hover:not(:disabled){border-color:currentColor}.dialog-close:focus-visible{outline-offset:3px;outline:3px solid}.dialog-close:disabled{cursor:wait;opacity:.55}.table-preview{aspect-ratio:1/.82;background:var(--preferans-green);border:10px solid #25302d;border-radius:48%;position:relative;box-shadow:0 2rem 5rem #0000004d}.table-preview:after{content:"";border-radius:inherit;border:1px solid #f4eedc24;position:absolute;inset:8%}.seat{z-index:1;color:var(--preferans-sage);justify-items:center;gap:.5rem;font-size:.75rem;display:grid;position:absolute}.seat i{background:var(--preferans-ink);border:1px solid #f4eedc66;border-radius:.45rem;width:52px;height:70px;display:block}.seat-left{top:-2.5rem;left:8%}.seat-right{top:-2.5rem;right:8%}.seat-bottom{color:var(--preferans-ivory);bottom:-3.5rem;right:50%;transform:translate(50%)}.table-mark{color:#f4eedc1f;font-size:clamp(5rem,12vw,10rem);font-weight:600;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.live-shell{background:radial-gradient(circle at 50% 30%, #c5a45d17, transparent 30rem), var(--preferans-ink);min-height:100dvh;overflow-x:clip}.connection-badge{color:var(--preferans-sage);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.5rem;font-size:.8rem;font-weight:600;display:inline-flex}.connection-badge:before{content:"";background:var(--preferans-vermilion);border-radius:50%;width:.55rem;height:.55rem}.connection-badge.online:before{background:#65bd8b}.connection-badge.connecting:before,.connection-badge.reconnecting:before{background:var(--preferans-gold)}.preference-toggle{background:#0b27238c;border:1px solid #f4eedc38;border-radius:1rem;padding:.15rem;display:inline-flex}.preference-toggle button{min-width:2.15rem;color:var(--preferans-sage);letter-spacing:.06em;cursor:pointer;background:0 0;border:0;border-radius:.85rem;padding:.28rem .45rem;font-size:.68rem;font-weight:700}.preference-toggle button[aria-pressed=true]{color:var(--preferans-ink);background:var(--preferans-gold)}.preference-toggle button:focus-visible{outline:2px solid var(--preferans-ivory);outline-offset:2px}.game-layout{--card-width:clamp(3.2rem, 8vw, 5.8rem);width:min(1180px,100% - 2rem);margin:0 auto;padding-bottom:1rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.connection-panel h1{margin:.2rem 0 0;font-size:clamp(2rem,5vw,4.25rem);line-height:1}.game-counter{z-index:0;width:100%;height:100%;color:var(--preferans-ivory);fill:currentColor;opacity:.09;font-variant-numeric:tabular-nums;letter-spacing:-.05em;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:100px;font-weight:600;position:absolute;inset:0}.table-message{border-radius:var(--preferans-radius-sm);background:#d9583b1f;border:1px solid #d9583b73;margin:.75rem 0;padding:.75rem 1rem}.card-table{--table-ring-inset:.07;isolation:isolate;height:var(--table-height,500px);position:relative}.table-backdrop{z-index:-1;pointer-events:none;position:absolute;inset:-3rem 0}.table-content-clip{z-index:1;pointer-events:none;position:absolute;inset:-3rem 0;overflow:hidden}.table-surface,.table-content{width:var(--table-diameter,96%);aspect-ratio:1;transform:translate(-50%, -50%) perspective(var(--table-perspective,3000px)) rotateX(var(--table-tilt,0deg));pointer-events:none;position:absolute;top:50%;left:50%}.table-content{z-index:0}.table-cards{z-index:1;pointer-events:none;position:absolute;inset:3rem 0}.table-surface{z-index:-1;background:radial-gradient(circle, #195046, var(--preferans-green) 68%);border:clamp(8px,1.2vw,14px) solid #25302d;border-radius:50%;box-shadow:0 1.5rem 4rem #00000057}.table-surface:after{content:"";inset:calc(var(--table-ring-inset) * 100%);border-radius:inherit;border:1px solid #f4eedc1f;position:absolute}.pending-table-status{text-align:center;color:var(--preferans-sage);align-content:center;justify-items:center;display:grid;position:absolute;inset:25% 12%}.pending-table-status p{margin:0}.live-seat{--avatar-size:clamp(4.25rem, 11vw, 8.5rem);--tab-overlap:calc(var(--avatar-size) / 2);z-index:2;width:min(44%,17rem);color:var(--preferans-ivory);transition:opacity .18s;position:absolute}.player-name{z-index:3;color:#fff;background:#000;border-radius:1rem;justify-content:center;align-items:center;gap:.3rem;width:max-content;max-width:min(12rem,50vw - 1rem);padding:.25rem .5rem;font-size:.7rem;line-height:1.2;display:flex;position:absolute;bottom:-.2rem;left:50%;transform:translate(-50%)}.player-presence{border:1px solid var(--preferans-sage);background:var(--preferans-sage);border-radius:50%;flex:none;width:.5rem;height:.5rem}.player-presence.online{border-color:var(--preferans-focus);background:var(--preferans-focus)}.player-presence.offline{border-color:var(--preferans-vermilion);background:0 0}.player-presence.unknown{background:0 0;border-style:dotted}.player-body{align-items:center;display:flex;position:relative}.player-box{flex:0 0 var(--avatar-size);width:var(--avatar-size);height:var(--avatar-size);z-index:2;background:#0b2723;border:1px solid #f4eedc4d;border-radius:50%;transition:border-color .18s,background-color .18s,box-shadow .18s;position:relative;box-shadow:0 .45rem 1rem #00000029}.player-avatar{width:100%;height:100%;fill:var(--preferans-sage);opacity:.35;padding:12%;display:block}.player-tabs{z-index:1;min-width:0;margin-left:calc(-1 * var(--tab-overlap));flex:1;grid-template-rows:3rem 3rem;grid-template-columns:minmax(0,1fr);justify-items:start;display:grid;position:relative}.player-score-tab,.player-action-tab{width:max-content;max-width:100%;padding:.35rem .5rem .35rem calc(var(--tab-overlap) + var(--tab-avatar-gap,.45rem));background:var(--preferans-ink);color:var(--preferans-ivory);border:1px solid #f4eedc4d;border-radius:.75rem;grid-column:1;position:relative}.player-action-tab{--tab-avatar-gap:.1rem;z-index:1;font-variant-numeric:tabular-nums;flex-wrap:wrap;grid-row:2;justify-content:center;align-self:start;align-items:center;gap:.25rem;min-height:2.75rem;margin-top:-.4rem;padding-top:.65rem;display:flex}.player-action-tab:not(:has(.auction-history>*,.defense-marker,.turn-marker,.turn-time,.player-trick-progress)){visibility:hidden}.live-seat-right .player-body{flex-direction:row-reverse}.live-seat-right .player-tabs{margin-left:0;margin-right:calc(-1 * var(--tab-overlap));justify-items:end}.live-seat-right .player-score-tab,.live-seat-right .player-action-tab{padding-left:.5rem;padding-right:calc(var(--tab-overlap) + var(--tab-avatar-gap,.45rem))}.live-seat-left{top:9%;left:3%}.live-seat-right{top:9%;right:3%}.live-seat-bottom{right:50%;bottom:var(--main-player-bottom,5%);transform:translate(50%)}.live-seat.live-seat-bottom{width:max-content;max-width:calc(100% - 1rem)}.fireworks{z-index:1;pointer-events:none;height:0;position:absolute;top:calc(100% - .5rem);left:0;right:0}.firework{width:0;height:0;position:absolute;top:0}.firework i{background:var(--spark-color);opacity:0;width:.4rem;height:.4rem;animation:2.4s ease-out infinite both firework-spark;animation-delay:var(--burst-delay);box-shadow:0 0 .4rem var(--spark-color);border-radius:50%;position:absolute;top:-.2rem;left:-.2rem}@keyframes firework-spark{0%{opacity:1;transform:translate(0)scale(1)}45%{opacity:1;transform:translate(var(--dx), var(--dy)) scale(.9)}70%,to{opacity:0;transform:translate(var(--dx), calc(var(--dy) + 2rem)) scale(.2)}}.bid-splash{--splash-start-x:-25%;z-index:3;top:50%;left:calc(var(--avatar-size) / 2);pointer-events:none;text-align:center;width:0;height:0;position:absolute}.bid-splash span{width:max-content;max-width:min(9rem,24vw);color:var(--preferans-ivory);text-shadow:0 2px 4px var(--preferans-ink);transform-origin:0 0;transform:translateY(calc(var(--avatar-size) / 2 + 1rem));font-size:clamp(1.1rem,2.3vw,1.5rem);font-weight:700;line-height:1.15;animation:1.2s ease-out forwards bid-splash;display:block;position:absolute;left:0}.live-seat-right .bid-splash{--splash-start-x:25%;left:auto;right:calc(var(--avatar-size) / 2)}.live-seat-right .bid-splash span{transform-origin:100% 0;left:auto;right:0}.result-splash.succeeded span{color:var(--preferans-success-on-dark)}.result-splash.failed span{color:var(--preferans-failure-on-dark)}.live-seat-bottom .result-splash span{transform-origin:50%;transform:translate(calc(-1 * var(--bottom-card-avatar-x,0px)), calc(-1 * var(--bottom-card-avatar-y,0px))) translate(-50%, -50%) scale(2.2);animation-name:main-result-splash}@keyframes main-result-splash{0%{opacity:1;transform:translate(-50%,-50%)scale(.5)}75%{opacity:1;transform:translate(calc(-1 * var(--bottom-card-avatar-x,0px)), calc(-1 * var(--bottom-card-avatar-y,0px))) translate(-50%, -50%) scale(2.2)}to{opacity:0;transform:translate(calc(-1 * var(--bottom-card-avatar-x,0px)), calc(-1 * var(--bottom-card-avatar-y,0px))) translate(-50%, -50%) scale(2.2)}}@keyframes bid-splash{0%{opacity:1;transform:translate(var(--splash-start-x), -25%) scale(.5)}to{opacity:0;transform:translate(0, calc(var(--avatar-size) / 2 + 1rem)) scale(3.2)}}.live-seat.current-turn .player-box{--avatar-glow:var(--preferans-gold);border-color:var(--preferans-gold);background:#205246;box-shadow:0 0 0 3px #c5a45d2e,0 .65rem 1.4rem #0000003d}.live-seat.declaring-contract .player-box{--avatar-glow:var(--preferans-vermilion);border-color:var(--preferans-vermilion);box-shadow:0 0 0 3px color-mix(in srgb, var(--preferans-vermilion) 25%, transparent), 0 0 1.2rem color-mix(in srgb, var(--preferans-vermilion) 45%, transparent)}.live-seat:is(.current-turn,.declaring-contract) .player-box:after,.live-seat .player-box:is(.succeeded,.failed):after{content:"";z-index:1;pointer-events:none;background:conic-gradient(transparent 60deg, color-mix(in srgb, var(--avatar-glow) 20%, transparent) 180deg, var(--avatar-glow) 300deg, transparent 320deg);border-radius:50%;animation:3s linear infinite avatar-glow-orbit;position:absolute;inset:-4px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px))}@keyframes avatar-glow-orbit{to{transform:rotate(360deg)}}.live-seat.inactive-player{color:#f4eedc7a;opacity:.72}.live-seat.inactive-player .player-box{box-shadow:none;background:#1f2725;border-color:#f4eedc17}.live-seat.inactive-player .player-box:after{content:none}.live-seat .player-avatar{transition:filter .24s}.live-seat.inactive-player .player-avatar{filter:grayscale()}.live-seat .player-box.succeeded{--avatar-glow:var(--preferans-success-on-dark)}.live-seat .player-box.failed{--avatar-glow:var(--preferans-failure-on-dark)}.live-seat .player-box:is(.succeeded,.failed){border-color:var(--avatar-glow);box-shadow:0 0 0 3px color-mix(in srgb, var(--avatar-glow) 25%, transparent), 0 0 1.2rem color-mix(in srgb, var(--avatar-glow) 45%, transparent)}.player-score-tab{z-index:2;cursor:pointer;font-variant-numeric:tabular-nums;grid-row:1;justify-items:center;gap:.3rem;min-height:44px;display:grid}.player-score-tab:focus-visible{outline:3px solid var(--preferans-ivory);outline-offset:2px}.player-score-main{position:relative}.rolling-score{vertical-align:bottom;flex-shrink:0;height:1.2em;line-height:1.2;display:inline-flex}.score-digit{flex:none;width:max-content;height:1.2em;display:inline-block;overflow:hidden}.score-digit-reel{animation:score-roll-up .4s cubic-bezier(.2, .7, .25, 1) var(--roll-delay) both;flex-direction:column;display:flex}.score-digit-reel>span{flex-shrink:0;height:1.2em}.rolling-down .score-digit-reel{animation-name:score-roll-down}.round-digit-reel{animation:score-roll-up .4s cubic-bezier(.2, .7, .25, 1) var(--roll-delay) both}.rolling-down .round-digit-reel{animation-name:score-roll-down}@keyframes score-roll-up{0%{transform:translateY(0)}to{transform:translateY(var(--roll-distance))}}@keyframes score-roll-down{0%{transform:translateY(var(--roll-distance))}to{transform:translateY(0)}}.player-score-trend{width:.65rem;height:.65rem;position:absolute;top:50%;left:calc(100% + .05rem);transform:translateY(-50%)}.player-score-trend.up{color:var(--preferans-failure-on-dark)}.player-score-trend.down{color:var(--preferans-success-on-dark)}.player-score-values{white-space:nowrap;grid-template-columns:1fr auto 1fr;align-items:baseline;gap:1.1rem;width:100%;display:grid}.player-score-values:has(.player-score-trend){column-gap:1.1rem}.player-score-soup{font-size:.7rem;font-weight:500}.player-score-soup:first-child{text-align:left}.player-score-soup:last-child{text-align:right}.player-score-tab strong{font-size:.95rem}.refa-circles{justify-content:center;align-items:center;gap:.25rem;min-height:.5rem;display:flex}.refa-circle{border:1px solid;border-radius:50%;width:.5rem;height:.5rem}.refa-circle.used{background:currentColor}.refa-circle.unawarded{color:var(--preferans-sage);border-style:dotted}.refa-circle.applied{color:var(--preferans-vermilion);background:currentColor;animation:1.1s ease-in-out infinite refa-applied-pulse}@keyframes refa-applied-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--preferans-vermilion) 70%, transparent);transform:scale(1)}50%{box-shadow:0 0 0 .25rem color-mix(in srgb, var(--preferans-vermilion) 0%, transparent);transform:scale(1.35)}}.player-trick-progress{flex-wrap:wrap;justify-content:center;align-items:center;gap:.25rem;display:inline-flex}.player-action-tab.succeeded{background:var(--preferans-success);color:#fff;border-color:var(--preferans-success-on-dark)}.player-action-tab.failed{background:var(--preferans-failure);color:#fff;border-color:var(--preferans-failure-on-dark)}.player-action-tab.failed .declared-contract-marker{background:var(--preferans-ink);border-color:var(--preferans-sage)}.player-trick-progress .trick-outcome{font-size:.85rem;font-weight:700}.player-readiness{z-index:3;width:34%;height:34%;color:var(--preferans-ivory);background:#0b2723;border:1px solid #f4eedc4d;border-radius:50%;padding:6%;position:absolute;top:12%;left:-6%;box-shadow:0 .2rem .5rem #00000059}.live-seat-right .player-readiness{left:auto;right:-6%}.player-readiness svg{fill:none;stroke:currentColor;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%;display:block}.readiness-spinner{stroke:var(--preferans-gold);stroke-dasharray:75 25;transform-origin:50%;transition:opacity .18s;animation:.9s linear infinite thinking-spinner-spin}.readiness-check{stroke-dasharray:1;stroke-dashoffset:1px;opacity:0;transition:stroke-dashoffset .18s,opacity .18s}.player-readiness.ready .readiness-spinner{opacity:0;animation:none}.player-readiness.ready .readiness-check{stroke-dashoffset:0;opacity:1}.round-status{max-width:18rem;color:var(--preferans-ivory);text-align:center;text-shadow:0 2px 4px var(--preferans-ink), 0 4px 12px var(--preferans-ink);font-size:clamp(1.05rem,1.8vw,1.25rem);font-weight:600;line-height:1.4;animation:.4s ease-out both round-status-appear}.round-status p{margin:0}.final-standings{gap:.35rem;margin:1rem 0 0;padding:0;font-size:1.1rem;list-style:none;display:grid}.final-standings li{text-align:left;grid-template-columns:auto minmax(0,auto) auto;justify-content:center;align-items:baseline;gap:.5rem;display:grid}.final-standings .final-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.final-note{opacity:.8;font-size:.9rem}.round-status p+p{margin-top:.75rem}@keyframes round-status-appear{0%{opacity:0;transform:perspective(700px)rotateY(0)scale(.85)}60%{opacity:1;transform:perspective(700px)rotateY(216deg)scale(1.5)}to{opacity:1;transform:perspective(700px)rotateY(360deg)scale(1)}}.player-trick-progress strong{align-items:center;font-size:.95rem;line-height:1.2;display:inline-flex}.player-trick-progress>span{font-size:.6rem}.double-token-marks{flex-wrap:wrap;align-items:center;gap:.1rem;display:inline-flex}.double-token-marks>span[role=img]{display:inline-flex}.double-token-count{font-variant-numeric:tabular-nums;margin-right:.1rem}.double-token-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linejoin:round;stroke-linecap:round;width:1.15rem;height:1.15rem}.double-token-icon.used{fill:currentColor}.scorecard-dialog{border:1px solid var(--preferans-sage);width:min(38rem,100vw - 1.5rem);max-height:calc(100dvh - 2rem);color:var(--preferans-ink);background:var(--preferans-ivory);border-radius:1rem;padding:0;box-shadow:0 1rem 4rem #0006}.scorecard-dialog::backdrop{background:#17201eb8}.scorecard-dialog button:focus-visible{outline:3px solid var(--preferans-green);outline-offset:3px}.scorecard-content{padding:1rem}.scorecard-content header{min-height:32px;padding-inline-end:36px}.scorecard-content h2{overflow-wrap:anywhere;margin:0;font-size:1.15rem}.scorecard-summary{flex-wrap:wrap;gap:.6rem 1rem;margin-top:1rem;display:flex}.scorecard-summary>span{align-items:center;gap:.3rem;display:inline-flex}.scorecard-explanation{font-size:.8rem;line-height:1.4}.traditional-scorecard{border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums;width:100%;margin:1rem 0}.traditional-scorecard th,.traditional-scorecard td{text-align:center;border-inline:1px solid var(--preferans-sage);overflow-wrap:anywhere;width:33.333%;padding:.35rem}.traditional-scorecard th{border-bottom:2px solid var(--preferans-green);font-size:.8rem}.traditional-scorecard th span{margin-top:.25rem;font-weight:400;display:block}.traditional-scorecard td{height:1.8rem}.traditional-scorecard tfoot{border-top:2px solid var(--preferans-green);font-weight:700}.scorecard-token-entry{vertical-align:middle;display:inline-flex}.scorecard-central-entry{flex-direction:column;align-items:center;gap:.1rem;display:inline-flex}.central-score-hat{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linejoin:round;stroke-linecap:round;width:1.5rem;height:1.5rem}.central-score-hat.inverted{transform:rotate(180deg)}.dealer-marker{z-index:3;white-space:nowrap;border:1px solid var(--preferans-gold);width:max-content;color:var(--preferans-ink);background:var(--preferans-gold);text-align:center;letter-spacing:.04em;text-transform:uppercase;border-radius:1rem;padding:.18rem .42rem;font-size:.58rem;font-weight:700;position:absolute;top:-.2rem;left:50%;transform:translate(-50%)}.declared-contract-marker{border:1px solid var(--preferans-vermilion);color:var(--preferans-ivory);background:var(--preferans-vermilion);letter-spacing:.06em;text-transform:uppercase;border-radius:1rem;justify-content:center;align-items:center;gap:.25rem;min-height:1.45rem;padding:.18rem .42rem;font-size:.58rem;font-weight:700;display:inline-flex}.no-talon-icon{flex:none;width:1rem;height:1rem}.dealer-flight{z-index:100;pointer-events:none}.seat-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.auction-history{white-space:nowrap;flex-wrap:wrap;justify-content:center;align-items:center;gap:.25rem;max-width:100%;margin:0;padding:0;list-style:none;display:flex}.auction-marker{border:1px solid #f4eedc40;border-radius:1rem;place-items:center;min-width:1.65rem;min-height:1.45rem;padding:.2rem .45rem;font-size:.68rem;font-weight:600;display:inline-grid}.auction-marker.highest{border-color:var(--preferans-gold);color:var(--preferans-ink);background:var(--preferans-gold)}.auction-marker.pass,.auction-marker.good{color:#f4eedc9e;background:#0b2723b8}.auction-marker.bid{color:var(--preferans-ivory);background:#123d36c7}@keyframes thinking-spinner-spin{to{transform:rotate(360deg)}}.defense-marker{color:var(--preferans-ivory);background:#123d36c7;border:1px solid #f4eedc40;border-radius:1rem;place-items:center;padding:.24rem .55rem;font-size:.7rem;font-weight:600;display:inline-grid}.waiting-hourglass,.bid-question{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:.85rem;height:.85rem}.defense-marker.not_defending{color:#f4eedcb3;background:#1f2725d9}.defense-marker.invited{border-color:var(--preferans-gold);color:var(--preferans-ink);background:var(--preferans-gold)}.turn-marker{color:var(--preferans-ink);background:var(--preferans-gold);text-transform:uppercase;border-radius:1rem;padding:.2rem .5rem;font-size:.7rem;font-weight:600}.auction-marker.thinking,.auction-marker.waiting,.defense-marker.waiting,.turn-marker.thinking{min-width:1.65rem;min-height:1.45rem;color:var(--preferans-gold);background:#123d36c7;border:1px solid #f4eedc40;border-radius:1rem;place-items:center;padding:.15rem .4rem;font-size:.7rem;font-weight:600;display:inline-grid}.turn-time{color:var(--preferans-gold);font-variant-numeric:tabular-nums;margin-top:.2rem;font-size:.78rem;font-weight:700}.turn-time.expired{color:var(--preferans-vermilion)}.trick-area,.talon-area{z-index:1;color:#f4eedc66;justify-content:center;align-items:center;gap:.4rem;width:clamp(13rem,26vw,18rem);min-height:clamp(9rem,19vw,12rem);font-size:1.3rem;display:flex;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.trick-cards{margin:0;padding:0;list-style:none;position:absolute;inset:0}.trick-card{--rest-x:0rem;--rest-y:0rem;--origin-x:0rem;--origin-y:0rem;--target-x:0rem;--target-y:0rem;--card-rotation:0deg;width:var(--card-width);transform:translate(calc(-50% + var(--rest-x)), calc(-50% + var(--rest-y))) rotate(var(--card-rotation));animation:.32s cubic-bezier(.2,.8,.25,1) both trick-card-arrive;position:absolute;top:50%;left:50%}.trick-card.from-bottom{--rest-x:0rem;--rest-y:2.25rem;--origin-x:0rem;--origin-y:13rem;--card-rotation:2deg}.trick-card.from-left{--rest-x:-3.65rem;--rest-y:-1.25rem;--origin-x:var(--left-card-avatar-x,-18rem);--origin-y:var(--left-card-avatar-y,-6rem);--card-rotation:-7deg}.trick-card.from-right{--rest-x:3.65rem;--rest-y:-1.25rem;--origin-x:var(--right-card-avatar-x,18rem);--origin-y:var(--right-card-avatar-y,-6rem);--card-rotation:7deg}.trick-card.to-bottom{--target-x:var(--bottom-card-avatar-x,0rem);--target-y:var(--bottom-card-avatar-y,13rem)}.trick-card.to-left{--target-x:var(--left-card-avatar-x,-18rem);--target-y:var(--left-card-avatar-y,-6rem)}.trick-card.to-right{--target-x:var(--right-card-avatar-x,18rem);--target-y:var(--right-card-avatar-y,-6rem)}.trick-card.collecting{animation:.7s cubic-bezier(.55,0,.8,.25) forwards trick-card-collect}.trick-card .playing-card{width:100%}@keyframes trick-card-arrive{0%{opacity:0;transform:translate(calc(-50% + var(--origin-x)), calc(-50% + var(--origin-y))) rotate(var(--card-rotation)) scale(.72)}to{opacity:1;transform:translate(calc(-50% + var(--rest-x)), calc(-50% + var(--rest-y))) rotate(var(--card-rotation)) scale(1)}}@keyframes trick-card-collect{0%{opacity:1;transform:translate(calc(-50% + var(--rest-x)), calc(-50% + var(--rest-y))) rotate(var(--card-rotation)) scale(1)}to{opacity:0;transform:translate(calc(-50% + var(--target-x)), calc(-50% + var(--target-y))) rotate(var(--card-rotation)) scale(.6)}}.hand-area{z-index:3;width:min(900px,94%);margin:.4rem auto 0;position:relative;container-type:inline-size}.card-hand{--hand-count:1;--hand-padding:1rem;--hand-card-width:var(--card-width);--hand-overlap:max(clamp(.25rem, 1.5vw, .8rem), calc((var(--hand-count) * var(--hand-card-width) - (100cqw - 2 * var(--hand-padding))) / max(1, var(--hand-count) - 1)));--hand-step:calc(var(--hand-card-width) - var(--hand-overlap));--hand-inset:min(.55rem, calc(var(--hand-step) * .1));min-height:9.5rem;padding:0 var(--hand-padding);justify-content:center;display:flex}.trick-area.claim-area{width:min(84%,38rem)}.claimed-hand{width:100%;container-type:inline-size}.claimed-hand .card-hand{--hand-padding:0rem;align-items:center;min-height:0}.claimed-card .playing-card{width:100%;padding-inline:.25rem}.claimed-card .playing-card i{justify-self:start}.claim-flight{z-index:20;pointer-events:none}.claimed-card{flex:0 0 var(--hand-card-width);margin-left:calc(-1 * var(--hand-overlap))}.claimed-card:first-child{margin-left:0}.hand-card{z-index:0;flex:0 0 var(--hand-card-width);min-width:0;margin-left:calc(-1 * var(--hand-overlap));color:inherit;cursor:pointer;background:0 0;border:0;padding:0;transition:transform .14s}.hand-card:first-child{margin-left:0}.hand-card:not(:disabled):focus-visible,.hand-card.selected{z-index:2;transform:translateY(-.8rem)}@media (hover:hover) and (pointer:fine){.hand-card:not(:disabled):hover{z-index:2;transform:translateY(-.8rem)}}.hand-card:disabled{cursor:default;filter:brightness(.78)}.playing-card{aspect-ratio:.7;width:100%;color:var(--preferans-ink);background:var(--preferans-ivory);text-align:left;border:1px solid #d8d1c1;border-radius:.5rem;align-content:space-between;padding:.55rem;display:grid;box-shadow:0 .3rem .8rem #0000003d}.playing-card b{font-size:clamp(1rem,2vw,1.35rem);line-height:1}.playing-card i{justify-self:end;font-size:clamp(1.35rem,3vw,2rem);font-style:normal;line-height:1}.playing-card.red{color:#b7392d}.playing-card.deck-german-hungarian b{letter-spacing:-.06em;font-family:Georgia,Times New Roman,serif;font-size:clamp(.82rem,1.7vw,1.18rem)}.german-hungarian-suit{width:clamp(1.75rem,4vw,2.85rem);height:auto;display:block}.playing-card.compact .german-hungarian-suit{width:clamp(1.5rem,3.4vw,2.35rem)}.playing-card.compact{width:clamp(2.7rem,5vw,4.3rem);padding:.4rem}.hand-card .playing-card,.talon-pickup-flight .playing-card{padding-inline:var(--hand-inset)}.hand-card .playing-card b,.talon-pickup-flight .playing-card b{font-size:min(clamp(1rem, 2vw, 1.35rem), calc(var(--hand-step) * .65));justify-self:start}.hand-card .playing-card.deck-german-hungarian b,.talon-pickup-flight .playing-card.deck-german-hungarian b{font-size:min(clamp(.82rem, 1.7vw, 1.18rem), calc(var(--hand-step) * .42))}.hand-card .playing-card i,.talon-pickup-flight .playing-card i{font-size:min(clamp(1.35rem, 3vw, 2rem), calc(var(--hand-step) * .8));justify-self:start}.hand-card .german-hungarian-suit,.talon-pickup-flight .german-hungarian-suit{width:min(clamp(1.75rem, 4vw, 2.85rem), calc(var(--hand-step) * .8))}.hand-card{perspective:700px}.hand-card-flipper{transform-style:preserve-3d;display:block;position:relative}.hand-card-front,.hand-card-back{backface-visibility:hidden;display:block}.hand-card-back{position:absolute;inset:0;transform:rotateY(180deg)}.hand-card .hand-card-flipper:not(.deal-concealed)>.hand-card-back{visibility:hidden}.hand-card-flipper.deal-concealed{transform:rotateY(180deg)}.deal-flight,.deal-deck{z-index:1;pointer-events:none;position:fixed}.deal-deck{box-shadow:2px 2px 0 var(--preferans-ivory), 4px 4px 0 var(--preferans-green), 6px 6px 0 var(--preferans-ivory)}.talon-pickup-flight{z-index:20;pointer-events:none;perspective:700px;position:fixed}.hand-card.from-talon .playing-card{border-color:var(--preferans-gold);box-shadow:inset 0 0 0 2px var(--preferans-gold), 0 0 .65rem color-mix(in srgb, var(--preferans-gold) 75%, transparent)}.talon-area{pointer-events:none}.talon-area.talon-fade{animation:.3s ease-out forwards talon-fade}.talon-area.talon-fly{animation:.5s cubic-bezier(.4,0,.7,1) forwards talon-fly}@keyframes talon-fade{0%{opacity:1}to{opacity:0}}@keyframes talon-fly{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(calc(-50% + var(--talon-target-x,0px)), calc(-50% + var(--talon-target-y,0px))) scale(.35)}}.talon-card{flex:0 0 var(--card-width);width:var(--card-width);aspect-ratio:.7;perspective:600px;display:block;transform:rotate(-3deg)}.talon-card:nth-child(2n){transform:rotate(4deg)translateY(.3rem)}.talon-flipper{width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s ease-in-out;display:block;position:relative}.talon-flipper.revealed{transform:rotateY(180deg)}.talon-face{backface-visibility:hidden;display:block;position:absolute;inset:0}.talon-back{border:1px solid var(--preferans-ivory);background:repeating-linear-gradient(45deg, transparent 0 5px, #f4eedc2e 5px 6px), var(--preferans-green);box-shadow:inset 0 0 0 3px var(--preferans-green), inset 0 0 0 4px var(--preferans-ivory), 0 .3rem .8rem #0000003d;border-radius:.5rem}.talon-front{transform:rotateY(180deg)}.talon-front>.playing-card{width:100%;height:100%}.legal-actions,.pending-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.65rem;min-height:4rem;margin-top:.6rem;display:flex}.legal-actions .primary-action,.legal-actions .secondary-action{min-height:44px;margin-top:0;padding:.6rem 1rem}.legal-actions .primary-action:disabled{cursor:default;opacity:.45}.legal-actions p{color:var(--preferans-sage)}.score-board{border-radius:var(--preferans-radius-md);background:#123d3673;border:1px solid #f4eedc24;margin-top:2rem;padding:1rem 1.25rem}.score-board h2{color:var(--preferans-gold);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .8rem;font-size:.8rem}.score-grid{grid-template-columns:repeat(3,1fr);display:grid}.score-grid>div{border-left:1px solid #f4eedc1f;grid-template-columns:1fr auto;gap:.15rem 1rem;padding:0 1rem;display:grid}.score-grid>div:first-child{border-left:0}.score-grid span{font-size:.85rem}.score-grid strong{color:var(--preferans-gold);grid-row:span 2;align-self:center;font-size:1.6rem}.score-grid small{color:var(--preferans-sage)}.live-loading{grid-template-rows:auto 1fr;display:grid}.app-loading{flex-direction:column;display:flex}.app-loading>header{width:100%}.app-loading-body{flex:1;place-items:center;display:grid}.loading-indicator{animation:.16s ease-out both loading-appear;display:inline-flex}.loading-spinner{border:3px solid #c5a45d33;border-top-color:var(--preferans-gold);border-radius:50%;width:1.5rem;height:1.5rem;animation:.9s linear infinite thinking-spinner-spin}@keyframes loading-appear{0%{opacity:0}to{opacity:1}}.connection-panel{place-self:center;width:min(680px,100% - 2rem);padding:2rem 0 6rem}.connection-panel p:not(.eyebrow){color:var(--preferans-sage)}.lobby-shell{background:linear-gradient(150deg, var(--preferans-green), var(--preferans-ink) 55%);min-height:100vh}.quiet-action{border-radius:var(--preferans-radius-sm);color:var(--preferans-ivory);cursor:pointer;background:0 0;border:1px solid #f4eedc40;padding:.45rem .7rem}.quiet-action:disabled{cursor:wait;opacity:.55}.lobby-content{width:min(1180px,100% - 2rem);margin:0 auto;padding:clamp(2rem,6vw,5rem) 0}.lobby-title{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem;display:flex}.lobby-title h1{margin:.25rem 0 0;font-size:clamp(2.5rem,7vw,5.5rem)}.lobby-title .eyebrow{margin:0}.lobby-actions{flex-wrap:wrap;gap:.75rem;display:flex}.lobby-actions .primary-action,.lobby-actions .secondary-action{gap:.5rem;margin-top:0}.lobby-actions span{font-size:1.3rem;line-height:1}.lobby-dialog{border:1px solid var(--preferans-sage);border-radius:var(--preferans-radius-md);width:min(52rem,100% - 1rem);max-height:calc(100dvh - 2rem);color:var(--preferans-ivory);background:var(--preferans-ink);box-shadow:var(--preferans-shadow);overscroll-behavior:contain;padding:clamp(1rem,3vw,2rem)}.lobby-dialog::backdrop{background:#17201eb8}.lobby-dialog-header{min-height:32px;padding-inline-end:36px}.lobby-dialog-header h2{margin:0}.lobby-dialog button{min-height:44px}.lobby-dialog :is(button,input,select):focus-visible{outline:3px solid var(--preferans-ivory);outline-offset:3px}.lobby-dialog-help{color:var(--preferans-sage);line-height:1.6}.table-create-options{gap:.75rem;display:grid}.table-create-options .primary-action,.table-create-options .secondary-action{margin-top:0}.lobby-choice-group{border:0;min-width:0;margin:0 0 .75rem;padding:0}.lobby-choice-group legend{margin-bottom:.6rem;padding:0}.lobby-choice-options{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.5rem;display:grid}.lobby-number-options{grid-template-columns:repeat(3,minmax(0,1fr))}.lobby-choice{border:1px solid var(--preferans-sage);border-radius:var(--preferans-radius-sm);min-height:44px;color:var(--preferans-ivory);background:var(--preferans-ink);cursor:pointer;align-items:center;gap:.5rem;padding:.65rem;display:flex}.lobby-choice input{width:1rem;height:1rem;accent-color:var(--preferans-gold);flex:none;margin:0}.lobby-choice:has(input:checked){border-color:var(--preferans-gold)}.lobby-choice:has(input:focus-visible){outline:3px solid var(--preferans-ivory);outline-offset:3px}.lobby-choice:has(input:disabled){opacity:.55;cursor:wait}.lobby-dialog .invitation-join{grid-template-columns:minmax(0,1fr)}.invitation-seat-choice .lobby-choice-options{grid-template-columns:repeat(3,minmax(0,1fr))}.invitation-seat-choice .lobby-choice{text-align:center;flex-direction:column;padding-inline:.25rem}.lobby-dialog .invitation-join>button{grid-column:1/-1}.bot-choice{color:var(--preferans-sage);align-items:center;gap:.75rem;margin-top:1rem;display:flex}.bot-choice select{border-radius:var(--preferans-radius-sm);max-width:100%;min-height:44px;color:var(--preferans-ivory);background:var(--preferans-ink);border:1px solid #f4eedc40;padding:.65rem .75rem}.invitation-join{border-radius:var(--preferans-radius-md);background:#123d366b;border:1px solid #f4eedc24;grid-template-columns:minmax(12rem,1fr) minmax(7rem,auto) auto;align-items:end;gap:.75rem;margin-bottom:2rem;padding:1rem;display:grid}.invitation-join>div,.invitation-secret{gap:.4rem;display:grid}.invitation-join label:not(.lobby-choice),.invitation-secret label{color:var(--preferans-sage);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:600}.invitation-join input:not([type=radio]),.invitation-secret input{border-radius:var(--preferans-radius-sm);width:100%;min-height:44px;color:var(--preferans-ivory);background:var(--preferans-ink);border:1px solid #f4eedc40;padding:.65rem .75rem}.invitation-join .secondary-action{min-height:44px;margin-top:0}.table-list{gap:1rem;display:grid}.lobby-table-card{border-radius:var(--preferans-radius-md);box-shadow:var(--preferans-shadow);background:#123d369e;border:1px solid #f4eedc24;padding:clamp(1rem,3vw,1.6rem)}.lobby-table-card>header{color:var(--preferans-sage);justify-content:space-between;align-items:start;gap:1rem;font-size:.78rem;display:flex}.lobby-table-card h2{color:var(--preferans-ivory);margin:.45rem 0 0;font-size:1.25rem}.visibility{color:var(--preferans-ink);background:var(--preferans-gold);text-transform:uppercase;letter-spacing:.06em;border-radius:1rem;padding:.2rem .45rem;font-size:.68rem;font-weight:600}.visibility.private{color:var(--preferans-ivory);background:var(--preferans-vermilion)}.lobby-seats{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:1.25rem;display:grid}.lobby-seats>div{border-radius:var(--preferans-radius-sm);border:1px solid #f4eedc1f;align-content:center;gap:.45rem;min-height:5.6rem;padding:.8rem;display:grid}.lobby-seats span{color:var(--preferans-sage);font-size:.72rem}.lobby-seats button{color:var(--preferans-gold);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;font-weight:600}.lobby-seats button:disabled{color:var(--preferans-sage);cursor:default}.empty-seat-actions{flex-wrap:wrap;gap:.75rem;display:flex}.lobby-seats .my-lobby-seat{border-color:var(--preferans-gold)}.invitation-panel{border-radius:var(--preferans-radius-sm);background:#0b272373;border:1px solid #c5a45d40;grid-template-columns:1fr auto;align-items:center;gap:.75rem 1rem;margin-top:1rem;padding:.9rem;display:grid}.invitation-panel>div:first-child{gap:.25rem;display:grid}.invitation-panel span{color:var(--preferans-sage);font-size:.75rem}.invitation-secret{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:center}.invitation-secret label,.invitation-secret>span{grid-column:1/-1}.invitation-secret input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.8rem}.lobby-table-card>footer{min-height:3rem;color:var(--preferans-sage);justify-content:end;align-items:center;gap:.75rem;margin-top:.8rem;display:flex}.table-control-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;max-width:100%;display:grid}.lobby-table-card>footer :is(.primary-action,.quiet-action){border-radius:var(--preferans-radius-sm);text-align:center;justify-content:center;align-items:center;min-height:44px;margin:0;padding:.55rem .85rem;font-weight:600;display:inline-flex}.empty-lobby{border-radius:var(--preferans-radius-md);text-align:center;border:1px dashed #f4eedc33;padding:3rem}.empty-lobby h2{margin:0}.empty-lobby p{color:var(--preferans-sage)}.history-panel,.statistics-panel{border-top:1px solid #f4eedc24;gap:1rem;margin-top:clamp(2.5rem,6vw,5rem);padding-top:2rem;display:grid}.player-page>.player-heading{margin-bottom:1.5rem}.player-page>.player-heading h1{margin:.3rem 0 0;font-size:clamp(1.8rem,4vw,2.8rem)}.player-page>.player-heading+:is(.history-panel,.statistics-panel){border-top:0;margin-top:0;padding-top:0}.history-panel>header h2{margin:.3rem 0 0;font-size:clamp(1.4rem,3vw,2rem)}.history-panel>header .eyebrow{margin:0}.statistics-panel>header h2{margin:.3rem 0 0;font-size:clamp(1.4rem,3vw,2rem)}.statistics-panel>header .eyebrow{margin:0}.statistics-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin:0;display:grid}.statistics-grid>div{border-radius:var(--preferans-radius-sm);background:#123d366b;border:1px solid #f4eedc1f;gap:.3rem;padding:1rem;display:grid}.statistics-grid dt{color:var(--preferans-sage);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem}.statistics-grid dd{color:var(--preferans-gold);margin:0;font-size:clamp(1.5rem,4vw,2.4rem);font-weight:600}.history-list{gap:.75rem;display:grid}.history-card{border-radius:var(--preferans-radius-md);background:#123d367a;border:1px solid #f4eedc24;grid-template-columns:minmax(12rem,1fr) minmax(20rem,2fr) auto;align-items:center;gap:1.25rem;padding:1rem 1.25rem;display:grid}.history-card>div{gap:.25rem;display:grid}.history-card>div span,.history-empty{color:var(--preferans-sage);font-size:.78rem}.history-card ol{grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.history-card li{border-radius:var(--preferans-radius-sm);background:#0b27236b;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;padding:.55rem .7rem;display:grid}.history-card li span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.history-card li strong{color:var(--preferans-gold)}.history-card>.quiet-action{justify-self:end;text-decoration:none}.history-more{justify-self:center;margin-top:0}.replay-shell{background:radial-gradient(circle at 75% 10%, #c5a45d1a, transparent 30rem), var(--preferans-ink);min-height:100vh;padding-bottom:4rem}.replay-badge{color:var(--preferans-gold);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:600}.replay-content{gap:1.25rem;width:min(1180px,100% - 2rem);margin:1rem auto 0;display:grid}.replay-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:.75rem;display:flex}.replay-heading h1{margin:.25rem 0 0;font-size:clamp(2.6rem,7vw,5.5rem)}.replay-heading .eyebrow{margin:0}.replay-heading .secondary-action{flex:none;margin:0}.replay-scores{margin:0}.replay-hand-nav{gap:.5rem;padding:.25rem 0 .5rem;display:flex;overflow-x:auto}.replay-hand-nav button{border-radius:var(--preferans-radius-sm);min-width:5.2rem;color:var(--preferans-sage);cursor:pointer;background:0 0;border:1px solid #f4eedc33;padding:.65rem .8rem}.replay-hand-nav button[aria-current=page]{border-color:var(--preferans-gold);color:var(--preferans-ink);background:var(--preferans-gold)}.replay-hand,.replay-events{border-radius:var(--preferans-radius-md);box-shadow:var(--preferans-shadow);background:#123d367a;border:1px solid #f4eedc24;padding:clamp(1rem,3vw,1.75rem)}.replay-hand>header,.replay-events>header{justify-content:space-between;align-items:end;gap:2rem;display:flex}.replay-hand h2,.replay-events h2{margin:.2rem 0 0;font-size:clamp(1.8rem,4vw,3rem)}.replay-hand header .eyebrow,.replay-events header .eyebrow{margin:0}.replay-hand header dl{flex-wrap:wrap;justify-content:end;gap:clamp(1rem,4vw,3rem);margin:0;display:flex}.replay-hand header dl div,.replay-events dl div{gap:.2rem;display:grid}.replay-hand dt,.replay-events dt{color:var(--preferans-sage);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}.replay-hand dd,.replay-events dd{margin:0;font-weight:600}.replay-deal{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.25rem;display:grid}.replay-deal article{border-radius:var(--preferans-radius-sm);background:#0b27237a;border:1px solid #f4eedc1a;min-width:0;padding:.8rem}.replay-deal h3{color:var(--preferans-sage);margin:0 0 .75rem;font-size:.78rem}.replay-cards{align-items:center;min-height:5rem;padding-right:2.4rem;display:flex;overflow-x:auto}.replay-card{flex:0 0 2rem;width:2rem;display:block}.replay-card:last-child{flex-basis:3.5rem;width:3.5rem}.replay-commands{border-top:1px solid #f4eedc1a;gap:0;margin:1.25rem 0 0;padding:0;list-style:none;display:grid}.replay-commands li{border-bottom:1px solid #f4eedc1a;justify-content:space-between;gap:1rem;padding:.65rem 0;display:flex}.replay-commands span,.replay-events>header>span{color:var(--preferans-sage);font-size:.8rem}.replay-events dl{flex-wrap:wrap;gap:1rem 2.5rem;margin:1.25rem 0 0;display:flex}.replay-event-controls{justify-content:end;gap:.75rem;margin-top:1.25rem;display:flex}.replay-event-controls .primary-action,.replay-event-controls .secondary-action{min-height:42px;margin:0}.replay-event-controls button:disabled{cursor:default;opacity:.45}@media (width>=801px){.round-status{font-size:clamp(1.5rem,2.2vw,1.75rem)}}@media (height<=699px) and (width>=801px){.live-seat{--avatar-size:6rem;width:min(44%,15rem)}}@media (width<=800px){.welcome{grid-template-columns:1fr;min-height:auto;padding-top:2rem}.table-preview{width:min(82vw,520px);margin:1rem auto 2rem}.live-seat-left{top:8%;left:1%}.live-seat-right{top:8%;right:1%}.lobby-title{align-items:start;display:grid}.lobby-actions{justify-content:start}.invitation-join{grid-template-columns:1fr auto}.invitation-join>div:first-child{grid-column:1/-1}.history-card{grid-template-columns:1fr auto}.history-card ol{grid-area:2/1/auto/-1}.statistics-grid{grid-template-columns:repeat(3,1fr)}.replay-heading,.replay-hand>header,.replay-events>header{align-items:start}.replay-deal{grid-template-columns:1fr}}@media (width<=479px){.brand-logo{width:48px;height:48px}.product-status{text-align:right;max-width:12rem}h1{font-size:clamp(2.75rem,15vw,4.5rem)}.connection-badge{gap:0;font-size:0}.preference-toggle button{min-width:1.8rem;padding-inline:.32rem}.game-layout{width:min(100% - 1rem,1180px);padding-bottom:.5rem}.card-table{height:var(--table-height,480px)}.live-seat{--avatar-size:clamp(5rem, 24vw, 6.5rem);width:calc(48% + 1.25rem)}.player-name{padding:.25rem .4rem;font-size:.65rem}.player-tabs{grid-template-rows:2.75rem 3rem}.player-score-tab,.player-action-tab{padding-inline:calc(var(--tab-overlap) + var(--tab-avatar-gap,.3rem)) .3rem;border-radius:.6rem}.live-seat-right .player-score-tab,.live-seat-right .player-action-tab{padding-inline:.3rem calc(var(--tab-overlap) + var(--tab-avatar-gap,.3rem))}.player-action-tab{gap:.2rem;min-height:2.1rem}.player-action-tab .auction-marker,.player-action-tab .declared-contract-marker,.player-action-tab .defense-marker,.player-action-tab .turn-marker{min-height:1.25rem;padding:.15rem .35rem;font-size:.6rem}.player-trick-progress strong{font-size:.85rem}.player-score-tab .refa-circle{width:.4rem;height:.4rem}.player-score-soup{font-size:.6rem}.player-score-tab strong{font-size:.8rem}.dealer-marker{font-size:.46rem}.live-seat-left,.live-seat-right{top:max(calc(max(var(--avatar-size), 5.75rem) + 4px), calc(var(--surface-top,0px) + var(--surface-height,100%) * .12));transform:translateY(-100%)}.live-seat-left{left:-1.25rem}.live-seat-right{right:-1.25rem}.live-seat-left .player-name{left:.75rem;transform:none}.live-seat-right .player-name{left:auto;right:.75rem;transform:none}.live-seat-left .player-readiness{top:44%;left:auto;right:0}.live-seat-right .player-readiness{top:44%;left:0;right:auto}.player-score-tab{min-width:calc(var(--tab-overlap) + 3.5rem);gap:.2rem}.player-score-values{gap:.45rem}.live-seat-bottom{top:min(calc(var(--surface-top,0px) + var(--surface-height,100%) - var(--avatar-size) / 3), calc(100% - max(var(--avatar-size), 5.75rem) - .75rem));bottom:auto}.talon-area,.trick-area{top:calc(var(--surface-top,0px) + var(--surface-height,100%) * .5)}.hand-area{width:100%;margin-top:0}.card-hand{--hand-padding:.35rem;min-height:calc(var(--hand-card-width) / .7);align-items:flex-start}.legal-actions,.pending-actions{align-items:stretch;gap:.5rem;min-height:44px;margin-top:.5rem}.score-grid>div{grid-template-columns:1fr;padding:0 .6rem}.score-grid strong{grid-row:auto}.lobby-content{width:min(100% - 1rem,1180px)}.lobby-seats{grid-template-columns:1fr}.lobby-table-card>header{display:grid}.invitation-join,.lobby-dialog .invitation-join{grid-template-columns:1fr}.invitation-join>div:first-child{grid-column:auto}.invitation-panel{grid-template-columns:1fr}.invitation-secret{grid-column:auto;grid-template-columns:1fr}.invitation-secret label,.invitation-secret>span{grid-column:auto}.history-card{grid-template-columns:1fr}.history-card ol{grid-area:auto;grid-template-columns:1fr}.history-card>.quiet-action{text-align:center;justify-self:stretch}.statistics-grid{grid-template-columns:repeat(2,1fr)}.replay-content{width:min(100% - 1rem,1180px)}.replay-heading,.replay-hand>header,.replay-events>header{gap:1rem;display:grid}.replay-hand header dl{grid-template-columns:repeat(3,1fr);display:grid}.replay-event-controls{grid-template-columns:1fr 1fr;display:grid}}@media (prefers-reduced-motion:reduce){.round-status,.refa-circle.applied,.bid-splash span,.live-seat-bottom .result-splash span{animation:none}.fireworks{display:none}.live-seat:is(.current-turn,.declaring-contract) .player-box:after,.live-seat .player-box:is(.succeeded,.failed):after{animation:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--app-header-height:calc(64px + env(safe-area-inset-top,0px))}.app-header-space{height:var(--app-header-height);flex-shrink:0}.app-header{--header-inline-inset:.75rem;z-index:100;width:100%;max-width:none;height:var(--app-header-height);padding:env(safe-area-inset-top,0px) max(var(--header-inline-inset), env(safe-area-inset-right,0px)) 0 max(var(--header-inline-inset), env(safe-area-inset-left,0px));background:var(--preferans-green);border-bottom:1px solid #f4eedc1f;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;margin:0;display:grid;position:fixed;inset:0 0 auto}.app-header .app-header-left,.app-header .app-header-right{align-items:center;gap:.5rem;min-width:0;display:flex}.app-header .app-header-right{justify-content:flex-end}.app-header .app-header-brand{padding:6px;display:block}.app-header .app-header-brand img{width:144px;height:auto;display:block}.header-icon{width:44px;height:44px;color:var(--preferans-ivory);cursor:pointer;background:0 0;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.header-icon svg{width:24px;height:24px}.profile-trigger{background:var(--preferans-ink);border:1px solid #f4eedc4d}.header-icon:hover,.header-icon[aria-expanded=true]{background:#f4eedc1f}.app-header :is(a,button):focus-visible{outline:3px solid var(--preferans-ivory);outline-offset:2px}.app-header .connection-badge{justify-content:center;width:16px;height:44px;display:inline-flex}.app-header .profile-panel{inset:calc(100% + .5rem) max(var(--header-inline-inset), env(safe-area-inset-right,0px)) auto auto;width:min(320px,100vw - 1.5rem);max-height:calc(100dvh - var(--app-header-height) - 1rem - env(safe-area-inset-bottom,0px));background:var(--preferans-ink);color:var(--preferans-ivory);overscroll-behavior:contain;border:1px solid #f4eedc40;border-radius:.85rem;padding:.75rem;display:block;position:absolute;overflow-y:auto;box-shadow:0 .75rem 2rem #00000059}.app-header .profile-panel[hidden]{display:none}.profile-identity{overflow-wrap:anywhere;border-bottom:1px solid #f4eedc26;gap:.25rem;padding:.5rem .65rem .75rem;display:grid}.profile-identity span{color:var(--preferans-sage);font-size:.85rem}.profile-panel nav{display:grid}.profile-panel nav a,.profile-panel>a,.profile-panel>button{width:100%;min-height:44px;color:var(--preferans-ivory);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.4rem;align-items:center;padding:.65rem;text-decoration:none;display:flex}.profile-panel nav a:hover,.profile-panel>a:hover,.profile-panel>button:hover{background:#f4eedc14}.profile-panel .profile-admin{border-top:1px solid #f4eedc26;margin-top:.4rem}.profile-panel .profile-admin+.profile-signout{margin-top:0}.profile-panel .profile-signout{border-top:1px solid #f4eedc26;margin-top:.4rem}.profile-signout:disabled{opacity:.6;cursor:wait}.profile-preference{justify-content:space-between;align-items:center;gap:.5rem;min-height:44px;padding:0 .65rem;display:flex}.profile-panel .preference-toggle{isolation:isolate;background:0 0;border:0;padding:0;position:relative}.profile-panel .preference-toggle:before{content:"";z-index:-1;pointer-events:none;background:#0b27238c;border:1px solid #f4eedc38;border-radius:1rem;position:absolute;inset:4px 0}.profile-panel .preference-toggle button{isolation:isolate;min-width:44px;min-height:44px;position:relative}.profile-panel .preference-toggle button[aria-pressed=true]{background:0 0}.profile-panel .preference-toggle button[aria-pressed=true]:before{content:"";z-index:-1;background:var(--preferans-gold);pointer-events:none;border-radius:.85rem;position:absolute;inset:6px 2px}:is(#player-heading,#history-heading,#statistics-heading,#my-reports){scroll-margin-top:calc(var(--app-header-height) + 1rem)}@media (width>=801px){.app-header{--header-inline-inset:max(1rem, calc((100% - 1180px) / 2))}}.avatar-photo{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.avatar-placeholder{fill:var(--preferans-sage)}.profile-trigger{padding:0;position:relative;overflow:visible}.profile-trigger .avatar-placeholder{width:32px;height:32px}.player-avatar.avatar-photo{opacity:1;padding:0}.profile-content{width:min(100% - 1.5rem,640px);margin:2rem auto}.profile-content h1{font-size:clamp(1.8rem,5vw,2.8rem)}.avatar-picker{border:1px solid #f4eedc40;border-radius:.85rem;min-width:0;margin:1.5rem 0;padding:1rem}.avatar-picker legend{padding:0 .4rem;font-weight:600}.avatar-picker p{line-height:1.5}.avatar-preview{background:var(--preferans-green);border-radius:50%;width:120px;height:120px;margin:1rem auto;overflow:hidden}.avatar-preview .avatar-placeholder{width:100%;height:100%;padding:12%}.avatar-camera{aspect-ratio:1;object-fit:cover;border-radius:.5rem;width:min(100%,256px);margin:1rem auto;display:block}.avatar-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.avatar-actions :is(button,.primary-action,.secondary-action){min-height:44px;margin:0}.end-game-dialog{width:min(38rem,100% - 1rem)}.end-game-dialog p{line-height:1.5}.end-game-scores{border-collapse:collapse;table-layout:fixed;width:100%}.end-game-scores caption{text-align:start;margin-bottom:.75rem;font-weight:600}.end-game-scores th,.end-game-scores td{text-align:end;overflow-wrap:anywhere;border-bottom:1px solid var(--preferans-sage);padding:.6rem .25rem}.end-game-scores th:first-child{text-align:start}.end-game-votes{padding-inline-start:1.25rem;line-height:1.7}.end-game-actions{flex-wrap:wrap;gap:.75rem;display:flex}.end-game-actions button{flex:10rem}.friends-panel{gap:1.25rem;display:grid}.friends-panel>header h1{margin:.3rem 0 0;font-size:clamp(1.8rem,4vw,2.8rem)}.friends-panel h2{margin:0 0 .6rem;font-size:1.15rem}.friend-add{gap:.4rem;display:grid}.friend-add>div{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.friend-add input[type=text],.friend-add input:not([type]){border-radius:var(--preferans-radius-sm);min-width:0;min-height:44px;color:var(--preferans-ivory);background:var(--preferans-ink);border:1px solid #f4eedc40;flex:14rem;padding:.65rem .75rem}.friend-add input:focus-visible,.friend-invite select:focus-visible{outline:3px solid var(--preferans-ivory);outline-offset:2px}.friend-invite select{border-radius:var(--preferans-radius-sm);min-height:44px;color:var(--preferans-ivory);background:var(--preferans-ink);border:1px solid #f4eedc40;padding:.5rem .75rem}.friend-add label{color:var(--preferans-sage);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:600}.friend-add small,.friend-person small{color:#f4eedca6}.friend-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.friend-list>li{border-radius:var(--preferans-radius-md);background:#123d367a;border:1px solid #f4eedc24;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem 1rem;display:flex}.friend-person{align-items:center;gap:.7rem;min-width:0;display:inline-flex}.friend-person>span{gap:.1rem;min-width:0;display:grid}.friend-person .avatar,.friend-person img{border-radius:50%;flex:none;width:2.5rem;height:2.5rem}.friend-presence{color:#f4eedcbf;align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}.friend-presence>span{background:#f4eedc59;border-radius:50%;flex:none;width:.6rem;height:.6rem}.friend-presence.online>span{background:var(--preferans-success,#6fcf97)}.friend-presence.in_game>span{background:var(--preferans-gold)}.friend-actions{flex-wrap:wrap;gap:.5rem;display:inline-flex}.friend-toggle{align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.friends-empty{color:#f4eedcbf;margin:0}.profile-panel nav a .friends-badge{background:var(--preferans-vermilion);color:var(--preferans-ivory);border-radius:999px;margin-left:.4rem;padding:.05rem .45rem;font-size:.75rem}.friend-invite{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.friend-notices{gap:.5rem;margin-bottom:1rem;display:grid}.friend-notices>p{border-radius:var(--preferans-radius-md);background:#123d367a;border:1px solid #c5a45d73;flex-wrap:wrap;align-items:center;gap:.6rem;margin:0;padding:.6rem 1rem;display:flex}.friend-notices>p>span{flex:12rem}.friend-add>div{align-items:stretch}.friend-add input[type=text],.friend-add input:not([type]),.friend-add>div>button{box-sizing:border-box;height:44px;min-height:44px;margin:0}.friend-actions{align-items:center}.friend-actions>:is(button,a),.friend-notices :is(button,a),.friend-invite :is(button,select){box-sizing:border-box;justify-content:center;align-items:center;height:44px;min-height:44px;margin:0;padding-block:0;line-height:1;display:inline-flex}.avatar-badge{box-sizing:border-box;border:2px solid var(--preferans-ink);background:var(--preferans-vermilion);min-width:1.15rem;height:1.15rem;color:var(--preferans-ivory);text-align:center;pointer-events:none;border-radius:999px;padding:0 .3rem;font-size:.65rem;font-weight:700;line-height:calc(1.15rem - 4px);position:absolute;top:-4px;right:-4px}.friend-presence{white-space:nowrap}h1[tabindex="-1"]:focus,h1[tabindex="-1"]:focus-visible{outline:none}.moderation nav,.moderation-toolbar{flex-wrap:wrap;align-items:end;gap:.75rem;margin-block:1rem;display:flex}.moderation button,.report-panel button{cursor:pointer;min-height:2.75rem;padding:.5rem 1rem}.moderation [aria-current=page]{outline:2px solid var(--preferans-gold)}.moderation-card,.report-panel{border:1px solid var(--preferans-gold);overflow-wrap:anywhere;border-radius:.75rem;margin-block:1rem;padding:1rem}.moderation-card h2{font-size:1.2rem}.moderation-card small{font-weight:400}.moderation form,.report-panel form{gap:.75rem;max-width:38rem;margin-block:1rem;display:grid}.moderation label,.report-panel label{gap:.35rem;display:grid}.moderation input,.moderation select,.moderation textarea,.report-panel select,.report-panel textarea{font:inherit;min-width:0;max-width:100%;padding:.6rem}.moderation textarea,.report-panel textarea{resize:vertical;min-height:5rem}.moderation label:has([type=checkbox]){align-items:center;display:flex}.moderation-prose{white-space:pre-wrap}.report-dialog{color:var(--preferans-ivory);background:var(--preferans-green);border:1px solid var(--preferans-gold);border-radius:.75rem;width:min(34rem,100% - 2rem);max-height:calc(100dvh - 2rem);padding:1rem}.report-dialog::backdrop{background:#000000a6}.report-dialog .report-panel{border:0;margin:0;padding:0}.moderation pre{max-width:100%;font-size:.8rem;overflow:auto}.report-compact{flex:none;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;padding:.4rem;display:inline-flex}
