:root{color-scheme:light;--bg:#f6f3ed;--card:#ffffffed;--ink:#14253e;--muted:#5b6980;--line:#d9dfe7;--blue:#008bff;--shadow:0 10px 35px #20324c16}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#dff3ff,transparent 60%),var(--bg);color:var(--ink);font:16px/1.45 system-ui,sans-serif;min-height:100dvh}body.dark{color-scheme:dark;--bg:#0e1725;--card:#1c2a3ced;--ink:#f5f8ff;--muted:#abbcd1;--line:#394a60;--shadow:0 10px 35px #0004}header{max-width:1300px;margin:auto;padding:18px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{font-size:clamp(24px,4vw,40px);font-weight:950;text-decoration:none;color:var(--blue);letter-spacing:-1.5px}.brand em{color:#ffad12;font-style:normal}nav,.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}button,input,select{font:inherit}button,.link{border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--ink);padding:12px 18px;min-height:46px;cursor:pointer;box-shadow:var(--shadow);text-decoration:none}button:hover{border-color:var(--blue)}button:disabled{opacity:.45;cursor:default}.primary{background:var(--blue);color:white;border-color:var(--blue);font-weight:750}.danger{color:#e23f55}main{max-width:1280px;margin:auto;padding:12px 24px 40px}.hero{text-align:center;max-width:680px;margin:2vh auto}.logo{width:160px;height:160px;object-fit:contain;border-radius:28px}.hero h1{font-size:clamp(32px,6vw,60px);line-height:1.08;margin:20px 0}.muted{color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:var(--shadow);margin-bottom:16px}.home-actions{display:grid;gap:12px;max-width:440px;margin:28px auto}.players{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:16px 0}.player{border:2px solid var(--line);border-top:6px solid var(--player,var(--line));border-radius:20px;background:var(--card);padding:14px;overflow-wrap:anywhere}.player.turn{box-shadow:0 0 0 3px var(--player);transform:translateY(-3px)}.player strong{display:block}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#27b870;margin-right:6px}.dot.off{background:#ffab23}.lobby{max-width:800px;margin:auto}.code{font-size:36px;letter-spacing:7px;font-weight:900}.qr svg{width:140px;height:140px;background:white;padding:8px;border-radius:12px}.invitation{display:flex;justify-content:space-between;align-items:center;gap:20px}.colors{display:flex;gap:8px;flex-wrap:wrap}.color{border:3px solid transparent;color:white}.color.selected{outline:3px solid var(--ink)}label{display:block;margin:16px 0 6px}input[type=text]{width:100%;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink)}input[type=checkbox]{width:20px;height:20px;vertical-align:middle;margin-right:10px}.play-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(230px,1fr);gap:24px;align-items:start}.board{width:100%;display:block;filter:drop-shadow(0 12px 12px #0002)}.pawn{transition:transform .3s ease}.pawn.playable{cursor:pointer}.pawn.playable .halo{stroke:white;stroke-width:5;stroke-dasharray:5 3}.halo{fill:none;stroke:transparent}.controls{position:sticky;top:16px}.dice{display:block;font-size:64px;line-height:1.2;margin:15px auto}.roll{width:100%;font-size:22px}.moves{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.moves button{flex:1}.status{font-size:22px;font-weight:800}.waiting{background:#ffa81c20;border:1px solid #e9a530;padding:14px;border-radius:16px;margin-bottom:14px}#notice{max-width:1000px;margin:0 auto;padding:0 24px;color:#db4356}#notice:not(:empty){padding:12px 24px}dialog{width:min(94vw,540px);max-height:90dvh;overflow:auto;border:1px solid var(--line);border-radius:24px;background:var(--card);color:var(--ink);padding:24px;box-shadow:var(--shadow)}dialog::backdrop{background:#0009;backdrop-filter:blur(5px)}.close{float:right;font-size:22px;padding:4px 14px}h2{margin-top:8px}small{display:block;color:var(--muted)}.history{max-width:680px;margin:auto}.history button{margin:4px}.busy{opacity:.7}button:focus-visible,a:focus-visible{outline:3px solid #ffb826;outline-offset:3px}@media(max-width:800px){.play-layout{grid-template-columns:1fr}.controls{position:static}.players{gap:7px;grid-template-columns:repeat(2,1fr)}.player{padding:10px}main{padding:8px 12px 24px}header{padding:12px}.card{padding:16px}.invitation{gap:10px}.code{font-size:28px}.qr svg{width:110px;height:110px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

body.dark{background:radial-gradient(ellipse at top,#193750,transparent 65%),var(--bg)}

/* Reference composition: a complete board between four persistent colour seats. */
body{background:radial-gradient(ellipse at 50% 25%,#fff 0,transparent 75%),#eeeae4}
header{max-width:1100px;height:110px;padding:8px 20px;position:relative;justify-content:center}.brand{display:flex;flex-direction:column;align-items:center;width:min(58vw,550px);border-radius:45px;background:linear-gradient(135deg,#fff,#f0f1f3);box-shadow:inset 0 2px 1px white,0 5px 3px #bdb8ae55,0 12px 24px #43362322;padding:2px 16px 8px;letter-spacing:0}.brand>svg{width:100%;height:75px;display:block}.subtitle{font-size:15px;color:#14253e;font-weight:800;line-height:1}.brand .dice-art{width:auto;height:auto}header nav{position:absolute;right:12px;gap:6px}header nav button{padding:8px;min-width:40px;min-height:40px}#help{display:none}
.game-screen{--board-size:min(64vw,calc(100dvh - 325px),720px);display:grid;grid-template-columns:clamp(92px,12vw,140px) var(--board-size) clamp(92px,12vw,140px);gap:12px;justify-content:center;align-items:start;padding:10px 12px 22px;max-width:1100px}.game-screen .room-top{position:absolute;top:30px;left:max(14px,calc((100vw - 1060px)/2));z-index:1}.room-top button:first-child{display:none}.room-top button{font-size:13px;padding:10px}.game-screen>.players,.game-screen .play-layout{display:contents}.game-screen .board{grid-column:2;grid-row:1;width:100%;height:auto;filter:drop-shadow(0 12px 9px #3b2b1a35)}
.game-screen .player{position:relative;text-align:center;border:2px solid #fff;border-radius:25px;background:linear-gradient(140deg,#fff,#f2f2f3);box-shadow:inset 0 2px 3px #fff,0 8px 17px #30292122;color:#14253e;padding:12px 7px;margin:22px 0 12px;min-width:0;transform:none;font-size:11px;line-height:1.25}.game-screen .player:nth-child(1){grid-column:1;grid-row:1;align-self:start}.game-screen .player:nth-child(2){grid-column:3;grid-row:1;align-self:start}.game-screen .player:nth-child(3){grid-column:1;grid-row:1;align-self:end}.game-screen .player:nth-child(4){grid-column:3;grid-row:1;align-self:end}.game-screen .player.turn{border-color:var(--player);box-shadow:0 0 0 2px white,0 10px 18px #30292130}.player>svg:not(.host-crown){width:70%;max-width:92px;display:block;margin:auto;border-radius:50%;border:3px solid white}.game-screen .player strong{font-size:clamp(12px,1.4vw,19px);margin:7px 0;line-height:1.15}.host-crown{position:absolute;width:35px;height:35px;top:-26px;left:calc(50% - 17px);fill:#ffc400;stroke:#fff;stroke-width:1.2;filter:drop-shadow(0 2px 2px #96720c50)}.player-tag{display:inline-block;background:var(--player);color:white;border-radius:12px;padding:2px 10px;margin-bottom:4px;font-size:11px;font-weight:700}.player small{color:#5b6980;font-size:10px}.player-pawns{display:flex;justify-content:center;margin-top:10px;min-height:26px}.player-pawns svg{width:24%;height:32px}.player.empty{opacity:.7}.game-screen .controls{grid-column:1/-1;grid-row:2;position:static;display:grid;grid-template-columns:1.35fr 160px 1fr;align-items:center;gap:22px;background:none;border:0;box-shadow:none;padding:0;margin:0}.turn-card{background:linear-gradient(135deg,#fff,#eff2f5);color:#13243b;border:2px solid white;border-radius:28px;padding:20px 16px;box-shadow:0 8px 16px #30292120;display:grid;grid-template-columns:65px 1fr;column-gap:12px}.turn-card>.status-die{grid-row:1/3;width:65px;height:75px;align-self:center}.turn-card .status{font-size:clamp(16px,1.7vw,23px);line-height:1.2}.turn-card p{font-size:14px;color:#50647f;margin:8px 0 0;line-height:1.35}.dice-button{position:relative;display:flex;flex-direction:column;align-items:center;border:0;background:none;box-shadow:none;padding:0;min-height:0;color:var(--ink);font-weight:900;gap:9px}.dice-button:before{content:'';position:absolute;top:0;width:138px;height:138px;border-radius:50%;background:radial-gradient(circle at 30% 20%,#8be8ff,#00a5ff 40%,#0064ed 75%,#003fa3);border:3px solid white;box-shadow:0 0 0 5px #00aaff30,0 8px 12px #0065ab50,inset 0 -5px 5px #003f9a,0 0 24px #22baff55}.dice-button .dice-art{position:relative;width:140px;height:140px;filter:drop-shadow(0 6px 3px #00234f70);transition:transform .15s}.dice-button:hover:not(:disabled) .dice-art{transform:rotate(-8deg) translateY(-3px)}.dice-button:disabled{opacity:1;cursor:default}.dice-button:disabled:before{box-shadow:0 0 0 4px #00aaff18,0 5px 10px #0065ab25;filter:saturate(.65)}.dice-button:disabled>span{opacity:.55}.game-tools{display:flex;gap:10px;justify-content:end}.game-tools button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-width:0;flex:1;min-height:115px;padding:12px 8px;border:2px solid white;border-radius:27px;background:linear-gradient(135deg,#fff,#f0f1f3);color:#354456;font-size:14px;font-weight:700;box-shadow:0 8px 16px #30292120}.game-tools svg{width:32px;height:32px}.controls>.waiting,.controls>h2,.controls>p{grid-column:1/-1;margin:0}.pawn{transition:transform .28s ease}.pawn .legal-halo{opacity:0}.pawn.playable{cursor:pointer}.pawn.playable .legal-halo{opacity:1}.pawn:focus-visible{outline:none}.pawn:focus-visible .legal-halo{opacity:1;stroke:#fff;stroke-width:5}.rolling .dice-art{animation:shake .3s infinite alternate}@keyframes shake{to{transform:rotate(18deg)}}
body.dark .game-screen .player,body.dark .turn-card,body.dark .game-tools button{background:linear-gradient(140deg,#314459,#1c293b);color:#f5f8ff;border-color:#52657a}body.dark .turn-card p,body.dark .player small{color:#c7d3e3}body.dark .player.turn{border-color:var(--player);box-shadow:0 0 0 1px var(--player),0 10px 20px #0004}
@media(max-width:700px){header{height:88px;padding:6px 54px 6px 8px;justify-content:start}.brand{width:100%;max-width:360px;padding:0 8px 7px}.brand>svg{height:54px}.subtitle{font-size:10px}header nav{right:6px;flex-direction:column;gap:3px}header nav button{font-size:11px;min-height:30px;min-width:34px;padding:3px}.game-screen{--board-size:min(calc(100vw - 16px),calc(100dvh - 285px));grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;max-width:520px;padding:4px 8px 12px}.game-screen .room-top{position:static;grid-column:1/-1;grid-row:4;text-align:center}.room-top button{padding:5px 14px;min-height:32px}.game-screen .board{grid-column:1/-1;grid-row:2;width:var(--board-size);justify-self:center}.game-screen .player:nth-child(n){grid-column:auto;grid-row:1;align-self:stretch;margin:5px 0 0;padding:5px 3px;border-radius:15px}.player>svg:not(.host-crown){width:36px;height:36px;border-width:2px}.game-screen .player strong{font-size:11px;margin:4px 0}.player-tag{font-size:8px;padding:1px 7px;margin:0}.player small{font-size:8px}.player-pawns{display:none}.host-crown{width:22px;height:22px;top:-13px;left:calc(50% - 11px)}.game-screen .controls{grid-column:1/-1;grid-row:3;grid-template-columns:1fr 95px 1fr;gap:7px}.turn-card{padding:10px 8px;display:block;border-radius:17px}.turn-card>.status-die{display:none}.turn-card .status{font-size:12px}.turn-card p{font-size:10px;margin-top:5px}.dice-button:before{width:84px;height:84px;border-width:2px}.dice-button .dice-art{width:88px;height:88px}.dice-button{font-size:11px;gap:4px}.game-tools{gap:5px}.game-tools button{min-height:78px;padding:8px 3px;font-size:9px;gap:9px;border-radius:17px}.game-tools svg{width:23px;height:23px}}
@media(min-width:701px) and (max-height:650px){header{height:75px}.brand>svg{height:47px}.subtitle{font-size:11px}.game-screen{--board-size:min(54vw,calc(100dvh - 190px));gap:8px}.game-screen .controls{grid-template-columns:1fr 100px 1fr;gap:12px}.dice-button:before{width:86px;height:86px}.dice-button .dice-art{width:90px;height:90px}.dice-button{font-size:12px}.turn-card{padding:10px;grid-template-columns:45px 1fr}.turn-card>.status-die{width:45px;height:55px}.turn-card .status{font-size:15px}.turn-card p{font-size:11px}.game-tools button{min-height:80px}.game-screen .player{padding:5px;margin:12px 0 0}.player>svg:not(.host-crown){width:45px}.player-pawns{margin-top:3px}.player-pawns svg{height:20px}}

@media(min-width:701px){.game-screen .player{padding:8px 6px;margin:18px 0 8px}.player>svg:not(.host-crown){max-width:64px}.game-screen .player strong{font-size:15px}.player-pawns{margin-top:6px}.player-pawns svg{height:26px}}
.board{overflow:visible}.legal-halo{fill:#fff8;stroke:#ffdf46;stroke-width:3;stroke-dasharray:5 3}
@media(min-width:701px){.game-screen{padding-bottom:10px}}
@media(min-width:701px) and (max-height:500px){.game-screen .player{margin:4px 0;padding:5px}.player>svg:not(.host-crown){width:28px;height:28px}.game-screen .player strong{font-size:11px;margin:3px 0}.player-pawns{display:none}.player-tag,.player small{font-size:8px}.host-crown{width:20px;height:20px;top:-13px;left:calc(50% - 10px)}}
/* Premium material pass and a true six-face perspective die. */
.die-scene{--die:76px;position:relative;width:140px;height:140px;perspective:600px;isolation:isolate}.die-lift{position:absolute;left:50%;top:46%;width:var(--die);height:var(--die);margin:calc(var(--die)*-.5);transform-style:preserve-3d}.die-tilt,.die-cube{width:100%;height:100%;transform-style:preserve-3d}.die-tilt{transform:rotateX(-24deg) rotateY(-28deg)}.die-face{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:7%;padding:17%;border-radius:16%;background:linear-gradient(140deg,#fff 3%,#fafcff 45%,#d6dfef);border:1px solid #f5faff;box-shadow:inset 3px 3px 6px #fff,inset -3px -4px 8px #96abc355;backface-visibility:hidden}.die-face.front{transform:translateZ(calc(var(--die)/2))}.die-face.back{transform:rotateY(180deg) translateZ(calc(var(--die)/2))}.die-face.right{transform:rotateY(90deg) translateZ(calc(var(--die)/2));background:linear-gradient(130deg,#ecf2fc,#b4c4d9)}.die-face.left{transform:rotateY(-90deg) translateZ(calc(var(--die)/2))}.die-face.top{transform:rotateX(90deg) translateZ(calc(var(--die)/2));background:#fff}.die-face.bottom{transform:rotateX(-90deg) translateZ(calc(var(--die)/2))}.pip{border-radius:50%;background:radial-gradient(circle at 65% 80%,#506075,#152033 60%,#020812);box-shadow:inset 1px 2px 2px #0009,0 1px 1px #fff}.die-shadow{position:absolute;left:25%;bottom:14%;width:56%;height:18%;border-radius:50%;background:#00296877;filter:blur(5px)}.dice-button .die-scene{z-index:1;pointer-events:none}.dice-button:before{background:radial-gradient(ellipse at 30% 14%,#bef7ff,#20c6ff 24%,#008bff 57%,#0054df 78%,#b5ecff 91%,#0079e9 94%);box-shadow:0 0 0 4px #39d4ff30,0 9px 12px #0054aa50,inset 0 -5px 4px #003f9a,0 0 26px #40caff33}.game-screen .player{box-shadow:inset 0 2px 2px #fff,0 2px 2px #aeb6bf55,0 12px 20px #3b332422}.game-screen .player.turn{box-shadow:0 0 0 2px #fff,0 0 18px color-mix(in srgb,var(--player) 20%,transparent),0 12px 22px #342a2525}.game-tools button,.turn-card{box-shadow:inset 0 2px 2px #fff,0 2px 2px #aeb6bf55,0 12px 20px #3b332422}button{transition:box-shadow .18s,translate .18s}button:active:not(:disabled){translate:0 2px}.board .pawn{transition:none}.player.turn{transition:border-color .3s,box-shadow .3s}.game-screen .controls{min-height:170px}.controls>.waiting{display:none}.turn-card{min-height:118px}.dice-button .die-scene:after{content:'';position:absolute;inset:-6px;border-radius:50%;opacity:0;box-shadow:0 0 20px 8px #a5eeff}.die-scene.landed:after{animation:die-flash .4s ease-out}@keyframes die-flash{0%{opacity:.7;scale:.8}100%{opacity:0;scale:1.1}}
@media(max-width:700px){.die-scene{--die:48px;width:88px;height:88px}.game-screen .controls{min-height:105px}.turn-card{min-height:100px}}
@media(min-width:701px) and (max-height:650px){.die-scene{--die:48px;width:90px;height:90px}.game-screen .controls{min-height:110px}.turn-card{min-height:90px}}
@media(prefers-reduced-motion:reduce){.die-scene.landed:after{animation:none}}
/* Animation is presentation-only: no client rolls or optimistic pawn positions. */
.pawn.playable .legal-halo{animation:legal-pulse 1.6s ease-in-out infinite}.pawn.arrived .pawn-model{animation:goal-glow .65s ease-out}.entry-flash{animation:goal-glow .65s ease-out}.controls.won{animation:victory-glow 1.2s ease-out}.game-screen .player.turn .player-tag{animation:turn-in .45s ease-out}.die-scene.unrolled .die-face .pip{visibility:hidden}.die-scene.unrolled .die-face.front:after{content:'✦';position:absolute;inset:0;display:grid;place-items:center;color:#258ad5;font-size:calc(var(--die)*.5)}
@keyframes legal-pulse{0%,100%{stroke-opacity:.6;fill-opacity:.2}50%{stroke-opacity:1;fill-opacity:.55}}
@keyframes goal-glow{0%,100%{filter:brightness(1)}45%{filter:brightness(1.55) drop-shadow(0 0 5px #ffe47d)}}
@keyframes victory-glow{40%{filter:drop-shadow(0 0 12px #ffd65c)}}
@keyframes turn-in{from{opacity:.4;translate:0 3px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.pawn.playable .legal-halo,.pawn.arrived .pawn-model,.entry-flash,.controls.won,.game-screen .player.turn .player-tag{animation:none}}
.roll-result{grid-column:1/-1;margin-top:8px;padding:5px 9px;border-radius:10px;background:#008bff16;color:inherit;font-weight:750;font-size:13px;border:1px solid #008bff30}.player-photo{display:block;width:70%;max-width:64px;aspect-ratio:1;object-fit:cover;border-radius:50%;border:3px solid white;margin:auto}@media(max-width:700px){.player-photo{width:36px;height:36px;border-width:2px}.roll-result{font-size:10px;padding:4px;margin-top:5px}}@media(min-width:701px) and (max-height:650px){.player-photo{width:45px}}@media(min-width:701px) and (max-height:500px){.player-photo{width:28px;height:28px}}

/* Shared games catalog; the card table has isolated component styles. */
.game-catalog{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:20px auto}.card-toolbar{display:flex;gap:10px;justify-content:center;margin:12px}.card-status{text-align:center}.card-mode #app{max-width:1550px;width:100%;margin:auto}.card-mode .brand strong{font-size:clamp(26px,4vw,52px);color:#1bbcff;text-shadow:1px 2px white,2px 4px #124c85,3px 6px #071e36}.card-mode .brand{display:flex;flex-direction:column;align-items:center}.card-mode .subtitle{font-size:13px}.lobby select{padding:10px;margin:10px;border-radius:10px;font:inherit}

.card-title{display:flex;gap:3px;font-family:'Arial Rounded MT Bold',ui-rounded,system-ui,sans-serif;font-weight:1000;letter-spacing:-2px}.card-title>*{-webkit-text-stroke:1px #12324d;paint-order:stroke fill;font-style:normal;text-shadow:0 -1px white,0 3px #086fbc,0 6px #062c50}.card-title span{color:#37baff;transform:rotate(-7deg)}.card-title em{color:#ffb51f;transform:translateY(-3px);font-size:.85em;text-shadow:0 -1px white,0 3px #b56800,0 6px #062c50}.card-title b{color:#ff3159;transform:rotate(7deg);text-shadow:0 -1px white,0 3px #a00c39,0 6px #062c50}

/* Compact per-game entry: keep the four start actions within easy reach. */
.game-home #app{max-width:680px;padding:0 14px 20px}.game-home header{padding:8px 12px;gap:8px}.game-home .brand{max-width:440px;padding:8px 16px}.game-home .title-art{max-height:66px}.game-home .subtitle{font-size:12px}.game-home header nav{gap:4px}.game-home header nav button{padding:8px}.game-launch{max-width:420px;margin:0 auto}.launch-art{height:190px;position:relative;overflow:hidden;border-radius:24px;background:radial-gradient(ellipse at 50% 40%,#fff1d9bb,transparent 70%),linear-gradient(145deg,#bce8f244,#b7804244);margin:8px 0 14px}.launch-logo{display:block;width:90px;height:90px;object-fit:contain;margin:0 auto}.launch-pieces{height:105px;display:flex;justify-content:center;align-items:end;gap:4px;filter:drop-shadow(0 7px 5px #0004)}.launch-pieces svg{height:94px;width:74px}.launch-pieces svg:nth-child(2){height:108px}.launch-card{width:63px;height:90px;border:5px solid white;border-radius:10px;background:linear-gradient(155deg,var(--card-color) 34%,white 35%,white 68%,var(--card-color) 69%);color:var(--card-color);font-size:38px;font-weight:900;text-align:center;line-height:78px;transform:rotate(-12deg);box-shadow:0 5px 9px #0004}.launch-card:nth-child(2){transform:translateY(-7px)}.launch-card:nth-child(3){transform:rotate(12deg)}.launch-actions{display:grid;gap:9px}.launch-action{display:flex;align-items:center;gap:15px;text-align:left;width:100%;min-height:66px;border-radius:20px;padding:10px 18px;box-shadow:0 5px 14px #0001;background:var(--card);color:var(--ink)}.launch-action strong{display:block;font-size:17px}.launch-action small{font-size:13px}.launch-action.primary{background:linear-gradient(#35b7ff,#007aff);color:white;border-color:#56c8ff}.launch-action.primary small{color:#fff}.launch-symbol{font-size:28px;width:32px;text-align:center}.game-home .card-title{gap:7px}.game-home .card-title>*{text-shadow:0 2px #173856;letter-spacing:-1px}.game-home.card-mode .brand strong{font-size:32px}
@media(max-height:650px){.launch-art{height:125px}.launch-logo{width:58px;height:58px}.launch-pieces{height:65px}.launch-pieces svg,.launch-pieces svg:nth-child(2){height:64px}.launch-card{height:60px;width:43px;line-height:49px;font-size:27px}.launch-action{min-height:57px;padding:8px 15px}.game-home .title-art{max-height:48px}}

body.card-playing header{padding:5px 12px;gap:8px}body.card-playing .brand{padding:4px 15px;max-width:360px}body.card-playing .brand strong{font-size:30px}body.card-playing .subtitle{font-size:10px}body.card-playing .card-toolbar{margin:5px;gap:8px}body.card-playing .card-toolbar button{padding:7px 12px;font-size:12px}body.card-playing #app{padding-top:0}

/* Shared enamel banner with card fans or dice, scaled as one vector. */
body .brand .title-art{display:block;width:100%;height:auto;max-height:100px;overflow:visible}body .brand{background:linear-gradient(155deg,#fff,#f0f1f2);border:1px solid #fff;border-radius:48px;box-shadow:inset 0 2px 3px #fff,0 5px 0 #a6adb566,0 10px 18px #0002;padding:5px 14px 10px;color:#10243d}body .brand .subtitle{color:#10243d;font-weight:800;margin-top:-2px}body.card-playing .brand .title-art{max-height:58px}body.game-home .brand .title-art{max-height:76px}@media(max-width:650px){body .brand{border-radius:26px;padding:4px 7px 8px}body .brand .subtitle{font-size:10px}body .brand .title-art{max-height:76px}}

.lobby-ready{position:sticky;top:0;z-index:10;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:10px;margin-bottom:14px;display:flex;flex-wrap:wrap;gap:8px;box-shadow:0 5px 15px #0002}.lobby-ready .ready-hint{flex-basis:100%;margin:0;font-weight:700;font-size:14px}.lobby-ready button{flex:1 1 auto}
