:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{color:#f7f4ee;background:radial-gradient(circle at top,#246d4f59,#0000 30%),linear-gradient(#184a38 0%,#123b2d 55%,#0d2f24 100%);min-height:100vh;margin:0}.shell{place-items:center;min-height:100vh;padding:2rem;display:grid}.card{background:#0003;border-radius:1rem;max-width:40rem;padding:2rem;box-shadow:0 1rem 2rem #00000040}.game-page-centered-card{max-width:28rem;margin:2rem auto}.multiplayer-lobby h2{margin-top:0}.multiplayer-lobby-copy,.multiplayer-lobby-status{margin:.75rem 0;line-height:1.4}.multiplayer-seat-list{margin:1rem 0;padding:0;list-style:none}.multiplayer-seat-row{border-bottom:1px solid #ffffff14;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.multiplayer-seat-status{color:#d4a63a;flex:1;min-width:4rem}.multiplayer-lobby-actions{margin-top:1rem}.multiplayer-lobby-hint{opacity:.9;margin:.75rem 0 0;font-size:.9rem}.multiplayer-lobby-error{margin-top:1rem}.start-new-game-error{color:#c00;margin-top:.5rem}.eyebrow{text-transform:uppercase;letter-spacing:.08em;margin:0 0 .5rem;font-size:.875rem}.meta{color:#d4a63a}.link-primary{color:#1f6f50;text-decoration:underline}.link-primary:hover{color:#d4a63a}.game-page{background:radial-gradient(circle at top,#4d99772e,#0000 28%),linear-gradient(#174837f2,#0a271dfa);min-height:100vh;padding:1rem}.game-table{background:linear-gradient(#123b2deb,#0a221aeb),#00000024;border:1px solid #d4a63a29;border-radius:1.5rem;max-width:64rem;min-height:80vh;margin:0 auto;padding:.75rem .85rem 1rem;box-shadow:inset 0 1px #ffffff0f,0 1rem 2.5rem #00000040}.game-table-layout{grid-template-rows:auto auto auto auto auto;grid-template-columns:1fr auto 1fr;place-items:start center;gap:.75rem 1rem;display:grid}.game-table-topbar{flex-direction:column;grid-area:1/1/auto/-1;gap:.75rem;width:100%;display:flex}.game-table-header{grid-template-columns:1fr auto 1fr;align-items:center;width:100%;display:grid}.game-table-brand{grid-column:2;justify-self:center;align-items:center;gap:.45rem;padding:.2rem .45rem;display:inline-flex}.game-table-brand-card{color:#201c17;background:linear-gradient(#fffaf1 0%,#efe5d5 100%);border:1px solid #201c1724;border-radius:.35rem;flex-direction:column;justify-content:center;align-items:center;width:1.55rem;height:2.1rem;line-height:1;display:inline-flex;box-shadow:inset 0 1px #ffffffbf,0 .3rem .55rem #0003}.game-table-brand-card-hearts{color:#b33a3a}.game-table-title{letter-spacing:.04em;text-transform:uppercase;text-shadow:0 1px #0003;margin:0;font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:1.35rem;font-weight:700}.game-table-brand-rank{font-size:.78rem;font-weight:800}.game-table-brand-suit{font-size:.88rem}.game-table-actions{flex-shrink:0;grid-column:3;justify-self:end;gap:.5rem;display:flex}.game-table-icon-button{appearance:none;width:2.25rem;height:2.25rem;color:inherit;font:inherit;cursor:pointer;background:linear-gradient(#ffffff29,#00000024),#0000002e;border:1px solid #fff3;border-radius:999px;justify-content:center;align-items:center;font-size:1rem;display:inline-flex;box-shadow:inset 0 1px #ffffff26,0 .25rem .55rem #0000002e}.game-table-icon-button:hover{transform:translateY(-1px)}.game-table-icon-button-settings-active{z-index:60;position:relative}.game-table-menu{background:linear-gradient(#164333e6,#0b251de6);border:1px solid #ffffff14;border-radius:.75rem;flex-direction:column;align-self:flex-end;gap:.5rem;width:min(100%,18rem);padding:.75rem;display:flex;box-shadow:0 .75rem 1.5rem #00000038}.game-table-confirmation{gap:.75rem}.game-table-confirmation-message{margin:0;line-height:1.4}.game-table-confirmation-actions{justify-content:flex-end;gap:.5rem;display:flex}.game-table-seat-1{grid-area:3/1}.game-table-seat-2{grid-area:2/2}.game-table-trick{background:radial-gradient(circle at top,#41a07638,#0000 50%),linear-gradient(#174837b8,#0b251db8);border:1px solid #ffffff0f;border-radius:1rem;grid-area:3/2;justify-content:center;align-items:center;min-width:12rem;min-height:8rem;padding:1rem;display:flex;box-shadow:inset 0 1px #ffffff0d,0 .8rem 1.5rem #0000002e}.game-table-seat-3{grid-area:3/3}.game-table-seat-0{grid-area:4/2;width:100%}.game-table-status{grid-area:4/1;justify-self:start;width:min(100%,9.25rem)}.game-table-human{flex-direction:column;grid-area:5/1/auto/-1;align-items:stretch;gap:.6rem;width:100%;display:flex}.game-table-human-placeholder{width:100%;min-height:5.2rem}.score-panel{background:#0003;border-radius:.5rem;flex-wrap:wrap;justify-content:center;gap:1rem;padding:.5rem;display:flex}.player-seat{background:linear-gradient(#0f3628eb,#092018eb),#0003;border:1px solid #ffffff14;border-radius:.8rem;flex-direction:column;align-items:stretch;gap:.35rem;width:min(100%,11rem);padding:.45rem .65rem;display:flex;box-shadow:inset 0 1px #ffffff0f,0 .45rem 1rem #00000029}.player-seat-human{border:1px solid #d4a63ab3;box-shadow:inset 0 1px #ffffff14,0 0 0 1px #d4a63a33,0 .55rem 1rem #0000002e}.player-seat-active{outline-offset:2px;outline:2px solid #d4a63a}.player-seat-last-trick-winner{border:1px solid #8fd3b5;box-shadow:0 0 0 1px #8fd3b559}.player-seat-label{letter-spacing:.02em;font-weight:600}.player-seat-meta{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.player-seat-badges{flex-wrap:wrap;justify-content:flex-end;gap:.25rem;display:flex}.player-seat-score{color:#d4a63a;text-align:right;font-weight:700}.player-seat-badge{text-transform:uppercase;letter-spacing:.04em;background:linear-gradient(#ffffff24,#ffffff0a);border:1px solid #ffffff40;border-radius:999px;padding:.15rem .45rem;font-size:.7rem}.status-banner{background:linear-gradient(#194f3bf2,#0e3024f2),#1f6f5066;border:1px solid #ffffff14;border-radius:.9rem;justify-content:center;align-items:center;width:100%;min-height:2.9rem;padding:.55rem .65rem;font-weight:700;display:flex;box-shadow:inset 0 1px #ffffff0f,0 .5rem 1rem #0000002e}.status-banner-error{background:linear-gradient(#762121f5,#4d1212f5),#8c1f1f66;box-shadow:inset 0 1px #ffffff0f,0 0 0 1px #ff94942e,0 .5rem 1rem #0000002e}.status-banner-message{text-align:center;text-wrap:balance;margin:0;line-height:1.2}.move-error-banner{background:linear-gradient(#762121f5,#4d1212f5),#8c1f1f66;border:1px solid #ff949438;border-radius:.75rem;align-self:center;width:min(100%,20rem);padding:.55rem .7rem;box-shadow:inset 0 1px #ffffff0f,0 .45rem .95rem #0000002e}.move-error-banner-message{text-align:center;color:#fff0f0;margin:0;line-height:1.35}.link-secondary{appearance:none;color:inherit;font:inherit;cursor:pointer;background:linear-gradient(#ffffff1f,#0000001f);border:1px solid #ffffff24;border-radius:999px;padding:.35rem .75rem;box-shadow:inset 0 1px #ffffff1a,0 .2rem .45rem #00000029}.button-primary,.button-secondary{appearance:none;font:inherit;cursor:pointer;border-radius:.6rem;padding:.65rem .95rem;font-weight:700;transition:transform .12s,box-shadow .12s,filter .12s}.button-primary{color:#123b2d;background:linear-gradient(#e0b552 0%,#c18d24 100%);border:1px solid #d4a63a8c;box-shadow:inset 0 1px #fff8df8c,inset 0 -1px #6f4b0f59,0 .35rem .8rem #0003}.button-primary:disabled{opacity:.55;cursor:not-allowed}.button-secondary{color:inherit;background:linear-gradient(#ffffff21,#00000024);border:1px solid #ffffff38;box-shadow:inset 0 1px #ffffff1f,0 .25rem .6rem #00000029}.button-primary:hover:not(:disabled),.button-secondary:hover:not(:disabled),.link-secondary:hover{filter:brightness(1.03);transform:translateY(-1px)}.settings-modal-backdrop{z-index:40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#05110d99;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.settings-modal-shell{width:min(100%,26rem)}.settings-panel{background:linear-gradient(#164333e6,#0b251de6);border:1px solid #ffffff14;border-radius:.75rem;flex-direction:column;gap:.9rem;width:100%;padding:.9rem 1rem;display:flex;box-shadow:0 .75rem 1.5rem #0003}.settings-panel-title{text-align:center;margin:0}.settings-option{flex-direction:column;gap:.35rem;display:flex}.settings-checkbox-label{align-items:center;gap:.6rem;font-weight:600;display:flex}.settings-select-label{flex-direction:column;gap:.45rem;font-weight:600;display:flex}.settings-checkbox-label input{margin:0}.settings-select,.settings-input{width:100%;color:inherit;font:inherit;background:#ffffff14;border:1px solid #fff3;border-radius:.55rem;padding:.55rem .7rem}.settings-help{color:#ffffffe0;margin:0;line-height:1.4}.settings-actions{justify-content:flex-end;display:flex}.game-table-centered-confirmation{width:min(100%,24rem)}.game-summary-modal{align-self:stretch;width:min(100%,26rem)}.game-summary-modal-actions{flex-direction:column;gap:.6rem;display:flex}.session-entry-page{place-items:center;padding:1rem;display:grid}.session-entry-table{flex-direction:column;justify-content:space-between;width:min(100%,58rem);min-height:74vh;display:flex}.signin-table{justify-content:flex-start}.session-entry-header{flex-direction:column;gap:1.25rem;display:flex}.session-entry-page .game-table-actions{z-index:50;position:relative}.session-entry-hero{text-align:center;color:#ffffffeb;flex-direction:column;justify-content:center;align-items:center;gap:.45rem;min-height:16rem;display:flex}.session-entry-body{flex:1;justify-content:center;align-items:center;padding:1rem 0 2rem;display:flex}.session-entry-eyebrow,.session-entry-dialog-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:#d4a63a;margin:0;font-size:.82rem;font-weight:700}.session-entry-tagline{max-width:28rem;margin:0;font-size:1.05rem;line-height:1.5}.session-entry-dialog{background:linear-gradient(#164333eb,#0b251deb);border:1px solid #ffffff14;border-radius:.85rem;flex-direction:column;gap:.9rem;padding:1rem 1.1rem;display:flex;box-shadow:0 .75rem 1.5rem #0003}.session-entry-panel{width:min(100%,26rem)}.session-entry-dialog-title,.session-entry-dialog-copy{margin:0}.session-entry-dialog-title{text-align:center}.session-entry-dialog-copy{text-align:center;color:#ffffffe6;line-height:1.5}.session-entry-actions{flex-direction:column;gap:.6rem;display:flex}.session-entry-error{text-align:center;margin:0}.history-page{padding-block:1.5rem}.history-shell,.history-header{flex-direction:column;gap:1rem;display:flex}.history-hero{text-align:center;flex-direction:column;align-items:center;gap:.35rem;display:flex}.history-title{margin:0;font-size:clamp(1.7rem,3vw,2.35rem)}.history-copy{color:#ffffffe0;max-width:40rem;margin:0;line-height:1.5}.history-section{flex-direction:column;gap:.75rem;display:flex}.history-section-heading{flex-direction:column;gap:.25rem;display:flex}.history-section-title{margin:0;font-size:1.15rem}.history-section-copy{color:#ffffffd1;margin:0;line-height:1.45}.result-share-actions-row{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.result-share-action-button{min-width:11rem}.result-share-feedback{min-height:1.25rem}.result-share-feedback-line{color:#ffffffe0;margin:0;font-size:.92rem;line-height:1.45}.result-share-feedback-line+.result-share-feedback-line{margin-top:.35rem}.result-share-fallback{flex-direction:column;gap:.4rem;display:flex}.result-share-fallback-label{color:#ffffffe0;font-size:.85rem;font-weight:600}.result-share-fallback-textarea{color:#f7f4ee;resize:vertical;background:#0a221aa6;border:1px solid #ffffff24;border-radius:.65rem;width:100%;min-height:12rem;padding:.65rem .75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem;line-height:1.45}.result-share-fallback-textarea:focus{outline-offset:2px;outline:2px solid #d4a63a8c}.history-stats-grid{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.75rem;display:grid}.history-stat-card,.history-empty-state,.history-list-item{background:linear-gradient(#164333e6,#0b251deb);border:1px solid #ffffff14;border-radius:.9rem;padding:.85rem 1rem;box-shadow:0 .75rem 1.5rem #0000002e}.history-stat-card{flex-direction:column;gap:.35rem;display:flex}.history-stat-label{color:#ffffffb8;text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.82rem}.history-stat-value{margin:0;font-size:1.45rem;font-weight:700}.history-list,.history-list-item{flex-direction:column;gap:.75rem;display:flex}.history-list-item-header{justify-content:space-between;align-items:start;gap:.75rem;display:flex}.history-list-item-title{margin:0;font-size:1rem;font-weight:700}.history-list-item-subtitle{color:#d4a63a;margin:.2rem 0 0}.history-list-metadata{flex-wrap:wrap;gap:.5rem;display:flex}.history-pill{background:#ffffff14;border:1px solid #ffffff14;border-radius:999px;align-items:center;padding:.3rem .55rem;font-size:.92rem;display:inline-flex}.history-empty-state{text-align:center;flex-direction:column;align-items:center;gap:.75rem;display:flex}.history-empty-title{margin:0;font-size:1.1rem;font-weight:700}.history-empty-copy{color:#ffffffdb;max-width:34rem;margin:0;line-height:1.5}.history-empty-actions{justify-content:center;display:flex}.history-highlight{color:#fff3d3;background:#d4a63a29;border:1px solid #d4a63a38;border-radius:.75rem;margin:0;padding:.65rem .8rem}.history-nav-link,.history-detail-link{text-decoration:none}.rules-help-panel{background:linear-gradient(#164333e6,#0b251de6);border:1px solid #ffffff14;border-radius:.75rem;flex-direction:column;gap:.75rem;padding:.75rem;display:flex;box-shadow:0 .75rem 1.5rem #0003}.rules-help-title{text-align:center;margin:0}.rules-help-notice{color:#fffffff2;margin:0}.rules-help-list{flex-direction:column;gap:.35rem;margin:0;padding-left:1.25rem;display:flex}.rules-help-item{line-height:1.4}.passing-panel{flex-direction:column;gap:.75rem;display:flex}.round-complete-panel,.game-complete-panel{flex-direction:column;justify-content:center;gap:.75rem;display:flex}.round-summary{background:linear-gradient(#164333e6,#0b251de6);border:1px solid #ffffff14;border-radius:.75rem;flex-direction:column;gap:.75rem;padding:.75rem;display:flex;box-shadow:0 .75rem 1.5rem #0003}.round-summary-title{text-align:center;margin:0}.round-summary-message{text-align:center;color:#ffffffe6;margin:0}.round-summary-list{flex-direction:column;gap:.5rem;display:flex}.round-summary-row{background:#ffffff14;border-radius:.5rem;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.5rem .75rem;display:grid}.round-summary-seat-label{font-weight:600}.round-summary-seat-points,.round-summary-seat-total{white-space:nowrap;font-size:.95rem}.final-standings{background:linear-gradient(#164333e6,#0b251de6);border:1px solid #ffffff14;border-radius:.75rem;flex-direction:column;gap:.75rem;padding:.75rem;display:flex;box-shadow:0 .75rem 1.5rem #0003}.final-standings-title{text-align:center;margin:0}.final-standings-message{text-align:center;color:#ffffffe6;margin:0}.final-standings-list{flex-direction:column;gap:.5rem;display:flex}.final-standing-row{background:#ffffff14;border-radius:.5rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.5rem .75rem;display:grid}.final-standing-row-winner{background:#d4a63a38;box-shadow:0 0 0 1px #d4a63a40}.final-standing-rank,.final-standing-score{white-space:nowrap;font-size:.95rem}.final-standing-label{font-weight:600}.card-hand{flex-flow:wrap;justify-content:center;gap:.25rem;padding:.5rem;display:flex}.card-hand-grouped{flex-direction:column;align-items:center;gap:.35rem}.card-hand-row{flex-wrap:wrap;justify-content:center;gap:.25rem;width:100%;display:flex}.card-hand-actions{justify-content:center;width:100%;padding-top:.15rem;display:flex}.trick-area{flex-direction:column;align-items:center;gap:.75rem;min-height:9.75rem;display:flex}.trick-area-label{color:#ffffffd1;justify-content:center;align-items:center;min-height:1rem;font-size:.85rem;display:flex}.trick-area-label-hidden{visibility:hidden}.trick-area-stage{background:linear-gradient(#22694d38,#0a221a14);border-radius:.8rem;width:min(100%,12rem);height:8.5rem;position:relative;box-shadow:inset 0 0 0 1px #ffffff0a}.trick-area-card{position:absolute}.trick-area-card-seat-0{bottom:0;left:50%;transform:translate(-50%)}.trick-area-card-seat-1{top:50%;left:0;transform:translateY(-50%)}.trick-area-card-seat-2{top:0;left:50%;transform:translate(-50%)}.trick-area-card-seat-3{top:50%;right:0;transform:translateY(-50%)}.game-card{color:#201c17;background:#f7f4ee;border:1px solid #201c1714;border-radius:.32rem;flex-direction:column;justify-content:center;align-items:center;width:2.5rem;height:3.5rem;padding:.25rem;font-size:.75rem;transition:transform .12s,box-shadow .12s,opacity .12s;display:flex;position:relative;box-shadow:inset 0 1px #ffffffe6,0 2px 6px #00000047}button.game-card{cursor:pointer;font:inherit}.game-card-playable{border-color:#d4a63a;box-shadow:inset 0 1px #ffffffe6,0 0 0 1px #d4a63a73,0 4px 10px #00000042}.game-card-playable:hover:not(:disabled){transform:translateY(-2px)}.game-card-selected{border-color:#8fd3b5;transform:translateY(-2px);box-shadow:0 0 0 2px #8fd3b559}.game-card-disabled{opacity:.55}button.game-card:disabled{cursor:not-allowed}.game-card-red{color:#b33a3a}.game-card-rank{font-weight:700}.game-card-suit{font-size:1rem}.game-card-indicator{letter-spacing:.04em;text-transform:uppercase;color:#f7f4ee;background:#123b2deb;border-radius:999px;padding:.08rem .2rem;font-size:.45rem;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.game-card-indicator-selected{bottom:.1rem}[data-reduced-motion=true] .game-card{transition:none}[data-reduced-motion=true] .game-card-playable:hover:not(:disabled),[data-reduced-motion=true] .game-card-selected{transform:none}@media (prefers-reduced-motion:reduce){.game-card{transition:none}.game-card-playable:hover:not(:disabled),.game-card-selected{transform:none}}@media (max-width:767px){.game-page{padding:.5rem}.game-table{border-radius:1rem;max-width:100%;min-height:auto;padding:.55rem .55rem .8rem}.game-table-layout{grid-template-rows:auto auto auto auto auto;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.5rem}.game-table-topbar{grid-area:1/1/auto/-1;gap:.5rem}.game-table-header{grid-template-columns:1fr auto;gap:.5rem}.game-table-menu{align-self:stretch;width:100%}.game-table-brand{grid-column:1;justify-self:start;gap:.35rem;min-width:0}.game-table-title{font-size:1rem}.game-table-brand-card{width:1.35rem;height:1.8rem}.game-table-actions{gap:.35rem}.game-table-icon-button{width:2rem;height:2rem}.game-table-seat-1{grid-area:3/1}.game-table-seat-2{grid-area:2/2}.game-table-trick{grid-area:3/2;min-width:6.5rem;min-height:4.5rem;padding:.5rem}.game-table-seat-3{grid-area:3/3}.game-table-seat-0{grid-area:4/2}.game-table-status{grid-area:4/1;width:100%;min-width:0}.game-table-human{grid-area:5/1/auto/-1}.game-table-human-placeholder{min-height:3.75rem}.game-table-human,.settings-panel,.passing-panel,.round-complete-panel,.game-complete-panel,.rules-help-panel{grid-column:1/-1;width:100%}.player-seat{gap:.2rem;width:100%;min-width:0;padding:.35rem .5rem}.player-seat-label,.player-seat-score{font-size:.85rem}.player-seat-badge{font-size:.6rem}.game-card{width:1.48rem;height:2.2rem;padding:.18rem;font-size:.52rem}.game-card-indicator{padding:.05rem .15rem;font-size:.33rem}.game-card-suit{font-size:.78rem}.card-hand{flex-wrap:nowrap;justify-content:center;gap:.08rem;padding:.35rem 0}.trick-area{gap:.45rem;min-height:5.35rem}.trick-area-stage{width:min(100%,6.5rem);height:4.6rem}.trick-area-label{font-size:.7rem}.status-banner{min-height:2.45rem;padding:.45rem .5rem;font-size:.82rem}.passing-panel,.round-complete-panel,.game-complete-panel,.rules-help-panel,.settings-panel,.session-entry-dialog{gap:.5rem}.settings-modal-backdrop{padding:.75rem}.session-entry-table{min-height:68vh}.session-entry-body{padding:.5rem 0 1rem}.session-entry-hero{gap:.35rem;min-height:12rem}.round-summary-message,.final-standings-message,.rules-help-notice,.settings-help,.session-entry-dialog-copy,.session-entry-tagline{font-size:.9rem}.round-summary{padding:.6rem}.move-error-banner{width:100%;padding:.45rem .55rem}.move-error-banner-message{font-size:.9rem}.round-summary-row{gap:.35rem;padding:.4rem .5rem}.round-summary-row,.final-standing-row{grid-template-columns:minmax(0,1fr);justify-items:start}.history-title{font-size:1.45rem}.history-copy,.history-section-copy{font-size:.92rem}.history-list-item-header{flex-direction:column;align-items:stretch}.history-nav-link,.history-detail-link{justify-content:center;width:100%}}@media (max-width:767px) and (pointer:coarse) and (orientation:portrait){.game-table-human-placeholder{min-height:6rem}.trick-area{min-height:6.8rem}.trick-area-stage{width:min(100%,8rem);height:5.8rem}.trick-area .game-card{width:1.85rem;height:2.75rem;padding:.22rem;font-size:.65rem}.trick-area .game-card-suit{font-size:.92rem}.card-hand-grouped{gap:.45rem;padding:.45rem 0 .25rem}.card-hand-grouped .card-hand-row{gap:.35rem}.card-hand-grouped .game-card{width:2.22rem;height:3.3rem;padding:.22rem;font-size:.78rem}.card-hand-grouped .game-card-suit{font-size:1.05rem}.card-hand-grouped .game-card-indicator{padding:.07rem .18rem;font-size:.42rem}.card-hand-actions .button-primary{min-width:9rem}}
