:root{color-scheme:dark;--ink:#f4f0e3;--muted:#b7c5bb;--felt:#153b32;--felt2:#1b493c;--lime:#c7f36b;--coral:#ff806c;--gold:#f3c96b;--line:rgba(244,240,227,.16);font-family:"Manrope Variable",system-ui,sans-serif;background:#0e2b25;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(ellipse at 50% 42%,#285643 0,#163d33 43%,#0c2823 100%);background-attachment:fixed}.app-shell{width:min(100%,560px);min-height:100dvh;margin:0 auto;padding:env(safe-area-inset-top) 20px env(safe-area-inset-bottom);display:flex;flex-direction:column}.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:800;letter-spacing:-.06em;text-decoration:none;font-size:17px}.mark{width:30px;height:30px;border-radius:10px 10px 10px 3px;display:grid;place-items:center;color:#133b30;background:var(--lime);font-weight:900;transform:rotate(-5deg)}.connection{font:11px "DM Mono",ui-monospace,monospace;color:var(--muted);display:flex;align-items:center;gap:7px}.connection i{width:7px;height:7px;border-radius:50%;background:#e4bd68;box-shadow:0 0 12px currentColor}.connection.online i{background:#a7ef70}.connection.offline i{background:#ff806c}.screen{flex:1;padding:24px 0 36px;display:flex;flex-direction:column}.footer{display:flex;justify-content:space-between;gap:12px;padding:14px 0 calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);font-size:10px;color:#a7b5ab;letter-spacing:.02em}.eyebrow{font:11px "DM Mono",ui-monospace,monospace;text-transform:uppercase;letter-spacing:.15em;color:var(--lime)}h1,h2,p{margin:0}h1{font-size:clamp(34px,10vw,53px);letter-spacing:-.075em;line-height:.99;font-weight:800}h2{font-size:22px;letter-spacing:-.05em}p{line-height:1.55;color:var(--muted)}.hero{padding:24px 0 25px}.hero h1{max-width:460px;margin:15px 0}.hero p{max-width:360px;font-size:14px}.coin-row{display:flex;gap:6px;align-items:center;margin:18px 0 0}.coin-row .table-card{width:34px;height:48px}.coin-row .table-card:nth-child(1){--r:-8deg}.coin-row .table-card:nth-child(2){--r:4deg}.coin-row .table-card:nth-child(3){--r:-3deg}.coin-row .table-card:nth-child(4){--r:8deg}.panel{border:1px solid var(--line);border-radius:19px;background:rgba(4,27,23,.26);padding:18px;margin:11px 0}.panel-title{font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-bottom:14px}.field{display:flex;flex-direction:column;gap:7px;margin:12px 0}.field label{font-size:12px;color:var(--muted)}input{width:100%;height:52px;border-radius:12px;padding:0 15px;border:1px solid rgba(244,240,227,.2);background:rgba(3,23,20,.34);color:var(--ink);font:600 16px "Manrope Variable",system-ui,sans-serif;outline:none}input:focus{border-color:var(--lime);box-shadow:0 0 0 3px rgba(199,243,107,.12)}input::placeholder{color:#81958a}.split{display:grid;grid-template-columns:1fr 1fr;gap:10px}.button{border:0;border-radius:12px;min-height:52px;padding:0 16px;font:800 14px "Manrope Variable",system-ui,sans-serif;cursor:pointer;transition:transform .16s,filter .16s}.button:active{transform:scale(.975)}.button.primary{background:var(--lime);color:#19382f}.button.secondary{background:rgba(244,240,227,.09);border:1px solid var(--line);color:var(--ink)}.button.quiet{background:transparent;border:1px solid var(--line);color:var(--muted)}.button:disabled{opacity:.4;cursor:not-allowed}.action-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.player-list{display:flex;flex-direction:column;gap:9px}.player{display:flex;align-items:center;gap:12px;min-height:46px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#153a30;background:#dce6cf;font-size:13px;font-weight:800;flex:none}.player-name{flex:1;font-weight:700;font-size:14px}.tag{font:10px "DM Mono",ui-monospace,monospace;border:1px solid var(--line);color:var(--muted);padding:5px 7px;border-radius:20px}.host-tag{color:var(--lime);border-color:rgba(199,243,107,.35)}.room-code{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border:1px dashed rgba(199,243,107,.4);border-radius:14px;background:rgba(199,243,107,.05)}.room-code strong{font:500 23px "DM Mono",ui-monospace,monospace;letter-spacing:.16em;color:var(--lime)}.room-code span{font-size:11px;color:var(--muted)}.notice{padding:13px 14px;border-radius:12px;color:#d9e5d7;background:rgba(244,240,227,.07);font-size:12px;line-height:1.45}.notice.good{background:rgba(199,243,107,.1);color:#e8f7cf}.table-head{display:flex;justify-content:space-between;align-items:end;margin:10px 0 17px}.round-label{font:11px "DM Mono",ui-monospace,monospace;color:var(--muted)}.scoreboard{display:flex;gap:8px;overflow-x:auto;padding:2px 0 9px;scrollbar-width:thin}.score-chip{min-width:110px;border:1px solid var(--line);border-radius:13px;padding:10px 11px;background:rgba(1,20,17,.25)}.score-chip.current{border-color:rgba(199,243,107,.64);background:rgba(199,243,107,.08)}.score-chip span{font-size:11px;color:var(--muted);white-space:nowrap}.score-chip strong{display:block;font:500 19px "DM Mono",ui-monospace,monospace;margin-top:4px}.score-chip small{font-size:9px;color:var(--lime);display:block;margin-top:3px}.felt-zone{min-height:240px;border-radius:23px;border:1px solid rgba(244,240,227,.12);background:radial-gradient(ellipse at 50% 20%,rgba(72,123,79,.34),rgba(10,41,32,.48));padding:18px;position:relative;overflow:hidden}.felt-zone:before,.felt-zone:after{content:'';position:absolute;width:200px;height:200px;border:1px solid rgba(244,240,227,.045);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.felt-zone:after{width:280px;height:280px}.event-line{position:relative;z-index:1;min-height:18px;text-align:center;color:var(--muted);font-size:11px}.hand{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;min-height:135px;padding:14px 0}.card{width:63px;height:91px;border-radius:10px;background:#f2efdf;color:#163b31;box-shadow:0 4px 0 #c7c4b6,0 8px 18px #061f1980;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;transform:rotate(var(--r,0deg));animation:deal .28s cubic-bezier(.2,.8,.2,1) both}.card b{font-size:38px;line-height:1;letter-spacing:-.08em}.card small{position:absolute;left:7px;top:6px;font:9px "DM Mono",ui-monospace,monospace}.card.bonus{background:#f4d278}.card.bonus b{font-size:24px}.card.special{background:#f7a58f}.card-back{width:57px;height:82px;border:1px solid rgba(199,243,107,.9);border-radius:9px;background:repeating-linear-gradient(45deg,rgba(199,243,107,.13) 0 5px,transparent 5px 10px),#255847;box-shadow:0 3px 0 #12362d}.hand-caption{position:relative;z-index:1;text-align:center;font:10px "DM Mono",ui-monospace,monospace;color:#9fb2a4}.game-actions{margin-top:13px}.game-actions .button{min-height:57px}.button.draw{background:var(--lime);color:#15392f}.button.stop{background:#f2ede0;color:#193d32}.button.full{width:100%}.loading{display:grid;place-items:center;min-height:50vh;color:var(--muted);font:12px "DM Mono",ui-monospace,monospace}.spinner{width:20px;height:20px;border:2px solid var(--line);border-top-color:var(--lime);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 12px}.toast{position:fixed;bottom:calc(26px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#f4f0e3;color:#173a30;border-radius:12px;padding:12px 16px;max-width:calc(100vw - 32px);font-size:13px;font-weight:700;box-shadow:0 12px 35px #0005;transition:.22s;z-index:5}.toast.show{opacity:1;transform:translate(-50%,0)}.center{text-align:center}.center .button{margin-top:16px}.medallion{width:88px;height:88px;margin:4px auto 20px;border-radius:28px 28px 28px 7px;display:grid;place-items:center;background:var(--lime);color:#194033;font-size:46px;font-weight:900;transform:rotate(-7deg);box-shadow:0 7px 0 #8cae4f}.hint{font-size:11px;color:#95a99c;margin-top:10px}.divider{height:1px;background:var(--line);margin:16px 0}.small-link{border:0;background:none;color:var(--muted);font:600 12px "Manrope Variable",system-ui,sans-serif;cursor:pointer;padding:12px 0;text-decoration:underline;text-underline-offset:3px}.score-result{font:700 14px "DM Mono",ui-monospace,monospace;color:var(--lime)}.target-list{display:grid;gap:8px;margin-top:10px}@keyframes deal{from{opacity:0;transform:translateY(12px) rotate(var(--r,0deg)) scale(.9)}to{opacity:1;transform:translateY(0) rotate(var(--r,0deg)) scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:560px){.screen{padding-top:34px}.hero{padding-top:28px}.panel{padding:21px}.felt-zone{min-height:265px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Shared table and connection feedback */
.connection-detail{margin-top:12px;padding:12px 14px;border:1px solid rgba(255,128,108,.35);border-radius:12px;background:rgba(71,22,22,.42);color:#ffe0d8;font-size:13px;line-height:1.45}
.connection-detail[hidden]{display:none}
.notice.important{margin:0 0 15px;border:1px solid rgba(255,128,108,.45);background:rgba(255,128,108,.13);color:#ffe8e1}
.tag.absent{color:#ffbdad;border-color:rgba(255,128,108,.38)}
.button:focus-visible,.small-link:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.game-view{width:min(100%,1100px)}
.game-view .screen{gap:0}
.table-layout{display:grid;gap:20px}
.table-focus{min-width:0}
.draw-stage{padding:18px;border:1px solid rgba(244,240,227,.16);border-radius:20px;background:radial-gradient(circle at 30% 30%,rgba(74,133,84,.3),rgba(6,35,28,.62));min-height:170px}
.draw-stage-label{font:11px "DM Mono",ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--lime)}
.draw-spotlight{display:flex;align-items:center;gap:20px;margin:15px 0}
.draw-spotlight>div{display:flex;flex-direction:column;gap:5px;min-width:0}
.draw-spotlight>div strong{font-size:20px;line-height:1.2;overflow-wrap:anywhere}
.draw-spotlight>div span{font-size:13px;color:var(--muted)}
.draw-stage .event-line{text-align:left;margin-top:10px;font-size:13px;line-height:1.45;min-height:0}
.table-card{width:80px;height:112px;display:block;flex:none;position:relative;border-radius:4px;filter:drop-shadow(0 4px 5px rgba(3,20,17,.36));animation:deal .28s cubic-bezier(.2,.8,.2,1) both}
.table-card svg{display:block;width:100%;height:100%;overflow:hidden}
.table-card.compact{width:46px;height:65px}
.draw-trail{display:flex;gap:10px;overflow-x:auto;padding:12px 0 2px;scrollbar-width:thin}
.trail-item{display:flex;align-items:center;gap:7px;flex:none;padding:6px 10px 6px 6px;border-radius:10px;background:rgba(1,20,17,.28);font-size:11px;color:var(--muted)}
.trail-item .table-card.compact{width:32px;height:45px}
.personal-status{margin-top:13px;border:1px solid rgba(255,128,108,.36);background:rgba(255,128,108,.13);font-size:13px}
.game-actions .notice{font-size:13px}
.game-actions{margin:16px 0}
.round-result{margin:16px 0}
.all-hands{min-width:0}
.hands-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:4px 0 12px}
.hands-heading h2{margin-top:5px}
.hands-heading>span{font:11px "DM Mono",ui-monospace,monospace;color:var(--muted);white-space:nowrap}
.hands-grid{display:grid;grid-template-columns:1fr;gap:10px}
.hand-panel{min-width:0;border:1px solid var(--line);border-radius:16px;padding:13px;background:rgba(2,25,20,.34)}
.hand-panel.is-current{border-color:var(--lime);background:rgba(199,243,107,.09)}
.hand-panel.is-own .hand-player>div>strong{color:var(--lime)}
.hand-player{display:flex;justify-content:space-between;align-items:start;gap:10px}
.hand-player>div{min-width:0;display:flex;flex-direction:column;gap:4px}
.hand-player>div>strong{font-size:14px;overflow-wrap:anywhere}
.hand-status{font-size:11px;color:var(--muted);line-height:1.3}
.hand-score{font:600 19px "DM Mono",ui-monospace,monospace;white-space:nowrap}
.hand-score small{font-size:10px;color:var(--muted)}
.visible-cards{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;min-height:56px;align-items:center}
.empty-hand{font-size:12px;color:var(--muted)}
.exit-link{align-self:flex-start;margin-top:15px;min-height:44px}
@media(min-width:760px){.game-view .screen{padding-top:28px}.table-layout{grid-template-columns:minmax(0,390px) minmax(0,1fr);align-items:start}.hands-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.draw-stage{min-height:185px}}
@media(max-width:370px){.app-shell{padding-left:14px;padding-right:14px}.table-card.compact{width:43px;height:60px}}

/* Keep the shared table in view before the latest draw and controls. */
.game-view .table-layout{display:flex;flex-direction:column;gap:14px}
.game-view .screen{padding-top:18px}
.game-view .table-head{margin:4px 0 15px}
.all-hands .table-card{animation:none}
.table-below{display:flex;flex-direction:column;gap:10px;min-width:0}
.latest-draw{display:flex;align-items:center;gap:12px;min-height:78px;padding:9px 13px;border:1px solid var(--line);border-radius:15px;background:rgba(2,25,20,.28)}
.latest-label{font:10px "DM Mono",ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--lime);white-space:nowrap}
.latest-draw .table-card.compact{width:39px;height:55px;animation:none}
.latest-draw>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.latest-draw>div strong{font-size:13px;overflow-wrap:anywhere}
.latest-draw>div span,.latest-empty{font-size:11px;color:var(--muted);line-height:1.3}
.table-event{font-size:12px;line-height:1.45;padding:0 3px}
.table-below .game-actions,.table-below .personal-status,.table-below .standings{margin:0}
.table-below>#next{margin-top:2px}
.hand-player{align-items:flex-start}
.hand-points{display:flex;gap:10px;text-align:right;flex:none}
.hand-points>span{display:flex;flex-direction:column;gap:2px}
.hand-points small{font:9px "DM Mono",ui-monospace,monospace;color:var(--muted);white-space:nowrap}
.hand-points strong{font:600 18px "DM Mono",ui-monospace,monospace}
.hand-points .table-points strong{color:var(--lime)}
.hand-panel.is-current .table-points strong{color:#dcff9b}
.standings{padding:15px}
.standings .hands-heading{margin:0 0 12px}
.standings-list{display:flex;flex-direction:column;gap:0}
.standing-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;column-gap:8px;row-gap:3px;align-items:baseline;padding:9px 0;border-top:1px solid var(--line)}
.standing-row:first-child{border-top:0}
.standing-rank,.standing-total{font:600 14px "DM Mono",ui-monospace,monospace}
.standing-rank{color:var(--lime)}
.standing-row>strong{font-size:13px;overflow-wrap:anywhere}
.standing-total small{font-size:10px;color:var(--muted)}
.standing-change{grid-column:2 / -1;font:11px "DM Mono",ui-monospace,monospace;color:var(--muted)}
.standing-change.up{color:#d5f59c}
.standing-change.down{color:#ffc3b6}

/* Event feedback is brief and never intercepts game controls. */
.play-effect{position:fixed;inset:0;z-index:4;display:grid;place-items:center;padding:20px;pointer-events:none;opacity:0;transition:opacity 220ms var(--ease-out,cubic-bezier(.23,1,.32,1));background:radial-gradient(circle,transparent 35%,rgba(10,31,26,.36) 100%)}
.play-effect.visible{opacity:1}
.effect-panel{width:min(100%,300px);display:flex;flex-direction:column;align-items:center;gap:5px;padding:22px 20px;border:1px solid currentColor;border-radius:20px;background:rgba(8,35,30,.94);box-shadow:0 18px 50px rgba(0,0,0,.4);text-align:center;color:#f5ecdf;transform:translateY(12px) scale(.96);transition:transform 220ms var(--ease-out,cubic-bezier(.23,1,.32,1))}
.play-effect.visible .effect-panel{transform:translateY(0) scale(1)}
.effect-icon{width:57px;height:57px;margin-bottom:5px}
.effect-panel strong{font-size:23px;letter-spacing:-.04em}
.effect-panel span{font-size:12px;line-height:1.4;color:#e2e9df}
.effect-freeze{background:radial-gradient(circle,transparent 30%,rgba(80,181,225,.25) 100%)}
.effect-freeze .effect-panel{border-color:#9ce3f9;box-shadow:0 18px 50px rgba(0,0,0,.4),0 0 32px rgba(124,210,243,.22)}
.effect-freeze .effect-icon{color:#a4e9fc}
.effect-busted{background:radial-gradient(circle,transparent 30%,rgba(242,101,58,.26) 100%)}
.effect-busted .effect-panel{border-color:#ff9e74;box-shadow:0 18px 50px rgba(0,0,0,.4),0 0 32px rgba(255,117,72,.24)}
.effect-busted .effect-icon{color:#ffac7b}
.effect-second .effect-icon,.effect-saved .effect-icon{color:#f6a2b3}
.effect-flip3 .effect-icon,.effect-bonus .effect-icon,.effect-double .effect-icon,.effect-flip7 .effect-icon{color:#f4d573}
@media(min-width:760px){.game-view .table-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);align-items:start}.hands-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:370px){.hand-points{gap:6px}.hand-points small{font-size:8px}.hand-points strong{font-size:16px}.latest-draw{gap:8px;padding:8px}}
@media(prefers-reduced-motion:reduce){.effect-panel,.play-effect.visible .effect-panel{transform:none}.play-effect{transition:opacity 220ms var(--ease-out,cubic-bezier(.23,1,.32,1));transition-duration:220ms!important}.effect-panel{transition:none!important}}
