:root{color-scheme:dark;font-family:DM Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f8f1df;background:#09281f;font-synthesis:none;--felt-950: #061e18;--felt-900: #09281f;--felt-800: #103a2d;--felt-700: #18503d;--felt-600: #22634d;--cream: #fffaf0;--cream-2: #f2e8d4;--gold: #efc56e;--gold-bright: #ffda87;--wood: #a7652e;--ink: #14221d;--muted: #b8cfc6;--red: #b82e37;--blue: #2c72d9;--line: rgba(255, 255, 255, .13);--shadow: 0 18px 45px rgba(1, 13, 9, .28);--radius-lg: 22px;--radius-md: 15px}*{box-sizing:border-box}html{min-width:0;overflow-x:hidden;background:var(--felt-950)}body{margin:0;min-width:0;min-height:100dvh;overflow-x:hidden;background:radial-gradient(circle at 16% -10%,#24694f 0,transparent 38%),radial-gradient(circle at 95% 15%,#124a38 0,transparent 34%),linear-gradient(160deg,var(--felt-800),var(--felt-950) 72%)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 90 90'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E")}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button,input,summary{outline:none}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--gold-bright);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Fraunces,Georgia,serif}.welcome-shell,.game-shell,.loading-shell{position:relative;width:min(1120px,100%);margin:0 auto;padding:max(16px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.brand{display:inline-flex;align-items:center;gap:10px;min-width:0}.brand>span:last-child{display:grid;line-height:1}.brand b{font:700 24px/1 Fraunces,Georgia,serif;letter-spacing:-.03em}.brand small{margin-top:5px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.brand-mark{position:relative;display:inline-flex;align-items:center;gap:3px;width:37px;height:37px;padding:6px;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:#d59a4d;box-shadow:inset 0 0 0 4px #8e5427}.brand-mark i{display:block;width:5px;height:5px;border-radius:50%;background:#311f12;box-shadow:0 11px #311f12}.eyebrow{display:block;margin-bottom:5px;color:var(--gold-bright);font-size:10px;font-weight:800;letter-spacing:.17em;text-transform:uppercase}.panel{min-width:0;padding:16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(145deg,#1a4d3bf0,#0b3025f5);box-shadow:var(--shadow)}.panel-heading{margin-bottom:13px}.panel-heading h2{margin:0;font-size:clamp(21px,6vw,29px);line-height:1.06;letter-spacing:-.025em}.action-button{min-height:48px;border:1px solid transparent;border-radius:12px;padding:11px 16px;cursor:pointer;font-weight:800;line-height:1.2;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.action-button:not(:disabled):active{transform:translateY(1px) scale(.99)}.action-primary{color:#25301f;background:linear-gradient(180deg,var(--gold-bright),var(--gold));box-shadow:0 7px 18px #00000030,inset 0 1px #ffffff8c}.action-secondary{color:var(--cream);border-color:#ffffff3d;background:#ffffff14}.action-quiet{min-height:38px;padding:7px 11px;color:var(--cream-2);border-color:#ffffff29;background:#04191340;font-size:12px}.action-button:disabled{cursor:default;opacity:.45}.status-message{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:13px 15px;border-radius:13px}.status-message b{flex:0 0 auto}.status-message span{min-width:0}.status-error{color:#fff3ec;border:1px solid #f0a590;background:#762f2a}.welcome-shell{display:grid;align-content:center;min-height:100dvh}.welcome-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:clamp(28px,7vh,65px)}.edition{padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.welcome-hero{max-width:720px}.welcome-hero h1{margin-bottom:12px;font-size:clamp(42px,11vw,78px);line-height:.94;letter-spacing:-.055em}.welcome-hero h1 em{color:var(--gold-bright);font-style:normal}.welcome-hero p{max-width:590px;margin-bottom:0;color:#d0e0d9;font-size:clamp(15px,3vw,18px);line-height:1.55}.identity-field{max-width:470px;margin:22px 0 14px}.identity-field label,.welcome-card>label{display:block;margin-bottom:7px;color:#dce9e3;font-size:12px;font-weight:700}input{width:100%;min-height:48px;border:1px solid rgba(255,255,255,.27);border-radius:12px;padding:10px 13px;color:var(--ink);background:var(--cream);font-size:16px;box-shadow:inset 0 2px 5px #492d1114}input::placeholder{color:#708078}.welcome-actions{display:grid;grid-template-columns:1fr;gap:12px}.welcome-card{display:flex;flex-direction:column}.welcome-card .action-button{width:100%;margin-top:auto}.traditional-choice{display:flex;align-items:center;gap:10px;min-height:66px;margin-bottom:15px;padding:9px;border:1px solid rgba(239,197,110,.42);border-radius:12px;background:#efc56e14}.traditional-choice-art{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;overflow:hidden;border-radius:10px;color:#e4c080;background:#16120e;font:800 10px/1 Georgia,serif;letter-spacing:-1px}.traditional-choice>span:last-child{display:grid;min-width:0}.traditional-choice b{font-size:13px}.traditional-choice small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.25}.code-input{font-size:22px;font-weight:800;letter-spacing:.18em;text-align:center;text-transform:uppercase}.field-help{margin:8px 0 18px;color:var(--muted);font-size:12px}.welcome-shell>.status-message{margin-top:12px}.welcome-footer{display:flex;flex-wrap:wrap;gap:9px 20px;margin-top:18px;color:#89aa9d;font-size:11px;font-weight:700}.welcome-footer span:before{content:"✓";margin-right:5px;color:var(--gold)}.game-shell{min-height:100dvh}.game-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.game-header-meta{display:flex;align-items:center;gap:7px;min-width:0}.connection-badge{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:5px 8px;border:1px solid var(--line);border-radius:999px;color:#dbeae4;background:#0000002e;font-size:10px;font-weight:800;text-transform:uppercase}.connection-badge i{width:7px;height:7px;border-radius:50%;background:#d46755;box-shadow:0 0 0 3px #d4675524}.connection-online i{background:#62d79d;box-shadow:0 0 0 3px #62d79d24}.connection-connecting i{background:var(--gold);animation:pulse 1.1s infinite}.compact-room{overflow:hidden;padding:6px 8px;border-radius:8px;color:#adc8bd;background:#00000029;font-size:10px;white-space:nowrap}.compact-room b{color:var(--cream);letter-spacing:.09em}.offline-banner{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-bottom:10px;padding:10px 12px;border:1px solid #cc9960;border-radius:11px;color:#fff0d8;background:#6e4827;font-size:12px}.offline-banner span{color:#f2d8b6}.scoreboard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px;margin-bottom:9px}.player-score{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;min-height:57px;padding:8px 9px;border:1px solid var(--line);border-radius:14px;background:#052119a6;transition:border .2s ease,background .2s ease}.player-score.is-active{border-color:var(--gold);background:#385832c2;box-shadow:inset 0 0 0 1px #efc56e59}.player-score.is-winner{border-color:var(--gold-bright);background:linear-gradient(135deg,#63582b,#214936)}.player-avatar{display:grid;place-items:center;width:34px;height:34px;border:2px solid rgba(255,255,255,.55);border-radius:50%;color:#fff;background:#b4393d;font-weight:800}.player-1 .player-avatar{background:#316fc0}.player-info{display:grid;min-width:0;line-height:1.05}.player-info b{overflow:hidden;text-overflow:ellipsis;font-size:12px;white-space:nowrap}.player-info small{overflow:hidden;margin-top:5px;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.score-number{font:700 25px/1 Fraunces,Georgia,serif;font-variant-numeric:tabular-nums}.dealer-chip{position:absolute;top:-5px;left:27px;display:grid;place-items:center;width:18px;height:18px;border:2px solid var(--felt-900);border-radius:50%;color:#352513;background:var(--gold-bright);font-size:9px;font-weight:900}.is-empty{opacity:.62}.is-empty .player-avatar{background:transparent;border-style:dashed}.phase-ribbon{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;margin-bottom:9px;padding:9px 12px;border:1px solid var(--line);border-radius:14px;background:#062119bf}.phase-ribbon h1{margin:0;overflow:hidden;font-size:clamp(22px,6vw,31px);line-height:1;letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap}.starter-card{display:flex;align-items:center;gap:7px;flex:0 0 auto}.starter-card>span{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.game-grid,.game-primary,.game-aside{min-width:0}.game-primary{display:grid;gap:10px}.game-aside{display:grid;align-content:start;gap:10px;margin-top:10px}.hand-row{display:flex;align-items:flex-end;justify-content:center;gap:clamp(2px,1.2vw,8px);width:100%;min-width:0;padding:8px 0 13px}.playing-card{position:relative;flex:0 0 clamp(40px,13.5vw,68px);width:clamp(40px,13.5vw,68px);height:clamp(58px,19.2vw,97px);min-height:0;overflow:hidden;border:1px solid #d9cfbd;border-radius:clamp(6px,2vw,10px);padding:0;color:#18201d;background:linear-gradient(145deg,#fffefa,#f3ead8);box-shadow:0 5px 12px #00000040,inset 0 0 0 2px #ffffff9e;transform-origin:center bottom;transition:transform .16s ease,opacity .16s ease,box-shadow .16s ease,filter .16s ease}button.playing-card{cursor:pointer}.card-corner{position:absolute;top:5px;left:5px;display:grid;justify-items:center;font:700 clamp(11px,3.7vw,17px)/.8 "Fraunces",Georgia,serif}.card-corner>span{margin-top:3px;font:400 clamp(9px,3vw,15px)/1 Georgia,serif}.card-corner-bottom{inset:auto 5px 5px auto;transform:rotate(180deg)}.card-suit{position:absolute;inset:50% auto auto 50%;font:400 clamp(20px,7vw,39px)/1 Georgia,serif;transform:translate(-50%,-50%)}.suit-hearts,.suit-diamonds{color:#b02732}.suit-diamonds{background:linear-gradient(145deg,#fffefa,#f4e5df)}.suit-clubs{color:#183b2d}.suit-spades{color:#171c20}.playing-card.is-playable{border-color:var(--gold-bright);box-shadow:0 0 0 2px var(--gold),0 8px 15px #0000004d;transform:translateY(-4px)}.playing-card.is-selected{border-color:var(--gold-bright);box-shadow:0 0 0 3px var(--gold),0 11px 18px #00000059;transform:translateY(-9px) rotate(-1deg)}.playing-card.is-selected:after{content:"✓";position:absolute;top:3px;right:3px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;color:#29341e;background:var(--gold-bright);font-size:11px;font-weight:900}.playing-card.is-muted{opacity:.48;filter:saturate(.55)}.playing-card.is-compact{flex-basis:34px;width:34px;height:49px;border-radius:5px;box-shadow:0 2px 5px #0003}.playing-card.is-compact .card-corner{top:3px;left:3px;font-size:10px}.playing-card.is-compact .card-corner>span{font-size:8px}.playing-card.is-compact .card-corner-bottom{display:none}.playing-card.is-compact .card-suit{font-size:17px}.decision-panel{padding:14px}.decision-copy{margin:-4px 0 5px;color:#c3d8d0;font-size:12px;line-height:1.42}.decision-panel>.action-button,.deal-button{width:100%}.invitation-panel{text-align:center}.room-code-display{display:grid;justify-items:center;margin:2px 0 12px}.room-code-display span{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.room-code-display strong{margin-top:3px;font:700 clamp(36px,11vw,58px)/1 "Fraunces",Georgia,serif;letter-spacing:.12em}.invitation-copy{max-width:560px;margin:0 auto 13px;color:#c5d9d1;font-size:12px;line-height:1.45}.invite-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.arrival-list{display:grid;gap:7px;margin:14px 0 10px;text-align:left}.arrival{display:flex;align-items:center;gap:10px;min-width:0;padding:9px 11px;border:1px dashed rgba(255,255,255,.2);border-radius:12px;color:var(--muted);background:#0000001f}.arrival i{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border:1px dashed currentColor;border-radius:50%;font-style:normal}.arrival span{display:grid;min-width:0}.arrival b{overflow:hidden;color:inherit;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.arrival small{margin-top:2px;font-size:10px}.arrival.is-here{color:var(--cream);border-style:solid}.arrival.is-here i{color:#163d2c;border-style:solid;background:#7dd4a4}.inline-notice{margin:7px 0;color:var(--gold-bright);font-size:11px}.waiting-panel{display:grid;justify-items:center;padding-block:28px;text-align:center}.waiting-panel p{max-width:430px;margin-bottom:0;color:var(--muted);font-size:13px}.waiting-mark,.deal-animation{display:flex;align-items:center;justify-content:center;gap:8px;height:62px}.waiting-mark i{width:9px;height:9px;border-radius:50%;background:var(--gold);animation:bounce 1.2s infinite}.waiting-mark i:nth-child(2){animation-delay:.15s}.waiting-mark i:nth-child(3){animation-delay:.3s}.deal-animation i{width:34px;height:48px;margin-left:-20px;border:1px solid #d8cdb9;border-radius:5px;background:var(--cream);box-shadow:0 4px 8px #0004;transform:rotate(-10deg)}.deal-animation i:nth-child(2){transform:translateY(-5px)}.deal-animation i:nth-child(3){transform:rotate(10deg)}.pegging-panel.is-your-turn{border-color:#efc56ea3;box-shadow:0 0 0 1px #efc56e29,var(--shadow)}.pegging-table{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:center;gap:10px;min-height:100px;margin:0 -4px 10px;padding:9px;border-radius:16px;background:#011a135c}.count-dial{display:grid;place-items:center;width:78px;height:78px;border:2px solid var(--gold);border-radius:50%;background:radial-gradient(circle,#1b503c,#0a2d22);box-shadow:inset 0 0 0 5px #efc56e14,0 6px 12px #0003}.count-dial span,.count-dial small{color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.count-dial strong{margin:-2px 0;color:var(--gold-bright);font:700 35px/1 Fraunces,Georgia,serif;font-variant-numeric:tabular-nums}.current-run{min-width:0;overflow:hidden}.table-label,.hand-label{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.played-row{display:flex;align-items:center;min-height:57px;overflow:hidden;padding:4px}.played-row .playing-card+.playing-card{margin-left:-10px}.empty-run{color:#86a69a;font:italic 12px Georgia,serif}.hand-label{display:flex;justify-content:space-between;align-items:center}.hand-label small{letter-spacing:0;text-transform:none}.empty-hand{width:100%;margin:12px 0;color:var(--muted);text-align:center;font-size:12px}.score-explanations{display:grid;gap:5px;margin-top:10px}.score-line{display:flex;justify-content:space-between;gap:8px;padding:7px 9px;border-left:3px solid #65a88b;border-radius:5px 9px 9px 5px;color:#dbe8e2;background:#00000029;font-size:11px}.score-line b{color:var(--gold-bright)}.counting-panel{overflow:hidden}.revealed-groups{display:grid;gap:7px}.revealed-hand{min-width:0;padding:8px;border-radius:12px;background:#00000026}.revealed-title{display:flex;justify-content:space-between;gap:10px;font-size:11px}.revealed-title b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.revealed-title span{color:var(--muted)}.revealed-hand .hand-row{justify-content:flex-start;padding:7px 0 1px}.crib-hand{border:1px solid rgba(239,197,110,.26)}.host-note{margin:12px 0 0;color:var(--muted);font-size:12px;text-align:center}.game-over-panel{overflow:hidden;text-align:center;background:radial-gradient(circle at 50% 5%,#6c6130,#174a37 50%,#0c3327)}.game-over-panel h2{font-size:clamp(32px,10vw,54px)}.winner-emblem{display:grid;place-items:center;width:92px;height:92px;margin:2px auto 10px;border:2px solid var(--gold-bright);border-radius:50%;color:var(--gold-bright);background:#0000002e;box-shadow:0 0 0 7px #efc56e17;font:700 33px/1 Fraunces,Georgia,serif}.game-over-panel>p{color:#d4e2dc}.final-scores{display:grid;gap:7px;margin:15px 0}.final-scores>div{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:10px;background:#00000029}.final-scores span{max-width:75%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.final-scores strong{font:700 25px/1 Fraunces,Georgia,serif}.final-scores .is-winner{color:var(--gold-bright);border:1px solid var(--gold)}.crib-board{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:#0a2c22;box-shadow:var(--shadow)}.board-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 13px 8px}.board-toolbar h2{margin:0;font-size:18px}.board-toolbar .eyebrow{margin-bottom:2px}.board-frame{width:100%;overflow:hidden;padding:0 6px}.board-svg{display:block;width:100%;height:auto;max-height:280px;aspect-ratio:720 / 260}.board-wood{stroke:#e7bc78;stroke-width:1.5}.board-brand{fill:#57331999;font:700 11px DM Sans,sans-serif;letter-spacing:4px}.board-track,.parking-path{fill:none;stroke:#17130f;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.2;opacity:.85}.parking-path{stroke-dasharray:2 2;opacity:.9}.board-hole{fill:#17130f;stroke-width:1}.hole-0,.hole-1{stroke:#17130f}.board-hole.is-fifth{stroke-width:1.7}.parking-hole{fill:#d6a35d;stroke:#17130f;stroke-width:1.5}.board-number{fill:#382416;paint-order:stroke;stroke:#dfad6966;stroke-width:2px;font:800 8px DM Sans,sans-serif;letter-spacing:.04em}.board-peg{stroke-width:1.5;paint-order:stroke fill;filter:drop-shadow(0 1px 1px rgba(0,0,0,.42))}.peg-0,.peg-1{stroke-linejoin:round}.peg-0{fill:#df4648;stroke:#6f151b}.peg-1{fill:#246bd7;stroke:#123b82}.peg-current{stroke:#fff5da;stroke-width:2.1}.peg-previous{opacity:1}.peg-previous.is-overlap{fill:none;stroke-width:2.8}.peg-shine{fill:#fff9;stroke:0}.peg-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 13px;padding:7px 13px 11px;color:#d7e4df;font-size:10px}.peg-legend>span{display:inline-flex;align-items:center;min-width:0;max-width:34%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.peg-legend small{margin-left:auto;color:#87a69a}.legend-peg{display:inline-block;flex:0 0 auto;width:9px;height:9px;margin-right:5px;border:2px solid white;border-radius:50%;background:#df4648}.legend-1{background:#246bd7}.board-modal{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));background:#010c09de;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.board-modal-card{width:min(1050px,100%);max-height:100%;overflow:auto;padding:10px;border:1px solid #ffffff2e;border-radius:20px;background:#0a3025;box-shadow:0 30px 80px #0008}.board-modal-head{display:flex;justify-content:space-between;align-items:center;padding:2px 3px 7px}.board-modal-card .board-svg{max-height:none}.match-status{box-shadow:none}.match-status dl{margin:0}.match-status dl>div{display:flex;justify-content:space-between;gap:15px;padding:7px 0;border-bottom:1px solid var(--line);font-size:11px}.match-status dt{color:var(--muted)}.match-status dd{max-width:60%;overflow:hidden;margin:0;font-weight:700;text-align:right;text-overflow:ellipsis;white-space:nowrap}.latest-event{margin-top:12px;padding:9px 10px;border-radius:10px;background:#00000029}.latest-event span{color:var(--gold);font-size:9px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.latest-event p{margin:4px 0 0;color:#d7e4df;font-size:11px;line-height:1.4}.game-log{border:1px solid var(--line);border-radius:14px;background:#031c159e}.game-log summary{min-height:46px;padding:14px;cursor:pointer;font-size:12px;font-weight:800;list-style:none}.game-log summary::-webkit-details-marker{display:none}.game-log summary:after{content:"+";float:right;color:var(--gold)}.game-log[open] summary:after{content:"–"}.game-log summary span{margin-left:5px;padding:2px 6px;border-radius:9px;color:var(--muted);background:#ffffff12;font-size:9px}.game-log>div{max-height:260px;overflow:auto;padding:0 12px 10px}.game-log p{margin:0;padding:7px 0 7px 9px;border-left:2px solid #4d806d;color:#bcd0c8;font-size:10px;line-height:1.35}.game-log p+p{border-top:1px solid #ffffff0d}.game-log .event-score,.game-log .event-count,.game-log .event-winner{border-left-color:var(--gold);color:#f3dba9}.floating-message{position:fixed;z-index:20;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));box-shadow:0 15px 40px #0007}.loading-shell{display:grid;place-items:center;align-content:center;min-height:100dvh;text-align:center}.loading-shell .brand{margin-bottom:35px}.loading-shell h1{margin:18px 0 5px;font-size:30px}.loading-shell>p{color:var(--muted)}.loading-shell .status-message{max-width:500px;text-align:left}.loading-shell .status-message .action-button{flex-basis:100%;margin-top:7px}.loading-table{position:relative;width:115px;height:74px}.loading-table i{position:absolute;left:39px;width:42px;height:62px;border:1px solid #d4c8b4;border-radius:6px;background:var(--cream);box-shadow:0 5px 12px #0004;animation:deal 1.4s infinite}.loading-table i:nth-child(2){animation-delay:.15s}.loading-table i:nth-child(3){animation-delay:.3s}.loading-table i:nth-child(4){animation-delay:.45s}@keyframes pulse{50%{opacity:.35}}@keyframes bounce{50%{transform:translateY(-7px)}}@keyframes deal{50%{transform:translate(24px) rotate(8deg)}}@media(min-width:680px){.welcome-shell,.game-shell{padding-inline:max(24px,env(safe-area-inset-left))}.welcome-actions{grid-template-columns:1.12fr .88fr;gap:15px}.welcome-card{min-height:275px;padding:20px}.game-grid{display:grid;grid-template-columns:minmax(0,1fr) 230px;align-items:start;gap:12px}.game-aside{margin-top:0}.scoreboard{max-width:690px}.decision-panel{padding:20px}.pegging-table{grid-template-columns:110px minmax(0,1fr)}.count-dial{width:92px;height:92px}.count-dial strong{font-size:43px}.revealed-groups{grid-template-columns:repeat(2,1fr)}.crib-hand{grid-column:1 / -1}.floating-message{left:auto;width:min(440px,calc(100% - 24px))}}@media(min-width:980px){.game-grid{grid-template-columns:minmax(0,1fr) 260px;gap:16px}.game-primary{gap:14px}.game-header{margin-bottom:16px}.scoreboard,.phase-ribbon{margin-bottom:12px}.player-score{min-height:66px;padding:10px 12px}.player-avatar{width:40px;height:40px}.player-info b{font-size:14px}.score-number{font-size:31px}}@media(max-width:370px){.welcome-shell,.game-shell{padding-inline:max(10px,env(safe-area-inset-left))}.brand b{font-size:21px}.brand-mark{width:33px;height:33px}.edition{display:none}.panel{padding:12px;border-radius:17px}.welcome-hero h1{font-size:39px}.player-score{grid-template-columns:29px minmax(0,1fr) auto;gap:5px;padding:6px}.player-avatar{width:29px;height:29px}.score-number{font-size:21px}.dealer-chip{left:23px}.phase-ribbon{padding:8px 10px}.phase-ribbon h1{font-size:21px}.starter-card>span{display:none}.decision-panel{padding:11px}.pegging-table{grid-template-columns:75px minmax(0,1fr)}.count-dial{width:68px;height:68px}.count-dial strong{font-size:30px}.invite-actions{grid-template-columns:1fr}.room-code-display strong{font-size:36px}.peg-legend small{flex-basis:100%;margin-left:0}.board-toolbar{padding-inline:10px}}@media(max-height:520px)and (orientation:landscape){.game-shell{padding-top:max(8px,env(safe-area-inset-top))}.game-header{margin-bottom:6px}.game-header .brand small{display:none}.game-header .brand-mark{width:31px;height:31px}.game-header .brand b{font-size:20px}.scoreboard{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:6px}.player-score{min-height:45px}.player-avatar{width:29px;height:29px}.phase-ribbon{min-height:42px;margin-bottom:7px;padding-block:6px}.game-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,.7fr);gap:9px}.game-aside{margin-top:0}.match-status,.crib-board{display:none}.decision-panel{padding:11px}.hand-row{padding-block:4px 7px}.playing-card{flex-basis:45px;width:45px;height:64px}.pegging-table{min-height:74px;margin-bottom:5px}.count-dial{width:62px;height:62px}.game-log>div{max-height:160px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
