:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#18342c;background:#f5f1e7;font-synthesis:none}*{box-sizing:border-box}body{min-width:320px;margin:0;background:radial-gradient(circle at 50% -10%,#e8dcc1,transparent 40rem),#f5f1e7}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}.page{width:min(100% - 2rem,66rem);min-height:100vh;margin:0 auto;padding:1.5rem 0 3rem}.page-centred{display:grid;place-items:center}.auth-panel{width:min(100%,28rem);padding:clamp(1.6rem,6vw,3rem);border:1px solid #c9bfa8;border-radius:1.25rem;background:#fffcf4e0;box-shadow:0 1.5rem 3.5rem #2731261c}.eyebrow{margin:0 0 .45rem;color:#8b4a2c;font-size:.78rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:.55rem;color:#123c31;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.35rem,8vw,4.5rem);line-height:.97}h2{margin-bottom:.5rem;color:#123c31;font-family:Georgia,Times New Roman,serif}.intro,.lobby-intro>p:last-child,.room-header>p:last-child,.action-panel>p{color:#52665e;line-height:1.55}.form-stack{display:grid;gap:1rem;margin-top:1.6rem}.social-auth{display:grid;gap:.75rem;margin-top:1.5rem}.social-auth>p{margin:0 0 .15rem;color:#52665e;font-size:.9rem;text-align:center}.social-button{display:flex;width:100%;min-height:2.9rem;align-items:center;justify-content:center;gap:.7rem;padding:.65rem 1rem;border:1px solid #b9c0ae;border-radius:.55rem;background:#fff;font-weight:750}.social-button svg{width:1.3rem;height:1.3rem;flex:0 0 auto}.google-button{color:#25332e}.facebook-button{border-color:#1877f2;color:#fff;background:#1877f2}.social-button:hover{filter:brightness(.97)}.social-button:focus-visible{outline:3px solid rgba(192,117,70,.3);outline-offset:2px}.auth-divider{display:flex;align-items:center;gap:.75rem;margin-top:.35rem;color:#718078;font-size:.78rem}.auth-divider:before,.auth-divider:after{height:1px;flex:1;background:#d8cfba;content:""}.email-auth-form{margin-top:.9rem}label{display:grid;gap:.4rem;color:#315248;font-size:.92rem;font-weight:650}input{width:100%;padding:.75rem .85rem;border:1px solid #b9c0ae;border-radius:.55rem;color:#18342c;background:#fffdf8}input:focus{outline:3px solid rgba(192,117,70,.25);border-color:#a75c36}.primary-button,.secondary-button,.danger-button{min-height:2.8rem;padding:.65rem 1rem;border-radius:.55rem;font-weight:750}.primary-button{border:1px solid #123c31;color:#fffdf8;background:#123c31}.secondary-button{border:1px solid #53776b;color:#123c31;background:transparent}.danger-button{border:1px solid #a43b31;color:#fffdf8;background:#a43b31}.text-button{width:fit-content;padding:.25rem 0;border:0;color:#8b4a2c;background:transparent;font-weight:700;text-decoration:underline;text-underline-offset:.18rem}.notice,.error{margin:1rem 0;padding:.75rem .85rem;border-radius:.55rem;line-height:1.4}.notice{color:#1b5945;background:#dcebdd}.error{color:#882f24;background:#f5ded8}.app-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:1.5rem;border-bottom:1px solid #d8cfba;color:#123c31}.app-header strong{font-family:Georgia,Times New Roman,serif;font-size:1.35rem}.lobby-account,.rating-pill{display:flex;align-items:center;gap:.85rem}.rating-pill{gap:.35rem;padding:.35rem .65rem;border-radius:999px;background:#e0ebdf;font-size:.85rem}.rating-pill strong{font-family:inherit;font-size:1rem}.rating-pill small,.leaderboard-row small{color:#6b7b74;font-size:.72rem}.game-header-actions{display:flex;align-items:center;gap:.85rem}.compact-button{min-height:2.25rem;padding:.4rem .7rem;font-size:.82rem}.sound-toggle{display:inline-grid;width:2.75rem;height:2.75rem;flex:0 0 auto;place-items:center;padding:0;border:1px solid currentColor;border-radius:999px;color:#c7b991;background:transparent}.sound-toggle svg{overflow:visible;fill:currentColor}.sound-toggle .sound-wave{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.sound-toggle.sound-enabled{color:#f4cf72;background:#f4cf721a}.sound-toggle:hover{background:#f4cf7229}.lobby-intro,.room-header{max-width:40rem;padding:4rem 0 2rem}.lobby-intro h1,.room-header h1{font-size:clamp(2.3rem,7vw,4rem)}.room-header h1 span{color:#8b4a2c;letter-spacing:.04em}.lobby-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.action-panel{padding:1.4rem;border:1px solid #c9bfa8;border-radius:1rem;background:#fffcf4cc}.matchmaking-panel{grid-column:1 / -1;border-color:#789b83;background:linear-gradient(135deg,#e0efdef2,#fffcf4e6)}.action-panel .primary-button{width:100%;margin-top:.65rem}.matchmaking-panel .secondary-button{margin-top:1rem}.queue-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;max-width:24rem;margin:1rem 0}.queue-progress span{height:.65rem;border-radius:999px;background:#c8d1c6}.queue-progress span.filled{background:#2b674f;box-shadow:0 0 .6rem #2b674f40}.join-form{display:grid;grid-template-columns:1fr auto;gap:.65rem;align-items:end}.join-form input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.room-header{padding-bottom:1rem}.room-table{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;padding:clamp(1rem,4vw,2.5rem);border:1px solid #b7c8b5;border-radius:1.5rem;background:radial-gradient(circle at 50% 50%,#2b674f,#174838);box-shadow:inset 0 0 0 .65rem #ffffff0f}.seat-card{display:grid;min-height:9.5rem;align-content:center;gap:.45rem;padding:1rem;border:1px dashed rgba(255,253,244,.45);border-radius:.85rem;color:#dceadf;text-align:center}.seat-card.occupied{border-style:solid;border-color:#fffdf4cc;color:#fffdf8;background:#fffdf41a}.seat-name{color:#c3dac8;font-size:.76rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.ready-state{color:#d9f3b3;font-weight:700}.waiting-state,.empty-state{color:#d0ded4}.seat-bot-button{justify-self:center;padding:.32rem .65rem;border:1px solid rgba(255,253,244,.7);border-radius:.45rem;color:#fffdf8;background:#0a271d80;font-size:.78rem;font-weight:750}.room-controls{display:grid;justify-items:center;gap:.85rem;padding:2rem 1rem;text-align:center}.room-controls p{margin:0;color:#52665e}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:600px){.page{width:min(100% - 1.25rem,66rem);padding-top:1rem}.lobby-intro,.room-header{padding:2.75rem 0 1.5rem}.lobby-actions{grid-template-columns:1fr}.room-table{grid-template-columns:1fr;padding:1rem}.seat-card{min-height:6.75rem}.join-form{grid-template-columns:1fr}.secondary-button{width:100%}}.game-status{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 0;color:#52665e}.game-status strong{color:#123c31}.game-loading{display:grid;min-height:28rem;place-items:center}.live-table{position:relative;min-height:27rem;margin-top:.5rem;border:.65rem solid #d5c49f;border-radius:45%;background:radial-gradient(circle,#2f7458,#174838);box-shadow:inset 0 0 2.5rem #00000040;cursor:default;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.game-seat{position:absolute;display:grid;gap:.2rem;min-width:8rem;padding:.55rem .75rem;border-radius:.55rem;color:#fffdf8;background:#0a271db8;text-align:center}.game-seat span{color:#cfe1d3;font-size:.82rem}.game-seat.active-game-seat{outline:3px solid #f4cf72;background:#123c31;box-shadow:0 0 0 .3rem #f4cf7233,0 0 1.25rem #ffdc7db3;animation:active-seat-pulse 1.4s ease-in-out infinite alternate}.game-seat .turn-marker{position:absolute;top:-.85rem;left:50%;padding:.18rem .55rem;border:2px solid #fff4cf;border-radius:999px;color:#123c31;background:#f4cf72;box-shadow:0 .2rem .45rem #00000040;font-size:.7rem;font-weight:850;letter-spacing:.08em;line-height:1.2;text-transform:uppercase;transform:translate(-50%)}@keyframes active-seat-pulse{0%{box-shadow:0 0 0 .2rem #f4cf7229,0 0 .8rem #ffdc7d73}to{box-shadow:0 0 0 .4rem #f4cf7240,0 0 1.5rem #ffdc7dcc}}.game-seat-0{bottom:1rem;left:50%;transform:translate(-50%)}.game-seat-1{left:1rem;top:50%;transform:translateY(-50%)}.game-seat-2{left:50%;top:1rem;transform:translate(-50%)}.game-seat-3{right:1rem;top:50%;transform:translateY(-50%)}.trick-area{position:absolute;top:35%;right:27%;bottom:35%;left:27%;display:flex;align-items:center;justify-content:center;gap:.35rem;border:1px dashed rgba(255,255,255,.45);border-radius:.75rem;color:#dbe8dd;text-align:center}.table-card{display:grid;width:2.8rem;aspect-ratio:2.5 / 3.5;place-items:start;padding:.35rem;border-radius:.35rem;color:#182019;background:#fffdf8;box-shadow:0 .25rem .5rem #00000038;font-family:Georgia,Times New Roman,serif;font-weight:700}.table-card.red-suit{color:#a3352d}.card-animation-layer{position:absolute;z-index:20;top:0;right:0;bottom:0;left:0;overflow:hidden;border-radius:inherit;pointer-events:none}.motion-card{position:absolute;display:grid;width:2.8rem;aspect-ratio:2.5 / 3.5;place-items:start;padding:.35rem;border:1px solid #c9bfa8;border-radius:.38rem;color:#182019;background:#fffdf8;box-shadow:0 .4rem .8rem #0000004d;font-family:Georgia,Times New Roman,serif;font-weight:700}.motion-card.red-suit{color:#a3352d}.card-motion-played{left:var(--motion-from-left);top:var(--motion-from-top);animation:card-to-table .38s cubic-bezier(.22,.8,.3,1) both}.sevens-motion-card{width:clamp(2.5rem,5vw,3.2rem);height:1.9rem;aspect-ratio:auto;align-items:center;padding:.2rem .35rem}.card-motion-gift{left:var(--motion-from-left);top:var(--motion-from-top);animation:card-between-seats .55s cubic-bezier(.4,0,.2,1) both}.card-back{border-color:#e7d7ac;background:repeating-linear-gradient(45deg,#8b2f28 0,#8b2f28 4px,#f1d9b5 4px,#f1d9b5 7px);box-shadow:inset 0 0 0 .22rem #fff8e7,0 .4rem .8rem #0000004d}.trick-capture-motion{position:absolute;left:50%;top:50%;display:flex;gap:.18rem;transform:translate(-50%,-50%);animation:trick-to-winner .48s cubic-bezier(.55,0,.8,.4) both}.trick-motion-card{position:relative;flex:0 0 auto}@keyframes card-to-table{0%{opacity:.35;transform:translate(-50%,-50%) scale(.82) rotate(-8deg)}to{left:var(--motion-to-left);top:var(--motion-to-top);opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}}@keyframes card-between-seats{0%{opacity:.4;transform:translate(-50%,-50%) scale(.8) rotate(-8deg)}45%{opacity:1;transform:translate(-50%,-85%) scale(1.08) rotate(3deg)}to{left:var(--motion-to-left);top:var(--motion-to-top);opacity:.25;transform:translate(-50%,-50%) scale(.82) rotate(8deg)}}@keyframes trick-to-winner{0%{left:50%;top:50%;opacity:1;transform:translate(-50%,-50%) scale(1)}to{left:var(--motion-to-left);top:var(--motion-to-top);opacity:0;transform:translate(-50%,-50%) scale(.45)}}.live-table.sevens-table-active{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:auto 1fr auto;align-items:center;gap:1.5rem .75rem;min-height:36rem;padding:1.5rem 1rem 1rem;border-radius:2.5rem}.sevens-table-active .game-seat{position:relative;inset:auto;transform:none;min-width:0;width:100%;max-width:12rem;justify-self:center;overflow-wrap:anywhere}.sevens-table-active .game-seat-0{grid-area:3 / 2}.sevens-table-active .game-seat-1{grid-area:2 / 1}.sevens-table-active .game-seat-2{grid-area:1 / 2}.sevens-table-active .game-seat-3{grid-area:2 / 3}.sevens-table-active .sevens-area{position:relative;inset:auto;grid-area:2 / 2;transform:none}.sevens-area{position:absolute;top:50%;left:50%;display:grid;grid-template-columns:repeat(4,minmax(2.4rem,3.25rem));gap:clamp(.25rem,1.4vw,.8rem);transform:translate(-50%,-50%)}.sevens-suit-column{display:grid;grid-template-rows:repeat(14,2.05rem);justify-items:center}.sequence-slot{position:relative;display:flex;width:100%;height:1.9rem;justify-content:center}.sequence-card-target{position:absolute;top:0;left:50%;width:clamp(2.5rem,5vw,3.2rem);height:1.9rem;visibility:hidden;pointer-events:none;transform:translate(-50%)}.sequence-slot.seven-slot:before{position:absolute;top:.15rem;right:-.15rem;bottom:.15rem;left:-.15rem;border:1px dashed rgba(255,255,255,.2);border-radius:.4rem;content:""}.sequence-card{position:relative;z-index:1;display:grid;width:clamp(2.5rem,5vw,3.2rem);height:1.9rem;place-items:center start;padding:.2rem .35rem;border:1px solid #c9bfa8;border-radius:.4rem;color:#182019;background:#fffdf8;box-shadow:0 .16rem .35rem #0000003d;font-family:Georgia,Times New Roman,serif;font-size:clamp(.72rem,1.6vw,1rem);font-weight:700}.sequence-card.red-suit{color:#a3352d}.sequence-card.seven-card{z-index:2;border:2px solid #d4aa55;box-shadow:0 0 0 .15rem #ffecaa2e,0 .25rem .55rem #0000004d}.player-hand{display:flex;justify-content:center;gap:.25rem;margin-top:-1.35rem;padding:0 1rem 2rem;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.playing-card{display:grid;width:clamp(2.5rem,6vw,4.25rem);aspect-ratio:2.5 / 3.5;place-items:start;padding:.45rem;border:1px solid #c9bfa8;border-radius:.45rem;color:#182019;background:#fffdf8;box-shadow:0 .35rem .7rem #12261f29;font-family:Georgia,Times New Roman,serif;font-size:clamp(.8rem,2vw,1.2rem);font-weight:700}.playing-card.red-suit{color:#a3352d}.playing-card:disabled{cursor:default;opacity:.58}.playing-card.legal-card{transform:translateY(-.4rem);border-color:#a75c36;box-shadow:0 .55rem .9rem #12261f38}.playing-card.legal-card:hover{transform:translateY(-.7rem)}.game-action-bar{display:flex;align-items:center;justify-content:center;gap:1rem;padding:0 1rem 2rem;color:#52665e}.results-panel{max-width:34rem;margin:1rem auto;padding:1.25rem;border:1px solid #c9bfa8;border-radius:1rem;background:#fffdf8}.results-panel p{display:flex;justify-content:space-between;gap:1rem;margin:0;padding:.75rem 0;border-top:1px solid #e3dccb}.results-actions{display:flex;justify-content:center;padding-top:1.25rem;border-top:1px solid #e3dccb}.results-actions .primary-button{width:100%}.history-panel{margin-top:2rem;padding:1.25rem;border:1px solid #c9bfa8;border-radius:1rem;background:#fffcf4cc}.history-row{display:grid;grid-template-columns:1fr auto auto;gap:1.25rem;align-items:center;padding:.85rem 0;border-top:1px solid #e3dccb}.history-row>span:first-child{display:grid;gap:.15rem}.history-row small{color:#6b7b74}@media(max-width:600px){.history-row{grid-template-columns:1fr;gap:.35rem}}.leaderboard-panel{margin-top:2rem;padding:1.25rem;border:1px solid #789b83;border-radius:1rem;background:#eff6eddb}.leaderboard-row{display:grid;grid-template-columns:3rem 1fr auto;gap:.75rem;align-items:center;padding:.75rem;border-top:1px solid #ceddce}.leaderboard-row>span{display:grid;gap:.1rem}.leaderboard-row>span:last-child{justify-items:end}.leaderboard-row.own-ranking{border-radius:.55rem;background:#fffdf8}.rating-result{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-top:1px solid #e3dccb;color:#315248}@media(max-width:600px){.leaderboard-row{grid-template-columns:2.5rem 1fr}.leaderboard-row>span:last-child{grid-column:2;justify-items:start}.lobby-account{gap:.5rem}.rating-pill small{display:none}}@media(max-width:600px){.game-status{align-items:flex-start;flex-direction:column;gap:.3rem}.live-table{min-height:22rem;border-width:.4rem;border-radius:1.25rem}.live-table.sevens-table-active{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto auto auto;min-height:0;padding:1.5rem .75rem 1rem;gap:1.5rem .75rem}.game-seat{min-width:6.5rem;padding:.4rem;font-size:.78rem}.game-seat-1{left:.4rem}.game-seat-3{right:.4rem}.sevens-table-active .game-seat-0{grid-area:4 / 1 / 5 / -1}.sevens-table-active .game-seat-1{grid-area:2 / 1}.sevens-table-active .game-seat-2{grid-area:1 / 1 / 2 / -1}.sevens-table-active .game-seat-3{grid-area:2 / 2}.sevens-table-active .sevens-area{grid-area:3 / 1 / 4 / -1;justify-self:center}.sevens-area{grid-template-columns:repeat(4,2.25rem);gap:.2rem}.sevens-suit-column{grid-template-rows:repeat(14,1.75rem)}.sequence-slot,.sequence-card,.sequence-card-target,.sevens-motion-card{height:1.6rem}.sequence-card,.sequence-card-target,.sevens-motion-card{width:2.3rem}.sequence-card,.sevens-motion-card{padding:.15rem .25rem;font-size:.72rem}.player-hand{justify-content:flex-start;overflow-x:auto;padding-inline:.25rem}.playing-card{min-width:2.8rem}}@media(prefers-reduced-motion:reduce){.card-animation-layer{display:none}.playing-card{transition:none}.game-seat.active-game-seat{animation:none}}body{overflow-x:hidden}.game-page button{min-height:2.75rem}.game-header{position:relative;z-index:5}.game-header-actions{flex-wrap:wrap;justify-content:flex-end}.game-panel-button{width:auto;color:#123c31;background:#fffdf8}.connection-warning{margin:1rem 0 0;padding:.7rem .85rem;border:1px solid #d6b966;border-radius:.55rem;color:#674d0e;background:#fff4cf}.game-error{margin-bottom:0}.game-status{min-height:4.5rem}.game-status strong{text-align:center}.player-console{position:relative;z-index:4;border-radius:1rem}.player-hand{scrollbar-color:#789b83 transparent;scrollbar-width:thin}.player-hand .playing-card{flex:0 0 auto;min-height:4rem;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,opacity .16s ease}.playing-card:focus-visible,.game-page button:focus-visible,.game-drawer button:focus-visible,.result-breakdown summary:focus-visible{outline:3px solid #f4cf72;outline-offset:3px}.game-action-bar{min-height:3.75rem;margin:-.8rem 0 0;padding-bottom:1.15rem;border-radius:0 0 1rem 1rem;background:#fffcf4f0}.game-action-bar span{font-weight:700}.game-drawer-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex;justify-content:flex-end;background:#0a1d177a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.game-drawer{width:min(92vw,33rem);height:100%;overflow:hidden;border-left:1px solid #c9bfa8;color:#18342c;background:#fffdf8;box-shadow:-1.25rem 0 3rem #0a1d173d}.game-drawer-header{display:flex;min-height:4.5rem;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid #e3dccb}.game-drawer-header h2{margin:0}.drawer-close-button{width:2.75rem;padding:0;border:1px solid #b9c0ae;border-radius:999px;color:#123c31;background:#f5f1e7;font-size:1.7rem;line-height:1}.game-drawer-content{height:calc(100% - 4.5rem);overflow-y:auto;overscroll-behavior:contain;padding:1.25rem}.score-table,.results-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.score-table th,.score-table td,.results-table th,.results-table td{padding:.7rem .45rem;border-bottom:1px solid #e3dccb;text-align:right}.score-table thead th,.results-table thead th{color:#52665e;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.score-table th:first-child,.results-table th:nth-child(2){text-align:left}.score-table tbody th{max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-table tr.own-score,.results-table tr.own-result{background:#edf4e9}.score-table tr.acting-score{box-shadow:inset .22rem 0 #d4aa55}.score-table tr.finished-score{color:#52665e}.score-table tr.winner-score,.results-table tr.winner-result{color:#123c31;background:#fff4cf}.drawer-footnote{margin:1rem 0 0;color:#6b7b74;font-size:.82rem;line-height:1.45}.rules-panel{display:grid;gap:1rem}.rules-panel section{padding:1rem;border:1px solid #e3dccb;border-radius:.8rem;background:#fff}.rules-panel section.current-rule-section{border-color:#789b83;box-shadow:inset .22rem 0 #2b674f;background:#f3f8f0}.rules-panel h3{margin:0 0 .5rem;color:#123c31;font-family:Georgia,Times New Roman,serif}.rules-panel p{color:#52665e;line-height:1.55}.rules-suit-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin:.85rem 0 0;padding:0;list-style:none}.rules-suit-list li{display:flex;min-width:0;align-items:center;gap:.35rem;color:#18342c;font-weight:700;text-transform:capitalize}.rules-suit-list li.red-suit{color:#a3352d}.rules-suit-icon{font-size:1.45rem;line-height:1}.rules-score-list{display:grid;gap:.4rem;margin:.85rem 0 0}.rules-score-list div{display:flex;justify-content:space-between;gap:1rem}.rules-score-list dd{margin:0;font-weight:800}@media(max-width:420px){.rules-suit-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.polished-results{max-width:52rem;margin-top:clamp(1.5rem,5vw,4rem);padding:clamp(1rem,4vw,2rem)}.polished-results h1{max-width:42rem;margin:.25rem 0 1.5rem;font-size:clamp(2rem,6vw,3.8rem)}.results-table th:first-child,.results-table td:first-child{width:4rem;text-align:center}.results-table td{text-align:right}.result-breakdown{margin-top:1.25rem;border-top:1px solid #e3dccb}.result-breakdown summary{min-height:2.75rem;padding:.85rem 0;color:#315248;font-weight:750;cursor:pointer}.result-breakdown p{display:grid;grid-template-columns:minmax(7rem,1fr) 2fr;gap:1rem;font-size:.88rem}.result-breakdown p span{color:#52665e;text-align:right}@media(max-width:760px){.game-page{width:100%;padding:.75rem .625rem calc(1rem + env(safe-area-inset-bottom))}.game-header{gap:.65rem;align-items:flex-start;padding-bottom:.75rem}.game-header-actions{gap:.4rem}.room-code-label{flex-basis:100%;order:-1;text-align:right;font-size:.72rem}.game-header .compact-button{min-height:2.75rem;padding:.4rem .6rem;font-size:.76rem}.game-status{display:grid;grid-template-columns:auto 1fr auto;min-height:3.7rem;gap:.5rem;align-items:center;padding:.65rem .25rem;font-size:.78rem}.game-status strong{font-size:.88rem}.live-table{width:100%}.player-console{position:sticky;bottom:0;margin:-.5rem -.625rem 0;padding:.65rem .625rem calc(.65rem + env(safe-area-inset-bottom));border:1px solid rgba(185,192,174,.75);border-width:1px 0 0;border-radius:1rem 1rem 0 0;background:#f5f1e7f5;box-shadow:0 -1rem 2rem #123c3121;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.player-hand{margin:0;padding:.55rem .15rem .75rem;scroll-padding-inline:.25rem;scroll-snap-type:x proximity}.player-hand .playing-card{min-width:2.9rem;min-height:4.35rem;scroll-snap-align:start}.game-action-bar{min-height:3rem;margin:0;padding:.2rem .15rem 0;background:transparent}.game-action-bar .primary-button{width:auto}.game-drawer-backdrop{align-items:flex-end;justify-content:stretch}.game-drawer{width:100%;height:min(78dvh,42rem);border:1px solid #c9bfa8;border-width:1px 0 0;border-radius:1.2rem 1.2rem 0 0;box-shadow:0 -1.25rem 3rem #0a1d1740}.game-drawer-content{padding:1rem .7rem calc(1rem + env(safe-area-inset-bottom))}.score-table,.results-table{table-layout:fixed;font-size:.72rem}.score-table th,.score-table td,.results-table th,.results-table td{padding:.55rem .12rem}.score-table th:first-child{width:31%}.score-table thead th,.results-table thead th{font-size:.58rem;letter-spacing:0}.polished-results{margin:1rem 0 0;border-radius:.85rem}.polished-results h1{font-size:clamp(1.8rem,10vw,3rem)}.results-table th:nth-child(3),.results-table td:nth-child(3){display:none}.results-table th:first-child,.results-table td:first-child{width:3rem}.result-breakdown p{grid-template-columns:1fr;gap:.2rem}.result-breakdown p span{text-align:left}}@media(prefers-reduced-motion:reduce){.game-drawer-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}.player-hand .playing-card{transition:none}}:root{--cream: #f5efe3;--ink: #261d16;--muted: #756759;--green: #1c4436;--gold: #e2cf9e;--line: #ded4c2;color:var(--ink);background:var(--cream);font-family:Work Sans,ui-sans-serif,system-ui,sans-serif}body{background:radial-gradient(ellipse at 50% 0,#ece1cb,transparent 42rem),var(--cream)}body:has(.auth-page),body:has(.room-page),body:has(.game-page){background:radial-gradient(ellipse at 50% 0,#342317,#191009 75%)}body:has(.auth-page),body:has(.results-page){background:radial-gradient(ellipse at 50% 0,#26483a,#101c15 85%)}h1,h2,h3,.app-header strong{font-family:Lora,Georgia,serif}h1,h2{color:var(--ink);font-weight:500;letter-spacing:-.025em}h2{font-size:1.35rem}.page{width:min(100% - 3rem,64rem);padding-top:1.25rem}button,input{transition:background .15s,border-color .15s,box-shadow .15s}button:focus-visible,summary:focus-visible{outline:3px solid #bc9145;outline-offset:4px}button:disabled{cursor:default}.primary-button,.secondary-button,.danger-button{min-height:2.9rem;border-radius:.65rem;font-weight:600}.primary-button{background:var(--green);border-color:var(--green);color:var(--cream)}.primary-button:hover:not(:disabled){background:#295b48}.secondary-button{border-color:#b4b3a0;color:var(--green)}.secondary-button:hover:not(:disabled){background:#1c44360c;border-color:var(--green)}.text-button{color:#8e2b20;font-size:.82rem;font-weight:500}input{background:#faf6ec;border-color:#d0c5b3;min-height:2.9rem}input:focus{border-color:#a68b50;outline-color:#c8ac6e40}.eyebrow{color:#8e2b20;font-size:.66rem;letter-spacing:.17em}.app-header{padding:.25rem 0 1.15rem;border-color:var(--line)}.app-header strong{font-weight:600;font-size:1.2rem}.rating-pill{background:var(--green);color:var(--gold);padding:.45rem .8rem}.rating-pill small{color:#d7e4d9}.rating-pill strong{font-family:inherit;font-size:.9rem}.lobby-intro{padding:3rem 0 1.3rem}.lobby-intro h1{font-size:clamp(2.4rem,6vw,3.5rem)}.lobby-intro>p:last-child,.action-panel>p{color:var(--muted);font-size:.88rem}.action-panel,.history-panel,.leaderboard-panel{background:#fffdf7;border:1px solid var(--line);border-radius:.9rem;padding:1.4rem}.matchmaking-panel{position:relative;padding:1.7rem 15rem 1.7rem 1.7rem;color:var(--cream);border-color:#315a46;background:linear-gradient(120deg,#244f3e,#143026);box-shadow:0 .6rem 1.5rem #14302620}.matchmaking-panel h2{font-size:1.85rem;color:var(--cream)}.matchmaking-panel .eyebrow{color:#adc6b7}.matchmaking-panel>p:not(.eyebrow){color:#d0dbcf;max-width:48ch;margin-bottom:0}.matchmaking-actions{position:absolute;right:1.7rem;top:50%;display:grid;width:12rem;gap:.65rem;transform:translateY(-50%)}.matchmaking-panel .matchmaking-actions .primary-button{position:static;width:100%;margin:0;transform:none;background:linear-gradient(#e8d8ab,#c8ac6e);color:#241a10;border-color:#e2cf9e}.matchmaking-panel .matchmaking-actions .secondary-button{width:100%;margin:0}.matchmaking-panel .secondary-button{color:var(--gold);border-color:#a38e5d}.queue-progress span{background:#ffffff25}.queue-progress span.filled{background:var(--gold)}.lobby-community{display:grid;grid-template-columns:1.15fr 1fr;gap:1rem;margin-top:1.25rem;align-items:start}.lobby-community>section{margin:0;min-width:0}.history-row{grid-template-columns:1fr auto;gap:.5rem;font-size:.8rem;border-color:#ece4d6}.history-row>span:last-child{grid-column:2;text-align:right;color:var(--green)}.history-row small,.leaderboard-row small{color:var(--muted)}.history-empty{color:var(--muted);font-size:.88rem;line-height:1.6}.empty-suits{display:block;color:#b5a78d;font-size:2rem;letter-spacing:.5rem;padding:.6rem 0}.leaderboard-row{grid-template-columns:2rem 1fr auto;padding:.8rem 0;border-color:#ece4d6;font-size:.85rem}.leaderboard-row>strong{color:#a78c57}.leaderboard-row.own-ranking{background:#eaf0e5;padding-inline:.5rem}.rules-button{margin-top:1.25rem;border-style:dashed;font-size:.85rem}.auth-page{color:var(--cream)}.auth-panel{max-width:26rem;padding:2rem 1.5rem;background:transparent;border:0;box-shadow:none;text-align:center}.brand-emblem{display:grid;place-items:center;width:3.2rem;height:3.2rem;margin:0 auto 1.5rem;border:1px solid #e2cf9e80;border-radius:50%;color:var(--gold);font-size:1.6rem}.auth-panel h1{color:var(--cream);font-size:clamp(2.8rem,9vw,3.7rem)}.auth-panel .eyebrow{color:#bbcca9;font-size:.6rem}.auth-panel .intro{color:#c4cdc0;font-size:.9rem}.auth-panel label{color:#dedfce;text-align:left;font-size:.8rem;font-weight:500}.auth-panel input{color:var(--cream);background:#00000030;border-color:#e2cf9e45}.auth-panel .primary-button,.room-controls>.primary-button{color:#241a10;border-color:#c8ac6e;background:linear-gradient(#e8d8ab,#c8ac6e);box-shadow:0 .35rem 1rem #0003}.auth-panel .text-button{justify-self:center;color:var(--gold)}.auth-panel .matchmaking-actions,.onboarding-panel .matchmaking-actions{position:static;width:100%;margin-top:1rem;transform:none;grid-template-columns:repeat(2,minmax(0,1fr))}.auth-panel .consent-field{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.65rem;line-height:1.45}.auth-panel .consent-field input{width:1.1rem;min-height:1.1rem;margin-top:.1rem}.legal-links{color:#b9c7ba;font-size:.8rem}.legal-page{max-width:48rem;padding:3rem 0 5rem;line-height:1.7}.legal-page h1{margin:1.5rem 0 .25rem;font-size:clamp(2.2rem,6vw,3.5rem)}.legal-page h2{margin-top:2rem}.onboarding-panel,.account-panel{margin:0 0 1rem}.privacy-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.35rem;margin:1.25rem 0;color:var(--muted);font-size:.78rem}.privacy-controls label{display:inline-flex;align-items:center;gap:.35rem}.privacy-controls input{width:1rem;min-height:1rem}.room-page,.game-page{color:var(--cream)}.room-page .app-header,.game-page .app-header{color:var(--cream);border-color:#e2cf9e26}.room-page .text-button{color:var(--gold)}.room-header{max-width:none;padding:2.8rem 0 1.4rem}.room-header h1{color:var(--cream);font-size:clamp(1.9rem,6vw,3rem)}.room-header h1 span{color:var(--gold)}.room-header .eyebrow{color:#bba174}.room-header>p:last-child{color:#c2b39e;margin:.8rem 0 0;font-size:.85rem}.copy-code{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-top:1rem;font-size:.8rem;color:var(--gold)}.room-page .secondary-button,.game-page .game-panel-button{color:var(--gold);border-color:#e2cf9e50;background:#e2cf9e08}.room-table{grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #e2cf9e38;padding:1rem;border-radius:1rem;background:linear-gradient(140deg,#214b3a,#122a20);box-shadow:0 1rem 2.5rem #0003}.seat-card{min-height:12rem;border-color:#e2cf9e45;border-radius:.65rem;gap:.65rem}.seat-card.occupied{background:#ffffff08;border-color:#e2cf9e65}.seat-card strong{font-family:Georgia,serif;font-size:1.1rem;overflow-wrap:anywhere}.seat-avatar{display:grid;place-items:center;justify-self:center;width:2.7rem;height:2.7rem;border:1px solid #e2cf9e55;border-radius:50%;color:var(--gold);background:#0002;font-family:Georgia,serif;font-size:1.3rem}.seat-name{color:#c6b990;font-size:.63rem}.ready-state,.waiting-state,.empty-state{font-size:.8rem}.room-controls{display:flex;flex-wrap:wrap;justify-content:center;padding:1.5rem 0}.room-controls .rules-button{margin:0}.room-controls p{flex-basis:100%;color:#b9aa96;font-size:.8rem;line-height:1.6}.room-controls>.primary-button{min-width:12rem}.room-controls .danger-button{order:2;color:#dca89c;border:0;background:transparent;font-size:.8rem}.game-status{margin:1rem 0;min-height:3.6rem;padding:.8rem 1rem;border:1px solid #e2cf9e24;border-radius:.7rem;color:#cbbda6;background:#e2cf9e08;font-size:.82rem}.game-status strong{color:var(--cream);font-family:Georgia,serif;font-size:1.2rem;font-weight:500}.game-status.is-your-turn{background:#e2cf9e;color:#55462d;border-color:#e2cf9e}.game-status.is-your-turn strong{color:#241a10}.live-table{border:.45rem solid #725537;background:radial-gradient(ellipse at center,#295b43,#163a2b 75%);box-shadow:0 0 0 1px #ad8d5960,inset 0 0 0 2px #e2cf9e25,inset 0 0 4rem #0004,0 1rem 2rem #0003}.game-seat{border:1px solid #e2cf9e30;background:#10271eeb}.game-seat.active-game-seat{outline:2px solid var(--gold);box-shadow:0 0 0 .25rem #e2cf9e18;animation:none}.game-seat .turn-marker{border:0;background:var(--gold);color:#241a10;font-size:.6rem;padding:.25rem .55rem}.trick-area{border-color:#e2cf9e25;color:#c6c7ad;font-family:Georgia,serif}.player-console{margin-top:1rem;padding:.5rem 1rem 0;border:1px solid #e2cf9e26;background:#100b08b3}.player-hand{margin-top:0;padding:.85rem 0 1rem;overflow-x:auto}.player-hand .playing-card{position:relative;background:#fff9e9;color:#20291f;opacity:.72}.player-hand .playing-card.red-suit{color:#9b302a}.player-hand .playing-card.legal-card{opacity:1;border:2px solid #e2cf9e;box-shadow:0 0 0 2px #e2cf9e35,0 .4rem .6rem #0004}.card-suit-art{position:absolute;bottom:.3rem;right:.4rem;font-size:1.65rem;line-height:1;pointer-events:none}.game-action-bar{color:#cbbb9f;background:transparent;margin:0;font-size:.8rem;padding:.25rem 0 .9rem;min-height:2.5rem}.game-action-bar span{font-weight:400}.polished-results{max-width:48rem;margin-top:3rem;padding:2rem;color:var(--cream);border-color:#e2cf9e30;background:#f5efe309}.polished-results h1{color:var(--cream)}.polished-results .eyebrow{color:#b3c8b8}.polished-results .results-table{color:var(--cream)}.polished-results th,.polished-results td,.polished-results .results-actions,.polished-results .rating-result,.polished-results .result-breakdown,.polished-results .result-breakdown p{border-color:#e2cf9e25}.polished-results thead th,.polished-results .result-breakdown summary,.polished-results .result-breakdown p span,.polished-results .rating-result{color:#d2c7b0}.results-table tr.own-result{background:#ffffff08}.results-table tr.winner-result{background:#e2cf9e19;color:var(--gold)}.polished-results .primary-button{background:linear-gradient(#e8d8ab,#c8ac6e);color:#241a10}@media(max-width:760px){.page{width:calc(100% - 1.5rem)}.game-page{width:100%}.lobby-community{grid-template-columns:1fr}.lobby-intro{padding-top:2rem}.room-table{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;padding:.75rem}.seat-card{min-height:10rem;padding:.75rem}.game-page .player-console{margin:.6rem -.625rem 0;padding:.5rem .65rem calc(.4rem + env(safe-area-inset-bottom));background:#191009f5;border-radius:.8rem .8rem 0 0}.game-status{font-size:.68rem;padding:.6rem}.game-status strong{font-size:1rem}.card-suit-art{font-size:1.25rem}.polished-results{padding:1rem}}@media(max-width:600px){.matchmaking-panel{padding:1.3rem}.matchmaking-actions{position:static;width:100%;margin-top:1rem;transform:none}.join-form{grid-template-columns:minmax(0,1fr) auto}.secondary-button{width:auto}.leaderboard-row>span:last-child{grid-column:auto;justify-items:end}.history-row{grid-template-columns:1fr auto}.room-header{padding-top:2rem}.copy-code .secondary-button{min-height:2.5rem;font-size:.8rem}}@media(max-height:540px)and (orientation:landscape){.game-page{padding-top:.5rem}.game-header{padding-bottom:.4rem}.game-status{margin:.5rem 0;min-height:2.7rem}.live-table:not(.sevens-table-active){min-height:20rem}.player-console{position:relative}}@media(prefers-reduced-motion:reduce){button,input{transition:none}}.card-suit-art:before{content:attr(data-suit)}@media(max-width:600px){.live-table:not(.sevens-table-active) .game-seat-1,.live-table:not(.sevens-table-active) .game-seat-3{top:30%}}.language-selector{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;flex-shrink:0}.language-selector select{min-height:44px;width:auto;padding:.5rem .65rem;color:inherit;background:var(--paper, #faf6eb);border:1px solid currentColor;border-radius:.5rem;font:inherit}.auth-page>.language-selector{position:absolute;top:max(1rem,env(safe-area-inset-top));right:max(1rem,env(safe-area-inset-right));margin:0;font-size:.75rem}.auth-page>.language-selector>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.auth-page>.language-selector select{min-height:36px;padding:.4rem .65rem;color:var(--cream);background:#182d23;border:1px solid #e2cf9e40;border-radius:2rem;cursor:pointer}.auth-page>.language-selector select:hover{border-color:#e2cf9e90}.app-header{flex-wrap:wrap;gap:.75rem}@media(max-width:600px){.game-header-actions{flex-wrap:wrap}.language-selector{margin-left:auto}.auth-page>.language-selector{margin-left:0}}.language-selector select{color:var(--ink)}.language-selector select:focus-visible{outline:3px solid #bc9145;outline-offset:3px}.auth-page{align-content:center;padding-top:4.5rem}.auth-page .language-selector,.room-page .language-selector,.game-page .language-selector{color:var(--cream)}.active-game-page{height:100dvh;min-height:0;width:min(100%,76rem);padding:.4rem .65rem max(.4rem,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:.4rem}@media(max-width:760px),(max-height:540px)and (orientation:landscape){html:has(.active-game-page),body:has(.active-game-page){overflow:hidden;overscroll-behavior:none}.active-game-page{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;padding-left:max(.65rem,env(safe-area-inset-left));padding-right:max(.65rem,env(safe-area-inset-right));padding-top:max(.4rem,env(safe-area-inset-top))}.active-game-page>:not(.game-drawer-backdrop){touch-action:pinch-zoom}}.active-game-page>*{flex-shrink:0}.active-game-page .game-header{padding:0 0 .3rem;gap:.4rem}.active-game-page .game-header-actions{gap:.35rem}.active-game-page .game-status{margin:0;min-height:0;padding:.35rem .65rem;flex-direction:row;align-items:center;gap:.4rem}.active-game-page .game-status strong{font-size:1rem}.active-game-page .live-table{flex:1 1 0;min-height:0;margin:0}.active-game-page .player-console{position:relative;margin:0;padding:.25rem .5rem}.active-game-page .player-hand{margin:0;padding:.25rem}.active-game-page .player-hand .playing-card{width:clamp(2.5rem,5vw,3.4rem);min-height:3.5rem;height:clamp(3.5rem,10dvh,4.6rem);padding:.25rem}.active-game-page .game-action-bar{min-height:0;padding:.2rem 0;gap:.4rem}.active-game-page .connection-warning,.active-game-page .game-error{margin:0;padding:.25rem .5rem}.active-game-page .sevens-table-active{display:block;padding:0;border-radius:1.25rem}.active-game-page .sevens-table-active .game-seat{position:absolute;top:.75rem;bottom:auto;width:calc(25% - 1rem);max-width:none;padding:.25rem;font-size:.8rem;transform:none}.active-game-page .sevens-table-active .game-seat-0{left:.5rem}.active-game-page .sevens-table-active .game-seat-1{left:calc(25% + .25rem)}.active-game-page .sevens-table-active .game-seat-2{left:50%}.active-game-page .sevens-table-active .game-seat-3{left:calc(75% - .25rem);right:auto}.active-game-page .sevens-table-active .game-seat span{font-size:.7rem}.active-game-page .sevens-table-active .sevens-area{position:absolute;top:4.5rem;right:.5rem;bottom:.4rem;left:.5rem;transform:none;grid-template-columns:repeat(4,minmax(0,3.25rem));justify-content:center;gap:.4rem}.active-game-page .sevens-suit-column{min-height:0;grid-template-rows:repeat(14,minmax(0,1fr));gap:2px}.active-game-page .sequence-slot{min-height:0;height:100%;max-height:1.9rem}.active-game-page .sequence-card,.active-game-page .sequence-card-target{height:100%;max-height:1.9rem;padding-block:0;line-height:1}@media(max-width:600px){.active-game-page .game-header>strong,.active-game-page .room-code-label{display:none}.active-game-page .sound-toggle{margin-left:0}.active-game-page .game-header{flex-wrap:nowrap}.active-game-page .game-header-actions{gap:.25rem}.active-game-page .game-header .compact-button{padding-inline:.35rem;font-size:.7rem}.active-game-page .game-status{font-size:.65rem}.active-game-page .game-status strong{font-size:.85rem}.active-game-page .sevens-table-active .game-seat{width:calc(50% - .75rem);font-size:.72rem}.active-game-page .sevens-table-active .game-seat-0{left:.5rem}.active-game-page .sevens-table-active .game-seat-1{left:calc(50% + .25rem)}.active-game-page .sevens-table-active .game-seat-2{left:.5rem;top:3.65rem}.active-game-page .sevens-table-active .game-seat-3{left:calc(50% + .25rem);top:3.65rem}.active-game-page .sevens-table-active .sevens-area{top:6.5rem;grid-template-columns:repeat(4,minmax(0,2.6rem))}.active-game-page .game-seat strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(max-height:540px)and (orientation:landscape){.active-game-page{gap:.2rem}.active-game-page .game-header>strong,.active-game-page .room-code-label{display:none}.active-game-page .player-hand .playing-card{height:3rem;min-height:3rem}.active-game-page .card-suit-art{font-size:1rem}.active-game-page .sevens-table-active .sevens-area{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(4,minmax(0,1fr));gap:3px}.active-game-page .sevens-suit-column{grid-template-rows:minmax(0,1fr);grid-template-columns:repeat(14,minmax(0,1fr));gap:3px}.active-game-page .sequence-card,.active-game-page .sequence-card-target{width:100%;font-size:.7rem;padding-inline:.1rem}}.active-game-page .game-seat .turn-marker{white-space:nowrap}.active-game-page .player-hand{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,3.4rem);gap:.15rem;overflow:visible}.active-game-page .player-hand .playing-card{width:100%;min-width:0;margin-left:0}@media(max-width:600px){.active-game-page .game-header-actions{flex-wrap:nowrap;margin-left:auto}.active-game-page .connection-warning,.active-game-page .game-error{font-size:.7rem}.active-game-page .player-hand{grid-auto-columns:minmax(0,2.8rem);justify-content:center}.active-game-page .player-hand .playing-card{font-size:.7rem;padding-inline:.1rem}.active-game-page .card-suit-art{right:.1rem;font-size:1rem}}@media(max-width:600px)and (max-height:700px){.active-game-page .sevens-table-active .game-seat{display:flex;align-items:center;justify-content:space-between;gap:.25rem;font-size:.65rem}.active-game-page .sevens-table-active .game-seat span{font-size:.6rem}.active-game-page .sevens-table-active .game-seat-2,.active-game-page .sevens-table-active .game-seat-3{top:2.6rem}.active-game-page .sevens-table-active .sevens-area{top:4.5rem}}.active-game-page .sevens-table-active .game-seat .turn-marker{top:-.65rem;padding:.1rem .4rem;font-size:.55rem;line-height:1}@media(max-height:700px){.active-game-page .live-table:not(.sevens-table-active) .game-seat{min-width:5rem;padding:.25rem;font-size:.7rem}.active-game-page .live-table:not(.sevens-table-active) .game-seat span{font-size:.65rem}.active-game-page .live-table:not(.sevens-table-active) .game-seat-0{bottom:.5rem}.active-game-page .live-table:not(.sevens-table-active) .game-seat-2{top:.5rem}}.card-selection-action{position:absolute;z-index:8;top:0;left:50%;display:flex;transform:translate(-50%,calc(-100% - .55rem))}.card-commit-button{min-width:clamp(10rem,28vw,14rem);min-height:3.2rem;padding:.75rem 1.35rem;border:1px solid #ecdba9;border-radius:.8rem;color:#241a10;background:linear-gradient(#eadcb2,#cfae68);box-shadow:0 .55rem 1.3rem #0006,0 0 0 1px #6e512d55;font-size:1rem;font-weight:750}.card-commit-button:hover:not(:disabled){background:linear-gradient(#f0e4c2,#d9bb79)}.player-hand .playing-card.selected-card{z-index:2;opacity:1;transform:translateY(-1.35rem);border-color:#f0d582;box-shadow:0 0 0 3px #e2cf9e55,0 .9rem 1.2rem #0007}.player-hand .playing-card.selected-card:hover{transform:translateY(-1.5rem)}.active-game-page .player-hand{display:flex;justify-content:flex-start;gap:.4rem;overflow-x:auto;overflow-y:hidden;padding:1.1rem .3rem .55rem;scroll-padding-inline:.3rem;scroll-snap-type:x proximity;overscroll-behavior-x:contain;touch-action:pan-x pinch-zoom;-webkit-overflow-scrolling:touch}.active-game-page .player-hand .playing-card{flex:0 0 clamp(3.6rem,6.5vw,4.4rem);width:clamp(3.6rem,6.5vw,4.4rem);min-width:clamp(3.6rem,6.5vw,4.4rem);height:clamp(5rem,11.5dvh,6.15rem);min-height:5rem;margin:0;padding:.4rem;scroll-snap-align:center;font-size:clamp(.9rem,1.7vw,1.15rem)}@media(max-width:600px){.active-game-page .player-console{padding-inline:.45rem}.active-game-page .player-hand{justify-content:flex-start;gap:.5rem;margin-inline:-.15rem;padding:1.7rem .3rem .65rem}.active-game-page .player-hand .playing-card{flex-basis:clamp(4.35rem,21vw,5rem);width:clamp(4.35rem,21vw,5rem);min-width:clamp(4.35rem,21vw,5rem);height:clamp(6rem,16dvh,7rem);min-height:6rem;padding:.45rem;font-size:1.05rem}.active-game-page .card-suit-art{right:.35rem;bottom:.35rem;font-size:1.55rem}.active-game-page .game-action-bar{padding-top:0;font-size:.72rem;text-align:center}.card-commit-button{min-width:min(14rem,calc(100vw - 3rem));min-height:3.35rem;border-radius:.85rem;font-size:1.05rem}}@media(max-height:540px)and (orientation:landscape){.active-game-page .player-hand{padding-top:.75rem}.active-game-page .player-hand .playing-card{flex-basis:3.5rem;width:3.5rem;min-width:3.5rem;height:4.25rem;min-height:4.25rem}.card-commit-button{min-height:2.75rem;padding-block:.45rem}}.admin-shell{min-height:100vh;display:grid;grid-template-columns:230px minmax(0,1fr);background:#f4f1ea;color:#20231f}.admin-sidebar{background:#17372f;color:#fff;padding:1.5rem 1rem;display:flex;flex-direction:column;gap:1.5rem}.admin-sidebar>a:first-child{display:grid;color:#fff;text-decoration:none;font-size:1.25rem}.admin-sidebar small{color:#b7d1c8;font-weight:400}.admin-sidebar nav{display:grid;gap:.35rem}.admin-sidebar nav a{color:#dcebe5;text-decoration:none}.admin-sidebar nav span{display:block;padding:.7rem .8rem;border-radius:.55rem}.admin-sidebar nav span.active,.admin-sidebar nav span:hover{background:#2a5348;color:#fff}.admin-sidebar>a:last-child{color:#dcebe5;margin-top:auto}.admin-main{min-width:0}.admin-topbar{min-height:64px;background:#fff;border-bottom:1px solid #dedbd3;padding:.75rem clamp(1rem,4vw,3rem);display:flex;justify-content:flex-end;align-items:center;gap:1rem}.admin-main main{padding:2rem clamp(1rem,4vw,3rem) 4rem;max-width:1500px}.admin-page-header{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.admin-page-header h1{margin:0;font-size:clamp(1.7rem,3vw,2.5rem)}.admin-page-header p{color:#5b625d;margin:.35rem 0 0}.admin-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem}.admin-metrics article,.admin-panel{background:#fff;border:1px solid #dedbd3;border-radius:.8rem;box-shadow:0 3px 14px #283c3210}.admin-metrics article{padding:1.2rem;display:grid;gap:.3rem}.admin-metrics strong{font-size:2rem}.admin-metrics span{color:#5b625d}.admin-panel{padding:1.25rem;margin:1rem 0}.admin-panel h2{margin-top:0}.admin-filters{background:#fff;border:1px solid #dedbd3;border-radius:.8rem;padding:1rem;display:flex;align-items:end;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.admin-filters label,.admin-dialog label{display:grid;gap:.3rem;font-size:.85rem;font-weight:650}.admin-filters input,.admin-filters select,.admin-dialog textarea{border:1px solid #aeb5af;border-radius:.45rem;padding:.65rem;font:inherit;background:#fff}.admin-filters input{min-width:min(320px,70vw)}.admin-table-wrap{overflow-x:auto}.admin-table-wrap table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table-wrap th{color:#59615b;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;text-align:left}.admin-table-wrap th,.admin-table-wrap td{padding:.8rem .7rem;border-bottom:1px solid #ebe8e0;vertical-align:top}.admin-table-wrap tr:last-child td{border-bottom:0}.admin-table-wrap a,.admin-linked-list a{color:#176149;font-weight:650}.admin-badge{display:inline-flex;border-radius:999px;padding:.2rem .55rem;background:#ecece8;font-size:.75rem;font-weight:700;white-space:nowrap}.admin-badge.good{background:#dff3e8;color:#145a3e}.admin-badge.warn{background:#fff0ca;color:#72520a}.admin-badge.bad{background:#fee1df;color:#8b2724}.admin-pagination,.admin-summary-line,.admin-actions,.admin-dialog-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.admin-pagination{justify-content:flex-end;margin-top:1rem}.admin-pagination span{color:#5b625d}.admin-shell button{border:1px solid #9da59f;border-radius:.45rem;padding:.55rem .8rem;background:#fff;cursor:pointer;font:inherit}.admin-shell button:hover:not(:disabled){border-color:#176149}.admin-shell button.danger,.admin-dialog button.danger{background:#9c2d29;border-color:#9c2d29;color:#fff}.admin-shell button:disabled{opacity:.55;cursor:default}.admin-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem}.admin-detail-grid dl{display:grid;grid-template-columns:minmax(120px,.35fr) 1fr;margin:0;gap:.55rem 1rem}.admin-detail-grid dt{color:#5b625d}.admin-detail-grid dd{margin:0;overflow-wrap:anywhere}.admin-actions{align-content:start}.admin-summary-line{margin-bottom:1rem}.admin-summary-line button{margin-left:auto}.admin-timeline{list-style:none;padding:0;margin:0;border-left:2px solid #c4d6cf}.admin-timeline li{margin:0 0 1rem 1.2rem;position:relative;background:#f8f7f3;padding:.9rem;border-radius:.55rem}.admin-timeline li:before{content:"";position:absolute;width:.65rem;height:.65rem;border-radius:50%;background:#27745d;left:-1.58rem;top:1.15rem}.admin-timeline li>div{display:flex;justify-content:space-between;gap:1rem}.admin-timeline time{color:#656c66;font-size:.8rem}.admin-timeline pre,.admin-table-wrap pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.78rem}.admin-linked-list{list-style:none;padding:0;display:grid;gap:.6rem}.admin-linked-list li{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.admin-empty,.admin-state,.admin-auth-state{text-align:center;padding:3rem 1rem;color:#616862}.admin-auth-state{min-height:100vh;display:grid;place-content:center;background:#f4f1ea}.admin-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0e211cc2;display:grid;place-items:center;padding:1rem}.admin-dialog{background:#fff;width:min(520px,100%);border-radius:.8rem;padding:1.5rem;box-shadow:0 20px 70px #0005}.admin-dialog h2{margin-top:0}.admin-dialog textarea{min-height:120px;resize:vertical}.admin-dialog-actions{justify-content:flex-end;margin-top:1rem}.admin-dialog .error{color:#9c2d29}@media(max-width:760px){.admin-shell{display:block}.admin-sidebar{position:static;padding:.8rem;gap:.7rem}.admin-sidebar nav{display:flex;overflow-x:auto}.admin-sidebar nav span{white-space:nowrap}.admin-sidebar>a:last-child{display:none}.admin-topbar{min-height:52px}.admin-main main{padding-top:1.25rem}.admin-detail-grid{grid-template-columns:1fr}.admin-page-header{align-items:start;flex-direction:column}}
