:root{color:var(--text);font-synthesis:none;--ink:#0b111b;--board:#111a27;--panel:#192536;--panel-strong:#203047;--line:#31435b;--muted:#a8b3c3;--brass:#d9b862;--brass-light:#f0d98e;--emerald:#62c9a5;--danger:#ff9c91;--final:#ff9a4d;--final-text:#ffc59a;--final-bg:#ff8c462e;--alert:#ff4d57;--alert-rgb:255 77 87;--focus:#9cd7ff;--text:#f5f2e8;--text-muted:var(--muted);--accent:var(--brass);--accent-strong:var(--brass-light);--on-accent:#15140e;--border:var(--line);--surface:var(--panel);--surface-raised:var(--panel-strong);--surface-sunken:#182437;--sheet-bg:#121d2c;--success:#2fa36b;--gem-white:#eee9da;--gem-blue:#4f9bd0;--gem-green:#1aa05a;--gem-red:#e3263a;--gem-black:#303741;--gem-gold:#d8ad45;--fs-micro:8px;--fs-xs:11px;--fs-sm:12px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:28px;--fs-display:clamp(1.7rem, 7vw, 2.3rem);--r-sm:4px;--r-md:10px;--r-lg:16px;--r-pill:999px;--control-h:44px;--control-h-lg:52px;--card-ratio:4 / 5;--market-card-width:75px;--mini-card-width:48px;--noble-width:52px;background:#0b111b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--ink);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;min-width:320px;overflow-x:clip}body{background:radial-gradient(circle at 10% -10%, #35537452, transparent 32rem), radial-gradient(circle at 105% 90%, #437b6524, transparent 28rem), var(--ink);min-width:320px;min-height:100vh;margin:0;overflow-x:clip}button,input{font:inherit}button{min-height:44px}button[data-touch-target="44"]{min-width:44px!important;min-height:44px!important}button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.48}input{border:1px solid var(--line);border-radius:var(--r-md);color:#fff;background:#0d1622;width:100%;min-height:50px;padding:0 14px}label{color:var(--text);font-weight:650}h1,h2,p{margin-top:0}h1{font-size:var(--fs-display);letter-spacing:-.045em;margin-bottom:12px;line-height:.98}h2{letter-spacing:-.02em}.app-shell{width:min(100%,920px);min-height:100vh;margin:0 auto}.app-shell.is-game{flex-direction:column;height:100dvh;min-height:0;max-height:100svh;display:flex;position:relative;overflow:hidden}.app-shell.is-game .topbar{min-height:46px;padding:env(safe-area-inset-top) max(8px, env(safe-area-inset-left)) 0;flex:none;gap:6px;position:relative}.app-shell.is-game .brand,.app-shell.is-game .brand-mark{display:none}.app-shell.is-game .icon-button{width:44px;min-width:44px;min-height:44px;font-size:var(--fs-lg)}.topbar-start,.topbar-end{align-items:center;gap:8px;display:flex}.exit-button,.logout-button{min-width:52px;min-height:44px;font-size:var(--fs-md);padding:0 12px;font-weight:760}.brand{font-family:Georgia,serif;font-size:var(--fs-lg);letter-spacing:.02em}.brand-mark{color:var(--brass);margin-right:10px}.icon-button{border:1px solid var(--line);width:46px;min-width:46px;color:var(--text);background:var(--panel);font-size:var(--fs-xl);border-radius:50%}.room-strip{border-bottom:1px solid var(--line);min-height:44px;color:var(--muted);font-size:var(--fs-md);justify-content:space-between;align-items:center;gap:12px;padding:6px 18px;display:flex}.room-strip strong{color:var(--brass-light);letter-spacing:.08em}.connection-status{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.connection-status[data-status=CONNECTED]{color:var(--emerald)}.connection-status[data-status=DISCONNECTED],.connection-status[data-status=REPLACED]{color:var(--danger)}.screen{width:min(100% - 32px,760px);margin:0 auto;padding:clamp(34px,8vw,72px) 0 120px}.narrow-screen{width:min(100%,520px);margin:0 auto}.eyebrow{color:var(--accent-strong);font-size:var(--fs-sm);letter-spacing:.18em;text-transform:uppercase;margin-bottom:10px;font-weight:800}.panel{border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(145deg,#203047f5,#141f2ef5);box-shadow:0 22px 50px #00000047}.first-run{width:min(100% - 32px,480px);min-height:100vh;margin:0 auto;padding:max(64px,10vh) 0 80px}.hero-gem{border-radius:var(--r-lg);background:linear-gradient(145deg,#233650,#101925);border:1px solid #d9b86280;place-items:center;width:92px;height:92px;margin-bottom:34px;display:grid;transform:rotate(45deg);box-shadow:0 0 50px #d9b8621f}.hero-gem span{color:var(--brass);font-size:var(--fs-2xl);transform:rotate(-45deg)}.identity-form{gap:14px;margin-top:34px;padding:22px;display:grid}.home-hero{min-height:230px;padding:22px 0;position:relative}.home-hero h1{max-width:13ch}.jewel-orbit{opacity:.85;gap:26px;margin:30px 0 0 8px;display:flex}.jewel-orbit i{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);width:38px;height:38px;color:var(--brass);place-items:center;font-style:normal;display:grid;transform:rotate(45deg)}.jewel-orbit i:nth-child(2){color:var(--emerald)}.jewel-orbit i:nth-child(3){color:#d77f78}.action-stack{gap:12px;max-width:540px;display:grid}.notice,.replacement-alert{border-radius:var(--r-md);color:#ffd0ca;background:#642b2a40;border:1px solid #ff9c9180;padding:12px 14px}.replacement-alert{justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.field-error{color:var(--danger);font-size:var(--fs-md);margin:0}.join-form{gap:14px;margin-top:32px;padding:22px;display:grid}.join-form .primary-button{min-height:56px}.restoring-screen{text-align:center;align-content:center;justify-items:center;min-height:50vh;display:grid}.restoring-screen h1{font-size:var(--fs-2xl);margin-top:24px}.restoring-screen p{color:var(--muted)}.spinner{color:var(--brass);font-size:var(--fs-2xl);animation:1.3s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.35;transform:scale(.8)rotate(45deg)}}.lobby-screen{gap:24px;display:grid}.room-code-card{border-radius:var(--r-lg);background:linear-gradient(145deg,#d9b8621f,#192536f0);border:1px solid #d9b86266;gap:12px;padding:20px;display:grid}.room-code-card p,.room-code-card span{color:var(--muted);margin:0}.room-code-card>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.room-code-card strong{color:var(--brass-light);letter-spacing:.16em;font-variant-numeric:tabular-nums;font-size:clamp(2.25rem,12vw,4rem)}.section-heading{justify-content:space-between;align-items:end;display:flex}.section-heading h1{font-size:var(--fs-2xl);margin:0}.section-heading>span{color:var(--muted)}.player-list{gap:10px;display:grid}.player-row{border:1px solid var(--line);border-radius:var(--r-lg);background:#192536d6;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:78px;padding:12px;display:grid}.player-row.is-starting{border-color:var(--brass);box-shadow:inset 3px 0 0 var(--brass)}.seat-number{border:1px solid var(--line);width:34px;height:34px;color:var(--muted);border-radius:50%;place-items:center;display:grid}.player-details{gap:5px;min-width:0;display:grid}.player-details strong{text-overflow:ellipsis;overflow:hidden}.player-details small{color:var(--muted)}.starting-picker{min-width:70px;font-size:var(--fs-sm);color:var(--muted);justify-items:center;gap:2px;display:grid}.starting-picker input{width:24px;min-height:24px;accent-color:var(--brass)}.starting-badge{border:1px solid var(--brass);border-radius:var(--r-pill);color:var(--brass-light);font-size:var(--fs-sm);padding:6px 9px}.lobby-footer{text-align:center;gap:9px;display:grid}.lobby-footer .primary-button{min-height:58px}.lobby-footer small,.waiting-copy{color:var(--muted)}.game-screen{gap:5px}.game-screen>*{min-width:0}.game-status-header,.command-pending,.notice,.replacement-alert,.turn-explanation,.market-board,.resolution-panel,.gem-take-panel,.viewer-section,.finished-results{grid-column:1/-1}.turn-status{align-items:baseline;gap:8px;min-width:0;display:flex}.turn-meta{color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;margin-left:auto}.turn-timer:before{content:"· ";color:var(--muted)}.turn-timer{color:var(--brass-light);font-size:var(--fs-md);font-variant-numeric:tabular-nums;font-weight:800}.turn-timer.is-warning{color:#ff8b82;animation:1s ease-in-out infinite timer-pulse}@keyframes timer-pulse{50%{opacity:.55}}.is-visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.turn-reminder{z-index:40;border:1px solid var(--brass-light);border-radius:var(--r-pill);color:#1a1303;background:var(--brass-light);pointer-events:none;padding:8px 22px;font-weight:850;position:fixed;top:64px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000073}.finished-actions{gap:10px;display:grid}.finished-hint{color:var(--muted);font-size:var(--fs-md);text-align:center;margin:0}.game-status-header h1{font-size:var(--fs-lg);margin:0;line-height:1}.game-status-header p{color:var(--muted);font-size:var(--fs-xs);margin:0}.command-pending{z-index:5;border-radius:var(--r-md);color:#b9f4df;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#194b3deb;border:1px solid #62c9a580;padding:10px 14px;position:sticky;top:76px}.turn-explanation{border-left:2px solid var(--brass);color:var(--muted);font-size:var(--fs-xs);background:#d9b86212;margin:0;padding:4px 7px}.game-section-heading,.market-tier-heading{justify-content:space-between;align-items:center;gap:6px;min-width:0;margin-bottom:3px;display:flex}.game-section-heading h2,.market-tier-heading h2{font-size:var(--fs-sm);letter-spacing:.06em;margin:0}.game-section-heading>span,.market-tier-heading>span{color:var(--muted);font-size:var(--fs-sm);white-space:nowrap}.opponents-section,.nobles-section{grid-column:1/-1}.opponents-section .player-summary-meta{font-size:var(--fs-xs);gap:0 6px}.player-summary.is-viewer{background:linear-gradient(135deg,#263245f5,#1a2637f5);border-color:#d9b8627a}.player-summary.is-disconnected{opacity:.72}.player-summary>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.player-summary h3{font-size:var(--fs-sm);margin:0}.offline-label{color:var(--danger);font-size:var(--fs-xs);margin-top:3px;display:block}.player-prestige{color:var(--brass-light);font-size:var(--fs-xl);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:900;line-height:1}.player-summary-meta{color:var(--muted);font-size:var(--fs-xs);flex-wrap:wrap;gap:2px 8px;display:flex}.token-total{color:var(--brass-light);font-weight:760}.player-resources,.player-reserved-cards,.available-nobles,.noble-choice-row{flex-wrap:wrap;gap:8px;min-width:0;display:flex}.viewer-section .player-summary>header,.viewer-section .player-summary-meta,.viewer-section .player-reserved-cards{grid-column:1}.player-assets{grid-template-columns:repeat(6,auto);justify-content:start;align-items:end;gap:2px;display:grid}.player-asset-column{justify-items:center;gap:2px;display:grid}.player-reserved-cards{gap:3px}.player-bonus,.card-bonus{color:#111927;background:var(--gem-color);border:1px solid #ffffffad;place-items:center;display:grid}.player-bonus.is-empty{opacity:.24}.player-asset-column .game-token{width:24px;height:24px}.player-asset-column .game-token-count{font-size:var(--fs-sm)}.opponents-section .player-resources{gap:3px}.opponents-section .player-resources .game-token{width:18px;height:18px}.opponents-section .player-resources .game-token-count{font-size:var(--fs-xs)}button.noble-tile{text-align:left}.noble-tile.is-selected{outline:3px solid var(--focus);outline-offset:2px}.market-board{gap:4px;min-width:0;display:grid}.deck-reserve-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.market-tier-heading{justify-content:flex-start;margin-bottom:2px}.market-tier-heading>span{margin-left:auto}.market-tier{grid-template-columns:50px minmax(0,1fr);align-items:stretch;gap:4px;display:grid}.market-deck strong{font-family:Georgia,serif;font-size:var(--fs-lg)}button.market-deck:not(:disabled){background:#d9b86229;border-style:solid}button.market-deck:disabled{opacity:.55}.development-card{border-radius:var(--r-md);border:2px solid #8295aa;padding:5px}.development-card:hover:not(:disabled){border-color:var(--brass-light);transform:translateY(-1px)}.development-card:disabled{opacity:1}.card-bonus{top:5px;right:5px}.bonus-assist{font-size:var(--fs-xs);font-weight:900;display:none}.game-token{color:#101722;background:var(--gem-color);font-variant-numeric:tabular-nums;border:2px solid #ffffffb8;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;display:inline-grid;position:relative;box-shadow:inset 0 -3px 5px #0000002e,0 2px 4px #0000003d}.game-token-assist{display:none}.game-token.is-compact{border-width:1px;width:17px;height:17px;box-shadow:inset 0 -1px 2px #00000038}.game-token.is-compact .game-token-count{font-size:var(--fs-sm)}.game-token-white,.bonus-white,.gem-white{--gem-color:var(--gem-white)}.game-token-blue,.bonus-blue,.gem-blue{--gem-color:var(--gem-blue)}.game-token-green,.bonus-green,.gem-green{--gem-color:var(--gem-green)}.game-token-red,.bonus-red,.gem-red{--gem-color:var(--gem-red)}.game-token-black,.bonus-black,.gem-black{--gem-color:var(--gem-black);color:#fff}.game-token-gold,.gem-gold{--gem-color:var(--gem-gold)}.game-token-black .game-token-count{text-shadow:0 1px #000}.gem-take-panel,.resolution-panel{border:1px solid var(--line);border-radius:var(--r-md);background:#141f2ef0;gap:2px;padding:3px 6px;display:grid}.over-limit-reminder{color:#ffb4ac;font-size:var(--fs-xs);margin:0;line-height:1.2}.token-select{border-radius:var(--r-md);background:0 0;border:1px solid #0000;place-items:center;min-width:44px;min-height:44px;padding:1px;display:grid}.token-select.is-selected{border-color:var(--brass-light);background:#d9b86226}.resolution-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.resolution-heading h2,.resolution-panel p{margin:0}.resolution-heading strong{color:var(--brass-light);font-size:var(--fs-md)}.resolution-panel p{color:var(--muted);font-size:var(--fs-md);line-height:1.45}.return-panel{gap:3px}.return-panel .resolution-heading h2{font-size:var(--fs-md)}.return-token-list{gap:2px;display:grid}.return-token-row{grid-template-columns:22px 1fr 36px 36px 54px;align-items:center;gap:6px;min-height:36px;display:grid}.return-token-name{font-size:var(--fs-md)}.return-token-owned{color:var(--muted);font-size:var(--fs-xs);text-align:right}.return-token-row button{border:1px solid var(--line);border-radius:var(--r-md);color:#fff;background:var(--panel);min-height:34px}.return-confirm{min-height:44px}.payment-options legend{color:var(--muted);font-size:var(--fs-md);margin-bottom:7px}.payment-option input{width:19px;min-height:19px;accent-color:var(--brass)}.payment-token-row{flex-wrap:wrap;gap:5px;display:flex}.muted-copy{color:var(--muted)}.finished-results{gap:24px;display:grid}.finished-results>header p{color:var(--muted)}.result-list{gap:10px;display:grid}.result-row{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);grid-template-columns:minmax(0,1fr) auto;gap:7px 14px;padding:15px;display:grid}.result-row.is-winner{border-color:var(--brass);background:linear-gradient(145deg, #d9b86233, var(--panel))}.result-row h2{font-size:var(--fs-lg);margin:0}.result-row span{color:var(--muted);font-size:var(--fs-sm)}.winner-label{color:var(--brass-light);font-size:var(--fs-sm);margin-top:4px;display:inline-block}.result-score{color:var(--brass-light);font-size:var(--fs-xl)}[data-color-assist=true] .bonus-assist{display:block}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#02060bb8;align-items:end;display:grid;position:fixed;inset:0}.inline-form{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.setting-list{border-top:1px solid var(--line);gap:0;margin-top:20px;display:grid}.switch-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:76px;display:flex}.switch-row span{gap:4px;display:grid}.switch-row small{color:var(--muted);font-weight:400}.switch-row input{width:48px;height:28px;min-height:28px;accent-color:var(--brass)}.gem-preview{border-bottom:1px solid var(--line);grid-template-columns:repeat(6,1fr);gap:5px;padding:16px 0;display:grid}.gem{color:var(--muted);justify-items:center;gap:4px;display:grid}.gem i{color:#0000;background:var(--gem-color);border:2px solid #fff3;border-radius:50%;place-items:center;width:36px;height:36px;font-style:normal;display:grid}[data-color-assist=true] .gem i{color:#101722;text-shadow:0 1px #ffffff59}[data-color-assist=true] .gem-black i{color:#fff}@media (width<=430px){.development-card{padding-inline:3px}.card-cost-stack{gap:0;left:3px}.game-token.is-compact{width:14px;height:14px}.game-token.is-compact .game-token-count{font-size:var(--fs-xs)}.player-reserved-cards .development-card.is-mini .game-token.is-compact{width:9px;height:9px}}@media (width>=640px){.screen{padding-top:64px}.home-screen{grid-template-columns:1.08fr .92fr;align-items:center;min-height:68vh}.room-code-card{grid-template-columns:1fr auto;align-items:center}.room-code-card p{grid-column:1/-1}.room-code-card>div{justify-content:start}.opponent-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=360px){.screen{width:min(100% - 24px,760px)}.room-strip{padding-inline:12px}.player-row{grid-template-columns:34px minmax(0,1fr) auto;padding-inline:8px}.starting-picker{min-width:60px}.room-code-card strong{letter-spacing:.1em}.game-screen{gap:4px}.development-card{border-radius:var(--r-md);min-height:92px;padding-inline:2px}.card-prestige{font-size:var(--fs-xl);top:5px;left:5px}.card-bonus{width:14px;height:28px;top:4px;right:4px}.card-cost-stack{gap:0;bottom:4px;left:3px}.game-token.is-compact{width:13px;height:13px}.game-token.is-compact .game-token-count{font-size:var(--fs-xs)}.game-token:not(.is-compact){width:35px;height:35px}.player-asset-column .game-token{width:20px;height:20px}.player-assets{gap:1px}.player-reserved-cards{grid-template-columns:repeat(3,43px);gap:2px}.player-reserved-cards .development-card.is-mini{width:43px;min-height:48px}.game-section-heading>span{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.gem-take-panel>.game-section-heading,.viewer-section>.game-section-heading{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.card-sheet-preview{align-self:start}.bank-token-row .game-token-count{font-size:var(--fs-md)}.home-screen{align-content:space-between;gap:34px;min-height:calc(100dvh - 150px);display:grid}.logout-button{min-width:0;min-height:36px;color:var(--muted);font-size:var(--fs-md);text-underline-offset:3px;background:0 0;border:0;font-weight:600;text-decoration:underline}.game-status-header.is-your-turn h1{color:var(--brass-light)}.last-action:before{content:"◂ ";color:var(--brass)}.settings-button{border-radius:var(--r-md);width:44px;min-width:44px;min-height:44px;color:var(--brass-light);background:0 0;border:0;place-items:center;display:grid}.settings-button:hover{background:#d9b8621f}.market-cards{grid-template-columns:repeat(4,minmax(0,1fr));justify-items:center;gap:3px;min-width:0;display:grid}.player-reserved-cards{grid-template-columns:repeat(3, var(--mini-card-width));display:grid}.player-reserved-cards .development-card.is-mini{border-radius:var(--r-md);width:var(--mini-card-width);border-width:1px;max-width:none;min-height:0}.card-sheet-preview .development-card,.card-sheet-body .development-card{width:var(--market-card-width);height:auto;min-height:0;max-height:none}.market-deck{border:1px dashed var(--brass);border-radius:var(--r-md);color:var(--brass-light);font-size:var(--fs-xs);background:#d9b86214;place-content:center;justify-items:center;gap:2px;min-height:0;padding:2px;display:grid}.table-frame{grid-column:1/-1;justify-self:center;gap:5px;width:100%;display:grid}.table-frame .market-tier{grid-template-columns:46px minmax(0,1fr);gap:4px}.table-frame .market-cards{grid-template-columns:repeat(4, minmax(0, var(--market-card-width)));justify-content:center;gap:4px}.table-frame .nobles-section,.table-frame .market-board{grid-column:auto}.game-screen:has(.finished-results){width:100%;box-shadow:none;background:0 0;border:0;padding:0}.card-bonus{width:14px;height:auto;aspect-ratio:var(--card-ratio);border-radius:var(--r-sm);position:absolute}.player-reserved-cards .development-card.is-mini .card-bonus{border-radius:var(--r-sm);width:9px;height:auto;top:4px;right:3px}.player-bonus{font-size:var(--fs-xs);width:16px;height:auto;aspect-ratio:var(--card-ratio);border-radius:var(--r-sm);font-weight:850}.player-bonus-spacer{width:16px;height:20px}.card-sheet-backdrop{place-items:center}.card-action-sheet{overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--sheet-bg);width:min(94%,400px);max-height:90dvh;padding:22px 16px 16px;animation:.22s ease-out sheet-zoom;position:relative;overflow-y:auto;box-shadow:0 24px 70px #0000008c}.sheet-handle{border-radius:var(--r-sm);background:#ffffff38;width:36px;height:4px;display:none;position:absolute;bottom:7px;left:50%;transform:translate(-50%)}.sheet-close{border-radius:var(--r-md);color:var(--muted);font-size:var(--fs-xl);background:0 0;border:0;place-items:center;line-height:1;display:grid;position:absolute;top:4px;right:4px}.card-sheet-body{grid-template-columns:var(--market-card-width) minmax(0, 1fr);align-items:start;gap:14px;margin-top:8px;display:grid}.card-sheet-actions{align-content:start;gap:6px;min-width:0;display:grid}.card-sheet-actions h2{font-size:var(--fs-lg);margin:0;padding-right:34px}.card-sheet-meta{color:var(--muted);font-size:var(--fs-sm);margin:0}.card-sheet-actions .muted-copy{color:var(--muted);font-size:var(--fs-md);margin:4px 0 0}.payment-options{border:0;gap:5px;margin:0;padding:0;display:grid}.payment-option{border:1px solid var(--line);border-radius:var(--r-md);align-items:center;gap:9px;min-height:40px;padding:4px 8px;display:flex}.card-sheet-footer{grid-auto-columns:1fr;grid-auto-flow:column;gap:8px;margin-top:14px;display:grid}.card-sheet-footer button{min-height:46px}@keyframes sheet-zoom{0%{opacity:0;transform:scale(.3)}}@keyframes sheet-pop{0%{opacity:0;transform:scale(.96)}}@media (width>=601px){.card-sheet-backdrop{place-items:center}.card-action-sheet{border-radius:var(--r-lg);padding-top:22px;animation-name:sheet-zoom;box-shadow:0 24px 70px #0000008c}.sheet-handle{display:none}}@media (prefers-reduced-motion:reduce){.card-action-sheet{animation:none}}.top-row .opponents-section,.top-row .nobles-section{grid-column:auto}.opponent-list{grid-template-columns:1fr;gap:4px;display:grid}.opponents-section .player-summary{flex-wrap:wrap;align-items:center;gap:2px;padding:4px 6px;display:grid}.opponents-section .player-summary>header{gap:6px}.opponents-section .player-assets{justify-content:start}.opponents-section .player-asset-column .game-token{width:21px;height:21px}.opponents-section .player-asset-column .game-token-count{font-size:var(--fs-xs)}.opponents-section .player-bonus{font-size:var(--fs-xs);width:16px;height:auto}.development-card{color:#111b29;text-align:left;width:100%;min-width:0;max-width:var(--market-card-width);height:auto;min-height:0;aspect-ratio:var(--card-ratio);background:linear-gradient(155deg,#e2ebf2,#b9c9d8);justify-self:center;display:block;position:relative;overflow:hidden;box-shadow:0 4px 8px #00000038;container-type:inline-size}.topbar-status{flex:auto;align-items:center;min-width:0;display:flex}.topbar-end .room-strip strong{letter-spacing:.02em;white-space:nowrap}.connection-text{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.game-status-header{border-bottom:1px solid var(--line);align-items:center;gap:8px;min-height:0;padding:0 0 3px;display:flex}.game-status-header .last-action{flex:auto;min-width:0;margin:0}.game-status-header .turn-meta{flex:none;margin:0}.turn-waiting{font-size:var(--fs-sm);white-space:nowrap;color:var(--brass-light);font-weight:650}.last-action .turn-waiting:before{content:none}.top-row{grid-column:1/-1;grid-template-columns:minmax(0, 1fr) min(calc(var(--n) * var(--noble-width) + (var(--n) - 1) * 4px), 214px);align-items:start;gap:6px;display:grid}.top-row.has-many-nobles{grid-template-columns:minmax(0, 1fr) min(calc(var(--n) * var(--noble-width) + (var(--n) - 1) * 4px), 236px)}.top-row.has-many-nobles .opponents-section .player-summary{padding:4px}.top-row.has-many-nobles .opponents-section .player-asset-column .game-token{width:17px;height:17px}.top-row.has-many-nobles .opponents-section .player-assets{gap:1px}.top-row.has-many-nobles .noble-req{width:26cqw;font-size:17cqw}.top-row.has-many-nobles .noble-prestige{font-size:30cqw}.available-nobles{scrollbar-width:thin;grid-template-columns:repeat(var(--n), minmax(0, 1fr));flex-wrap:nowrap;gap:4px;padding:0;display:grid;overflow:visible}.noble-tile{border-radius:var(--r-md);color:#2a2117;min-height:0;aspect-ratio:var(--card-ratio);width:100%;max-width:var(--noble-width);background:linear-gradient(145deg,#f2dfb8,#c9aa76);border:1px solid #765f3e;flex:none;grid-template-columns:auto 1fr;align-items:center;gap:3px;padding:0;display:block;position:relative;overflow:hidden;box-shadow:0 4px 9px #0000002e;container-type:inline-size}.noble-prestige{font-family:Georgia,serif;font-size:28cqw;line-height:1;position:absolute;top:4px;left:5px}.noble-requirements{flex-direction:column;justify-content:flex-end;align-items:flex-end;gap:2px;display:flex;position:absolute;inset:4px 3px auto auto}.card-cost-stack .game-token.is-compact{width:23cqw;height:23cqw}.card-cost-stack .game-token.is-compact .game-token-count{font-size:15cqw}.card-cost-stack{white-space:nowrap;flex-direction:column-reverse;align-items:center;gap:0;min-width:0;display:flex;position:absolute;bottom:4px;left:5px}.card-prestige{color:#9c6e09;text-shadow:0 1px #fff5c4;font-family:Georgia,serif;font-size:26cqw;line-height:1;position:absolute;top:3px;left:6px}.topbar-status .turn-status{align-items:center;gap:6px;min-width:0;display:flex}.topbar-status h1{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-lg);margin:0;line-height:1.2;overflow:hidden}.topbar-status .turn-timer{line-height:1.2}.topbar-end .room-strip{min-height:0;font-size:var(--fs-xs);pointer-events:auto;border:0;align-items:center;gap:5px;padding:0;line-height:1.2;position:static}.exit-button{min-width:44px;color:var(--muted);font-size:var(--fs-md);background:0 0;border-color:#0000;align-items:center;gap:2px;line-height:1.2;display:inline-flex}.exit-button:before{content:"‹";font-size:var(--fs-xl);margin-top:-2px;line-height:1}.player-summary>header{flex-wrap:wrap;align-items:center;gap:1px 6px;display:flex}.player-summary .player-summary-meta{flex-wrap:wrap;flex:0 auto;align-items:center;gap:0 6px;min-width:0;display:flex}.player-summary .player-prestige{margin-left:auto}.viewer-section .player-summary{grid-template-columns:auto minmax(0,1fr);align-items:end;gap:2px 8px;padding:3px 6px}.viewer-section .player-summary>header{grid-column:1/-1}.viewer-section .player-assets{grid-area:2/1;align-self:end}.viewer-section .player-reserved-cards{grid-area:2/2;place-self:end}.player-reserved-cards .development-card.is-mini .card-prestige{font-size:var(--fs-md);top:3px;left:4px}.player-reserved-cards .development-card.is-mini .card-cost-stack{gap:0;bottom:3px;left:3px}.player-reserved-cards .development-card.is-mini .game-token.is-compact{width:9px;height:9px}.player-reserved-cards .development-card.is-mini .game-token-count{font-size:var(--fs-micro)}@media (width<=360px){:root{--mini-card-width:42px}.player-reserved-cards .development-card.is-mini .game-token.is-compact{width:8px;height:8px}}@media (width>=601px){.sheet-close{top:4px}.card-action-sheet{padding:22px 16px 16px}}[data-color-assist=true] .game-token{align-content:center;gap:0}[data-color-assist=true] .game-token .game-token-assist{font-size:var(--fs-micro);line-height:1;display:block}[data-color-assist=true] .game-token .game-token-count{line-height:1;font-size:var(--fs-md);transform:none}[data-color-assist=true] .bank-token-row .game-token .game-token-count{font-size:var(--fs-md)}[data-color-assist=true] .player-asset-column .game-token .game-token-assist{font-size:var(--fs-micro)}[data-color-assist=true] .player-asset-column .game-token .game-token-count{font-size:var(--fs-xs)}[data-color-assist=true] .opponents-section .game-token .game-token-assist{font-size:var(--fs-micro)}[data-color-assist=true] .opponents-section .game-token .game-token-count{font-size:var(--fs-xs)}[data-color-assist=true] .card-cost-stack .game-token.is-compact{display:inline-grid}[data-color-assist=true] .card-cost-stack .game-token.is-compact .game-token-assist{font-size:9cqw}[data-color-assist=true] .card-cost-stack .game-token.is-compact .game-token-count{font-size:12cqw}[data-color-assist=true] .is-mini .game-token-assist{display:none}[data-color-assist=true] .player-bonus[data-assist-symbol]:before,[data-color-assist=true] .noble-req[data-assist-symbol]:before{content:attr(data-assist-symbol);font-size:var(--fs-micro);line-height:1;display:block}[data-color-assist=true] .noble-req[data-assist-symbol]:before{font-size:11cqw}.app-shell.is-game .screen{min-height:0;padding:3px 0 max(3px, env(safe-area-inset-bottom));overscroll-behavior:contain;flex-direction:column;flex:auto;width:min(100% - 8px,920px);display:flex;overflow:hidden auto}.game-screen{border-radius:var(--r-lg);background:#080e1673;border:1px solid #d9b86273;grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,392px);min-width:0;margin-block:0;margin-inline:auto;padding:4px 5px 5px;display:grid;box-shadow:inset 0 0 22px #0000004d}.settings-heading{margin:0 0 10px;padding-right:40px}.settings-heading h2{font-size:var(--fs-lg);margin:0}.settings-panel form{gap:8px;display:grid}.player-summary{border:1px solid var(--line);border-radius:var(--r-md);background:#192536db;gap:4px;min-width:0;padding:6px 8px;display:grid;position:relative}.reserved-popover{z-index:25;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel-strong);transform-origin:0 0;gap:6px;padding:8px;animation:.16s ease-out popover-open;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 14px 34px #00000073}.reserved-popover.is-up{transform-origin:0 100%;top:auto;bottom:calc(100% + 6px)}.reserved-popover .development-card{width:var(--market-card-width);flex:0 0 var(--market-card-width)}.card-back{flex:0 0 var(--market-card-width);width:var(--market-card-width);aspect-ratio:var(--card-ratio);border:2px solid var(--line);border-radius:var(--r-md);color:var(--muted);background:repeating-linear-gradient(135deg, var(--panel), var(--panel) 6px, var(--board) 6px, var(--board) 12px);font-size:var(--fs-xl);place-items:center;font-weight:800;display:grid}@keyframes popover-open{0%{opacity:0;transform:scale(.6)}}@media (prefers-reduced-motion:reduce){.reserved-popover{animation:none}}button:not(:disabled):active,.development-card:not(:disabled):active{transform:scale(.97)}.market-cards .development-card{animation:.26s ease-out card-in}@keyframes card-in{0%{opacity:0;transform:scale(.92)}}.game-token-count{font-size:var(--fs-md);text-shadow:0 1px #ffffff6b;font-weight:900;line-height:1;animation:.28s ease-out count-bump}@keyframes count-bump{40%{transform:scale(1.25)}}.last-action{text-overflow:ellipsis;white-space:nowrap;border-radius:var(--r-sm);animation:1.4s ease-out line-flash;overflow:hidden}@keyframes line-flash{0%,30%{background:#d9b86247}to{background:0 0}}.player-summary.is-current{border-color:var(--brass-light);box-shadow:0 0 0 1px var(--brass-light), 0 0 14px #d9b86259;animation:1.8s ease-out current-glow}@keyframes current-glow{0%,35%{box-shadow:0 0 0 2px var(--brass-light), 0 0 26px #f0d98eb3}}.game-status-header.is-your-turn{border-bottom-color:var(--brass-light);background:linear-gradient(90deg,#d9b8622e,#0000 70%);animation:1.8s ease-out header-glow}@keyframes header-glow{0%,35%{background-color:#d9b86252}}.development-card.is-affordable{border-color:#5fd39b;box-shadow:0 0 0 2px #5fd39b8c,0 4px 8px #00000038}.development-card.is-affordable:after{content:"✓";color:#fff;background:var(--success);width:16px;height:16px;font-size:var(--fs-xs);border-radius:50%;place-items:center;font-weight:900;display:grid;position:absolute;bottom:3px;right:3px}.player-reserved-cards .development-card.is-affordable:after{width:12px;height:12px;font-size:var(--fs-micro);bottom:2px;right:2px}.noble-req{aspect-ratio:var(--card-ratio);color:#111927;background:var(--gem-color);border-radius:var(--r-sm);opacity:.55;border:1px solid #ffffffad;place-items:center;width:23cqw;font-size:15cqw;font-weight:850;display:grid}.noble-tile:not([data-has-progress]) .noble-req{opacity:1}.noble-req.is-met{opacity:1;box-shadow:0 0 0 1.5px var(--success)}.game-status-header.is-final-round{background:linear-gradient(90deg,#ff8c5a3d,#0000 75%);border-bottom-color:#ff9c6b}.final-round-label{border:1px solid var(--brass);border-radius:var(--r-sm);font-size:var(--fs-xs);color:#ffb48a;border-color:#ff9c6b;flex:none;padding:1px 5px}.topbar-offline{border-radius:var(--r-pill);color:#ffd2cc;font-size:var(--fs-xs);white-space:nowrap;background:#7823238c;border:1px solid #ff9c918c;flex:none;margin-left:2px;padding:1px 7px;font-weight:700;line-height:1.4}.resolution-panel{border-radius:var(--r-lg);gap:6px;padding:10px 12px;animation:.18s ease-out popover-open;box-shadow:0 10px 30px #00000059}.resolution-heading h2{font-size:var(--fs-lg)}@media (prefers-reduced-motion:reduce){.market-cards .development-card,.game-token-count,.last-action,.player-summary.is-current,.game-status-header.is-your-turn,.resolution-panel{animation:none}}.home-screen h1,.lobby-screen h1,.narrow-screen h1,.first-run h1,.finished-results h1{font-size:var(--fs-display);letter-spacing:-.02em;line-height:1.1}.home-screen,.lobby-screen,.narrow-screen,.finished-results{gap:20px}.lead{max-width:40rem;color:var(--muted);font-size:var(--fs-md);line-height:1.55}.back-button{color:var(--muted);border-radius:var(--r-md);background:0 0;border-color:#0000;min-height:40px;margin-bottom:36px;padding:0 6px}.room-code-input{font-variant-numeric:tabular-nums;letter-spacing:.4em;text-align:center;height:72px;font-weight:800;font-size:var(--fs-2xl);padding-left:calc(14px + .45em)}.winner-banner{border:1px solid var(--brass);border-radius:var(--r-lg);text-align:center;background:linear-gradient(160deg,#d9b86242,#0000 80%);justify-items:center;gap:4px;padding:18px 12px 14px;display:grid}.winner-banner h1{margin:0}.winner-banner p{color:var(--brass-light);margin:0;font-weight:760}.winner-crown{color:var(--brass-light);font-size:var(--fs-2xl);line-height:1;animation:.6s ease-out crown-pop}@keyframes crown-pop{0%{opacity:0;transform:scale(.4)rotate(-12deg)}70%{transform:scale(1.15)}}.result-breakdown{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:4px 8px;display:flex}.result-breakdown i{opacity:.6;font-style:normal}.topbar{z-index:10;min-height:68px;padding:10px max(16px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding-top:max(10px, env(safe-area-inset-top));padding-right:max(16px, env(safe-area-inset-right));background:#0b111be0;border-bottom:1px solid #d9b86242;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.resolution-sheet{gap:10px;display:grid}.resolution-sheet .resolution-heading{padding-right:40px}.return-panel,.noble-choice{gap:8px;display:grid}.sheet-minimize span{font-size:var(--fs-xl);line-height:.6;display:block}.resolution-pill{z-index:30;left:50%;bottom:max(16px, env(safe-area-inset-bottom));border:1px solid var(--brass);border-radius:var(--r-pill);color:var(--on-accent);background:linear-gradient(135deg, var(--brass-light), var(--brass));white-space:nowrap;padding:0 20px;font-weight:800;animation:.18s ease-out popover-open;position:fixed;transform:translate(-50%);box-shadow:0 10px 28px #00000073}.resolution-pill:active{transform:translate(-50%)scale(.97)}.player-summary>header>div:first-child{flex-wrap:wrap;align-items:center;gap:2px 5px;display:flex}.ai-badge{border:1px solid var(--brass);border-radius:var(--r-sm);color:var(--brass-light);font-size:var(--fs-xs);letter-spacing:.04em;padding:0 4px;font-weight:800;line-height:1.4}.ai-thinking{color:var(--muted);font-size:var(--fs-md);white-space:nowrap;font-weight:700;animation:1.4s ease-in-out infinite ai-think}@keyframes ai-think{50%{opacity:.45}}.player-connection{display:none}@media (width<=430px){.app-shell.is-game{height:auto;min-height:100vh;max-height:none;overflow:visible}.app-shell.is-game .screen{overscroll-behavior:auto;flex:none;overflow:clip visible}.game-screen{align-content:start}.opponents-section .player-summary:not(.is-viewer){gap:1px;padding:3px 4px;line-height:1.2}.opponents-section .player-assets{grid-template-columns:repeat(auto-fit,minmax(21px,1fr));gap:2px 1px}.opponents-section .player-summary .player-identity{flex-wrap:nowrap;align-items:center;gap:3px;min-width:0;display:flex}.opponents-section .player-summary h3{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-xs);line-height:1.2;overflow:hidden}.opponents-section .player-summary-meta>*{white-space:nowrap}.opponents-section .player-summary .player-connection{color:var(--emerald);font-size:var(--fs-xs);flex-shrink:0;display:inline}.opponents-section .offline-label{white-space:nowrap;font-size:var(--fs-xs);flex-shrink:0;margin:0}.gem-take-panel{gap:1px;padding:2px 4px}}@media (prefers-reduced-motion:reduce){.ai-thinking{animation:none}}.game-token-red,.bonus-red,.player-bonus.bonus-red,.card-bonus.bonus-red,.noble-req.bonus-red{color:#fff}.game-token-red .game-token-count{text-shadow:0 1px #00000073}.primary-button,.secondary-button,.text-button{min-height:var(--control-h);border-radius:var(--r-md);font-size:var(--fs-md);letter-spacing:.01em;cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-weight:760;display:inline-flex}.primary-button{border:1px solid var(--accent);width:100%;color:var(--on-accent);background:linear-gradient(135deg, var(--accent-strong), var(--accent));box-shadow:0 12px 28px #d9b8622e}.secondary-button{border:1px solid var(--border);width:100%;color:var(--text);background:var(--surface)}.text-button{color:var(--text-muted);background:0 0;border:1px solid #0000}.action-stack button,.join-form .primary-button,.lobby-footer .primary-button,.identity-form .primary-button,.finished-actions button{min-height:var(--control-h-lg);border-radius:var(--r-md);font-size:var(--fs-lg)}.bank-row{gap:4px;display:grid}.bank-token-row{justify-content:space-between;align-items:center;gap:2px;min-width:0;display:flex}.bank-token-row .token-select{min-width:0;min-height:var(--control-h);flex:1 1 0;padding:0}.bank-token-row .game-token:not(.is-compact){width:34px;height:34px}.token-select.is-gold{cursor:help}.take-actions{gap:6px;display:flex}.take-actions>*{white-space:nowrap;width:auto}.take-actions .take-confirm{flex:auto;min-width:0}.take-actions .take-reset{padding:0 12px}.take-actions .take-double{padding:0 14px}.bank-hint{color:var(--text-muted);font-size:var(--fs-xs);margin:0;line-height:1.3}.reserved-link{z-index:1;border:1px solid var(--accent);border-radius:var(--r-pill);min-height:22px;color:var(--accent-strong);font:inherit;font-size:var(--fs-xs);cursor:pointer;background:0 0;align-items:center;padding:0 8px;font-weight:700;display:inline-flex;position:relative}.reserved-link:before{content:"";position:absolute;inset:-11px -4px}.deck-reserve-chip{border-radius:var(--r-pill);color:var(--on-accent);background:var(--accent-strong);font-size:var(--fs-xs);margin-top:2px;padding:1px 6px;font-weight:800}.turn-timer.is-expired{color:var(--text-muted);animation:none}.confirm-sheet h2{font-size:var(--fs-lg);margin:0 0 6px}.confirm-sheet p{color:var(--text-muted);font-size:var(--fs-md);margin:0;line-height:1.5}.secondary-button.is-inline{width:auto}.text-button.back-button{justify-content:flex-start;width:auto}.player-summary-meta>*{white-space:nowrap}.game-screen.is-your-turn{border-color:var(--accent-strong);animation:.7s ease-in-out 4 turn-flash}.player-summary.is-viewer.is-current{animation:.7s ease-in-out 4 turn-flash}@keyframes turn-flash{50%{border-color:var(--accent-strong);box-shadow:0 0 0 3px var(--accent-strong), 0 0 26px var(--accent-strong)}}@media (prefers-reduced-motion:reduce){.game-screen.is-your-turn,.player-summary.is-viewer.is-current{animation:none}}.opponents-section .player-summary{container-type:inline-size}.opponents-section .player-summary>header{flex-wrap:nowrap;gap:4px}.opponents-section .player-summary .player-summary-meta{flex-wrap:nowrap;gap:0 4px}.opponents-section .player-summary .player-prestige{flex:none}.opponents-section .reserved-link{padding:0 5px}@container (width<=230px){.opponents-section .player-summary>header{flex-wrap:wrap;row-gap:2px}.opponents-section .player-summary .player-summary-meta{flex-wrap:wrap;flex:1 0 100%;order:3}}.exit-button,.logout-button{white-space:nowrap}.topbar-status .turn-timer{white-space:nowrap;flex:none}@media (width<=360px){.text-button.exit-button{padding:0 6px}.topbar-end .room-strip{gap:3px}.topbar-end .room-label{display:none}}.top-row.is-multi{grid-template-columns:auto minmax(0,1fr);gap:4px}.top-row.is-multi .opponents-section{grid-template-columns:fit-content(80px) auto;align-items:stretch;gap:4px;display:grid}.top-row.is-multi .available-nobles{grid-template-columns:repeat(var(--noble-cols), minmax(0, var(--noble-width)));place-content:start end}.top-row.is-multi .opponents-section .player-assets{grid-template-columns:repeat(6,19px);gap:2px 1px}.top-row.is-multi .opponents-section .player-asset-column .game-token{width:19px;height:19px}@media (width<=360px){.top-row.is-multi .opponents-section .player-assets{grid-template-columns:repeat(3,21px);gap:2px 3px}.top-row.is-multi .opponents-section .player-asset-column .game-token{width:21px;height:21px}.top-row.is-multi .opponent-list>.player-summary .player-summary-meta{flex-wrap:wrap}.top-row.is-multi .opponents-section{grid-template-columns:fit-content(72px) 84px}.topbar-status .turn-status{gap:3px}.topbar-status .turn-timer:before{content:none}}.top-row.is-multi .opponent-list>.player-summary{align-content:space-evenly;height:100%;padding:4px 5px;container-type:normal}.top-row.is-multi .opponent-list>.player-summary>header{justify-content:flex-start}.opponent-tabs{grid-auto-rows:minmax(36px,1fr);align-content:start;gap:4px;display:grid}.opponent-tab{border:1px solid var(--border);border-radius:var(--r-md);min-width:0;min-height:36px;color:var(--text-muted);background:var(--surface-sunken);font-size:var(--fs-sm);align-items:center;gap:4px;padding:0 7px;font-weight:700;display:flex;position:relative}.opponent-tab-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-right:auto;overflow:hidden}.opponent-tab strong{color:var(--accent-strong);font-size:var(--fs-xl);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-weight:900;line-height:1}.opponent-tab[aria-selected=true]{z-index:1;border-color:var(--accent);color:var(--text);background:var(--surface-raised)}.opponent-tab[aria-selected=true]:after{content:"";border:solid var(--accent);background:inherit;border-width:1px 1px 0 0;width:11px;height:11px;position:absolute;top:50%;right:-7px;transform:translateY(-50%)rotate(45deg)}.top-row.is-multi .opponent-list>.player-summary{border-color:var(--accent)}.opponent-tab strong{margin-left:6px}.opponent-tab.is-current:before{content:"";background:var(--success);border-radius:50%;flex:none;width:7px;height:7px}.opponent-tab.is-disconnected .opponent-tab-name{color:#ff8b82;opacity:.8}.leaderboard-button{color:var(--accent-strong);justify-self:center;align-items:center;gap:6px;font-weight:700;display:inline-flex}.leaderboard-panel{width:min(94%,460px)}.leaderboard-note{color:var(--text-muted);font-size:var(--fs-xs);margin:2px 0 10px}.leaderboard-error{color:var(--danger);justify-items:start;gap:8px;display:grid}.leaderboard-error p{margin:0}.leaderboard-table{border-collapse:separate;border-spacing:0 4px;width:100%;font-size:var(--fs-md);font-variant-numeric:tabular-nums}.leaderboard-table th,.leaderboard-table td{text-align:right;white-space:nowrap;padding:8px 6px}.leaderboard-table thead th{color:var(--text-muted);font-size:var(--fs-xs);padding-block:0 2px;font-weight:600}.leaderboard-table tbody tr{background:var(--surface-sunken)}.leaderboard-table tbody td:first-child{border-radius:var(--r-md) 0 0 var(--r-md)}.leaderboard-table tbody td:last-child{border-radius:0 var(--r-md) var(--r-md) 0;color:var(--text-muted)}.leaderboard-table .leaderboard-rank,.leaderboard-table thead th:first-child{text-align:center;width:2.5em;color:var(--text-muted);font-weight:800}.leaderboard-table .leaderboard-name,.leaderboard-table thead th:nth-child(2){text-align:left;width:100%;max-width:0}.leaderboard-name{text-overflow:ellipsis;font-weight:700;overflow:hidden}.leaderboard-name span{text-overflow:ellipsis;overflow:hidden}.leaderboard-wins{color:var(--accent-strong);font-size:var(--fs-lg);font-weight:900}.leaderboard-tag{border:1px solid var(--accent);border-radius:var(--r-pill);color:var(--accent-strong);font-size:var(--fs-xs);margin-left:6px;padding:0 6px;font-weight:700}.leaderboard-table tr.is-rank-1 .leaderboard-rank{color:#f5c542}.leaderboard-table tr.is-rank-2 .leaderboard-rank{color:#c9d1d9}.leaderboard-table tr.is-rank-3 .leaderboard-rank{color:#d38b5d}.leaderboard-table tr.is-mine td,.leaderboard-table tr.is-mine th{box-shadow:inset 0 1px 0 var(--accent), inset 0 -1px 0 var(--accent)}.admin-entry{min-height:32px;color:var(--text-muted);font-size:var(--fs-xs);opacity:.7;justify-self:center;margin-top:8px;font-weight:600}.admin-panel{width:min(94%,560px)}.admin-login{gap:10px;display:grid}.admin-login input{min-height:var(--control-h)}.admin-message{border-radius:var(--r-md);font-size:var(--fs-sm);margin:0 0 10px;padding:8px 10px}.admin-message.is-error{color:var(--danger);background:#ff786e1a}.admin-message.is-info{color:var(--success);background:#2fa36b1f}.admin-help{color:var(--text-muted);font-size:var(--fs-xs);margin:0 0 10px;line-height:1.5}.admin-list{gap:6px;max-height:min(52dvh,460px);margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.admin-row{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-sunken);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:6px 8px;display:grid}.admin-row.is-selected{border-color:var(--accent)}.admin-pick{place-items:center;width:32px;height:32px;display:grid}.admin-pick input,.admin-keep input{width:18px;height:18px;accent-color:var(--accent)}.admin-info{gap:2px;min-width:0;display:grid}.admin-info strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-info small{color:var(--text-muted);font-size:var(--fs-xs)}.admin-tag{border:1px solid var(--border);border-radius:var(--r-pill);padding:0 6px}.admin-tag.is-legacy{border-color:var(--final);color:var(--final-text)}.admin-keep{color:var(--accent-strong);font-size:var(--fs-xs);white-space:nowrap;align-items:center;gap:4px;font-weight:700;display:inline-flex}.admin-delete{min-height:32px;color:var(--danger);font-size:var(--fs-sm);padding:0 6px}.admin-actions{margin-top:12px;display:grid}@media (width<=360px){.admin-row{grid-template-columns:auto minmax(0,1fr) auto}.admin-keep{grid-column:2}}.history-button{color:var(--accent-strong);justify-self:center;font-weight:700}.history-panel{width:min(96%,640px);max-height:88dvh}.history-filter{flex-wrap:wrap;gap:6px;margin:4px 0 10px;display:flex}.history-chip{border:1px solid var(--border);border-radius:var(--r-pill);min-height:32px;color:var(--text-muted);background:var(--surface-sunken);font-size:var(--fs-sm);padding:0 12px;font-weight:700}.history-chip.is-selected{border-color:var(--accent);color:var(--text);background:var(--surface-raised)}.history-list{gap:6px;max-height:min(64dvh,620px);margin:0;padding:0 2px 0 0;list-style:none;display:grid;overflow-y:auto}.history-round{z-index:1;color:var(--accent-strong);background:var(--sheet-bg);font-size:var(--fs-xs);letter-spacing:.08em;margin:6px 0 4px;padding:2px 0;font-weight:800;position:sticky;top:0}.history-row{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-sunken);border-left-width:3px;grid-template-columns:4.5em minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 8px;display:grid}.history-turn.seat-0 .history-row{border-left-color:#d9b862}.history-turn.seat-1 .history-row{border-left-color:#4f9bd0}.history-turn.seat-2 .history-row{border-left-color:#2fa36b}.history-turn.seat-3 .history-row{border-left-color:#e3263a}.history-player{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm);font-weight:800;overflow:hidden}.history-steps{gap:4px;min-width:0;display:grid}.history-steps p{font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:4px;margin:0;display:flex}.history-tokens{gap:2px;display:inline-flex}.history-tokens .game-token.is-compact{width:20px;height:20px}.history-tokens .game-token-count{font-size:var(--fs-xs)}.history-card{vertical-align:middle;width:44px;display:inline-block}.history-card .development-card{width:44px;max-width:44px;box-shadow:none;border-width:1px}.history-noble{vertical-align:middle;width:36px;display:inline-block}.history-noble .noble-tile{width:36px;max-width:36px;box-shadow:none}.history-score{color:var(--accent-strong);font-size:var(--fs-md);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:900}.key-hint{display:none}@media (width>=1024px){:root{--fs-xs:12px;--fs-sm:13px;--fs-md:15px;--fs-lg:17px;--fs-xl:22px;--fs-2xl:32px;--fs-display:3rem;--mini-card-width:64px}.app-shell{width:min(100%,1240px)}.topbar{min-height:64px;padding-inline:32px}.screen{align-content:center;width:min(100% - 96px,1040px);min-height:calc(100dvh - 65px);padding:48px 0 64px;display:grid}.room-strip{padding-inline:32px}.primary-button,.secondary-button,.text-button,.settings-button,.token-select,.market-deck.deck-reserve-button,.opponent-tab{transition:filter .15s,background-color .15s,border-color .15s,transform .15s}.primary-button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.secondary-button:hover:not(:disabled){border-color:var(--accent)}.text-button:hover:not(:disabled),.settings-button:hover{color:var(--accent-strong)}.first-run{grid-template-rows:repeat(4,auto);grid-template-columns:1.1fr .9fr;align-content:center;column-gap:72px;width:min(100% - 96px,1000px);min-height:100dvh;padding:48px 0;display:grid}.first-run>:not(form){grid-column:1}.first-run>form{grid-area:1/2/-1;align-self:center;margin:0;padding:32px}.first-run .hero-gem{width:112px;height:112px}.home-screen{grid-template-columns:1.15fr .85fr;gap:72px;min-height:0}.home-hero h1{max-width:none;font-size:3.4rem}.home-hero .lead{font-size:var(--fs-lg)}.home-screen .action-stack{border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(145deg,#203047cc,#141f2ecc);padding:28px;box-shadow:0 22px 50px #00000047}.narrow-screen{grid-template-rows:repeat(4,auto);grid-template-columns:1fr minmax(380px,.9fr);align-content:center;column-gap:72px;width:100%;display:grid}.narrow-screen h1{margin:6px 0}.narrow-screen>:not(form){grid-column:1;justify-self:start}.narrow-screen>form{grid-area:1/2/-1;align-self:center;margin:0;padding:32px}.room-code-input{height:88px;font-size:2.6rem}.lobby-screen{grid-template-rows:auto auto auto 1fr;grid-template-columns:minmax(320px,.8fr) 1fr;align-items:start;gap:16px 40px}.lobby-screen>.room-code-card{text-align:center;grid-area:1/1/-1;grid-template-columns:1fr;align-content:center;gap:20px;min-height:340px;padding:36px}.lobby-screen>.room-code-card>div{flex-direction:column;align-items:center;gap:4px}.lobby-screen>.room-code-card strong{font-size:5rem}.lobby-screen>.room-code-card .secondary-button{justify-self:center;min-width:180px}.lobby-screen>:not(.room-code-card){grid-column:2}.player-row{min-height:72px;padding:12px 18px}.finished-results{justify-self:center;width:min(100%,640px)}.modal-backdrop{place-items:center}.card-action-sheet{width:min(94%,480px);padding:28px 24px 22px}.card-sheet-body{grid-template-columns:120px minmax(0,1fr);gap:20px}.card-sheet-preview .development-card,.card-sheet-body .development-card{width:120px;max-width:120px}.noble-choice-row .noble-tile{width:96px;max-width:96px}.history-panel{width:min(94%,760px)}.history-card,.history-card .development-card{width:58px;max-width:58px}.history-noble,.history-noble .noble-tile{width:46px;max-width:46px}.sheet-handle{display:none}.app-shell.is-game{width:100%}.app-shell.is-game .topbar{min-height:56px;padding-inline:24px}.app-shell.is-game .brand,.app-shell.is-game .brand-mark{display:inline}.app-shell.is-game .topbar-status{justify-content:center}.topbar-status h1{font-size:var(--fs-xl)}.topbar-status .turn-timer{font-size:var(--fs-lg)}.app-shell.is-game .screen{width:100%;min-height:0;padding:12px 20px 16px;display:flex;overflow:hidden}.game-screen.is-desktop{--side-l:clamp(230px, 19vw, 300px);--side-r:clamp(330px, 24vw, 380px);--gap:14px;--card-w:min(calc((100dvh - 200px) / 4.7), calc((100vw - var(--side-l) - var(--side-r) - 190px) / 4.85), 230px);--market-card-width:var(--card-w);--noble-width:calc(var(--card-w) * .72);grid-template-columns:var(--side-l) minmax(0, 1fr) var(--side-r);gap:var(--gap) 20px;flex:auto;grid-template-rows:auto minmax(0,1fr);align-content:stretch;width:100%;max-width:1680px;height:100%;padding:12px 16px 16px;display:grid}.game-screen.is-desktop>.game-status-header{grid-area:1/1/auto/-1;padding:2px 4px 8px}.game-screen.is-desktop>.game-status-header .last-action{font-size:var(--fs-md)}.game-screen.is-desktop>.command-pending,.game-screen.is-desktop>.notice{z-index:20;max-width:520px;position:fixed;top:70px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #00000059}.desktop-opponents,.desktop-board,.desktop-side{grid-row:-2;min-height:0}.game-screen.is-desktop.is-final-round{--card-w:min(calc((100dvh - 250px) / 4.7), calc((100vw - var(--side-l) - var(--side-r) - 190px) / 4.85), 230px);grid-template-rows:auto auto minmax(0,1fr)}.game-screen.is-desktop>.final-round-banner{font-size:var(--fs-lg);grid-area:2/1/auto/-1;justify-self:center;padding:6px 28px}.desktop-column-title{color:var(--text-muted);font-size:var(--fs-sm);letter-spacing:.12em;margin:0 0 2px;font-weight:700}.desktop-opponents{flex-direction:column;gap:10px;padding-right:2px;display:flex;overflow-y:auto}.desktop-opponents .player-summary{gap:8px;padding:12px 14px}.desktop-opponents .player-summary>header{flex-wrap:wrap;row-gap:4px}.desktop-opponents .player-summary h3{font-size:var(--fs-lg)}.desktop-opponents .player-summary-meta{font-size:var(--fs-sm);color:var(--text-muted);flex:1 0 100%;order:3}.desktop-opponents .player-prestige{font-size:28px}.desktop-opponents .player-assets{grid-template-columns:repeat(6,minmax(0,1fr));justify-content:stretch;gap:4px}.desktop-opponents .player-asset-column .game-token{width:28px;height:28px}.desktop-opponents .player-connection{color:var(--emerald);font-size:var(--fs-xs);display:inline}.player-reserved-cards.is-opponent{gap:6px;display:flex}.player-reserved-cards.is-opponent .card-back.is-mini{flex:0 0 var(--mini-card-width);width:var(--mini-card-width);font-size:var(--fs-lg)}.desktop-board{justify-content:center;align-items:center;gap:var(--gap);flex-direction:column;display:flex}.desktop-board .nobles-section{width:100%}.desktop-board .available-nobles{justify-content:center;gap:12px;display:flex}.desktop-board .noble-tile{width:var(--noble-width);flex:none;max-width:none}.desktop-board .market-board{gap:var(--gap);display:grid}.desktop-board .market-tier{grid-template-columns:calc(var(--card-w) * .72) repeat(1, auto);gap:14px}.desktop-board .market-cards{grid-template-columns:repeat(4, var(--card-w));gap:14px}.desktop-board .development-card{width:var(--card-w);border-width:2px;max-width:none}.desktop-board .market-deck{font-size:var(--fs-sm);gap:6px}.desktop-board .market-deck strong{font-size:var(--fs-2xl)}.desktop-board .deck-reserve-chip{font-size:var(--fs-sm);padding:2px 10px}.game-screen.is-desktop .development-card:not(:disabled){cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}.game-screen.is-desktop .development-card:not(:disabled):hover{border-color:var(--accent-strong);transform:translateY(-4px);box-shadow:0 12px 24px #00000059}.game-screen.is-desktop .market-deck.deck-reserve-button:hover:not(:disabled){background:#d9b86229;border-style:solid}.desktop-side{gap:var(--gap);flex-direction:column;display:flex;overflow-y:auto}.desktop-side .gem-take-panel{border-radius:var(--r-lg);gap:10px;min-width:0;padding:14px 12px}.desktop-side .gem-take-panel>.game-section-heading{clip-path:none;justify-content:space-between;align-items:baseline;width:auto;height:auto;display:flex;position:static;overflow:visible}.desktop-side .game-section-heading h2{font-size:var(--fs-md);margin:0}.desktop-side .game-section-heading span{color:var(--text-muted);font-size:var(--fs-xs)}.desktop-side .bank-row{gap:12px}.desktop-side .bank-token-row{gap:6px}.desktop-side .bank-token-row .token-select{align-content:center;min-height:66px;position:relative}.desktop-side .bank-token-row .game-token:not(.is-compact){width:40px;height:40px}.desktop-side .token-select:hover:not(:disabled){border-color:var(--line);background:#ffffff0d}.key-hint{border:1px solid var(--line);min-width:18px;height:18px;color:var(--text-muted);background:var(--surface-sunken);border-bottom-width:2px;border-radius:4px;place-items:center;padding:0 5px;font:600 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-grid}.take-actions>button{position:relative}.take-actions .key-hint{z-index:1;position:absolute;top:-8px;right:-4px}.desktop-side .bank-token-row .token-select{padding-bottom:20px}.desktop-side .bank-token-row .key-hint{position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.desktop-side .take-actions .take-reset{padding:0 8px}.desktop-side .take-actions .take-double{padding:0 10px}.primary-button .key-hint{color:var(--text);border-color:var(--accent)}.desktop-side .viewer-section>.game-section-heading{clip-path:none;width:auto;height:auto;position:static;overflow:visible}.desktop-side .viewer-section .player-summary{grid-template-columns:1fr;gap:10px;padding:14px}.desktop-side .viewer-section .player-summary>header{flex-wrap:wrap;row-gap:4px}.desktop-side .viewer-section .player-summary h3{font-size:var(--fs-lg)}.desktop-side .viewer-section .player-prestige{font-size:28px}.desktop-side .viewer-section .player-summary-meta{flex:1 0 100%;order:3}.desktop-side .viewer-section .player-assets{grid-area:auto/1;grid-template-columns:repeat(6,minmax(0,1fr));justify-content:stretch;gap:4px}.desktop-side .viewer-section .player-asset-column .game-token{width:32px;height:32px}.desktop-side .viewer-section .player-reserved-cards{grid-area:auto/1;grid-template-columns:repeat(3, calc(var(--card-w) * .62));justify-self:start;gap:10px}.desktop-side .viewer-section .player-reserved-cards .development-card.is-mini{width:calc(var(--card-w) * .62)}}@media (width>=1024px) and (prefers-reduced-motion:reduce){.game-screen.is-desktop .development-card:not(:disabled):hover,.primary-button:hover:not(:disabled){transform:none}}.final-round-banner{border:1px solid var(--final);border-radius:var(--r-md);color:var(--final-text);background:var(--final-bg);font-size:var(--fs-sm);letter-spacing:.04em;text-align:center;grid-column:1/-1;justify-self:stretch;margin:0;padding:3px 10px;font-weight:800;line-height:1.4;box-shadow:0 0 12px #ff8c464d}.game-screen.is-final-round{border-color:var(--final);box-shadow:0 0 0 1px var(--final), 0 0 18px #ff8c4638, inset 0 0 22px #0000004d}.game-screen.is-countdown-warning,.game-screen.is-your-turn.is-countdown-warning{border-color:var(--alert);animation:.8s ease-in-out infinite countdown-border-alert}@keyframes countdown-border-alert{0%,to{border-color:var(--alert);box-shadow:0 0 0 2px rgb(var(--alert-rgb) / 95%), 0 0 18px rgb(var(--alert-rgb) / 55%)}50%{border-color:rgb(var(--alert-rgb) / 25%);box-shadow:0 0 0 2px rgb(var(--alert-rgb) / 10%), 0 0 18px rgb(var(--alert-rgb) / 0%)}}.turn-timer.is-warning{color:var(--alert)}.turn-timer{min-width:2.6ch;display:inline-block}@media (prefers-reduced-motion:reduce){.game-screen.is-countdown-warning,.game-screen.is-your-turn.is-countdown-warning{box-shadow:0 0 0 2px var(--alert), 0 0 18px rgb(var(--alert-rgb) / 55%);animation:none}}.theme-row{align-items:center;gap:8px;padding:6px 0;display:flex}.theme-row strong{margin-right:auto}.theme-option{border:1px solid var(--line);border-radius:var(--r-pill);min-height:36px;font-size:var(--fs-md);cursor:pointer;align-items:center;padding:0 14px;display:inline-flex}.theme-option input{opacity:0;pointer-events:none;position:absolute}.theme-option.is-selected{border-color:var(--brass-light);color:var(--brass-light);font-weight:760}[data-theme=chiikawa]{color:var(--text);--ink:#bfe3f3;--board:#ffe9e4;--panel:#fff;--panel-strong:#ffeef3;--line:#a9d6ea;--muted:#55778b;--brass:#f58fb0;--brass-light:#bd3a66;--emerald:#3f9d80;--danger:#d9485f;--final:#e0701e;--final-text:#a84a08;--final-bg:#ffd6aad9;--alert:#e0283a;--alert-rgb:224 40 58;--focus:#6f9fe8;--text:#2f4f63;--on-accent:#fff;--surface-sunken:#fff;--sheet-bg:#f6fcff;--success:#2f9e62;background:#bfe3f3;font-family:Yuanti SC,PingFang SC,-apple-system,BlinkMacSystemFont,Helvetica Neue,Microsoft YaHei,system-ui,sans-serif}[data-theme=chiikawa] body{background:0 0}[data-theme=chiikawa] body:before{content:"";z-index:-1;background:url(/themes/chiikawa/bg.jpg) top/cover no-repeat,#bfe3f3;position:fixed;inset:0}@media (width>=700px){[data-theme=chiikawa] body:before{background:url(/themes/chiikawa/bg.jpg) top/auto 100% no-repeat,linear-gradient(#78c1f3,#bfe3f3 40%,#dff3f8)}}[data-theme=chiikawa] .topbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom-color:var(--border);background:#ffffffc7}[data-theme=chiikawa] .brand,[data-theme=chiikawa] .brand-mark{color:var(--accent-strong)}[data-theme=chiikawa] .app-shell.is-game .topbar{border-bottom-color:var(--border)}[data-theme=chiikawa] .game-screen{isolation:isolate;background:#ffffffb3;border-color:#8ccbe4;position:relative;box-shadow:0 6px 24px #2864962e,inset 0 0 18px #bee6fa73}[data-theme=chiikawa] .game-status-header{border-bottom-color:var(--border)}[data-theme=chiikawa] .game-status-header.is-your-turn{background:linear-gradient(90deg,#f58fb038,#0000 70%);border-bottom-color:#f58fb0}[data-theme=chiikawa] .turn-timer.is-warning{color:#e03a55}[data-theme=chiikawa] .player-summary{border-color:var(--border);background:#ffffffeb}[data-theme=chiikawa] .player-summary.is-viewer{background:linear-gradient(135deg,#fff,#fff1f5);border-color:#f58fb0}[data-theme=chiikawa] .player-summary.is-current{border-color:#f58fb0;box-shadow:0 0 0 2px #f58fb0,0 0 14px #f58fb073}[data-theme=chiikawa] .gem-take-panel,[data-theme=chiikawa] .resolution-panel{border-color:var(--border);background:#fff}[data-theme=chiikawa] .resolution-panel{background:linear-gradient(145deg,#fff3d6,#fff);border-color:#f5c46b}[data-theme=chiikawa] .token-select.is-selected{background:#f58fb038;border-color:#e8648d}[data-theme=chiikawa] .over-limit-reminder{color:#d9485f}[data-theme=chiikawa] .market-deck{background:#fff3f6}[data-theme=chiikawa] button.market-deck:not(:disabled){background:#ffe3ec}[data-theme=chiikawa] .primary-button{background:linear-gradient(135deg,#c8467a,#b23860);border-color:#b23860;box-shadow:0 8px 20px #b2386040}[data-theme=chiikawa] input{color:var(--text);border-color:var(--border);background:#fff}[data-theme=chiikawa] .modal-backdrop{background:#234b6966}[data-theme=chiikawa] .payment-option{border-color:var(--border);background:#fff}[data-theme=chiikawa] .payment-option input,[data-theme=chiikawa] .switch-row input{accent-color:#e8648d}[data-theme=chiikawa] .noble-tile{color:var(--text);background:linear-gradient(145deg,#fff0c9,#ffd88f);border-color:#e8c27a}[data-theme=chiikawa] .development-card{color:var(--text);border-color:#d7c3b8;box-shadow:0 3px 8px #96645a38}[data-theme=chiikawa] .development-card[data-bonus=white]{--avatar:url(/themes/chiikawa/chiikawa.png);background:linear-gradient(160deg,#fff,#e9edf0);border-color:#aeb6bd}[data-theme=chiikawa] .development-card[data-bonus=blue]{--avatar:url(/themes/chiikawa/hachiware.png);background:linear-gradient(160deg,#7dbcf5,#3f8fe0);border-color:#2a6fbd}[data-theme=chiikawa] .development-card[data-bonus=green]{--avatar:url(/themes/chiikawa/usagi.png);background:linear-gradient(160deg,#8fd878,#46b04a);border-color:#2f8a36}[data-theme=chiikawa] .development-card[data-bonus=red]{--avatar:url(/themes/chiikawa/momonga.png);background:linear-gradient(160deg,#f68c97,#e0475b);border-color:#b8283c}[data-theme=chiikawa] .development-card[data-bonus=black]{--avatar:url(/themes/chiikawa/kuri.png);background:linear-gradient(160deg,#514c58,#26232c);border-color:#12101a}[data-theme=chiikawa] .card-prestige{color:#fff;text-shadow:0 0 2px #2a1a20,0 0 2px #2a1a20,0 0 3px #2a1a20d9}[data-theme=chiikawa] .development-card[data-bonus=white] .card-prestige{color:#b0603d;text-shadow:0 1px #fff}[data-theme=chiikawa] .card-bonus{aspect-ratio:1;background:var(--avatar) center / contain no-repeat;border:0;border-radius:0;width:80cqw;inset:auto 1px 1px auto;transform:none}[data-theme=chiikawa] .player-reserved-cards .development-card.is-mini .card-bonus{width:27px;height:27px;inset:auto 2px 2px auto;transform:none}[data-theme=chiikawa] .card-bonus .bonus-assist{display:none}[data-theme=chiikawa] .noble-tile:after{content:"";aspect-ratio:1;background:var(--mascot) center / contain no-repeat;pointer-events:none;width:58cqw;position:absolute;bottom:3px;left:3px}[data-theme=chiikawa] .noble-tile[data-mascot="0"]{--mascot:url(/themes/chiikawa/noble-1.png)}[data-theme=chiikawa] .noble-tile[data-mascot="1"]{--mascot:url(/themes/chiikawa/noble-2.png)}[data-theme=chiikawa] .noble-tile[data-mascot="2"]{--mascot:url(/themes/chiikawa/noble-3.png)}[data-theme=chiikawa] .home-hero,[data-theme=chiikawa] .lobby-screen,[data-theme=chiikawa] .narrow-screen,[data-theme=chiikawa] .restoring-screen,[data-theme=chiikawa] .first-run,[data-theme=chiikawa] .finished-results{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:var(--r-lg);background:#fffc;padding:18px}[data-theme=chiikawa] .home-hero{min-height:0}[data-theme=chiikawa] .first-run{min-height:0;margin-top:16px;padding:22px}[data-theme=chiikawa] .room-code-card,[data-theme=chiikawa] .result-row,[data-theme=chiikawa] .player-row{border-color:var(--border);background:#ffffffe6}[data-theme=chiikawa] .home-hero{margin-top:25dvh}[data-theme=chiikawa] .reserved-popover{background:#fffffff0;border-color:#8ccbe4;box-shadow:0 14px 34px #2864964d}[data-theme=chiikawa] .card-back{color:var(--text-muted);background:repeating-linear-gradient(135deg,#e6f4fb,#e6f4fb 6px,#cfe9f6 6px 12px);border-color:#8ccbe4}[data-theme=chiikawa] .last-action{animation-name:line-flash-chiikawa}@keyframes line-flash-chiikawa{0%,30%{background:#f58fb04d}to{background:0 0}}[data-theme=chiikawa] .game-status-header.is-final-round{background:linear-gradient(90deg,#ffbe6e59,#0000 75%);border-bottom-color:#f2a13c}[data-theme=chiikawa] .final-round-label{color:#c66a12;border-color:#f2a13c}[data-theme=chiikawa] .topbar-offline{color:#a3283b;background:#ffe4e8eb;border-color:#f2a0ae}[data-theme=chiikawa] .resolution-panel{box-shadow:0 10px 30px #28649638}[data-theme=chiikawa] .winner-banner{background:linear-gradient(160deg,#ffd6e2cc,#fff9);border-color:#f58fb0}[data-theme=chiikawa] .return-token-row button{color:var(--text);border-color:var(--border);background:#fff}[data-theme=chiikawa] .panel{border-color:var(--border);background:#ffffffeb;box-shadow:0 14px 34px #2864962e}[data-theme=chiikawa] .hero-gem{background:linear-gradient(145deg,#ffe3ec,#ffd0de);border-color:#f58fb0;box-shadow:0 10px 24px #e8648d40}[data-theme=chiikawa] .hero-gem span{color:var(--accent-strong)}[data-theme=chiikawa] .room-strip{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom-color:var(--border);background:#ffffffc7}[data-theme=chiikawa] .app-shell.is-game .room-strip,[data-theme=chiikawa] .topbar-end .room-strip{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0}[data-theme=chiikawa] .resolution-sheet{background:#fffaf2;border-color:#f5c46b}[data-theme=chiikawa] .resolution-pill{background:linear-gradient(135deg,#c8467a,#b23860);border-color:#b23860;box-shadow:0 10px 28px #e8648d59}[data-theme=chiikawa] .game-screen:before{content:"";z-index:-1;border-radius:inherit;-webkit-backdrop-filter:blur(5px);pointer-events:none;position:absolute;inset:0}[data-theme=chiikawa] .card-action-sheet{box-shadow:0 24px 60px #96506e4d}@media (width>=1024px){[data-theme=chiikawa] .app-shell:not(.is-game) .screen{align-content:end;padding-bottom:7dvh}[data-theme=chiikawa] .first-run{min-height:0;margin:max(40px,93dvh - 330px) auto 7dvh;padding:36px}[data-theme=chiikawa] .first-run .hero-gem{width:84px;height:84px;margin-bottom:22px}[data-theme=chiikawa] .home-screen{border:1px solid var(--border);border-radius:var(--r-lg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffd1;padding:36px}[data-theme=chiikawa] .home-hero{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;margin-top:0;padding:0}[data-theme=chiikawa] .home-screen .action-stack{border-color:var(--border);background:#fff;box-shadow:0 10px 30px #28649629}[data-theme=chiikawa] .lobby-screen,[data-theme=chiikawa] .narrow-screen{padding:32px}}[data-theme=chiikawa] .final-round-banner{box-shadow:0 2px 10px #e0701e40}[data-theme=chiikawa] .game-screen.is-final-round{border-color:var(--final);box-shadow:0 0 0 1px var(--final), 0 6px 24px #e0701e40, inset 0 0 18px #ffd6aa73}[data-theme=chiikawa] .game-screen.is-countdown-warning{border-color:var(--alert)}@media (prefers-reduced-motion:reduce){[data-theme=chiikawa] .game-screen.is-countdown-warning{box-shadow:0 0 0 2px var(--alert), 0 0 18px rgb(var(--alert-rgb) / 45%)}}[data-theme=chiikawa] .leaderboard-table tbody tr{background:#eef7fc}[data-theme=chiikawa] .leaderboard-table tr.is-rank-1 .leaderboard-rank{color:#c98a00}[data-theme=chiikawa] .leaderboard-table tr.is-rank-2 .leaderboard-rank{color:#6f7f8c}[data-theme=chiikawa] .leaderboard-table tr.is-rank-3 .leaderboard-rank{color:#b0602e}
