@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Inter:wght@400;500;600&display=swap');
:root{color-scheme:dark;--cream:#f0e7c6;--gold:#e8bd57;--green:#a4f96b;--pink:#ff899e;font-family:'Cormorant Garamond',Georgia,serif;color:var(--cream);background:#201b1a}*{box-sizing:border-box}body{margin:0;min-height:100svh;background:radial-gradient(ellipse at 30% 0%,#67534366,transparent 65%),#201b1a}button,a,select,input{-webkit-tap-highlight-color:transparent}button,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid #f8de89;outline-offset:4px}button{border:0}a{color:inherit;text-decoration:none}header{height:90px;max-width:1300px;margin:auto;padding:20px 36px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:12px;font-size:21px;letter-spacing:2px}.brand b{font-weight:500}.brand small{display:block;font:9px Inter,sans-serif;letter-spacing:4px;margin-top:5px}.brand-mark{font-size:40px;color:var(--gold)}.header-right{display:flex;gap:24px;align-items:center}.edition,.eyebrow{font:11px Inter,sans-serif;letter-spacing:3px;color:#cfad73}.text-button,.help,.table-help{background:transparent}.text-button{padding:12px;font:12px Inter,sans-serif}.help,.table-help{border:1px solid #b7995a77;border-radius:50%;width:32px;height:32px}.gold-button{background:linear-gradient(110deg,#e9d49a,#cba154);color:#33291f;padding:16px 28px;min-height:48px;letter-spacing:2px;text-transform:uppercase;font-weight:700;box-shadow:0 4px 20px #0003}.gold-button span{margin-left:30px}footer{max-width:1300px;margin:30px auto 0;padding:22px 36px;display:flex;justify-content:space-between;border-top:1px solid #b7995a22;color:#a99c86;font:10px Inter,sans-serif}footer i{padding:0 12px}.lobby{position:relative;max-width:1000px;min-height:650px;margin:35px auto;padding:30px 50px;overflow:hidden}.lobby h1{font-size:90px;line-height:.9;font-weight:400;margin:22px 0}.lobby h1 em{color:var(--gold);font-weight:500}.intro{font-size:21px;line-height:1.5;color:#cbbda6}.settings{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:550px;margin:24px 0}.settings label{display:block;font:11px Inter,sans-serif;margin-bottom:8px;color:#c9b99b}.settings select{width:100%;padding:12px;background:#342d27;border:1px solid #766246}.check{grid-column:1/-1;display:flex!important;align-items:center;gap:8px}.lobby-bottom{display:flex;gap:20px;margin-top:30px;font-size:14px;color:#bfb096}.lobby-decoration{position:absolute;right:0;top:90px;z-index:-1;transform:rotate(12deg);opacity:.65}.lobby-decoration .gem-icon{width:380px}.token-art,.portrait,.card-back{background-image:url('./assets/game-atlas.png');background-repeat:no-repeat}.gem-icon{display:inline-block;width:100px;aspect-ratio:1;background-image:url('./assets/gems-reference.png');background-repeat:no-repeat;background-size:200% 200%;vertical-align:middle;filter:drop-shadow(0 0 10px var(--gem-glow,#5ca9bb66))}.art-0{background-position:0% 0%}.art-1{background-position:100% 0%}.art-2{background-position:0% 100%}.art-3{background-position:100% 100%;filter:brightness(1.18) drop-shadow(0 0 12px #c9edff88)}.small{width:23px}.at-table header,.at-table footer{display:none}.game-stage{width:min(100vw,calc((100svh - 38px)*1.43));margin:auto}.game-top{height:38px;display:flex;align-items:center;gap:16px;padding:0 3%;background:linear-gradient(90deg,#55483c55,transparent)}.back-arrow{background:none;transform:rotate(180deg);color:#e7d494;font-size:29px;padding:0}.round{font-size:24px}.round b{font-weight:500}.table-help{margin-left:auto;width:26px;height:26px}.board{position:relative;width:100%;aspect-ratio:1500/1049;container-type:inline-size;isolation:isolate;background:url('./assets/board-reference.png') center/100% 100%;overflow:hidden}.player{position:absolute;display:flex;align-items:center;gap:.5cqw;width:23%;height:13%;z-index:6;font-size:1.6cqw;transition:filter .3s}.player:before{content:'';position:absolute;inset:-15% -10%;z-index:-1;background:radial-gradient(ellipse,#55ccff77,transparent 65%);opacity:0;transition:opacity .3s}.player.active:before{opacity:1}.seat-0{left:7%;top:81%}.seat-1{left:1.5%;top:17%}.seat-2{left:63%;top:4%}.seat-3{right:1.5%;top:65%;flex-direction:row-reverse}.avatar{position:relative;width:5.8cqw;height:8.7cqw;flex-shrink:0;background-size:500% 222.61%;background-position-y:85.106%}.portrait-0{background-position-x:0}.portrait-1{background-position-x:25%}.portrait-2{background-position-x:50%}.portrait-3{background-position-x:75%}.leader-crown{position:absolute;top:-1.6cqw;left:40%;color:#ffda63;text-shadow:0 0 12px #ffcc44;font-size:2.4cqw}.player-data{min-width:0;white-space:nowrap}.player-name{color:var(--gold);font-size:1.9cqw;text-shadow:1px 2px #251d15}.collection{display:flex;align-items:center;gap:.05cqw;background:#1b171999;border:1px solid #c7b58b88;border-radius:30px;padding:.12cqw .4cqw;min-height:1.9cqw;width:max-content}.collection>span{display:flex}.collection .small{width:1.6cqw}.empty-gem{width:.65cqw;height:.65cqw;background:#a6957866;border-radius:50%;margin:0 .45cqw}.score{font-size:2.15cqw;line-height:1.1;text-shadow:1px 2px #291e16}.score span{font-size:1.7cqw}.score strong,.score em{color:#f1bf46;font-style:normal;font-weight:600}.ready-marker,.thinking-marker{position:absolute;left:0;top:-15%;background:#1b1913;border:1px solid #9a805a;border-radius:50%;padding:.3cqw .5cqw;opacity:0}.ready-marker{color:#99d35d;font-size:2cqw}.ready-marker.is-ready,.thinking-marker.visible{opacity:1}.thinking-marker{color:#f7e6ac;letter-spacing:.2cqw}.player-challenge{position:absolute;left:100%;top:5%;width:6cqw;padding:0;background:none;font-size:1.4cqw;line-height:1;white-space:nowrap;text-align:center;transform:rotate(9deg)}.player-challenge>span:last-child{position:absolute;top:85%;left:50%;transform:translateX(-50%) rotate(-9deg)}.seat-3 .player-challenge{left:-23%}.card-back{display:block;width:5cqw;height:7.2cqw;background-size:500% 232.73%;background-position:100% 87.329%}.complete .card-back:after{content:'✓';display:grid;place-items:center;color:#9ce45d;font-size:3cqw;height:100%;text-shadow:0 0 9px #82ff2c}.edge-hand,.hand{display:flex;position:absolute;align-items:center;justify-content:space-between}.edge-1{left:8%;top:32%;height:43%;flex-direction:column}.edge-2{left:30%;top:8%;width:32%}.edge-3{right:8%;top:23%;height:44%;flex-direction:column}.hand-area{position:absolute;inset:0;pointer-events:none;z-index:8}.hand{left:31%;top:83%;width:49%;pointer-events:auto}.token-wrap{position:relative;display:block;width:4.8cqw;height:5.1cqw;--outline:var(--green)}.hand .token-wrap{width:6.7cqw;height:7.4cqw}.number{position:relative;display:block;width:100%;height:100%;padding:0;background:none;transition:transform .25s,filter .25s}.token-art{position:absolute;inset:0;background-size:500% 301.176%;background-position:100% 13.158%;filter:drop-shadow(0 2px 2px #000)}.number-face{position:absolute;inset:0;display:grid;place-items:center;font-size:2.5cqw;line-height:1;padding:0;color:#e2d395;font-style:normal;font-family:Georgia,serif;font-weight:400;transform:translateY(5%);text-shadow:1px 2px 3px #000}.hand .number-face{font-size:3.5cqw}.used .number{filter:brightness(.4) saturate(.3)}.selected{z-index:20}.selected .number{transform:scale(1.35);filter:drop-shadow(0 0 2px var(--outline)) drop-shadow(0 0 5px var(--outline))}.clashed{--outline:var(--pink)}.token-order{display:flex;align-items:center;position:absolute;bottom:130%;left:50%;transform:translateX(-50%) scale(.95);width:max-content;opacity:0;pointer-events:none;background:#171710e8;border:1px solid var(--outline);border-radius:30px;box-shadow:0 0 .7cqw var(--outline);font-size:1.8cqw;padding:0 .8cqw 0 0;transition:opacity .25s}.token-order b{font-weight:500;font-size:2.7cqw;border-right:1px solid #a79471;border-radius:50%;padding:0 .7cqw;margin-right:.5cqw}.token-order.visible{opacity:1}.edge-2 .token-order{bottom:auto;top:145%}.hand-note{display:none}.table-center{position:absolute;left:28%;right:26%;top:29%;bottom:25%;z-index:3}.gemstones{position:absolute;inset:0;opacity:0}.gemstones.field-visible{opacity:1}.gem-card{position:absolute;width:35%;height:45%;padding:0;background:none;color:#f6eac5;transition:opacity .12s}.gem-slot-0{left:10%;top:1%}.gem-slot-1{left:57%;top:7%}.gem-slot-2{left:6%;top:55%}.gem-slot-3{left:59%;top:57%}.gem-card .gem-icon{width:82%;transform:scale(var(--gem-scale));animation:gem-idle 3.5s ease-in-out infinite}.gem-value{position:absolute;top:78%;left:0;width:100%;font-size:3cqw;line-height:1;text-shadow:1px 2px 3px #000;color:#edbd51}.gem-value small{font-size:1.8cqw;color:#eee4c2}.gem-card:enabled:hover .gem-icon{filter:brightness(1.25) drop-shadow(0 0 18px var(--gem-glow))}.gem-card.taken{opacity:0;pointer-events:none}.gem-card.materialising{animation:materialise .48s both;animation-delay:var(--spawn-delay)}.gem-selected .gem-icon{filter:brightness(1.5) drop-shadow(0 0 20px var(--gem-glow))}.picking-ring{position:absolute;inset:-19% -17%;border-radius:50%;box-shadow:inset 0 0 2.5cqw #e8b64b44,0 0 2cqw #d59f4222;border:1.2cqw solid #d7a44418;opacity:0;transition:opacity .35s;pointer-events:none}.picking-ring.visible{opacity:1}.state-banner{position:absolute;left:14%;right:12%;top:19%;text-align:center;z-index:12;opacity:0;pointer-events:none}.state-banner.visible{opacity:1}.state-banner h1{font-size:2.6cqw;margin:0;font-weight:600;line-height:1.05;text-shadow:0 2px 3px #23160e,0 0 10px #a07744}.status-sub{font-size:1.5cqw;margin:.6cqw 0}.countdown-track{height:2px;width:34%;margin:.7cqw auto;background:#241b19aa}.countdown-track i{height:100%;display:block;background:#d9a943;transition:width 1s linear}.central-announcement{position:absolute;inset:30% 15%;display:flex;justify-content:center;align-items:center;flex-direction:column;opacity:0;pointer-events:none;z-index:20;text-shadow:0 0 15px #dfb15688,0 3px 5px #21160e}.central-announcement.visible{opacity:1;animation:fade-in .4s}.central-announcement strong{font-size:6cqw;font-weight:500}.end-flourish{font-size:3cqw;color:#c7a459}.game-ending:after{content:'';position:absolute;inset:0;background:#100c0c55;z-index:15}.board[data-phase=results-transition]{animation:fade-out .45s both}.fx-layer,.clash-layer{position:absolute;inset:0;pointer-events:none;z-index:30}.flying-gem{position:absolute;width:var(--flight-size,7cqw);left:var(--from-x);top:var(--from-y);transform:translate(-50%,-50%);animation:gem-flight var(--flight-duration) ease-in both}.flying-gem .gem-icon{width:100%;filter:drop-shadow(0 0 15px var(--gem-glow));animation:flight-bloom .6s both}.gem-impact{position:absolute;width:12cqw;height:12cqw;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff 0%,var(--gem-glow) 12%,transparent 65%);animation:impact .35s both}.gem-impact i{position:absolute;left:50%;top:50%;width:3px;height:3px;background:white;box-shadow:0 0 8px var(--gem-glow);transform:rotate(var(--angle)) translateY(4cqw)}.clash-layer svg{width:100%;height:100%;stroke:#ffc0d0;stroke-width:.2;fill:none;filter:drop-shadow(0 0 4px #ff3767);animation:lightning .42s both}.clash-layer>span{position:absolute;left:45%;top:40%;width:10%;height:15%;background:radial-gradient(ellipse,#fff1db,#ff638d77 20%,transparent 70%);animation:impact .42s both}.board-overlay:empty{display:none}.board-overlay{position:absolute;inset:0;background:#100d0dcc;z-index:40;display:grid;place-items:center}.challenge-enter{animation:fade-in .4s}.challenge-exit{animation:fade-out .4s both}.challenge-screen{width:77%;text-align:center}.challenge-screen>h1{font-size:2.6cqw;margin:0 0 1cqw}.challenge-instruction,.challenge-waiting{font-size:1.6cqw}.challenge-options{display:flex;gap:2cqw;justify-content:center}.challenge-card{position:relative;width:28%;padding:1cqw 1.2cqw 1.5cqw;border:3px double #b4a376;background:radial-gradient(ellipse at 50% 25%,#72979b66,transparent 70%),#394649;color:#f2e7c2;box-shadow:0 0 0 4px #b7a88533,inset 0 0 25px #0c151655;transition:filter .3s,transform .3s,box-shadow .3s;min-height:28cqw}.challenge-card.purple{background:radial-gradient(ellipse at 50% 20%,#b88ac266,transparent 70%),#695071}.challenge-card.gold{background:radial-gradient(ellipse at 50% 20%,#f5d07c77,transparent 70%),#9b7039}.challenge-card.selected{filter:brightness(1.3);box-shadow:0 0 25px #f4d77888;transform:scale(1.025)}.challenge-card.dimmed{filter:brightness(.45) saturate(.5)}.challenge-card h2{font-size:2cqw;line-height:1;text-transform:uppercase;margin:1cqw 0}.challenge-card p{font-size:1.5cqw;min-height:4.5cqw;line-height:1.15}.challenge-card strong{font-size:1.35cqw;color:#f5d78c;font-weight:500}.ornament{position:absolute;top:.4cqw;left:.5cqw;color:#d7c29b}.card-pick{display:block;margin-top:1cqw;letter-spacing:2px;font-size:1cqw}.challenge-illustration{height:12cqw;display:flex;flex-wrap:wrap;justify-content:center;align-content:center;position:relative}.challenge-illustration .gem-icon{width:7cqw;max-height:8cqw}.challenge-illustration b{position:absolute;top:35%;font-size:4cqw;color:#ffe19a;text-shadow:1px 2px #493123}.clash-symbol{font-size:11cqw;color:#fa8c70;line-height:1}.clash-symbol small{font-size:4cqw}.pass-screen{text-align:center;padding:30px}.pass-screen h1{font-size:40px}.pass-screen p{font-size:21px}.large-symbol{font-size:60px;color:var(--gold)}dialog{color:var(--cream);background:#342c27;border:1px solid #b19a69;max-width:700px;width:90%;max-height:90svh;padding:32px;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#0d0b0cbd}dialog h1{font-size:40px;margin:10px 0}dialog h2{font-size:26px}dialog p{font-size:19px;line-height:1.5}.close{position:absolute;right:10px;top:5px;font-size:28px;background:none}.challenge-detail{width:330px;container-type:inline-size;padding:28px}.challenge-detail .challenge-card{width:100%;min-height:330px;padding:20px}.challenge-detail .challenge-illustration{height:130px}.challenge-detail .gem-icon{width:85px;max-height:100px}.challenge-detail h2{font-size:26px}.challenge-detail p{font-size:18px}.challenge-detail strong{font-size:17px}.results{max-width:1100px;margin:20px auto;padding:40px;text-align:center;background:linear-gradient(#201b1999,#201b19cc),url('./assets/board-reference.png') center/cover}.results h1{font-size:54px;font-weight:500;margin:15px}.results>p{font-size:20px}.result-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:35px 0}.result-card{padding:22px 15px;border:1px solid #a4916355;background:#2a252377}.result-card.local-result{background:#537d8844;border-color:#a9cbd1}.rank{color:var(--gold);font-size:35px}.result-card h2{font-size:25px}.result-score{font-size:45px;color:var(--gold)}.result-score small{font-size:17px}.result-card .collection{margin:15px auto;min-height:28px;gap:1px}.result-card .small{width:20px}.result-card dl{font-size:16px}.result-card dl>div{display:flex;justify-content:space-between;margin:7px 0}.result-card dd{margin:0}.history{text-align:left;margin-top:30px;color:#bdaf97}.history summary{cursor:pointer}.history p{font-size:16px;border-top:1px solid #88765644;padding:12px 0}
@keyframes fade-in{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes fade-out{to{opacity:0}}@keyframes materialise{0%{opacity:0;filter:brightness(3) drop-shadow(0 0 25px var(--gem-glow));transform:scale(.65)}40%{opacity:1;filter:brightness(2) drop-shadow(0 0 20px var(--gem-glow))}100%{filter:brightness(1);transform:scale(1)}}@keyframes gem-idle{50%{filter:brightness(1.12) drop-shadow(0 0 12px var(--gem-glow))}}@keyframes gem-flight{0%{left:var(--from-x);top:var(--from-y);transform:translate(-50%,-50%) scale(1.1)}100%{left:var(--to-x);top:var(--to-y);transform:translate(-50%,-50%) scale(.6)}}@keyframes flight-bloom{to{filter:brightness(1.8) drop-shadow(0 0 25px var(--gem-glow))}}@keyframes impact{0%{opacity:0;scale:.5}30%{opacity:1;scale:1.2}100%{opacity:0;scale:1.6}}@keyframes lightning{0%,100%{opacity:0}20%,60%{opacity:1}40%{opacity:.4}}
@media(max-width:650px){header{padding:18px;height:75px}.header-right{gap:8px}.brand{font-size:15px}.brand small{font-size:7px}.edition{display:none}.lobby{padding:20px 25px;margin:10px auto;min-height:610px}.lobby h1{font-size:70px}.lobby-decoration{right:-160px;opacity:.35}.settings{grid-template-columns:1fr}.lobby-bottom{flex-wrap:wrap;gap:10px}footer{padding:20px;line-height:1.5}footer>span:last-child{display:none}.game-stage{margin-top:max(0px,calc((100svh - 100vw / 1.43 - 38px)/2))}.result-grid{grid-template-columns:1fr 1fr}.results{padding:20px}.result-card{padding:12px 8px}.challenge-detail{width:300px}.pass-screen h1{font-size:26px}.pass-screen p{font-size:16px}.pass-screen .large-symbol{display:none}.pass-screen .gold-button{padding:10px 16px}.table-help{width:25px;height:25px}.state-banner h1{font-size:2.8cqw}.challenge-card p{font-size:1.8cqw}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important}.clash-layer,.gem-impact{display:none}.flying-gem{left:var(--to-x);top:var(--to-y)}}

.token-order:not(.visible){visibility:hidden}.game-stage{min-height:0}
.state-banner{top:23%}.seat-0 .player-challenge{left:350%;top:0}.edge-2 .token-order{top:125%}
@media(max-width:600px) and (orientation:portrait){
 .at-table:after{content:'For a larger table, turn your device sideways.';display:block;text-align:center;color:#baa98c;font:12px Inter,sans-serif;padding:18px}
 .board:has(.challenge-overlay),.board:has(.handoff-overlay){overflow:visible}
 .challenge-overlay,.handoff-overlay{position:fixed;inset:0;z-index:100;background:#171311ed}
 .challenge-screen{width:90%;max-width:380px}.challenge-screen>h1{font-size:23px}.challenge-instruction,.challenge-waiting{font-size:14px}
 .challenge-options{flex-direction:column;gap:12px}.challenge-card{width:100%;min-height:145px;padding:14px 12px 12px 120px;text-align:left}
 .challenge-card .challenge-illustration{position:absolute;left:8px;top:15px;width:100px;height:105px}.challenge-illustration .gem-icon{width:48px;max-height:65px}.challenge-illustration b{font-size:30px}.clash-symbol{font-size:80px}.clash-symbol small{font-size:28px}
 .challenge-card h2{font-size:22px;margin:0 0 5px}.challenge-card p{font-size:15px;min-height:0;margin:5px 0}.challenge-card strong{font-size:14px}.card-pick{font-size:10px;margin-top:7px}
}

/* Lining figures share a baseline; old-style 4 and 6 have different descenders. */
.round,.central-announcement{font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1}
.round b{font:inherit;vertical-align:baseline}

/* Use lining serif digits and explicit content boxes for consistent optical alignment. */
.number-face{inset:24% 20% 20%;padding:0;transform:none;font-family:"Times New Roman",Times,serif;font-size:2.2cqw;font-style:normal;font-weight:400;font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1;line-height:1;display:flex;align-items:center;justify-content:center}
.hand .number-face{font-size:3cqw}
.token-order{height:3.6cqw;line-height:1;gap:.5cqw;padding:0 .85cqw 0 0;align-items:center}
.token-order b{flex:0 0 3.4cqw;width:3.4cqw;height:3.4cqw;display:flex;align-items:center;justify-content:center;margin:0;padding:0;font-family:"Times New Roman",Times,serif;font-size:2.35cqw;font-weight:400;line-height:1;font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1}
.token-order>span{display:flex;align-items:center;height:100%;line-height:1}
.player .collection>span{flex:0 0 1.6cqw;width:1.6cqw;height:1.8cqw;margin:0;align-items:center;justify-content:center}
.player .collection>.empty-gem{background:radial-gradient(circle,#a6957866 0 .32cqw,transparent .35cqw);border-radius:0}

/* SVG coordinates align the ink bounds, independently of font ascent/descent. */
.number-face.fitted-digit{inset:auto;left:25%;top:30%;width:50%;height:46%;padding:0;transform:none;overflow:visible;display:block}
.fitted-digit text{font-family:Georgia,serif;font-size:100px;font-weight:400;font-style:normal;fill:#e2d395;stroke:none}
.token-order b .fitted-digit{display:block;width:78%;height:78%;overflow:visible}
.token-order .fitted-digit text{fill:var(--cream)}

.fitted-digit text{font-variant:normal;font-feature-settings:normal;letter-spacing:0;text-anchor:start;dominant-baseline:alphabetic}

.sound-controls{display:flex;align-items:center;gap:6px}.volume-control{display:flex;align-items:center}.volume-control[hidden]{display:none}.sound-volume{width:76px;height:22px;accent-color:#d7b970;cursor:pointer}.game-top .sound-controls{margin-left:auto}.game-top .text-button{padding:6px 8px;font-size:12px;white-space:nowrap}.game-top .table-help{margin-left:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.gem-card:enabled:focus-visible{outline:2px solid #ead997;outline-offset:6px;border-radius:30%}.gem-card:enabled{cursor:pointer}
@media(max-width:500px){.sound-volume{width:54px}.header-right{gap:4px}.header-right .sound-controls{gap:0}.header-right .text-button{font-size:10px;padding:5px}.game-top{gap:8px}.game-top .round{font-size:21px}}

/* Online controls sit outside the fixed game table. */
.online-entry{max-width:550px;margin:30px 0;padding-top:15px;border-top:1px solid #b7995a55}
.online-entry h2{font-size:28px;margin:0 0 12px}.online-entry label{display:block;margin-bottom:8px;font:12px Inter,sans-serif}
.online-entry input{background:#342d27;border:1px solid #766246;color:var(--cream);padding:12px;font:14px Inter,sans-serif;min-width:0;max-width:100%}
.online-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;align-items:center}.online-actions input{width:125px;text-transform:uppercase}
.network-status{font:12px Inter,sans-serif;color:var(--gold);line-height:1.5}.table-network-status{position:fixed;bottom:0;left:0;right:0;margin:0;padding:8px;text-align:center;background:#201b1a;z-index:110}
.network-status[hidden]{display:none}.online-lobby h1{font-size:64px}.room-members{padding-left:22px;font-size:22px;line-height:1.8}.gold-button:disabled{opacity:.5}
.online-entry [hidden]{display:none}

.bot-consent{max-width:550px;margin:20px 0;padding:16px;border:1px solid #b7995a55;background:#342d2744;font:14px/1.5 Inter,sans-serif}.bot-consent p{margin-top:0}.bot-consent .check{font:inherit}.bot-consent ul{padding-left:20px;margin-bottom:0}.online-rematch .bot-consent{margin:20px auto;text-align:left}

/* Compact lobby layout, independent of the game board. */
.lobby{width:calc(100% - 32px);max-width:480px;min-height:0;margin:16px auto 32px;padding:0;overflow:visible;font:15px/1.5 system-ui,sans-serif}
.lobby-brand{display:flex;align-items:center;gap:16px;margin:0 0 16px}.lobby-brand img{width:72px;height:72px;object-fit:contain;flex:none}.lobby .lobby-brand h1{font:500 32px/1.15 system-ui,sans-serif;margin:0;letter-spacing:-1px}
.lobby .intro,.lobby-hint{font:14px/1.5 system-ui,sans-serif;color:#cbbda6;margin:12px 0 20px}.lobby .settings{max-width:none;grid-template-columns:1fr;gap:4px;margin:16px 0}.lobby .settings label{font:14px/1.4 system-ui,sans-serif;margin:0;min-height:44px}.lobby .settings select{font:16px system-ui,sans-serif;margin:8px 0 12px;min-height:44px;border-radius:6px}.lobby .check{min-height:44px;gap:12px}.lobby input[type=checkbox]{width:20px;height:20px;flex:none;accent-color:#d8bc7c}
.lobby .gold-button{width:100%;font:600 15px/1.4 system-ui,sans-serif;letter-spacing:0;text-transform:none;background:#dfc48a;box-shadow:none;border-radius:7px;padding:12px 16px;min-height:48px}.lobby>.text-button{display:block;margin:8px auto;min-height:44px;font-size:14px}
.lobby .room-members{list-style:none;padding:0;margin:16px 0;border-top:1px solid #ffffff20;font:14px/1.4 system-ui,sans-serif}.room-members li{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 0;border-bottom:1px solid #ffffff20}.seat-number{color:#9f9485;width:20px;flex:none}.member-name{min-width:0;overflow-wrap:anywhere;flex:1}.member-status{font-size:12px;color:#b6aa94;flex:none}
.lobby .bot-consent{max-width:none;padding:12px;margin:16px 0;border:1px solid #ffffff20;border-radius:7px;background:none;font:14px/1.5 system-ui,sans-serif}.lobby .bot-consent p{margin:0 0 4px}.lobby .bot-consent ul{list-style:none;padding:0;margin:8px 0 0;font-size:12px;color:#b6aa94;overflow-wrap:anywhere}.lobby .network-status{font:13px/1.5 system-ui,sans-serif;overflow-wrap:anywhere;margin:12px 0}.lobby .online-entry{margin-top:24px}.lobby .online-actions{display:grid;grid-template-columns:1fr;gap:10px}.lobby input:not([type=checkbox]){width:100%;min-width:0;font-size:16px;min-height:44px}.lobby .room-code{font-size:16px}
body:has(.lobby) header{max-width:512px;height:64px;padding:12px 16px}body:has(.lobby) header .brand,body:has(.lobby) header .edition{display:none}body:has(.lobby) .header-right{margin-left:auto}body:has(.lobby) footer{max-width:512px;margin:0 auto;padding:16px;font-size:10px}body:has(.lobby){padding-bottom:env(safe-area-inset-bottom)}
@media(max-width:360px){.lobby{width:calc(100% - 24px)}.lobby .lobby-brand h1{font-size:28px}.lobby-brand{gap:12px}}
