@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#f4f3e9;background:#202124;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100svh;background:radial-gradient(ellipse at 50% 40%,#303136 0%,#202124 67%);font-size:16px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #ffd267;outline-offset:5px}header{height:100px;max-width:1280px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between}header a{display:flex;gap:12px;align-items:center;color:#f4f3e9;text-decoration:none;font-size:30px}header a span{font-size:13px;letter-spacing:2px;font-weight:700}.help,.close{border:1px solid #ffffff40;color:inherit;background:transparent;border-radius:50%;width:38px;height:38px;font-size:20px}main{max-width:1000px;margin:auto;padding:24px 24px 40px}.start{text-align:center}.eyebrow{font-size:12px;letter-spacing:3px;font-weight:700;color:#c6c6cc}.start h1{font-family:'Space Grotesk',sans-serif;font-size:clamp(50px,7vw,84px);line-height:.98;letter-spacing:-5px;margin:22px 0}.start h1 em{font-style:normal;color:#ffd267}.intro{color:#bdbdc5;line-height:1.6;margin:22px auto 0}.fan{height:196px;position:relative;width:270px;margin:28px auto 22px}.card{width:115px;height:161px;border-radius:10px;background:#f5f2e8;color:#28292d;box-shadow:0 7px 12px #081d3030;border:1px solid #d5d6cb;padding:10px;display:flex;flex-direction:column;justify-content:space-between;font-family:Georgia,serif}.fan .card{position:absolute;top:16px;left:77px;transform:rotate(-19deg) translateX(-56px)}.fan .card:nth-child(2){transform:rotate(6deg);top:7px}.fan .card:nth-child(3){transform:rotate(24deg) translateX(57px);top:20px}.card.red{color:#c44934}.corner{font-size:23px;line-height:.83;text-align:left}.corner small{display:block;font-size:19px;margin-top:4px}.pip{font-size:51px;text-align:center;line-height:1}.bottom{transform:rotate(180deg)}.mode-label{font-size:12px;letter-spacing:2px;color:#c6c6cc;margin:18px 0}.modes{display:flex;gap:14px;max-width:560px;margin:auto}.mode{border:1px solid #64646e;border-radius:13px;flex:1;text-align:left;color:#fff;background:#ffffff07;padding:22px;display:grid;grid-template-columns:1fr auto;gap:8px;transition:transform .2s,background .2s}.mode:hover{transform:translateY(-3px);background:#ffffff12}.mode:first-child{background:#ffd267;color:#29251c;border-color:#ffd267}.mode b{font-size:18px;font-weight:700}.mode small{font-size:13px;opacity:.75;grid-column:1/3}.mode .icon{font-size:23px;grid-column:1/3;margin-bottom:10px}.mode .arrow{font-size:22px}.start footer{margin:30px auto 0;color:#aeb0b8;font-size:12px;display:flex;gap:20px;justify-content:center}.start footer span+span:before{content:'·';margin-right:20px}.game{max-width:480px;margin:0 auto}.game-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.text-button{border:0;background:none;color:#c7c7cf;font-size:14px;padding:8px}.badge{font-size:12px;letter-spacing:1px;color:#ffdc89;background:#ffffff0c;border-radius:30px;padding:8px 13px}.player{display:flex;align-items:center;gap:12px;padding:16px 0}.avatar{border:1px solid #64646e;border-radius:50%;width:44px;height:44px;display:grid;place-items:center;font-size:22px}.player strong{display:block}.player small{display:block;color:#b6b6c0;font-size:13px;margin-top:3px}.count{margin-left:auto;font-family:'Space Grotesk',sans-serif;font-size:30px;font-weight:600}.count small{font:12px 'DM Sans',sans-serif;text-align:right}.table{height:270px;border:1px solid #89899455;border-radius:150px;display:flex;align-items:center;justify-content:center;position:relative;background:#10111440;margin:10px 0}.pile{position:relative;width:125px;height:175px}.pile .card{position:absolute;width:125px;height:175px;top:0;left:0;animation:deal .15s ease-out}.pile .card:nth-last-child(2){transform:translate(-10px,-3px) rotate(-9deg)}.pile .card:nth-last-child(3){transform:translate(7px,-6px) rotate(7deg)}.empty-pile{border:1px dashed #89899466;border-radius:10px;height:175px;display:grid;place-items:center;color:#b6b6c0;font-size:13px}.pile-count{position:absolute;bottom:15px;font-size:12px;letter-spacing:1px;color:#c5c5cd}.status{text-align:center;min-height:47px;margin:17px 0 3px;font-size:16px;color:#ffd267;line-height:1.4}.actions{display:grid;grid-template-columns:1fr 1.3fr;gap:12px}.primary,.slap,.flip{border:0;border-radius:10px;padding:18px 14px;font-weight:700;min-height:60px}.primary,.slap{background:#ffd267;color:#29251c}.flip{background:#f3f1e7;color:#28292d}.slap{touch-action:manipulation;user-select:none}.slap small{display:block;font-size:12px;opacity:.7;font-weight:400;margin-top:3px}.slap.armed{background:#fff;transform:scale(.97)}button:disabled{opacity:.35;cursor:default}.hint{font-size:12px;color:#b6b6c0;text-align:center;margin-top:17px}.friend-controls{margin-bottom:16px}.friend-controls .slap{background:#c5d7f1}.win{text-align:center;padding:80px 0}.win h2{font-size:52px;font-family:'Space Grotesk';letter-spacing:-2px}.win .primary{width:100%;margin-top:20px}dialog{max-width:450px;width:calc(100% - 32px);border:1px solid #64646e;background:#28292e;color:#f4f3e9;border-radius:20px;padding:30px;max-height:88svh}dialog::backdrop{background:#101114b0;backdrop-filter:blur(5px)}dialog .close{position:absolute;right:20px;top:20px}dialog h2{font-size:42px;line-height:1.05;letter-spacing:-2px;font-family:'Space Grotesk'}dialog p{font-size:15px;line-height:1.65;color:#cdced5}dialog h3{font-size:17px}dialog .primary{width:100%;margin-top:10px}@keyframes deal{from{transform:translateY(30px) rotate(5deg);opacity:.4}to{opacity:1}}@media(max-width:600px){header{height:76px;padding:0 24px}main{padding-top:14px}.start h1{font-size:61px;letter-spacing:-3.5px}.fan{margin-top:20px;height:181px;transform:scale(.94)}.intro{font-size:15px;max-width:290px}.modes{gap:10px}.mode{padding:18px 15px}.mode b{font-size:16px}.mode small{font-size:12px}.start footer{gap:12px;font-size:11px}.start footer span+span:before{margin-right:12px}.table{height:235px}.game-top{margin-bottom:0}.player{padding:11px 0}.game .actions button{padding:14px 10px}.game{padding-bottom:env(safe-area-inset-bottom)}.friend-game .table{height:205px}.friend-game .status{margin-top:9px}.friend-game .player{padding:6px 0}.friend-game .friend-controls{margin-bottom:4px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Direct pile interaction and thumb-reachable navigation. */
.game{padding-bottom:110px}.game-top{justify-content:space-between}.table-title{font-size:12px;letter-spacing:2px;color:#b6b6c0}.table{border-radius:32px;height:300px}.pile{pointer-events:none}.pile-count{pointer-events:none;bottom:12px}.pile-target{position:absolute;inset:0;border:0;background:transparent;color:#c7c7cf;touch-action:manipulation;user-select:none;-webkit-user-select:none;border-radius:32px}.pile-target.armed{background:#ffd26718;box-shadow:inset 0 0 0 2px #ffd267}.pile-target.upper{bottom:50%;border-radius:32px 32px 0 0;border-bottom:1px dashed #ffffff25}.pile-target.lower{top:50%;border-radius:0 0 32px 32px}.pile-target span{position:absolute;left:0;right:0;font-size:11px;letter-spacing:1px;pointer-events:none}.upper span{top:14px}.lower span{bottom:32px}.bottom-nav{position:fixed;z-index:10;bottom:0;left:0;right:0;display:grid;grid-template-columns:65px minmax(130px,320px) 65px;justify-content:center;align-items:center;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #ffffff20;background:#242529f5;backdrop-filter:blur(16px)}.bottom-nav .flip{background:#ffd267;color:#28251d;min-height:56px;font-size:16px}.nav-item{min-height:56px;border:0;background:none;color:#c7c7cf;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:12px}.nav-item span{font-size:24px;line-height:1.1}.game .hint{font-size:14px;line-height:1.6}.friend-game .table{height:300px}@media(max-width:600px){header{height:64px;padding:0 20px}main{padding:8px 20px 24px}.game{padding-bottom:calc(100px + env(safe-area-inset-bottom))}.table,.friend-game .table{height:clamp(230px,36svh,340px);margin:10px 0}.status{margin:10px 0 0;min-height:44px}.player,.friend-game .player{padding:8px 0}.bottom-nav{gap:8px;grid-template-columns:54px minmax(130px,320px) 54px}.hint{margin-top:8px}.help{width:44px;height:44px}}@media(max-width:360px){.bottom-nav{padding-left:8px;padding-right:8px}.bottom-nav .flip{font-size:14px;padding:14px 8px}}
.room-panel{max-width:440px;margin:40px auto;text-align:center}.room-panel h2{font-family:'Space Grotesk',sans-serif;font-size:42px;letter-spacing:-2px;line-height:1.1}.room-panel p{color:#c7c7cf;line-height:1.6}.room-panel label{display:block;text-align:left;font-size:14px;margin:24px 0 8px}.room-panel input{width:100%;padding:16px;border:1px solid #64646e;border-radius:10px;background:#18191c;color:#f4f3e9;font:inherit;font-size:16px}.room-panel .primary{width:100%;margin-top:16px}.room-panel .waiting-note{color:#ffd267;font-size:14px}.room-panel .text-button{margin-top:24px;min-height:44px}
/* Fit the working surface to the available screen, with mobile-sized controls. */
html{height:100%;overscroll-behavior:none}body{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}header{height:64px;min-height:64px;width:100%;padding:0 24px}main{width:100%;flex:1;min-height:0;margin:0 auto;padding:8px 24px 16px;display:flex;flex-direction:column;justify-content:center}.game{width:100%;height:100%;min-height:0;max-width:480px;display:grid;grid-template-rows:auto auto minmax(130px,1fr) auto auto auto;gap:6px;padding-bottom:calc(84px + env(safe-area-inset-bottom))}.game-top{margin:0}.player,.friend-game .player{padding:4px 0}.table,.friend-game .table{height:auto;min-height:0;margin:0}.status,.friend-game .status{min-height:0;margin:0;line-height:1.35}.game .hint{margin:0;font-size:13px;line-height:1.4}.pile{width:115px;height:min(175px,25dvh)}.pile .card{width:100%;height:100%;padding:8px}.empty-pile{height:100%}.pile .pip{font-size:clamp(28px,5dvh,51px)}.pile .corner{font-size:20px}.pile .corner small{font-size:16px}.bottom-nav{padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.bottom-nav .flip,.nav-item{min-height:52px}.help{width:44px;height:44px}.start{width:100%;max-width:620px;margin:auto;min-height:0}.start .eyebrow{margin:0 0 8px}.start h1{font-size:clamp(48px,9dvh,76px);margin:0;line-height:1}.intro{margin:10px auto 0;font-size:15px;line-height:1.4}.fan{height:clamp(90px,22dvh,178px);margin:8px auto;transform:scale(.85);transform-origin:center center}.mode-label{margin:10px 0}.modes{width:100%}.mode{padding:14px 18px;gap:5px}.mode .icon{margin-bottom:2px;font-size:20px}.start footer{margin-top:14px}.room-panel{width:100%;margin:auto;max-width:440px}.room-panel h2{margin:16px 0}.room-panel .text-button{margin-top:12px}.win{padding:0;width:100%;max-width:440px;margin:auto}.win h2{margin:20px 0}.win .primary{margin-top:12px}
@media(min-width:700px){.start{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;text-align:left;align-items:center}.start .eyebrow{grid-column:1;align-self:end}.start h1{grid-column:1}.start .intro{grid-column:1;margin:12px 0 20px}.start .fan{grid-column:2;grid-row:1/4;margin:0 auto;height:190px;transform:scale(.95)}.start .mode-label,.start .modes,.start footer{grid-column:1/-1}.start .modes{max-width:none}.start .mode-label{text-align:center}.start footer{justify-content:center}.mode{padding:18px}.game{max-width:520px}.pile{width:125px;height:min(175px,27dvh)}dialog{max-width:860px;max-height:calc(100dvh - 32px);padding:24px;overflow:hidden}dialog[open]{display:grid;grid-template-columns:1fr 1fr;column-gap:28px}dialog .eyebrow,dialog h2,dialog>.primary{grid-column:1/-1}dialog h2{font-size:30px;margin:4px 0 10px}dialog h2 br{display:none}dialog h3{margin:8px 0}dialog p{margin:6px 0;font-size:14px;line-height:1.4}dialog .primary{min-height:48px;padding:12px}}
@media(max-width:600px){header{height:56px;min-height:56px;padding:0 18px}main{padding:4px 18px 12px}.game{gap:5px}.mode{padding:12px}.mode b{font-size:15px}.mode small{font-size:12px}.start footer{font-size:11px;gap:8px}.start footer span+span:before{margin-right:8px}.avatar{width:38px;height:38px}.count{font-size:26px}.player small{font-size:12px}.room-panel h2{font-size:36px}.pile-count{bottom:7px}}
@media(max-height:650px){header{height:48px;min-height:48px}.game{gap:3px}.game .hint{font-size:12px}.game .hint br{display:none}.game .hint br:after{content:' '}.player small{margin-top:0}.status{font-size:14px}.avatar{width:34px;height:34px}.fan{height:105px;transform:scale(.65);margin:0 auto 8px}.start h1{font-size:48px}.intro{margin-top:6px}.mode .icon{display:none}.start footer{margin-top:10px}.room-panel h2{font-size:30px;margin:8px 0}.room-panel p{margin:8px 0}.room-panel label{margin-top:12px}}
@media(max-height:480px) and (min-width:600px){header{height:44px;min-height:44px}.game{max-width:760px;grid-template-columns:1fr 1.4fr 1fr;grid-template-rows:auto 1fr auto;gap:10px}.game-top{grid-column:1/-1}.game>.player:first-of-type{grid-column:1}.game>.table{grid-column:2;grid-row:2/4}.game>.status{grid-column:1;grid-row:3}.game>.player{align-self:center}.game>.hint{grid-column:3;grid-row:3}.pile{height:130px;width:95px}dialog{padding:16px}dialog .eyebrow,dialog h2{display:none}}

/* Honk-inspired, staggered emoji fountain, above the game without blocking taps. */
.slap-burst{position:fixed;width:0;height:0;z-index:100;pointer-events:none}.slap-burst span{position:absolute;left:-20px;top:-20px;font-size:var(--size,38px);line-height:1;will-change:transform,opacity;animation:slap-spray 1s cubic-bezier(.16,.7,.35,1) both;animation-delay:var(--delay);filter:drop-shadow(0 3px 3px #0003)}@keyframes slap-spray{0%{opacity:0;transform:translate(0,12px) rotate(0) scale(.15)}14%{opacity:1;transform:translate(calc(var(--mid-x)*.3),-15px) rotate(var(--spin)) scale(1.15)}50%{opacity:1;transform:translate(var(--mid-x),calc(var(--y)*.65)) rotate(var(--spin)) scale(1)}75%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--spin)) scale(.7)}}@media(prefers-reduced-motion:reduce){.slap-burst span{animation:none!important;position:relative;display:inline-block;left:-50px;top:-20px}.slap-burst{width:150px}}

/* Reserve the full painted card fan area; transforms must not escape its row. */
.start{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"eyebrow" "title" "intro" "cards" "label" "modes" "footer";gap:8px;text-align:center;align-items:center}.start>.eyebrow{grid-area:eyebrow;margin:0}.start>h1{grid-area:title}.start>.intro{grid-area:intro;margin:0 auto;max-width:100%}.start>.fan{grid-area:cards;position:relative;width:100%;height:160px;margin:0;transform:none;overflow:hidden}.fan-art{position:absolute;width:270px;height:240px;left:50%;top:50%;transform:translate(-50%,-50%) scale(.65)}.start>.mode-label{grid-area:label;margin:0}.start>.modes{grid-area:modes;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin:0;max-width:none}.start>footer{grid-area:footer;margin:4px 0 0;flex-wrap:wrap}.mode{min-width:0;grid-template-columns:minmax(0,1fr) auto}.mode b,.mode small{overflow-wrap:break-word}.mode .arrow{align-self:center}
@media(min-width:700px){.start{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"eyebrow cards" "title cards" "intro cards" "label label" "modes modes" "footer footer";column-gap:24px;row-gap:12px;text-align:left}.start>.fan{height:220px}.fan-art{transform:translate(-50%,-50%) scale(.85)}.start>.intro{margin:0}.start>.mode-label{text-align:center}}
@media(max-height:650px){.start{gap:7px}.start>.fan{height:110px}.fan-art{transform:translate(-50%,-50%) scale(.45)}}
@media(min-width:700px) and (max-height:650px){.start>.fan{height:165px}.fan-art{transform:translate(-50%,-50%) scale(.65)}}
@media(max-height:480px){.start>.fan{display:none}.start{grid-template-columns:1fr;grid-template-areas:"eyebrow" "title" "intro" "label" "modes" "footer";gap:5px;text-align:center}.start>.intro{margin:0 auto}.start h1{font-size:40px}.start .mode{padding:10px}.start footer{margin:0}}

.lobby-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.lobby-seat{border:1px dashed #ffffff30;border-radius:10px;padding:10px 5px;display:grid;gap:3px;color:#909099}.lobby-seat.joined{border-style:solid;border-color:#ffd26766;color:#f4f3e9;background:#ffd26709}.lobby-seat>span{font-size:21px}.lobby-seat strong{font-size:14px}.lobby-seat small{font-size:12px}.room-panel:has(.lobby-roster) h2{font-size:32px;margin:8px 0}.room-panel:has(.lobby-roster) p{font-size:14px;margin:6px 0;line-height:1.4}.room-panel:has(.lobby-roster) label{margin:10px 0 5px}.room-panel:has(.lobby-roster) .primary{min-height:46px;padding:12px;margin-top:9px}.room-panel #share-room{background:#393a40;color:#f4f3e9;border:1px solid #62636c}.room-panel:has(.lobby-roster) input{padding:12px}.room-panel:has(.lobby-roster) .text-button{margin-top:4px}.opponents{display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:6px;padding:3px 0}.opponent{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid #ffffff22;border-radius:10px;padding:8px 2px;background:#ffffff04}.opponent>span{font-size:12px;color:#c5c5cd}.opponent strong{font-size:22px}.opponent small{font-size:11px;color:#b6b6c0}.opponent.active-turn{border-color:#ffd267;background:#ffd2670b}.opponent.active-turn small{color:#ffd267}@media(max-height:650px){.lobby-roster{margin:8px 0;gap:5px}.lobby-seat{padding:6px 4px}.lobby-seat>span{display:none}.room-panel:has(.lobby-roster) h2{font-size:26px}.room-panel:has(.lobby-roster) .eyebrow{display:none}.opponent{padding:5px 2px}}

/* Explain the slap gesture before choosing a game. */
.start>.intro strong{display:block;color:#ffd267;font-size:clamp(18px,2.4vw,22px);line-height:1.25}.start>.intro span{display:block;margin-top:6px;color:#f4f3e9}.start>.intro small{display:block;margin-top:8px;font-size:13px;line-height:1.4;color:#bdbdc5}@media(max-height:650px){.start>.intro strong{font-size:18px}.start>.intro span,.start>.intro small{margin-top:3px}.start>.intro span{font-size:13px}}

/* Colorful default rat portraits and the public best-games board. */
.rat-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:42px;height:42px;border-radius:50%;background:var(--rat);border:2px solid #ffffff30;box-shadow:inset 0 -3px 0 #0001;font-size:28px;line-height:1}.rat-avatar>span{filter:sepia(.5) saturate(2) hue-rotate(var(--hue))}.opponent .rat-avatar{width:26px;height:26px;font-size:19px;border-width:1px}.lobby-seat .rat-avatar{width:30px;height:30px;font-size:22px}.leaderboard-link{border:0;background:none;color:#ffd267;font:inherit;font-weight:700;padding:0 6px;min-height:24px}.start footer{align-items:center}.leaderboard{width:100%;max-width:520px;margin:auto;min-height:0}.leaderboard h2{font:700 clamp(30px,6dvh,44px)/1.1 'Space Grotesk',sans-serif;letter-spacing:-2px;margin:8px 0}.leaderboard>p{color:#bdbdc5;font-size:14px;margin:8px 0}.board-tabs{display:flex;gap:8px;margin:16px 0 10px}.board-tabs button{flex:1;border:1px solid #64646e;border-radius:10px;background:transparent;color:inherit;padding:12px;font-weight:700}.board-tabs button[aria-pressed=true]{background:#ffd267;color:#29251c;border-color:#ffd267}.leaderboard .board-note{font-size:12px;min-height:17px}.board-row{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #ffffff16}.board-rank{color:#bdbdc5;font-size:13px;width:18px}.board-name{flex:1;min-width:0}.board-name strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-row small{display:block;color:#bdbdc5;font-size:11px;margin-top:3px}.board-score{text-align:right}.board-score strong{color:#ffd267;font-size:22px}.board-pages{display:flex;align-items:center;justify-content:space-between;margin:8px 0;font-size:12px}.leaderboard>.primary{width:100%;min-height:48px;padding:12px}.board-empty{text-align:center;padding:35px 0;line-height:1.7;color:#c7c7cf}.result h2{font-size:38px;margin:12px 0}.result>p{margin:10px 0}.result>.rat-avatar{width:58px;height:58px;font-size:40px}.result form{margin:16px 0 4px;text-align:left}.result label{display:block;font-size:14px;margin-bottom:8px}.result input{width:100%;font:inherit;background:#18191c;color:#fff;border:1px solid #64646e;border-radius:10px;padding:12px}.result form small{display:block;color:#bdbdc5;font-size:12px;margin-top:6px}.result .primary{min-height:46px;padding:12px;margin-top:8px}.result #save-status{font-size:13px;color:#ffd267;margin:6px 0}.result>.text-button{min-height:36px}@media(max-height:650px){.board-row{padding:6px 0;gap:8px}.board-row .rat-avatar{width:32px;height:32px;font-size:23px}.board-tabs{margin:8px 0}.leaderboard .eyebrow{display:none}.result>.rat-avatar{width:38px;height:38px;font-size:28px}.result h2{font-size:30px;margin:6px 0}.result form{margin-top:8px}.result>p{margin:5px 0}.opponent .rat-avatar{display:none}}@media(max-height:480px){.leaderboard{max-width:800px}.board-row{padding:3px 0}.leaderboard h2{font-size:26px}.leaderboard>p{margin:3px 0}.board-row .rat-avatar{width:24px;height:24px;font-size:18px}.board-row small{display:none}.board-tabs button{padding:8px}.board-pages{margin:2px 0}.result{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;max-width:700px}.result form{grid-column:2;grid-row:1/6}.result>.rat-avatar{margin:auto}.result h2{margin:0}.result>.primary{margin:0}}
.board-row{height:clamp(42px,8dvh,62px);padding:4px 0}.board-row .rat-avatar{max-height:100%}.board-name,.board-score{line-height:1.15}.board-row small{margin-top:2px}.leaderboard{flex-shrink:0}@media(max-height:650px){.leaderboard h2{margin:4px 0}.leaderboard>p{margin:5px 0}.board-tabs button{padding:9px}.board-pages{margin:4px 0}}@media(max-height:480px){.board-row{height:29px}.board-tabs{margin:4px 0}.leaderboard>.primary{min-height:36px;padding:8px}}
.options-link{border:0;background:none;color:#d8d8dc;font:inherit;font-weight:600;min-height:40px;padding:4px 10px;display:flex;gap:7px;align-items:center}.options-link span{font-weight:400;color:#9c9da6;font-size:11px}.start footer{gap:12px}.options-link:hover{color:#ffd267}#options{width:min(460px,calc(100% - 24px));max-height:calc(100dvh - 32px);padding:24px;overflow:auto;border-radius:22px}#options[open]{display:block}.options-head{display:flex;justify-content:space-between;align-items:center}.options-head .eyebrow{margin:0;font-size:10px}.options-head h2{margin:5px 0 0;font-size:32px}.options-head .close{position:static;flex-shrink:0}.options-intro{margin:12px 0 16px!important;font-size:13px!important}.option-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #ffffff18;cursor:pointer}.option-row>span:first-child{flex:1}.option-row strong{display:block;font-size:15px}.option-row small{display:block;color:#bdbdc5;font-size:12px;line-height:1.3;margin-top:3px}.option-row em{display:block;font-style:normal;color:#ffd267;font:500 12px 'Space Grotesk',sans-serif;margin-top:5px}.option-row input{position:absolute;opacity:0;width:1px;height:1px}.switch-track{position:relative;width:38px;height:24px;border-radius:20px;background:#595a62;flex-shrink:0;transition:background .15s}.switch-track:after{content:'';position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s}.option-row input:checked+.switch-track{background:#ffd267}.option-row input:checked+.switch-track:after{background:#29251c;transform:translateX(14px)}.option-row input:focus-visible+.switch-track{outline:3px solid #fff;outline-offset:4px}.options-note{font-size:12px!important;line-height:1.35!important;margin:12px 0!important}.options-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.options-actions .primary{width:auto;min-width:110px;min-height:44px;padding:12px;margin:0}#active-slap-rules{color:#ffd267;grid-column:1/-1}.active-rules{font-size:12px!important;color:#ffd267!important}.board-name small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-name small:hover{white-space:normal}@media(max-width:600px){#options{margin:auto auto 0;width:100%;max-width:none;max-height:92dvh;border-radius:22px 22px 0 0;padding:20px 20px calc(16px + env(safe-area-inset-bottom))}.start footer{gap:4px}.options-link{padding:2px 5px}.options-link span{font-size:10px}}@media(max-height:700px){#options{padding:16px}.option-row{padding:8px 0}.option-row small{font-size:11px}.option-row em{margin-top:3px}.options-intro{margin:8px 0!important}.options-head h2{font-size:26px}}
.pile-history{position:absolute;top:10px;left:8px;right:8px;text-align:center;font-size:11px;letter-spacing:.3px;color:#c7c7cf;pointer-events:none}
#options[open]{display:flex;flex-direction:column}#options>.option-list{min-height:0;overflow-y:auto}#options>.options-head,#options>.options-intro,#options>.options-note,#options>.options-actions{flex-shrink:0}
/* A personalized victory card, with sharing kept beside the result. */
.result{max-width:420px}.victory-card{position:relative;padding:20px 16px 16px;border:1px solid #ffd26755;border-radius:20px;background:radial-gradient(ellipse at top,#ffd26719,transparent 70%);text-align:center}.victory-card .eyebrow{font-size:10px;letter-spacing:2px;margin:0 0 12px}.victory-card .rat-avatar{width:60px;height:60px;font-size:42px}.victory-card h2{font-size:clamp(28px,6dvh,42px);line-height:1.05;margin:12px 0 8px;overflow-wrap:anywhere}.victory-card p{margin:6px 0;font-size:14px;color:#c7c7cf}.victory-card .victory-stat{color:#ffd267;font-size:13px}.victory-stat strong{font-size:22px;margin-right:3px}.result form{margin:12px 0 0}.result form .primary{background:#393a40;border:1px solid #64646e;color:#f4f3e9}.result .share-victory{width:100%;margin-top:8px}.result-links{display:flex;justify-content:center;gap:8px}.result-links .text-button{font-size:13px;min-height:40px}.result #share-status{font-size:12px;color:#ffd267;margin:4px 0;line-height:1.3}.result form small{font-size:11px}@media(max-height:700px){.victory-card{padding:12px}.victory-card .rat-avatar{width:42px;height:42px;font-size:29px}.victory-card h2{margin:7px 0;font-size:29px}.victory-card .eyebrow{margin-bottom:7px}.result form{margin-top:8px}.result input{padding:9px}.result label{margin-bottom:5px}.result .primary{min-height:42px;padding:10px}.result-links .text-button{min-height:34px}.result form small{margin-top:3px}}@media(max-height:480px){.result{display:grid;max-width:760px;grid-template-columns:1fr 1fr;align-items:center;gap:4px 20px}.result .victory-card{grid-column:1;grid-row:1/4}.result form{grid-column:2;grid-row:1}.result .share-victory{grid-column:2}.result-links{grid-column:1/-1}}
.slap-winner{display:block;color:#ffd267;font-size:16px;line-height:1.3;background:#ffd26712;border:1px solid #ffd26755;border-radius:9px;padding:7px 10px;margin-bottom:4px;overflow-wrap:anywhere}.slap-winner small{white-space:nowrap;font-size:12px}.status:has(.slap-winner)>span{font-size:12px;color:#c7c7cf}.name-entry{display:flex;gap:8px;align-items:center}.name-entry input{min-width:0;flex:1}.room-panel .name-entry .primary{width:auto;margin:0;white-space:nowrap}.room-panel #lobby-profile label{margin:8px 0 6px}.room-panel #lobby-profile label small{color:#ffd267;font-size:11px;margin-left:7px}#name-status{font-size:12px!important;color:#ffd267!important}.lobby-seat strong,.opponent>span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player strong{overflow-wrap:anywhere}.room-panel:has(#lobby-profile){max-height:100%;overflow-y:auto;padding-bottom:8px}@media(max-height:650px){.slap-winner{font-size:14px;padding:4px 8px}.room-panel:has(#lobby-profile) .lobby-seat{padding:4px}.room-panel:has(#lobby-profile) h2{font-size:24px}.room-panel:has(#lobby-profile) #room-message{font-size:12px}}
/* A short, single-column rules guide. */
#rules{max-width:430px;padding:24px;overflow-y:auto}#rules[open]{display:block}#rules h2{font-size:30px;margin:0 50px 6px 0;letter-spacing:-1px}#rules .rules-goal{color:#ffd267;margin:0 0 16px}#rules .rules-step{padding:12px 0;border-top:1px solid #ffffff18}#rules h3{font-size:16px;margin:0 0 5px}#rules p{font-size:13px;line-height:1.4;margin:5px 0}#rules #active-slap-rules{color:#ffd267;margin:8px 0}#rules .face-chances{font-weight:700;color:#ffd267}#rules .rules-footnote{font-size:12px;color:#aaaab5;margin:8px 0}#rules .primary{min-height:44px;margin-top:12px;padding:12px}@media(max-height:650px){#rules{padding:18px}#rules .rules-step{padding:8px 0}#rules h2{font-size:26px}#rules .rules-goal{margin-bottom:10px}}
.difficulty-list{border:0;padding:0;margin:0 0 16px}.difficulty-list legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.difficulty-choice{display:flex;align-items:center;gap:12px;padding:16px 12px;margin:8px 0;border:1px solid #64646e;border-radius:12px;cursor:pointer}.difficulty-choice:has(input:checked){border-color:#ffd267;background:#ffd26710}.difficulty-choice input{accent-color:#ffd267;width:18px;height:18px;flex-shrink:0}.difficulty-choice strong{display:block;font-size:16px}.difficulty-choice small{display:block;margin-top:5px;font-size:12px;line-height:1.4;color:#bdbdc5}#options #play-level{width:100%;margin:0;min-height:48px}

.royal-rat{position:relative;display:inline-flex;flex-shrink:0}.rat-headpiece{position:absolute;z-index:1;width:30px;height:27px;left:50%;top:-15px;transform:translateX(-50%) rotate(-8deg);filter:drop-shadow(0 2px 1px #0005)}.royal-rat[aria-label*="Queen"] .rat-headpiece{transform:translateX(-50%) rotate(6deg)}.board-row:has(.royal-rat){min-height:52px}@media(max-height:650px){.rat-headpiece{width:25px;height:22px;top:-13px}.board-row:has(.royal-rat){min-height:44px}}

/* Short solo sessions: format selection and an always-visible clock. */
.format-list{border:0;padding:0;margin:16px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.format-list legend{font-size:.8rem;color:var(--muted,#b9b9c3);margin-bottom:8px}
.format-list label{display:flex;align-items:center;gap:9px;border:1px solid #62636d;border-radius:14px;padding:12px;cursor:pointer}
.format-list label:has(input:checked){border-color:#ffd267;background:#ffd26714}
.format-list input{accent-color:#ffd267}
.format-list strong,.format-list small{display:block}.format-list small{font-size:.75rem;line-height:1.4;margin-top:5px;color:#c7c7cf}
#rush-clock{font-variant-numeric:tabular-nums;color:#ffd267;font-size:1.35rem;letter-spacing:0;margin-left:8px}#rush-clock.urgent{color:#ff9585}
#rush-name{width:100%;box-sizing:border-box;padding:14px;border:1px solid #62636d;border-radius:12px;background:#202124;color:#f4f3e9;font:inherit}
@media(max-height:740px){.format-list{margin:8px 0}.format-list label{padding:8px}.difficulty-choice{padding:10px}}

/* Three clear entry points; rush gives the whole table to the cards. */
.start .modes{display:flex;flex-direction:column;gap:10px;width:100%;max-width:560px}
.start .mode{flex:none;display:grid;grid-template-columns:30px 1fr auto;gap:4px 12px;padding:14px 18px;align-items:center}
.start .mode .icon{grid-column:1;grid-row:1/3;margin:0;font-size:24px}
.start .mode b{grid-column:2}.start .mode .arrow{grid-column:3;grid-row:1/3}
.start .mode small{grid-column:2;font-size:12px}.start #rush{border-color:#ffd26788}
.rush-game{max-width:560px;width:100%;height:100%;min-height:0;margin:auto;display:flex;flex-direction:column;gap:10px}
.rush-hud{display:flex;justify-content:space-between;align-items:center;flex-shrink:0}
.rush-hud>div:first-child{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:0 8px}
.rush-hud .eyebrow{display:block;grid-column:1/-1;font-size:10px;letter-spacing:2px}
#rush-score{color:#ffd267;font-size:clamp(48px,9dvh,80px);line-height:1;font-variant-numeric:tabular-nums}
.rush-hud span:not(.eyebrow){font-size:13px;color:#bdbdc5}.rush-time{text-align:right}.rush-time #rush-clock{display:block;margin:8px 0 0;font-size:32px}
.rush-game .rush-table{flex:1;min-height:180px;height:auto;margin:0;border-radius:24px;overflow:hidden;container-type:size}
.dealer-label{position:absolute;top:12px;left:0;right:0;text-align:center;letter-spacing:3px;font-size:10px;color:#a8a9b3}
.rush-game .rush-pile{width:min(64cqw,46cqh);height:min(89.6cqw,64.4cqh);position:relative}
.rush-game .rush-pile .card{width:100%;height:100%;border-radius:16px;padding:16px;animation:none}
.rush-game .rush-pile .card:last-child{animation:dealer-in 260ms ease-out both}
.rush-game .rush-pile .card:nth-last-child(2),
.rush-game .rush-pile .card:nth-last-child(3){transform:none}
.rush-pile .corner{font-size:clamp(26px,6cqh,44px)}.rush-pile .corner small{font-size:clamp(22px,5cqh,36px)}.rush-pile .pip{font-size:clamp(55px,15cqh,110px)}
.rush-pile.slap-window{filter:drop-shadow(0 0 16px #ffd26744)}
.rush-game .rush-pile.dealer-clear{animation:dealer-out 400ms ease-in both}
.rush-status{text-align:center;color:#ffd267;font-size:18px;font-weight:700;min-height:24px;margin:0;flex-shrink:0}
.rush-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:env(safe-area-inset-bottom);flex-shrink:0}
.rush-footer>span{text-align:right;color:#bdbdc5;font-size:11px;line-height:1.6}
@keyframes dealer-in{from{transform:translateY(-140%) rotate(-7deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}
@keyframes dealer-out{to{transform:translateY(-170%) rotate(8deg);opacity:0}}
@media(max-width:600px){.start .fan{height:130px;margin:12px auto}.start .fan-art{transform:scale(.7);transform-origin:top center}.start h1{margin:12px 0}.start footer{margin-top:14px}.start .mode{padding:12px 16px}.start .mode-label{margin:10px 0}}
@media(max-height:700px){.rush-hud #rush-score{font-size:48px}.rush-time #rush-clock{font-size:26px}.rush-game{gap:6px}.start .mode{padding:10px 14px}.start .modes{gap:7px}}
@media(prefers-reduced-motion:reduce){.rush-game .rush-pile .card:last-child,.rush-game .rush-pile.dealer-clear{animation:none}}
/* Rush results: one clear save action and a quieter replay/share hierarchy. */
.rush-result{display:flex!important;flex-direction:column;gap:16px;width:100%;max-width:420px;margin:auto;text-align:center;overflow-y:auto;max-height:100%;padding:4px 4px 12px}
.rush-result .victory-card{padding:22px 20px;flex-shrink:0}.rush-result .victory-stat strong{font-size:52px;line-height:1.1}.rush-result .victory-card h2{font-size:32px;margin:10px 0}
.rush-result .victory-card>small{font-size:11px;color:#aeb0b8}.rush-result #rush-save{margin:0;text-align:left;flex-shrink:0}.rush-result #rush-save label{margin:0 0 8px;font-weight:600}
.rush-result #rush-save .primary{background:#ffd267;color:#29251c;border:0;width:100%;margin-top:12px}.rush-result #rush-again{background:transparent;border:1px solid #64646e;color:#f4f3e9;width:100%;margin:0;flex-shrink:0}
.rush-result-links{display:flex;justify-content:center;gap:6px;flex-shrink:0}.rush-result p[role=status]:empty{display:none}.rush-result p[role=status]{margin:6px 0 0;font-size:12px;color:#ffd267}.rush-result #rush-share-status{margin:0}
.board-tabs button{min-width:0;flex:1}.board-row .edit-rush-name{grid-column:3/-1;justify-self:start;padding:2px 0;font-size:12px;color:#ffd267}
#edit-score-form input{width:100%;padding:12px;border:1px solid #64646e;background:#202124;color:#f4f3e9;border-radius:10px;font:inherit;margin:8px 0}#edit-score-form .primary{width:100%}
@media(max-height:750px){.rush-result{gap:10px}.rush-result .victory-card{padding:12px}.rush-result .victory-card .rat-avatar{width:36px;height:36px;font-size:25px}.rush-result .victory-card h2{font-size:26px;margin:7px 0}.rush-result .victory-stat strong{font-size:38px}.rush-result .victory-card .eyebrow{margin-bottom:6px}}

/* Leaderboard: one continuous list, without pagination. */
.leaderboard{display:flex;flex-direction:column;max-height:100%;flex-shrink:1;overflow:hidden}
#board-rows{min-height:0;overflow-y:auto;padding:16px 3px 8px;margin-bottom:16px;overscroll-behavior:contain}
.leaderboard>.primary,.board-tabs{flex-shrink:0}
.signin{width:100%;max-width:390px;margin:auto;text-align:center;padding:12px 0;max-height:100%;overflow-y:auto}
.signin-slap{position:relative;padding:10px 0 18px}.signin-slap>button{display:block;margin:auto;border:0;background:#ffd26720;border-radius:32px;font-size:76px;width:132px;height:132px;cursor:pointer;touch-action:manipulation;transform:rotate(-9deg)}
.tap-hint{display:block;color:#bdbdc5;font-size:12px;margin-top:16px}.signin .eyebrow{font-size:10px;margin:14px 0}.signin h1{font-size:clamp(30px,7vw,42px);letter-spacing:-2px;margin:8px 0;line-height:1.1}.signin-intro{color:#bdbdc5;font-size:15px;margin:12px 0 28px}
.signin-methods{display:grid;gap:10px}.signin-methods button,.signin form button{min-height:52px;border:1px solid #65656d;border-radius:14px;font-family:inherit;font-size:15px;font-weight:600;padding:14px;background:transparent;color:inherit}.signin-methods button.primary,.signin form .primary{background:#ffd267;color:#29251c;border-color:#ffd267}.signin-methods button span{margin-right:10px;font-weight:800}.signin form{text-align:left;display:grid;gap:12px}.signin label{font-size:14px}.signin input{width:100%;padding:16px;border-radius:12px;border:1px solid #65656d;background:#202124;color:#fff;font:inherit}.signin #signin-status{font-size:12px;color:#bdbdc5;line-height:1.5;margin:18px 0 4px}.signin .text-button{min-height:44px;font-size:14px}.welcome-hit{animation:welcome-hit .45s ease-out}@keyframes welcome-hit{0%{transform:rotate(-22deg) scale(1.15)}35%{transform:rotate(12deg) scale(.85)}100%{transform:rotate(-9deg) scale(1)}}@media(prefers-reduced-motion:reduce){.welcome-hit{animation:none}}@media(max-height:650px){.signin-slap>button{font-size:48px;width:86px;height:86px}.signin-slap{padding:0}.signin-intro{margin-bottom:16px}.signin .eyebrow{margin:10px 0}}

.signin h1{margin-bottom:24px}

.signin-methods.clerk-account{display:block}.clerk-account .cl-rootBox,.clerk-account .cl-cardBox{width:100%;max-width:100%}

header .profile-link{margin-left:auto;margin-right:10px;font-size:13px}.profile-rat{text-align:center;margin:18px}.profile-rat .rat-avatar{width:64px;height:64px;font-size:42px}#profile-form{display:grid;gap:12px}#profile-form input{width:100%;font:inherit;color:inherit;background:#202124;border:1px solid #64646e;padding:14px;border-radius:12px}.profile-note{font-size:13px!important;margin:0!important}#profile-form .primary{min-height:48px;padding:12px}#profile-status{margin:0}input[readonly]{opacity:.8}

body.ice-boost{background:radial-gradient(ellipse at 50% 40%,#236b91,#0b2443 75%)}.ice-boost .rush-table{background:#99eaff15;border-color:#a1e7ff;box-shadow:inset 0 0 40px #9ae9ff30,0 0 20px #8ce8ff25}.ice-boost .rush-hud strong,.ice-boost .rush-status,.ice-boost #rush-clock,.ice-boost .dealer-label{color:#bcf4ff}.ice-boost .rush-pile.slap-window{filter:drop-shadow(0 0 18px #a6efff)}

body.rush-correct{background:radial-gradient(ellipse at 50% 40%,#267047,#123126 75%)}body.rush-wrong{background:radial-gradient(ellipse at 50% 40%,#8a353b,#391c26 75%)}

.duel-score{text-align:center}.rush-hud .duel-score strong{font-size:clamp(30px,6dvh,48px);color:#c7c7cf}.duel-score>span:last-child{font-size:11px}

/* First taps are neutral: success feedback only follows a valid slap. */
.pile-target.armed{background:transparent;box-shadow:none}
.rush-status{color:#c7c7cf}body.rush-correct .rush-status{color:#b5ffd0}body.rush-wrong .rush-status{color:#ffbdc2}
.ice-boost .rush-table:before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#d8f8ff35,transparent 28%,transparent 72%,#d8f8ff25);animation:ice-arrive .6s ease-out}
.ice-boost .dealer-label{font-weight:800;letter-spacing:2px;background:#173e65;border:1px solid #97e4ff;padding:8px 12px;border-radius:20px;left:50%;right:auto;transform:translateX(-50%);white-space:nowrap}
.boost-reward{position:absolute;z-index:8;pointer-events:none;top:40%;left:0;right:0;text-align:center;font-size:clamp(26px,6vw,42px);font-weight:800;color:#e6fcff;text-shadow:0 2px 16px #137fa9;animation:boost-reward 1s ease-out both}
@keyframes ice-arrive{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes boost-reward{0%{opacity:0;transform:translateY(12px) scale(.8)}20%{opacity:1;transform:translateY(0) scale(1)}75%{opacity:1}100%{opacity:0;transform:translateY(-35px)}}
@media(prefers-reduced-motion:reduce){.boost-reward,.ice-boost .rush-table:before{animation:none}}

.lobby-rules{margin:12px 0;color:#bdbdc5;font-size:13px}.lobby-rules summary{cursor:pointer}.waiting-note:empty,#name-status:empty,.lobby-seat small:empty{display:none}

/* Computer uses the same roomy dealer table as solo Rush. */
.computer-game .rush-hud .computer-score{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:0 7px}
.computer-game .computer-score:last-child{text-align:right}
.computer-game .computer-score strong{font-size:clamp(44px,9dvh,68px);line-height:1;color:#ffd267;letter-spacing:-3px}
.computer-game .computer-score small{grid-column:1/-1;color:#bdbdc5;font-size:12px;margin-top:8px}
.computer-game .computer-status{min-height:36px;font-size:13px}
.computer-game .rush-footer{align-items:center;gap:12px}
.computer-game .rush-footer>span{text-align:center;font-size:11px}


.computer-game .rush-pile .card{animation:none;transform:none}
.computer-game .rush-pile.new-deal .card:last-child{animation:computer-dealer-top 480ms cubic-bezier(.2,.7,.3,1) both}
.computer-game .rush-pile.new-deal.deal-from-bottom .card:last-child{animation-name:computer-player-bottom}
@keyframes computer-player-bottom{from{transform:translateY(160%);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes computer-dealer-top{from{transform:translateY(-160%);opacity:0}to{transform:translateY(0);opacity:1}}
.computer-slap-result{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:24px;pointer-events:none;border-radius:inherit}
.computer-slap-result.you-won{background:#123b2de8;color:#a5f1bc}
.computer-slap-result.cpu-won{background:#302342eb;color:#e0c4ff}
.computer-slap-result>span{font-size:52px}
.computer-slap-result strong{font-size:clamp(22px,4vw,32px);line-height:1.15}
.computer-slap-result small{font-size:16px}
@media(prefers-reduced-motion:reduce){.computer-game .rush-pile.new-deal .card:last-child{animation:none}}

.pile-target{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}

.boost-countdown[hidden]{display:none}
.boost-countdown{--remaining:1;position:relative;display:grid;place-items:center;width:100px;height:100px;margin-left:auto;border-radius:50%;background:conic-gradient(#d9fbff calc(var(--remaining)*1turn),#91dfff20 0);box-shadow:0 0 24px #79dfff50}
.boost-countdown:before{content:'';position:absolute;inset:5px;background:#123251;border-radius:50%;border:1px solid #a2efff66}
.boost-tick{position:relative;display:flex;flex-direction:column;align-items:center;animation:ice-count-tick .4s ease-out}
.boost-tick strong{font-size:48px;line-height:1;color:#e3fbff;font-variant-numeric:tabular-nums;letter-spacing:-2px}
.rush-hud .boost-tick small{font-size:9px;letter-spacing:1px;color:#b5ecff;margin-top:5px}
.ice-boost .rush-time #rush-clock{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.ice-boost .rush-time>.eyebrow{color:#b5ecff;margin-bottom:6px}
.boost-countdown.final-seconds{box-shadow:0 0 35px #b9f8ff99}
.final-seconds .boost-tick{animation:ice-final-tick .5s ease-out}
@keyframes ice-count-tick{from{transform:scale(1.18);opacity:.5}to{transform:scale(1);opacity:1}}
@keyframes ice-final-tick{from{transform:scale(1.4);filter:brightness(1.6)}to{transform:scale(1);filter:brightness(1)}}
@media(max-height:700px){.boost-countdown{width:78px;height:78px}.boost-tick strong{font-size:36px}}
@media(prefers-reduced-motion:reduce){.boost-tick,.final-seconds .boost-tick{animation:none}}

.lobby-roster{display:flex;flex-direction:column;gap:8px;margin:16px 0}
.lobby-roster .lobby-seat{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;text-align:left;padding:10px 14px;min-height:0;border:1px solid #ffffff20;border-radius:14px;background:#ffffff04}
.lobby-seat>span{grid-row:1}.lobby-seat .rat-avatar{width:36px;height:36px}.lobby-seat strong{font-size:15px}.lobby-seat small{font-size:11px;color:#bdbdc5}
.lobby-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0;text-align:right}
.lobby-options small{font-size:12px;color:#bdbdc5}.lobby-options button{flex-shrink:0}

.collection-flight{position:fixed;z-index:90;width:56px;height:78px;pointer-events:none;animation:collect-to-player .75s cubic-bezier(.3,.1,.65,1) both}
.collection-flight i{position:absolute;inset:0;border-radius:7px;background:#ffd267;border:2px solid #fff2c9;box-shadow:0 4px 15px #0005;display:grid;place-items:center;font-style:normal;font-size:26px}
.collection-flight i:first-child{transform:rotate(-12deg) translateX(-7px)}.collection-flight i:nth-child(2){transform:rotate(9deg) translateX(5px)}
.collection-winner{outline:2px solid #ffd267;border-radius:12px;background:#ffd26720!important;box-shadow:0 0 24px #ffd26740}
.collection-toast{position:fixed;z-index:91;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translateX(-50%);max-width:calc(100vw - 32px);width:max-content;padding:12px 20px;border-radius:16px;background:#ffd267;color:#242424;font-weight:800;text-align:center;pointer-events:none;box-shadow:0 6px 24px #0005}
@keyframes collect-to-player{0%{transform:translate(0,0) scale(1);opacity:1}85%{opacity:1}100%{transform:translate(var(--collect-x),var(--collect-y)) scale(.3);opacity:0}}
@media(prefers-reduced-motion:reduce){.collection-flight{display:none}}

.ingame-auto{display:flex;align-items:center;gap:8px;position:relative;cursor:pointer;font-size:12px;color:#d8d8df;min-height:44px}
.ingame-auto input{position:absolute;opacity:0;width:1px;height:1px}
.ingame-auto input:checked+.switch-track{background:#ffd267}
.ingame-auto input:checked+.switch-track:after{transform:translateX(14px);background:#29251c}
.ingame-auto input:focus-visible+.switch-track{outline:2px solid #fff;outline-offset:4px}

/* Shared player panels keep card ownership clear in both table modes. */
.game .player-panel,.computer-game .player-panel{border:1px solid #45464c;border-radius:14px;background:#292a2e;padding:12px;gap:12px;margin:0;flex-shrink:0}
.player-panel .player-info{min-width:0;flex:1}.player-panel .count{display:flex;align-items:baseline;gap:5px;white-space:nowrap;font-size:34px}.player-panel .count small{font:12px 'DM Sans',sans-serif;color:#c4c4cb}.player-panel .player-info small{font-size:12px;color:#bdbdc6}.player-panel .turn-label{color:#ffd267!important;font-size:11px!important}
.game .player-panel.active-turn,.computer-game .player-panel.active-turn{border-color:#ffd267;background:#343127}
.computer-avatar{width:42px;height:42px;display:grid;place-items:center;font-size:28px;border-radius:50%;background:#3c424e;flex-shrink:0}
.opponents{gap:8px}.opponent{border-radius:14px;padding:10px 4px;background:#292a2e;min-width:0}.opponent .rat-avatar{width:32px;height:32px;font-size:23px}.opponent-count{white-space:nowrap}.opponent-count strong{font-size:28px}.opponent-count span{font-size:11px;color:#c4c4cb}.opponent small{font-size:11px}.opponent.active-turn small{color:#bdbdc6}.opponent.active-turn .turn-label{color:#ffd267}
@media(max-height:700px){.game .player-panel,.computer-game .player-panel{padding:8px 10px}.opponent{padding:6px 3px}.player-panel .count{font-size:28px}.opponent-count strong{font-size:24px}}

.legal-links{font-size:14px;text-align:center;margin:16px 0}.legal-links a{color:var(--muted,#bdbdc5);text-underline-offset:4px}
