@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--bg:#091719;--panel:#102528;--line:#b7985750;--gold:#d2b473;--cream:#f1e7cf;--muted:#9aaead;--coral:#d4917b;--green:#8abeb0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--cream);font-family:'DM Sans',sans-serif;font-size:14px}body:before{content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 72% 40%,#24433b50,transparent 60%);z-index:-1}button,a,input,select{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button{transition:background .2s,transform .2s}button:hover:not(:disabled){filter:brightness(1.16)}[hidden]{display:none!important}.topbar{max-width:1500px;margin:auto;padding:27px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #a9996630}.brand{display:flex;gap:12px;align-items:center;color:var(--cream);text-decoration:none;letter-spacing:2.6px;font-size:17px}.brand b{font-weight:400;color:var(--gold)}.brand small{display:block;font-size:8px;letter-spacing:3px;margin-top:5px}.brand-symbol{font-size:41px;font-family:serif;color:var(--gold)}nav{display:flex;align-items:center;gap:24px}.text-btn{border:0;background:none;padding:9px 0;color:var(--muted);font-size:12px}.text-btn span{margin-left:15px;color:var(--gold)}.icon-btn{background:none;border:1px solid var(--line);height:36px;width:36px;border-radius:50%;color:var(--gold)}main{max-width:1440px;margin:auto}#lobby{min-height:calc(100vh - 106px);display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:55px 5% 0;position:relative}.eyebrow{font-size:10px;letter-spacing:2.8px;color:var(--gold);font-weight:500}.eyebrow span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-right:10px}.hero-copy{padding-bottom:45px;z-index:1}.hero-copy h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(48px,5.6vw,81px);line-height:1.12;letter-spacing:-2px;font-weight:400;margin:28px 0 26px}.hero-copy em{color:var(--gold);font-weight:400}.hero-copy p{font-size:15px;color:#a8b7b4;line-height:1.8}.hero-meta{display:flex;gap:16px;align-items:center;font-size:11px;color:#aebeb9;margin:27px 0}.hero-meta i{font-size:8px;color:var(--gold);font-style:normal}.primary{background:var(--gold);border:1px solid var(--gold);padding:17px 25px;color:#162626;font-weight:700;font-size:13px;letter-spacing:.3px;border-radius:2px}.primary span{margin-left:32px;font-size:18px}.secondary{background:transparent;border:1px solid var(--line);padding:15px 22px;border-radius:2px;color:var(--cream);font-size:13px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.fine{font-size:10px;line-height:1.6;color:#829693;margin-top:24px}.hero-art{position:relative;height:560px;width:100%;max-width:630px}.show-card{width:290px;height:399px;border:1px solid var(--gold);padding:8px;background:#11272a;position:absolute;border-radius:13px;box-shadow:0 20px 50px #0008}.show-card .art{height:302px;border-radius:7px 7px 0 0}.art{background-image:url('assets/cards.webp');background-size:400% 400%;background-position:var(--x) var(--y);background-repeat:no-repeat;background-color:#213735}.front{left:31%;top:65px;transform:rotate(10deg)}.rear{left:0;top:36px;transform:rotate(-13deg);filter:brightness(.72)}.card-seal{position:absolute;top:18px;right:20px;border-radius:50%;width:31px;height:31px;display:grid;place-items:center;background:#15322dd9;color:var(--gold);border:1px solid var(--gold)}.show-label{display:flex;align-items:center;gap:18px;padding:15px 12px;color:var(--gold)}.show-label b{font-family:Georgia,serif;font-size:30px;font-weight:400}.show-label span{font-size:10px;letter-spacing:1.7px}.show-label small{display:block;font-size:7px;letter-spacing:2px;color:#93aaa5;margin-top:7px}.orbit{position:absolute;border:1px solid #bda16625;border-radius:50%;width:520px;height:520px;top:0;left:-5%}.orbit-two{width:600px;height:360px;transform:rotate(-35deg);top:85px;left:-10%}.star{position:absolute;color:var(--gold);font-size:32px}.s1{top:0;right:6%}.s2{bottom:54px;left:14%;font-size:20px}.art-caption{position:absolute;bottom:28px;left:17%;font-size:8px;letter-spacing:2px;color:#7f9692}.art-caption span{margin-right:20px;color:var(--gold)}.lobby-bottom{grid-column:1/-1;align-self:end;display:flex;justify-content:space-between;border-top:1px solid #ac995b30;padding:24px 0;font-size:8px;letter-spacing:2px;color:#829792}.lobby-bottom i{font-style:normal;color:var(--gold);margin:0 15px}dialog{width:min(760px,calc(100vw - 28px));max-height:88vh;background:#102528;border:1px solid #ad955b99;color:var(--cream);padding:36px;border-radius:8px;box-shadow:0 24px 100px #000a}dialog::backdrop{background:#021011d9;backdrop-filter:blur(8px)}.close{position:absolute;right:14px;top:11px;background:none;border:0;font-size:27px;color:var(--muted)}dialog h2{font-family:'Playfair Display',Georgia,serif;font-size:35px;font-weight:400;margin:12px 0 20px}dialog p{line-height:1.75;color:#adc1ba}dialog h3{font-weight:500;color:var(--gold);margin-top:25px}dialog li{line-height:1.7;margin-bottom:8px;color:#adc1ba}dialog a{color:var(--gold)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.form-row label{font-size:11px;color:var(--muted)}input,select{width:100%;background:#092024;border:1px solid var(--line);color:var(--cream);padding:12px;font:14px 'DM Sans',sans-serif;border-radius:3px;margin-top:7px}input{min-width:0}.player-config{display:grid;grid-template-columns:28px 1fr 1fr;gap:10px;align-items:center;margin-bottom:10px}.player-config span{color:var(--gold);font-size:12px}.setup-footer{margin-top:25px;display:flex;justify-content:space-between;align-items:center;gap:15px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.mini-card{border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#0d2022;text-align:left;padding:0;color:var(--cream)}.mini-card .art{height:115px}.mini-card .caption{padding:11px;font-size:11px;min-height:56px}.mini-card strong{color:var(--gold);margin-right:6px}.mini-card small{display:block;color:var(--muted);margin-top:5px;font-size:9px}.rules-box{background:#193331;border-left:2px solid var(--gold);padding:12px 18px;margin:18px 0;color:#c8d1bc;line-height:1.7}.result-row{display:grid;grid-template-columns:1fr 75px 80px;gap:12px;padding:16px 8px;border-bottom:1px solid var(--line);align-items:center}.result-row.out{opacity:.5}.result-row.win{background:#bca36016;color:var(--gold)}.result-row small{display:block;margin-top:5px;font-size:10px;color:var(--muted)}.result-row b{font-family:Georgia,serif;font-size:23px;font-weight:400}.history-list{max-height:50vh;overflow:auto}.history-list p{font-size:12px;border-bottom:1px solid #ffffff0e;padding:10px 0;margin:0}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#573e32;border:1px solid var(--coral);padding:15px 25px;border-radius:5px;z-index:30;max-width:90vw}.large-card{max-width:420px;margin:0 auto}.large-card .art{height:270px;border-radius:5px}.large-card h2{font-size:30px}.credits{font-size:11px}.muted{color:var(--muted)}@media(min-width:1600px){#lobby{padding-top:80px}.hero-art{transform:scale(1.08)}}@media(max-width:1000px){.front{left:20%;width:250px;height:356px}.rear{width:245px;height:355px}.show-card .art{height:265px}.hero-art{height:470px}.orbit{width:410px;height:410px}.orbit-two{width:440px;height:290px}.hero-copy h1{font-size:58px}.hand-row{flex-wrap:wrap}.action-buttons{margin-left:auto}.note{width:46px;height:62px}.hero-meta{gap:10px}.art-caption{left:10%;font-size:7px}}@media(max-width:700px){.topbar{padding:17px 5%}.brand{font-size:12px;letter-spacing:2px}.brand small{font-size:6px}.brand-symbol{font-size:29px}nav{gap:14px}nav .text-btn{font-size:10px}#gallery-btn{display:none}.icon-btn{width:29px;height:29px}#lobby{display:flex;flex-direction:column;padding-top:35px;overflow:hidden}.hero-copy{width:100%;padding-bottom:20px}.hero-copy h1{font-size:54px;margin:22px 0}.hero-copy p{font-size:13px}.hero-meta{font-size:10px;gap:15px}.hero-art{height:400px;max-width:400px;margin:0 auto}.front{left:36%;top:25px;width:225px;height:311px}.rear{left:6%;top:15px;width:218px;height:308px}.show-card .art{height:226px}.show-label{padding:13px 6px;gap:10px}.show-label span{font-size:8px}.show-label small{font-size:6px}.show-label b{font-size:25px}.orbit{width:360px;height:360px;left:5%}.orbit-two{width:390px;height:270px;top:30px;left:0}.s1{top:0;right:0}.art-caption{bottom:10px;left:17%}.lobby-bottom{width:100%;font-size:6px;letter-spacing:1px;margin-top:10px}.eyebrow{font-size:8px;letter-spacing:2px}#play{padding:20px 4%}.game-top h2{font-size:22px}.closing{display:block;font-size:9px}.closing #closing-dots{margin-top:9px;gap:7px}.dot{width:8px;height:8px}.game-top{gap:10px}#table{height:550px}.controls{padding:16px 13px}.wallet-top h3{font-size:20px}.wallet-top strong{font-size:19px}.wallet-top p{font-size:9px}.hand-row{gap:16px}.notes{gap:6px}.note{width:42px;height:60px;font-size:22px}.action-buttons{width:100%;justify-content:flex-end}.action-buttons button{flex:1}.turn-message{display:block;text-align:center}.turn-message h3{font-size:23px}.turn-message button{margin-top:10px}.game-bottom{flex-wrap:wrap}.game-bottom button{margin-right:12px}.gallery{grid-template-columns:repeat(2,1fr)}dialog{padding:29px 20px}dialog h2{font-size:29px}.setup-footer{display:block}.setup-footer button{width:100%;margin-top:12px}.form-row{gap:12px}.player-config{grid-template-columns:20px 1fr 1fr;gap:5px}.player-config input,.player-config select{padding:10px;font-size:12px}.announcement{font-size:11px}.large-card .art{height:230px}.hero-actions .primary{padding:16px 22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Salon UI: one card, one decision area, one public roster. */
:root{color-scheme:dark;--bg:#0c1219;--panel:#15212c;--line:#cdb99136;--gold:#e7c990;--cream:#f4edde;--muted:#a3b1bc;--coral:#eeb09c;--green:#b0ddc3}
body{font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);font-size:16px;-webkit-font-smoothing:antialiased}body:before{background:radial-gradient(ellipse at 30% 40%,#2a415b3b,transparent 55%)}
.icon{width:22px;height:22px;flex-shrink:0;vertical-align:middle}button{transition:background .2s,border-color .2s,transform .2s,box-shadow .2s}button:hover:not(:disabled){filter:none}button:disabled{opacity:.4}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.primary,.secondary{min-height:50px;padding:14px 20px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:14px;font-size:16px;font-weight:600;white-space:nowrap}.primary{background:linear-gradient(135deg,#ecd5a8,#d3b078);color:#20282d;border:1px solid #e7c990;box-shadow:0 4px 18px #0002}.primary:hover:not(:disabled){background:#f1deb8;transform:translateY(-2px);box-shadow:0 8px 25px #c5a26b20}.primary span{margin:0}.secondary{background:#ffffff03;border:1px solid #d1dce32e;color:#d8e0e5;font-weight:400}.secondary:hover{background:#ffffff0a;border-color:#d1dce35c}.text-btn{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.text-btn:hover{color:var(--cream)}.small{font-size:13px;min-height:42px;padding:9px 13px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:500}
.topbar{max-width:1600px;padding:18px 4%;border-color:#e2ceaa16}.brand{font-size:15px;letter-spacing:3px}.brand small{font-size:7px}.brand-symbol{font-size:32px}nav{gap:24px}.icon-btn{height:36px;width:36px;border-color:#d9c19130;display:grid;place-items:center}.icon-btn .icon{width:18px;height:18px}.in-game .brand small{display:none}.in-game .topbar{padding-top:13px;padding-bottom:13px}.in-game main{max-width:1440px}
#play{padding:25px 4% 22px}.game-top{display:flex;gap:22px;align-items:center;margin-bottom:34px}.room-title{margin-right:auto}.room-title .eyebrow{font-size:9px;color:var(--muted)}.game-top h2{font:400 32px/1.2 'Playfair Display',Georgia,serif;margin:7px 0 0;letter-spacing:-.5px}.round-chip{font-size:12px;letter-spacing:1px;color:#ccd6de}.closing{display:flex;gap:13px;align-items:center;border-left:1px solid #ffffff16;padding-left:22px}.closing-label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}.closing-label b{font-size:12px;color:var(--cream);font-weight:400}#closing-dots{display:flex;gap:4px}.signal{color:#67788363;display:grid;place-items:center;height:26px;width:26px}.signal.on{color:var(--gold)}.signal.on .icon{fill:#d7b97818}.closing.imminent .signal.on,.closing.imminent .closing-label b{color:var(--coral)}
.auction-layout{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);align-items:center;gap:65px;min-height:540px}.auction-stage{display:flex;justify-content:center;position:relative;isolation:isolate}.auction-stage:before{content:'';position:absolute;z-index:-1;inset:-30px -40px;background:radial-gradient(ellipse,#b99a4920,transparent 65%);pointer-events:none}.lot-area{width:100%;max-width:440px}.lot-heading{font-size:11px;letter-spacing:2px;text-align:center;color:var(--muted);margin-bottom:18px}.auction-card{position:relative;width:100%;padding:0;border:1px solid #b8a57980;border-radius:17px;background:#1b2934;box-shadow:0 24px 65px #0006;overflow:hidden;text-align:left;display:block}.auction-card:after{content:'';position:absolute;inset:7px;border:1px solid #e9d8b820;border-radius:11px;pointer-events:none}.auction-card:hover{border-color:var(--gold);transform:translateY(-3px)}.card-art{height:auto;aspect-ratio:1.5}.closing-seal{position:absolute;right:18px;top:18px;height:36px;width:36px;border-radius:50%;display:grid;place-items:center;background:#16392ce0;border:1px solid #c0dac58a;color:var(--green)}.closing-seal .icon{height:19px;width:19px}.card-description{padding:25px 27px 29px;background:linear-gradient(125deg,#233441,#15232e)}.card-description h3{font:400 32px/1.2 'Playfair Display',Georgia,serif;margin:0 0 15px;letter-spacing:-.5px;color:var(--cream)}.card-effect{display:flex;align-items:center;gap:8px;font-size:15px;color:#cfdae0;line-height:1.5}.card-effect .icon{color:var(--gold);width:18px;height:18px}.danger-card{border-color:#cf9d8080}.danger-card .card-description{background:linear-gradient(125deg,#3c3034,#281f2b)}.danger-card .card-effect .icon,.is-danger .lot-heading{color:var(--coral)}.card-rule{font-size:13px;text-align:center;color:var(--coral);margin-top:15px}
.decision-panel{min-width:0}#bid-summary{padding-bottom:23px;margin-bottom:24px;border-bottom:1px solid #d3dee424}.bid-summary-label{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:14px;color:var(--muted)}.bid-summary-label>span:last-child{color:var(--gold)}.high-bid{font:500 55px/1.1 'DM Sans',sans-serif;letter-spacing:-2px;margin-top:8px;font-variant-numeric:tabular-nums}.high-bid>span{font-size:23px;letter-spacing:0;color:var(--gold);margin-left:8px}
.controls{min-width:0}.wallet-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.wallet-identity{display:flex;align-items:center;gap:12px}.wallet-identity>.avatar{display:none}.wallet-identity h3,.wallet-top h3{font-size:24px;font-weight:500;margin:0;color:var(--cream);line-height:1.3}.wallet-identity p{font-size:13px;margin:7px 0 0;color:var(--muted)}.wallet-balance{display:flex;align-items:center;gap:9px}.wallet-balance>.icon{height:16px;width:16px;color:var(--muted)}.wallet-balance>div{text-align:right;display:flex;flex-direction:column;gap:3px}.wallet-balance strong{font-size:27px;line-height:1.1;font-weight:500}.wallet-balance strong small{font-size:14px;margin-left:4px;color:var(--gold)}.wallet-balance>div>span{font-size:11px;color:var(--muted)}.committed-total{display:none}.hand-row{display:block}.notes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;padding-top:6px}.note{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;height:88px;border-radius:9px;border:1px solid #88a8bc66;background:linear-gradient(135deg,#314d62,#243b4c);color:#e0edf5;box-shadow:0 4px 0 #02090e5e,inset 0 0 0 4px #afc5d108;font:inherit;padding:8px}.note b{font-size:30px;font-weight:500;line-height:1;letter-spacing:-1px}.note small{font:9px 'DM Sans',sans-serif;color:inherit;margin:0;opacity:.7}.note-mark .icon{height:14px;width:14px;opacity:.5}.note-medium{background:linear-gradient(135deg,#3a584d,#274036);border-color:#9acbb069;color:#e1f0e5}.note-large{background:linear-gradient(135deg,#655339,#40392c);border-color:#d4b37470;color:#f6e5c0}.note:hover{transform:translateY(-4px);border-color:#eed5a6}.note.selected{transform:translateY(-6px);background:linear-gradient(135deg,#f3ddb5,#d4ae72);border-color:#f7e0b9;color:#28271f;box-shadow:0 5px 18px #debb6a25,inset 0 0 0 4px #3c2f160b}.note-check{position:absolute;right:-5px;top:-6px;display:none;place-items:center;width:22px;height:22px;background:#f3deae;border:1px solid #b99757;color:#273322;border-radius:50%}.note-check .icon{width:14px;height:14px}.note.selected .note-check{display:grid}.note.committed{opacity:.45;border-style:dashed;background:#25333d;box-shadow:none}.note.committed b{font-size:27px}.note.committed small{font-size:7px;letter-spacing:.4px}.note.committed:hover{transform:none;border-color:#88a8bc66}
.bid-actions{margin-top:24px}.bid-preview{min-height:20px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:14px;margin-bottom:13px}.bid-preview b{font-weight:500;color:var(--cream);font-size:16px}.action-buttons{display:flex;gap:12px}.action-buttons>.primary{flex:1.7;min-height:57px;font-size:17px}.action-buttons>.secondary{flex:1;min-height:57px;font-size:16px}.action-buttons .danger-pass{color:var(--coral);border-color:#d69a7e60}.hand-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:16px;line-height:1.5}.hand-footer>span:first-child{display:flex;align-items:center;gap:6px}.hand-footer .icon{width:13px;height:13px;color:var(--gold)}.hand-footer .selection-hint{display:none}.hand-footer .text-btn{font-size:11px;color:var(--gold);padding:0}.danger-turn .hand-footer .icon{color:var(--coral)}
.avatar{width:44px;height:44px;display:inline-grid;place-items:center;flex-shrink:0;border:1px solid var(--player,var(--gold));border-radius:50%;background:radial-gradient(circle at 30% 20%,#ffffff0a,transparent);color:var(--player,var(--gold));position:relative}.avatar:after{content:'';position:absolute;inset:4px;border:1px solid currentColor;opacity:.16;border-radius:50%}.avatar .icon{width:25px;height:25px}.roster{margin-top:38px}.roster-header{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:12px}.players{display:flex;gap:10px}.seat{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:12px;background:#17222c;border:1px solid #b7cbd520;border-radius:12px;padding:17px 16px;text-align:left;overflow:hidden}.seat-person{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.seat-name{font-size:15px;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.seat-status{font-size:12px;color:var(--muted);white-space:nowrap}.seat-score{display:flex;align-items:center;gap:5px;color:var(--player)}.seat-score .icon{width:14px;height:14px}.seat-score b{font-size:24px;font-weight:400}.seat.active{border-color:#b9d9bd80;background:linear-gradient(120deg,#26392f,#1a302d)}.seat.active .seat-status{color:var(--green)}.seat.passed{background:#121b24}.seat.passed .seat-status{color:#82909b}.seat:hover{border-color:var(--player);background:#20313a}.seat-indicator{position:absolute;bottom:0;left:25%;right:25%;height:2px}.active .seat-indicator{background:var(--green)}.players:has(.seat:nth-child(5)) .seat{padding:16px 12px;gap:8px}.players:has(.seat:nth-child(5)) .avatar{height:35px;width:35px}.players:has(.seat:nth-child(5)) .seat-name{font-size:13px}.players:has(.seat:nth-child(5)) .seat-status{font-size:10px}.players:has(.seat:nth-child(5)) .seat-score b{font-size:21px}
.game-bottom{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:15px}.announcement{font-size:12px;line-height:1.5;color:var(--muted);min-width:0}.game-bottom .text-btn{flex-shrink:0;font-size:12px}.game-bottom .icon{width:15px;height:15px}.turn-message{min-height:275px;display:flex;align-content:center;align-items:center;flex-wrap:wrap;gap:18px}.turn-message>div{flex:1;min-width:65%}.turn-message h3{font:400 29px/1.3 'Playfair Display',Georgia,serif;margin:10px 0}.turn-message p{font-size:14px;color:var(--muted);line-height:1.6;margin:0}.turn-message>.primary{width:100%;margin-top:10px}.turn-message .eyebrow{font-size:10px}.state-emblem{height:48px;width:48px;border:1px solid #e1bf865c;border-radius:50%;display:grid;place-items:center;color:var(--gold)}.thinking{display:inline-flex;gap:4px;margin-left:6px}.thinking i{width:4px;height:4px;background:var(--gold);border-radius:50%;animation:think 1.2s infinite}.thinking i:nth-child(2){animation-delay:.2s}.thinking i:nth-child(3){animation-delay:.4s}@keyframes think{50%{opacity:.2;transform:translateY(-3px)}}.discard-choices{display:flex;gap:14px;flex-wrap:wrap;margin-top:25px}.discard-choices .mini-card{width:calc(50% - 7px)}.discard-choices .caption{display:block;font-size:14px}
/* Award is an explicit, persisted step; one button continues the game. */
.award-screen{max-width:1080px;min-height:620px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px;padding:35px 10px 65px}.award-art{position:relative;isolation:isolate;padding:15px}.award-halo{position:absolute;inset:-65px;background:radial-gradient(ellipse,#dfb15b20,transparent 65%);z-index:-1}.award-frame{border:1px solid #e2c07b9c;padding:9px;background:linear-gradient(135deg,#776044,#302b24 18%,#867044 50%,#272825 75%,#ad8c51);box-shadow:0 25px 60px #0007,0 0 60px #d5ae5010;transform:rotate(-3deg);border-radius:5px;animation:award-arrive .7s cubic-bezier(.2,.7,.2,1) both}.award-frame>.art{aspect-ratio:1.5;height:auto;border:1px solid #eed7a832}.award-card-label{display:flex;align-items:center;gap:16px;background:#142029;padding:22px;color:var(--cream)}.award-card-label>span{font:35px Georgia,serif;color:var(--gold)}.award-card-label h3{font:400 26px/1.2 'Playfair Display',Georgia,serif;margin:0}.award-copy{animation:award-copy .6s .12s both}.award-recipient{display:flex;align-items:center;gap:13px;color:var(--gold);font-size:11px;letter-spacing:2px}.award-recipient .avatar{width:46px;height:46px}.award-copy h2{font:400 clamp(36px,4vw,58px)/1.1 'Playfair Display',Georgia,serif;margin:21px 0 18px;letter-spacing:-1px;overflow-wrap:anywhere}.award-copy h2:focus{outline:none}.award-caption{font-size:16px;line-height:1.7;color:var(--muted);margin:0}.award-stats{display:flex;gap:35px;margin:30px 0 34px;padding:23px 0;border-top:1px solid #d4c59e26;border-bottom:1px solid #d4c59e26}.award-stats>div{display:flex;flex-direction:column;gap:12px}.award-stats>div>span{font-size:12px;color:var(--muted)}.award-stats strong{display:flex;gap:10px;align-items:center;font-size:29px;font-weight:400;white-space:nowrap}.award-stats strong small{font-size:16px;color:var(--gold)}.award-stats .icon{height:20px;width:20px;color:var(--gold)}.award-stats .previous-score{color:#889ba7}.award-payments{display:flex;flex-direction:column;gap:9px;font-size:13px;margin:-10px 0 27px;color:var(--muted)}.award-payments>span{display:flex;justify-content:space-between;gap:20px}.award-payments>span:first-child{color:var(--coral);margin-bottom:3px}.award-payments b{font-weight:400;color:var(--cream)}.award-copy>.primary{min-width:240px;min-height:56px}.unfortunate .award-recipient{color:var(--coral)}.unfortunate .award-halo{background:radial-gradient(ellipse,#be785520,transparent 65%)}@keyframes award-arrive{from{opacity:0;transform:translateY(25px) rotate(-6deg) scale(.96)}to{opacity:1;transform:rotate(-3deg)}}@keyframes award-copy{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
/* Shared dialogs and lobby. */
dialog{background:linear-gradient(140deg,#1b2a36,#101a24);color:var(--cream);border-color:#d1bc914d;border-radius:17px;padding:36px}dialog::backdrop{background:#03080cc9;backdrop-filter:blur(5px)}dialog h2{font-size:34px}dialog p,dialog li{color:#b7c4cc;font-size:15px}.close{height:36px;width:36px;border:1px solid #ffffff20;border-radius:50%;font-size:25px;right:12px;top:12px}.close:hover{background:#ffffff0a}input,select{background:#0d1b26;border:1px solid #b8c7d235;border-radius:8px;color:var(--cream);font-size:15px}.player-config>span{font-size:12px}.form-row label{font-size:13px}.setup-footer{border-top:1px solid #ffffff16;padding-top:20px}.mini-card{border:1px solid #d1bd8747;border-radius:10px;background:#17252f}.mini-card .art{height:auto;aspect-ratio:1.5}.mini-card .caption{font-size:13px;padding:14px}.mini-card small{font-size:11px;line-height:1.5}.mini-card:hover{border-color:var(--gold);transform:translateY(-2px)}.large-card .art{height:auto;aspect-ratio:1.5;border-radius:10px}.rules-box{background:#b5d0b809;border-color:#b5d0b86e;color:#c4d3c9}.result-row{border-color:#ffffff18}.result-row.win{background:#d1b67712;border-radius:8px}.result-row.out{opacity:.65}#toast{background:#3a302c;border-color:var(--coral);border-radius:10px;font-size:14px}.show-card{background:#182932}.hero-art{max-width:100%}.front{left:26%}.hero-copy p{color:#a9b8c0}
@media(max-width:1150px){.auction-layout{gap:35px;grid-template-columns:minmax(270px,.85fr) minmax(0,1.15fr);min-height:510px}.note{height:81px}.notes{gap:8px}.card-description{padding:22px}.card-description h3{font-size:28px}.card-effect{font-size:14px}.seat{gap:9px;padding:15px 12px}.seat .avatar{width:35px;height:35px}.seat-name{font-size:13px}.seat-status{font-size:11px}.seat-score b{font-size:22px}.players:has(.seat:nth-child(5)) .avatar{display:none}.award-screen{gap:45px;min-height:540px}.award-card-label{padding:18px}.award-card-label h3{font-size:23px}.award-stats{gap:24px}.award-stats strong{font-size:26px}}
@media(max-width:850px) and (min-width:701px){#play{padding-left:3%;padding-right:3%}.auction-layout{gap:25px;grid-template-columns:minmax(250px,.85fr) minmax(0,1.15fr)}.note{height:73px;padding:5px}.note b{font-size:26px}.notes{gap:7px}.wallet-identity h3{font-size:22px}.wallet-identity p{font-size:11px}.wallet-balance strong{font-size:23px}.wallet-balance>.icon{display:none}.card-description{padding:20px}.card-description h3{font-size:25px}.card-effect{font-size:13px}.card-effect .icon{width:15px;height:15px}.seat{flex-wrap:wrap;padding:12px}.seat-person{min-width:65%}.seat-score{width:100%;padding-left:3px}.seat-score b{font-size:20px}.players:has(.seat:nth-child(5)) .seat{padding:12px 9px}.players:has(.seat:nth-child(5)) .seat-name{font-size:11px}.players:has(.seat:nth-child(5)) .seat-person{width:100%}.award-screen{gap:30px;padding-left:0;padding-right:0}.award-stats{gap:20px}.award-stats strong{font-size:23px}.award-copy h2{font-size:38px}.award-card-label h3{font-size:20px}.award-art{padding:5px}}
@media(max-width:700px){.topbar,.in-game .topbar{padding:14px 5%}.brand{font-size:11px;letter-spacing:2px}.brand small{font-size:5px}.brand-symbol{font-size:28px}nav{gap:12px}nav .text-btn{font-size:11px}.icon-btn{height:32px;width:32px}#gallery-btn{display:none}#play{padding:22px 5%}.game-top{gap:12px;flex-wrap:wrap;margin-bottom:25px}.room-title .eyebrow{font-size:8px}.game-top h2{font-size:28px}.round-chip{order:4;font-size:11px}.closing{order:5;flex:1;justify-content:flex-end;border:0;padding:0;gap:9px}.closing-label{flex-direction:row;gap:8px;font-size:11px}.closing-label b{font-size:11px}#closing-dots{gap:1px}.signal{height:21px;width:21px}.signal .icon{width:18px;height:18px}#menu-btn{min-height:39px;padding:8px 11px;font-size:12px}#menu-btn .icon{width:17px;height:17px}.auction-layout{display:flex;flex-direction:column;gap:29px;min-height:0}.auction-stage{width:100%}.auction-stage:before{inset:-15px -10px}.lot-area{max-width:320px}.lot-heading{font-size:10px;letter-spacing:1.7px;margin-bottom:12px}.card-description{padding:19px 21px 23px}.card-description h3{font-size:27px;margin-bottom:10px}.card-effect{font-size:14px}.card-effect .icon{height:16px;width:16px}.card-rule{font-size:12px;margin-top:12px}.decision-panel{width:100%;padding-top:21px;border-top:1px solid #ffffff19}#bid-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;border:0;padding:0;margin:0 0 23px}.bid-summary-label{display:flex;flex-direction:column;gap:6px;align-items:flex-start;font-size:13px}.high-bid{font-size:43px;margin:0}.high-bid>span{font-size:18px}.wallet-top{gap:14px;margin-bottom:17px}.wallet-identity h3{font-size:23px}.wallet-identity p{font-size:12px;margin-top:6px}.wallet-balance strong{font-size:25px}.wallet-balance div>span{font-size:10px}.wallet-balance>.icon{height:14px;width:14px}.notes{gap:8px;grid-template-columns:repeat(6,minmax(0,1fr));padding-top:6px}.note{height:76px;padding:6px 3px;border-radius:7px;gap:3px}.note b{font-size:27px}.note small{font-size:8px}.note-mark .icon{width:12px;height:12px}.note-check{height:19px;width:19px;right:-4px;top:-5px}.note-check .icon{height:12px;width:12px}.note.committed b{font-size:24px}.note.committed small{font-size:6px}.bid-actions{margin-top:22px}.bid-preview{font-size:13px}.bid-preview b{font-size:14px}.action-buttons{gap:10px}.action-buttons>.primary,.action-buttons>.secondary{min-height:54px;padding:12px;font-size:16px}.hand-footer{font-size:10px;margin-top:14px;gap:10px}.hand-footer .text-btn{font-size:10px}.hand-footer .icon{width:12px;height:12px}.roster{margin-top:31px}.roster-header{font-size:11px}.players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.seat{padding:13px 10px;gap:7px;border-radius:9px}.seat .avatar{display:none}.seat-person{gap:6px}.seat-name{font-size:13px}.seat-status{font-size:11px}.seat-score{gap:3px}.seat-score .icon{width:11px;height:11px}.seat-score b{font-size:23px}.players:has(.seat:nth-child(3):last-child) .seat:last-child,.players:has(.seat:nth-child(5)) .seat:last-child{grid-column:1/-1}.players:has(.seat:nth-child(5)) .seat{padding:13px 10px;gap:7px}.players:has(.seat:nth-child(5)) .seat-name{font-size:13px}.players:has(.seat:nth-child(5)) .seat-status{font-size:11px}.players:has(.seat:nth-child(5)) .seat-score b{font-size:23px}.game-bottom{align-items:flex-start;gap:13px;margin-top:17px}.announcement{font-size:11px}.game-bottom .text-btn{font-size:11px;padding:0}.turn-message{min-height:210px;gap:13px}.turn-message h3{font-size:27px}.turn-message p{font-size:13px}.turn-message .eyebrow{font-size:9px}.turn-message>div{min-width:70%}.turn-message>.avatar,.state-emblem{height:39px;width:39px}.turn-message .avatar .icon,.state-emblem .icon{height:22px;width:22px}.turn-message>.primary{margin-top:8px;width:100%}.discard-choices{gap:12px}.discard-choices .mini-card{width:calc(50% - 6px)}.award-screen{display:flex;flex-direction:column;gap:30px;min-height:0;padding:14px 0 24px}.award-art{width:100%;max-width:310px;padding:5px}.award-frame{padding:7px}.award-card-label{padding:18px;gap:13px}.award-card-label>span{font-size:31px}.award-card-label h3{font-size:23px}.award-copy{width:100%;max-width:400px}.award-copy h2{font-size:43px;margin:17px 0 13px}.award-recipient{font-size:10px;letter-spacing:1.8px;gap:10px}.award-recipient .avatar{height:37px;width:37px}.award-recipient .avatar .icon{height:21px;width:21px}.award-caption{font-size:14px}.award-stats{margin:23px 0 26px;padding:20px 0;gap:35px}.award-stats strong{font-size:26px}.award-stats>div>span{font-size:12px}.award-copy>.primary{width:100%;min-height:56px}.award-payments{font-size:13px}dialog{padding:32px 20px}dialog h2{font-size:30px}dialog p,dialog li{font-size:14px}.player-config{grid-template-columns:20px minmax(0,1fr) minmax(0,1fr);gap:7px}.player-config input,.player-config select{font-size:12px;padding:11px 7px}.form-row{gap:12px}.form-row label{font-size:12px}.mini-card .caption{font-size:12px;padding:12px}.mini-card small{font-size:10px}.large-card .art{height:auto}.hero-art{max-width:350px}.hero-art .front{left:30%}.hero-art .orbit{max-width:100%}.hero-copy h1{font-size:55px}.show-card.front,.show-card.rear{width:210px}.rear{left:2%}.hero-actions .primary{padding:16px 21px}}
@media(max-width:360px){.notes{gap:6px}.note{height:69px}.note b{font-size:24px}.wallet-identity p{font-size:11px}.wallet-balance>.icon{display:none}.award-stats{gap:22px}.award-stats strong{font-size:23px}.seat-name{font-size:12px}.card-description h3{font-size:25px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
#table.auction-stage{height:auto;min-height:0;margin:0;padding:0;border:0;background:transparent;overflow:visible}
/* Public bid totals remain visible independently of turn/pass status. */
.seat{flex-wrap:wrap}.seat-bid{flex-basis:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:3px;padding-top:11px;border-top:1px solid #b7cbd51a}.seat-bid>span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.seat-bid .icon{width:14px;height:14px}.seat-bid strong{color:var(--cream);font-size:23px;font-weight:500;font-variant-numeric:tabular-nums}.seat-bid small{font-size:13px;color:var(--gold)}.seat.passed .seat-bid strong{color:var(--muted)}
@media(min-width:701px) and (max-width:850px){.players .seat{display:grid;grid-template-columns:minmax(0,1fr) auto}.players .seat .avatar{display:none}.players .seat-person{min-width:0}.players .seat-score{width:auto;padding:0}.seat-bid{grid-column:1/-1}}
@media(max-width:700px){.seat-bid{padding-top:9px;margin-top:2px}.seat-bid>span{font-size:11px}.seat-bid strong{font-size:22px}.seat-bid small{font-size:12px}}
/* Portraits and public auction hierarchy. */
.avatar-face{position:absolute;inset:2px;border-radius:50%;background-size:cover;background-position:center 30%}
.portrait-0{background-image:url('assets/avatar-guest.webp')}.portrait-1{background-image:url('assets/avatar-vega.webp')}.portrait-2{background-image:url('assets/avatar-atlas.webp')}.portrait-3{background-image:url('assets/avatar-nova.webp')}
.avatar:has(.avatar-face):after{inset:0;opacity:.4}.avatar{width:56px;height:56px;background:#15212d}
#bid-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0;border:0;margin:0 0 25px}
.bid-tile{min-width:0;border:1px solid #ddbd7466;border-radius:14px;padding:18px 20px;background:linear-gradient(135deg,#58472b,#332e26);box-shadow:inset 0 1px #ffe5a81c}
.bid-tile:only-child{grid-column:1/-1}.bid-label{display:flex;align-items:center;gap:8px;color:#f3d69a;font-size:13px;font-weight:500}.bid-label .icon{width:18px;height:18px}
.bid-tile .high-bid{font-size:64px;font-weight:600;letter-spacing:-3px;color:#fff0cc;margin:9px 0 13px;line-height:1}.bid-tile .high-bid>span{font-size:23px;color:#e6c98b;font-weight:400;letter-spacing:0}
.bid-owner{display:flex;align-items:center;gap:9px;font-size:12px;color:#ead6b3;min-height:30px;min-width:0}.bid-owner>span:last-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bid-owner>.avatar{width:30px;height:30px}.bid-owner>.icon{width:24px;height:24px}
.personal-bid{border-color:#77cdbb66;background:linear-gradient(135deg,#24483f,#1c3433)}.personal-bid .bid-label,.personal-bid .bid-owner{color:#b1e3d5}.personal-bid .high-bid{color:#d6fff0}.personal-bid .high-bid>span{color:#a2d5c5}
.personal-bid.withdrawn{background:#20272f;border-style:dashed;border-color:#ac857866}.personal-bid.withdrawn .bid-owner,.personal-bid.withdrawn .bid-label{color:#d6ab9e}.personal-bid.withdrawn .avatar-face{filter:grayscale(1);opacity:.6}
.wallet-identity>.avatar{display:inline-grid;width:46px;height:46px;border-color:#8cd7be}.wallet-identity h3{font-size:23px}.wallet-balance strong{font-size:23px;color:#b9c6cf}.wallet-top{gap:12px}.wallet-balance strong small{color:#8c9eaa}.note.committed{opacity:1;background:#1a3c36;color:#abdccb;border-color:#6bb29b90;border-style:solid;box-shadow:inset 0 0 0 3px #a4d8c508}.note.committed .note-mark{color:#99cab7}.note.committed small{opacity:1}
.bid-equation{display:flex;justify-content:flex-end;align-items:center;gap:12px;width:100%;font-variant-numeric:tabular-nums}.bid-equation>span:first-child{color:#b1e3d5}.bid-equation strong{font-weight:500;color:#f0d19a}.bid-equation .icon{width:19px;height:19px}.bid-preview .bid-equation b{font-size:23px;color:#fff0cc}
.players .seat{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:12px;padding:18px 16px;border:1px solid #b7cbd529;background:#18232d;overflow:visible;border-radius:13px}
.players .seat .avatar{display:inline-grid;width:56px;height:56px}.players .seat-person{min-width:0;width:auto;gap:7px}.players .seat-name{font-size:15px}.players .seat-status{font-size:11px}.players .seat-score{width:auto;padding:0;color:#a7b8c5;gap:4px}.players .seat-score b{font-size:21px}.players .seat-score .icon{width:13px;height:13px}
.seat-bid{grid-column:1/-1;margin:0;padding-top:13px}.seat-bid strong{font-size:34px;font-weight:500;letter-spacing:-1px}.seat-bid small{font-size:15px;letter-spacing:0;color:inherit}.seat-bid>span{font-size:12px}.seat-bid .icon{width:18px;height:18px}
.players .seat.active{border-color:#80cbb3;background:#203832;box-shadow:inset 0 0 0 1px #80cbb31c}.seat.active .avatar{box-shadow:0 0 0 3px #8cddbb24;border-color:#a9e5c5}.seat.active .seat-status{color:#b1e3c7}.seat.active .seat-bid strong{color:#bdf2db}
.players .seat.leading{background:linear-gradient(125deg,#3c3425,#2b2925);border-color:#dabc79}.seat.leading .seat-bid{border-color:#dabc7940}.seat.leading .seat-bid strong,.seat.leading .seat-bid>span,.seat.leading .seat-status{color:#f3d698}
.seat-indicator{position:absolute;top:-9px;right:11px;bottom:auto;left:auto;width:25px;height:25px;display:none;place-items:center;border-radius:50%;border:2px solid #101b24;background:#345147;color:#c1eddb}.seat-indicator .icon{width:14px;height:14px}.active .seat-indicator{display:grid;background:#345147}.leading .seat-indicator{display:grid;background:#e5c282;color:#352a1c}
.players .seat.passed{background:#151e27;border-style:dashed;border-color:#7c60576e}.seat.passed .avatar-face{filter:grayscale(1);opacity:.5}.seat.passed .avatar{border-color:#65717c}.seat.passed .seat-name{color:#9eaab3;text-decoration:line-through;text-decoration-color:#b88576}.seat.passed .seat-status{color:#d5a89a}.seat.passed .seat-bid strong,.seat.passed .seat-score{color:#8d9ca8}.seat.passed .seat-indicator{display:grid;background:#5c3f39;color:#ffd1c0}.seat.passed .seat-bid>span{color:#bf988d}
.players .seat:hover{filter:brightness(1.1)}.award-recipient .avatar{width:80px;height:80px}.turn-message>.avatar{width:64px;height:64px}
.player-config{grid-template-columns:48px minmax(0,1fr) minmax(0,1fr)}.player-config>.avatar{width:44px;height:44px}
@media(min-width:701px) and (max-width:1150px){.players .seat{grid-template-columns:44px minmax(0,1fr);padding:15px 12px;gap:9px}.players .seat .avatar{width:44px;height:44px}.players .seat-name{font-size:13px}.players .seat-score{position:absolute;right:13px;bottom:20px}.players .seat-bid{padding-right:37px}.bid-tile{padding:16px}.bid-tile .high-bid{font-size:55px}.wallet-identity h3{font-size:21px}}
@media(max-width:700px){#bid-summary{gap:10px;margin-bottom:25px}.bid-tile{padding:16px 14px}.bid-tile .high-bid{font-size:54px;margin:10px 0 13px}.bid-tile .high-bid>span{font-size:20px;margin-left:5px}.bid-label{font-size:12px;gap:6px}.bid-label .icon{height:16px;width:16px}.bid-owner{font-size:11px;gap:7px}.wallet-identity h3{font-size:21px}.wallet-identity>.avatar{height:40px;width:40px}.wallet-balance strong{font-size:22px}.players .seat{grid-template-columns:43px minmax(0,1fr);gap:10px;padding:14px 11px}.players .seat .avatar{width:43px;height:43px}.players .seat-name{font-size:13px}.players .seat-status{font-size:10px}.players .seat-score{position:absolute;bottom:19px;right:12px;gap:3px}.players .seat-score b{font-size:17px}.players .seat-score .icon{width:11px;height:11px}.players .seat-bid{padding-right:32px;gap:4px;align-items:flex-end}.seat-bid strong{font-size:29px}.seat-bid>span{font-size:0}.seat-bid .icon{width:16px;height:16px}.seat-bid small{font-size:13px}.award-recipient .avatar{width:64px;height:64px}.player-config{grid-template-columns:38px minmax(0,1fr) minmax(0,1fr)}.player-config>.avatar{width:35px;height:35px}}
@media(max-width:360px){.players .seat{grid-template-columns:35px minmax(0,1fr);gap:7px;padding:12px 9px}.players .seat .avatar{width:35px;height:35px}.players .seat-name{font-size:12px}.bid-tile{padding:14px 12px}.bid-tile .high-bid{font-size:48px}.wallet-identity h3{font-size:19px}}
.players:has(.seat:nth-child(5)) .seat .avatar{display:inline-grid;width:56px;height:56px}
@media(min-width:701px) and (max-width:1150px){.players:has(.seat:nth-child(5)) .seat .avatar{width:44px;height:44px}}
@media(max-width:700px){.players:has(.seat:nth-child(5)) .seat .avatar{width:43px;height:43px}}
@media(max-width:360px){.players:has(.seat:nth-child(5)) .seat .avatar{width:35px;height:35px}}

/* A stable hit area and restrained perspective. */
.card-tilt-zone{width:100%;perspective:1000px}
.auction-card{transform:rotateX(0deg) rotateY(0deg);transition:transform .55s cubic-bezier(.2,.8,.2,1),box-shadow .55s,border-color .25s;isolation:isolate}
.auction-card:hover:not(:disabled){filter:none;transform:rotateX(0deg) rotateY(0deg)}
.auction-card:after{z-index:4;transition:border-color .3s}
.card-art{transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.card-description{position:relative;z-index:1}
.card-value,.closing-seal{z-index:2}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .auction-card.is-tilting:not(:disabled){transform:translateY(-5px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));box-shadow:var(--shadow-x,0px) 32px 65px #0009,0 0 30px #d2b47315;transition:transform .1s ease-out,box-shadow .15s,border-color .25s;will-change:transform}
 .auction-card.is-tilting:after{border-color:#f3deac60}
 .auction-card.is-tilting .card-art{transform:translate(var(--art-x,0px),var(--art-y,0px)) scale(1.045);transition:transform .1s ease-out}
}
.card-flavor{display:block;font:italic 15px/1.65 Georgia,serif;letter-spacing:.1px;color:#c8bea8;margin-top:18px;padding-top:15px;border-top:1px solid #d2b47330;text-wrap:pretty}
.mini-card .card-flavor{font-size:12px;line-height:1.6;margin-top:12px;padding-top:11px}
.large-card .card-flavor{font-size:18px;margin-bottom:24px}
.award-frame>.card-flavor{margin:0;padding:0 22px 22px;border:0;background:#142029;font-size:15px}
.show-card{height:auto}
.show-card>.card-flavor{margin:0 12px 12px;padding-top:10px;font-size:12px;line-height:1.5}
@media(max-width:700px){.card-flavor{font-size:14px;margin-top:15px;padding-top:13px}.mini-card .card-flavor{font-size:12px}.show-card>.card-flavor{font-size:10px;margin:0 6px 8px;padding-top:8px}.large-card .card-flavor{font-size:17px}.award-frame>.card-flavor{font-size:14px;padding:0 18px 18px}}

/* Card values share the quiet gold typography of the main-menu cards. */
.card-heading{display:flex;align-items:center;gap:18px;margin-bottom:15px}
.card-heading .card-value{position:static;flex:none;font:400 42px/1 Georgia,serif;color:var(--gold);white-space:nowrap;font-variant-numeric:lining-nums}
.card-heading h3{min-width:0;margin:0}
.danger-card .card-heading .card-value{color:var(--coral)}
@media(max-width:1150px){.card-heading{gap:15px}.card-heading .card-value{font-size:38px}}
@media(max-width:700px){.card-heading{gap:14px;margin-bottom:12px}.card-heading .card-value{font-size:36px}.card-heading h3{margin:0;font-size:25px}}

/* Compact table: the whole auction fits a desktop viewport. */
.in-game .topbar{max-width:none;min-height:64px;padding:10px 3%;gap:20px}
.in-game .brand{font-size:12px;letter-spacing:2px;white-space:nowrap}
.in-game .brand-symbol{font-size:27px}
.game-meta{display:flex;align-items:center;justify-content:center;gap:20px;margin-left:auto}
.game-meta .closing{gap:10px;padding-left:18px}
.game-meta .closing-label{flex-direction:row;align-items:center;gap:7px;white-space:nowrap}
.game-meta .signal{width:19px;height:22px}
.game-meta .signal .icon{width:17px;height:17px}
.game-meta .small{min-height:36px;padding:7px 11px;font-size:12px}
.game-meta .small .icon{width:16px;height:16px}
.in-game nav{gap:16px}.in-game nav .text-btn{font-size:12px}
.in-game main{max-width:1400px}
.in-game #play{min-height:calc(100svh - 65px);padding:18px 3% 12px;display:grid;grid-template-rows:auto 1fr auto;gap:18px;align-content:start}
#roster{grid-row:1;margin:0}
.players{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.players:has(.seat:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
.players:has(.seat:nth-child(5)){grid-template-columns:repeat(5,minmax(0,1fr))}
.players .seat,.players:has(.seat:nth-child(5)) .seat{grid-template-columns:42px minmax(0,1fr) auto;gap:7px 10px;padding:12px 14px;grid-column:auto}
.players .seat .avatar,.players:has(.seat:nth-child(5)) .seat .avatar{height:42px;width:42px}
.players .seat-person,.players:has(.seat:nth-child(5)) .seat-person{width:auto;gap:4px;min-width:0}
.players .seat-name,.players:has(.seat:nth-child(5)) .seat-name{font-size:13px}
.players .seat-status,.players:has(.seat:nth-child(5)) .seat-status{font-size:10px}
.players .seat-score{position:static;grid-column:3;grid-row:1 / 3;display:flex;flex-direction:column;gap:2px;align-items:center;color:var(--gold);padding:0 0 0 12px;border-left:1px solid #d2b47326}
.seat-score>span{font-size:10px;color:#c9c4b7}
.players .seat-score b,.players:has(.seat:nth-child(5)) .seat-score b{font:500 34px/1.1 'DM Sans',sans-serif;letter-spacing:-1px}
.players .seat-bid{grid-column:1 / 3;border:0;padding:0;margin:0;justify-content:flex-start;gap:7px}
.players .seat-bid>span{font-size:11px;gap:5px}
.players .seat-bid .icon{width:13px;height:13px}
.players .seat-bid strong{font-size:17px;letter-spacing:0}
.players .seat-bid small{font-size:11px}
.players .seat.passed .seat-score{color:#dfc898}
.auction-layout{grid-row:2;min-height:0;width:100%;max-width:1050px;grid-template-columns:minmax(240px,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,72px);align-self:center}
.lot-area{max-width:375px}
.card-description{padding:18px 21px 20px}
.card-heading{gap:14px;margin-bottom:8px}
.card-heading h3{font-size:27px}
.card-heading .card-value{font-size:38px}
.card-effect{font-size:13px}
.auction-card .card-flavor{font-size:14px;line-height:1.5;margin-top:12px;padding-top:11px}
.card-rule{font-size:12px;margin-top:10px}
.decision-panel{padding:0;border:0}
#bid-summary{gap:10px;margin:0 0 14px;display:grid}
.bid-tile{padding:11px 15px;border-radius:11px;display:grid;grid-template-columns:1fr auto;gap:7px 10px;align-items:center}
.bid-label{font-size:12px;gap:6px}.bid-label .icon{height:15px;width:15px}
.bid-tile .high-bid{grid-column:2;grid-row:1 / 3;font-size:38px;margin:0;letter-spacing:-1.5px}
.bid-tile .high-bid>span{font-size:16px;margin-left:4px}
.bid-owner{font-size:11px;gap:6px;min-height:24px}
.bid-owner>.avatar{height:24px;width:24px}
.bid-owner>.icon{height:20px;width:20px}
.controls{padding:0}
.wallet-top{margin-bottom:12px;gap:10px}
.wallet-identity{gap:9px}.wallet-identity h3,.wallet-top h3{font-size:18px}
.wallet-identity>.avatar{height:32px;width:32px}
.wallet-balance strong{font-size:21px}.wallet-balance>div>span{font-size:10px}
.notes{gap:8px;padding-top:5px}
.note{height:67px;padding:5px;gap:2px}
.note b{font-size:26px}.note-mark .icon{height:11px;width:11px}
.note.committed b{font-size:24px}
.bid-actions{margin-top:14px}.bid-preview{font-size:12px;margin-bottom:9px}
.bid-preview b{font-size:14px}
.action-buttons>.primary,.action-buttons>.secondary{min-height:46px;padding:10px 16px;font-size:15px}
.hand-footer{margin-top:10px;font-size:10px}
.turn-message{min-height:220px;gap:14px}.turn-message h3{font-size:25px}
.game-bottom{grid-row:3;margin:0;padding-top:8px;border-top:1px solid #ffffff12;min-height:28px}
.announcement{font-size:11px}
.award-screen{grid-row:2;min-height:0;padding:10px 20px;gap:50px;max-width:950px}
.award-art{max-width:350px;padding:10px}
.award-copy h2{font-size:40px;margin:15px 0 12px}
.award-recipient .avatar{height:48px;width:48px}
.award-stats{padding:15px 0;margin:18px 0;gap:28px}
.award-stats strong{font-size:26px}
.award-copy>.primary{min-height:46px}
.discard-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.discard-choices .mini-card{width:100%;min-width:0}.discard-choices .mini-card .art{height:65px}
.discard-choices .mini-card .caption{padding:8px;font-size:11px}
.discard-choices .mini-card .card-flavor{display:none}
@media(min-width:901px) and (max-height:760px){
 .in-game #play{gap:12px;padding-top:12px}
 .lot-area{max-width:325px}.card-description{padding:14px 18px 16px}
 .card-heading h3{font-size:24px}.auction-card .card-flavor{font-size:13px}
 .note{height:59px}.note b{font-size:24px}.bid-tile .high-bid{font-size:34px}
 .players .seat,.players:has(.seat:nth-child(5)) .seat{padding:10px 12px}
 .award-art{max-width:300px}.award-copy h2{font-size:32px}
}
@media(max-width:1100px) and (min-width:701px){
 .in-game .topbar{gap:12px;padding:10px 2%}.game-meta{gap:12px}.in-game nav{gap:10px}
 .in-game #gallery-btn{display:none}.game-meta .closing{padding-left:12px;gap:6px}
 .players .seat,.players:has(.seat:nth-child(5)) .seat{grid-template-columns:32px minmax(0,1fr) auto;padding:10px;gap:6px}
 .players .seat .avatar,.players:has(.seat:nth-child(5)) .seat .avatar{height:32px;width:32px}
 .players .seat-name,.players:has(.seat:nth-child(5)) .seat-name{font-size:11px}
 .players .seat-score{padding-left:7px}.players .seat-score b,.players:has(.seat:nth-child(5)) .seat-score b{font-size:28px}
 .seat-score>span{font-size:8px}.players{gap:7px}
 .in-game #play{padding-left:2%;padding-right:2%;gap:15px}
 .auction-layout{gap:28px;grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr)}
}
.clear-hand{display:none}
/* Mobile is a natural-flow table: no shrinking grid can put one section over another. */
@media(max-width:700px){
 .topbar{padding:8px 12px;gap:8px;min-width:0}.topbar .brand{min-height:44px}.topbar nav{gap:2px}.topbar nav .nav-label{display:none}.topbar nav .text-btn,.topbar .icon-btn{min-width:44px;min-height:44px;padding:8px;border-radius:10px}
 body.in-game{height:auto;min-height:100svh;display:block}
 .in-game .topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 8px;min-height:0;padding:4px max(12px,env(safe-area-inset-right)) 4px max(12px,env(safe-area-inset-left));padding-top:max(4px,env(safe-area-inset-top))}
 .in-game .brand{min-height:44px;font-size:10px;letter-spacing:1.4px;gap:6px;min-width:0}.in-game .brand-symbol{font-size:25px}
 .in-game nav{grid-column:2;grid-row:1;gap:2px}.in-game nav .text-btn,.in-game .icon-btn{min-width:44px;min-height:44px;padding:8px;border:0;border-radius:10px}
 .in-game nav .nav-label{display:none}.in-game #rules-btn .icon{width:20px;height:20px}
 .game-meta{grid-column:1 / -1;grid-row:2;min-width:0;margin:0;justify-content:space-between;gap:6px}
 .game-meta .round-chip{order:0;font-size:11px;letter-spacing:.5px}
 .game-meta .closing{order:0;flex:none;padding:0;border:0;gap:4px}
 .game-meta .closing-label{font-size:11px;gap:5px}.game-meta .closing-label b{font-size:12px;font-weight:500}
 .game-meta #closing-dots{display:none}
 .game-meta .text-btn{min-height:44px;min-width:44px;padding:8px;font-size:11px;border-radius:9px;gap:6px}
 .game-meta .text-btn .icon{width:18px;height:18px}.game-meta #history-btn .action-label{display:none}
 .game-meta #menu-btn{min-height:44px;padding:8px 10px;font-size:11px;gap:5px}.game-meta #menu-btn .icon{height:16px;width:16px}
 .in-game main{display:block;width:100%;min-height:0}
 .in-game #play{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-rows:max-content;align-content:start;gap:10px;min-height:0;flex:none;padding:8px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
 .auction-layout{display:contents}
 #table.auction-stage{grid-row:1;align-self:start;justify-self:stretch;min-width:0;isolation:auto}
 #table:before{display:none}
 #roster{grid-row:2;margin:0;min-width:0}
 .decision-panel{grid-row:3;align-self:start;width:100%;min-width:0;padding:0;border:0}
 .game-bottom{position:absolute;width:1px;height:1px;min-height:0;overflow:hidden;clip-path:inset(50%);margin:0;padding:0;border:0}
 .game-bottom .announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .players,.players:has(.seat:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .players:has(.seat:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}
 .players:has(.seat:nth-child(5)){grid-template-columns:repeat(5,minmax(0,1fr))}
 .players:has(.seat:nth-child(3):last-child) .seat:last-child,.players:has(.seat:nth-child(5)) .seat:last-child{grid-column:auto}
 .players .seat,.players:has(.seat:nth-child(5)) .seat{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;grid-column:auto;padding:7px 4px;gap:3px;min-height:82px;border-radius:10px;overflow:hidden;text-align:center;align-content:center}
 .players .seat .avatar,.players:has(.seat:nth-child(5)) .seat .avatar{display:none}
 .players .seat-person,.players:has(.seat:nth-child(5)) .seat-person{grid-column:1;grid-row:1;min-width:0;width:100%;gap:2px;align-items:center}
 .players .seat-name,.players:has(.seat:nth-child(5)) .seat-name{max-width:100%;font-size:11px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .players .seat-status,.players:has(.seat:nth-child(5)) .seat-status{font-size:9px;line-height:1.2;white-space:nowrap}
 .players .seat-score{grid-column:1;grid-row:2;position:static;align-items:center;padding:0;border:0;gap:0}
 .players .seat-score>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .players .seat-score b,.players:has(.seat:nth-child(5)) .seat-score b{font:500 25px/1.1 'DM Sans',sans-serif;letter-spacing:-.5px}
 .players .seat-score b:before{content:'✦';font-size:11px;vertical-align:3px;margin-right:3px}
 .players .seat-bid{grid-column:1;grid-row:3;justify-content:center;gap:4px;border:0;margin:0;padding:0;line-height:1.2;min-width:0}
 .players .seat-bid>span{font-size:9px;gap:0}.players .seat-bid .icon{display:none}.players .seat-bid strong{font-size:12px;letter-spacing:0}.players .seat-bid small{font-size:9px}
 .players .seat .seat-indicator{display:none}
 .lot-area{max-width:none;width:100%}.card-tilt-zone{perspective:none}
 .auction-card{display:grid;grid-template-columns:88px minmax(0,1fr);width:100%;min-height:88px;border-radius:12px;transform:none!important;box-shadow:0 6px 18px #0003}
 .auction-card:after{inset:4px;border-radius:8px}
 .card-art{height:100%;min-height:88px;aspect-ratio:auto;transform:none!important;background-size:400% 400%}
 .card-description{min-width:0;padding:10px 12px;display:flex;flex-direction:column;justify-content:center}
 .card-heading{gap:10px;margin:0}.card-heading .card-value{font-size:31px;letter-spacing:-1px}.card-heading h3{font-size:20px;line-height:1.2;margin:0;text-wrap:balance}
 .card-effect{font-size:11px;gap:5px;margin-top:6px;line-height:1.3}.card-effect .icon{width:14px;height:14px}
 .auction-card .card-flavor{display:none}.closing-seal{left:7px;right:auto;top:7px;width:22px;height:22px}.closing-seal .icon{width:13px;height:13px}
 .card-rule{display:none}
 #bid-summary{display:grid;gap:6px;margin:0 0 10px;padding:0;align-items:stretch}
 .bid-tile{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto;gap:2px 6px;padding:7px 10px;border-radius:10px;min-height:43px;align-content:center}
 .bid-label{font-size:10px;gap:4px;line-height:1.2}.bid-label .icon{width:12px;height:12px}
 .bid-owner{font-size:9px;line-height:1.2;gap:4px;min-height:0}.bid-owner>.avatar,.bid-owner>.icon{display:none}
 .bid-tile .high-bid{grid-column:2;grid-row:1 / 3;font-size:27px;margin:0;letter-spacing:-1px}.bid-tile .high-bid>span{font-size:11px;margin-left:3px}
 .wallet-top{margin-bottom:8px;gap:8px;min-height:44px}.wallet-top .clear-hand{display:grid;width:44px;height:44px;flex:none;background:#ffffff03;border:1px solid #ffffff15;color:var(--muted)}.wallet-top .clear-hand .icon{height:17px;width:17px}.wallet-identity{flex:1;min-width:0}.wallet-identity>div{min-width:0}.wallet-identity h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wallet-balance{flex:none;white-space:nowrap}.wallet-identity{gap:7px}.wallet-identity>.avatar{display:none}.wallet-identity h3,.wallet-top h3{font-size:16px;line-height:1.3}
 .wallet-balance strong{font-size:20px}.wallet-balance strong small{font-size:11px}.wallet-balance>div>span{font-size:9px}.wallet-balance>.icon{display:none}
 .notes{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding-top:3px}
 .note{width:100%;height:48px;min-height:44px;padding:3px;gap:1px;border-radius:8px;touch-action:manipulation}.note b{font-size:25px}.note-mark{display:none}.note small{font-size:8px}
 .note.committed b{font-size:23px}.note.committed small{font-size:7px}.note.selected{transform:none;box-shadow:inset 0 0 0 2px #fff5,0 2px 10px #e7c99020}.note-check{height:16px;width:16px;right:2px;top:2px}.note-check .icon{width:10px;height:10px}
 .bid-actions{margin-top:12px}.bid-preview{font-size:12px;line-height:1.3;margin:0 0 8px;height:26px;min-height:26px}.bid-preview b{font-size:14px}.bid-preview .bid-equation{gap:8px}.bid-preview .bid-equation b{font-size:20px}
 .action-buttons{gap:8px;margin:0;width:100%}.action-buttons>.primary,.action-buttons>.secondary{min-height:48px;padding:10px;font-size:15px}.action-buttons>.primary{flex:1.5}
 .hand-footer{display:none}.hand-footer .text-btn{min-height:32px;min-width:44px;padding:6px;font-size:11px}
 .turn-message{min-height:95px;display:grid;grid-template-columns:32px minmax(0,1fr);text-align:left;gap:10px;padding:12px 0}.turn-message>div{min-width:0}.turn-message h3{font-size:21px}.turn-message p{font-size:12px}.turn-message>.avatar,.state-emblem{height:32px;width:32px}.turn-message>.primary{grid-column:1 / -1;min-height:48px;margin:4px 0 0}
 #award.award-screen{grid-row:1;display:grid;grid-template-columns:88px minmax(0,1fr);align-items:start;gap:14px;padding:6px 0;width:100%;min-height:0}
 .award-art{width:88px;max-width:88px;margin:0;padding:0}.award-frame{padding:3px}.award-frame>.card-flavor{display:none}.award-card-label{padding:8px 4px;gap:4px;align-items:flex-start;flex-direction:column}.award-card-label h3{font-size:12px;line-height:1.3}.award-card-label>span{font-size:21px}
 .award-copy{width:100%;max-width:none;min-width:0}.award-copy h2{font-size:29px;margin:8px 0;overflow-wrap:anywhere}.award-recipient{font-size:9px;letter-spacing:1px;gap:6px}.award-recipient .avatar{height:30px;width:30px}.award-caption{font-size:12px;line-height:1.5;margin:8px 0}
 .award-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:10px 0;margin:10px 0;gap:12px}.award-stats>div{min-width:0;gap:7px}.award-stats strong{font-size:22px;gap:5px}.award-stats .icon{width:14px;height:14px}.award-stats .previous-score,.award-stats .previous-score + .icon{display:none}.award-stats>div>span{font-size:10px}.award-copy>.primary{min-width:0;min-height:48px;font-size:14px;padding:10px 12px}.award-payments{font-size:11px;gap:4px;line-height:1.4}
 .discard-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.discard-choices .mini-card{width:100%;min-height:44px}.discard-choices .mini-card .art{height:65px}.discard-choices .mini-card .caption{font-size:11px;line-height:1.4;padding:8px}
 dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:32px 18px 20px;border-radius:16px}
 .close{min-width:44px;min-height:44px;top:5px;right:5px;font-size:27px}
 dialog h2{font-size:29px}dialog p,dialog li{font-size:14px;line-height:1.6}
 .player-config{grid-template-columns:28px minmax(0,1fr) minmax(104px,.9fr);gap:8px}.player-config>.avatar{width:28px;height:28px}.player-config input,.player-config select{font-size:16px;min-height:44px;padding:9px 7px;margin-top:0}
 .form-row input,.form-row select{font-size:16px;min-height:44px}.setup-footer .primary{min-height:48px}
 .result-row{grid-template-columns:minmax(0,1fr) 62px 64px;gap:8px;padding:12px 0;font-size:12px}.result-row>div{min-width:0;overflow-wrap:anywhere}.result-row b{font-size:23px}.result-row small{font-size:10px}
 #toast{bottom:max(12px,env(safe-area-inset-bottom));font-size:13px;padding:12px 16px}
}
@media(max-width:700px) and (max-height:620px){
 .in-game #play{gap:8px;padding-top:6px}.auction-card,.card-art{min-height:80px}.note{height:44px}.players .seat,.players:has(.seat:nth-child(5)) .seat{padding-top:5px;padding-bottom:5px;min-height:78px}.bid-actions{margin-top:8px}.bid-preview{margin-bottom:6px}.wallet-top{min-height:44px}.wallet-balance>div>span{display:none}#bid-summary{margin-bottom:8px}
}
@media(min-width:701px) and (max-height:620px){
 .in-game .topbar{min-height:52px;padding-top:6px;padding-bottom:6px}
 .in-game #play{min-height:calc(100svh - 52px);padding-top:9px;padding-bottom:7px;gap:10px}
 .players .seat,.players:has(.seat:nth-child(5)) .seat{padding-top:7px;padding-bottom:7px}
 .players .seat-score b,.players:has(.seat:nth-child(5)) .seat-score b{font-size:27px}
 .players .seat .avatar,.players:has(.seat:nth-child(5)) .seat .avatar{height:30px;width:30px}
 .auction-layout{max-width:1000px}.lot-area{max-width:285px}.card-description{padding:12px 16px}
 .card-heading h3{font-size:22px}.card-heading .card-value{font-size:32px}
 .auction-card .card-flavor{font-size:12px;line-height:1.4;margin-top:8px;padding-top:8px}
 .bid-tile{padding:8px 12px}.bid-tile .high-bid{font-size:30px}
 #bid-summary{margin-bottom:9px}.wallet-top{margin-bottom:8px}
 .note{height:48px;gap:1px}.note-mark{display:none}.note b{font-size:23px}
 .bid-actions{margin-top:10px}.bid-preview{margin-bottom:7px}
 .action-buttons>.primary,.action-buttons>.secondary{min-height:40px;padding:8px 12px;font-size:14px}
 .hand-footer{margin-top:7px}.game-bottom{padding-top:5px;min-height:23px}
 .award-art{max-width:250px}.award-copy h2{font-size:29px}.award-stats{margin:12px 0;padding:10px 0}
 .award-caption{font-size:13px}.award-recipient .avatar{height:35px;width:35px}
}
@media(max-width:700px){.award-art{max-width:180px}.award-screen{gap:10px}.award-payments{font-size:11px;gap:5px;margin:0 0 12px}}
/* Use the actual header height, including browser zoom and wrapped navigation. */
@media(min-width:701px){
 body.in-game{height:100svh;display:flex;flex-direction:column}
 .in-game .topbar{width:100%;flex:none;margin:0 auto}
 .in-game main{width:100%;flex:1;min-height:0;display:flex}
 .in-game #play{width:100%;flex:1;min-height:0}
}
.round-chip{white-space:nowrap}
@media(min-width:701px) and (max-width:850px){
 .in-game .brand{font-size:10px;letter-spacing:1.3px;gap:6px}.in-game .brand-symbol{font-size:24px}
 .game-meta{gap:9px}.game-meta .closing{padding-left:9px}
 .in-game nav .text-btn span{margin-left:0}
}

/* A quiet opening screen: one sentence and the actions to play. */
#lobby .hero-copy{padding-bottom:0}
#lobby .hero-copy h1{margin:0 0 38px}
#lobby .hero-actions{gap:12px}
.form-row:has(#count){grid-template-columns:minmax(0,180px)}
@media(max-width:700px){
 #lobby{gap:30px;padding-top:40px;padding-bottom:24px}
 #lobby .hero-copy h1{margin:0 0 28px}
 #lobby .hero-art{height:350px}
}

@media(max-width:360px){
 .players .seat-score b{font-size:22px}.players:has(.seat:nth-child(5)) .seat-score b{font-size:18px}.players:has(.seat:nth-child(5)) .seat-score b:before{display:none}
}

@media(max-width:700px) and (max-height:580px){
 .in-game #play{gap:6px;padding-bottom:max(8px,env(safe-area-inset-bottom))}
 .auction-card{grid-template-columns:72px minmax(0,1fr)}.card-description{padding:8px 10px}.card-heading h3{font-size:18px}.card-effect{font-size:10px}
 .players .seat,.players:has(.seat:nth-child(5)) .seat{padding:4px;gap:2px;min-height:76px}.players .seat-status,.players:has(.seat:nth-child(5)) .seat-status{font-size:8.5px}
 .wallet-top{margin-bottom:6px}.notes{padding-top:0}.bid-preview .bid-equation b{font-size:18px}
}
/* Short landscape screens may scroll vertically, never compress overlapping sections. */
@media(min-width:701px) and (max-width:1100px) and (max-height:500px){
 body.in-game{height:auto;min-height:100svh}.in-game main{display:block}.in-game #play{display:grid;grid-template-rows:auto auto auto;min-height:0}
 .auction-layout{align-self:start;min-height:max-content}
 .action-buttons>.primary,.action-buttons>.secondary{min-height:44px}.game-meta .small,.game-meta .text-btn,.in-game nav .text-btn{min-height:44px}.in-game .icon-btn{width:44px;height:44px}
}
/* Wide phones in landscape keep the hand in a single thumb-sized row. */
@media(min-width:800px) and (max-width:1100px) and (max-height:500px){
 .auction-layout{grid-template-columns:minmax(190px,.45fr) minmax(0,1.2fr);gap:16px}
 .lot-area{max-width:240px}.card-art{height:110px;aspect-ratio:auto}.auction-card .card-flavor,.card-rule,.bid-owner,.hand-footer,.game-bottom,.wallet-identity>.avatar{display:none}
 .card-description{padding:12px}.card-heading h3{font-size:20px}.card-heading .card-value{font-size:30px}.card-effect{font-size:11px}
 .bid-tile{padding:7px 10px;gap:0}.bid-tile .high-bid{font-size:28px}.bid-label{font-size:11px}#bid-summary{margin-bottom:8px}
 .wallet-top{margin-bottom:6px;min-height:26px}.wallet-identity h3{font-size:17px}.wallet-balance strong{font-size:20px}.wallet-balance>div>span{display:none}
 .notes{grid-template-columns:repeat(11,minmax(44px,1fr));gap:4px;padding-top:0}.note{height:44px}.note b{font-size:22px}
 .bid-preview{height:26px;min-height:26px;margin-bottom:6px}.bid-preview .bid-equation b{font-size:18px}
}
