*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--gem-white: #f0ede0;--gem-blue: #4fa3d1;--gem-green: #5aab6d;--gem-red: #d94f4f;--gem-black: #333333;--gem-gold: #f5c842;--tier1-bg: #e8dfc8;--tier1-border: #c9b98a;--tier2-bg: #f7e07a;--tier2-border: #d4b800;--tier3-bg: #2a3a6e;--tier3-border: #1a2558;--tier3-text: #e8e8f5;--bg-table: #1a3a1a;--bg-panel: #0e1f0e;--bg-card: #fff;--text-primary: #f0ede0;--text-muted: #9aaa9a;--border-subtle: rgba(255,255,255,.12);--shadow: 0 4px 16px rgba(0,0,0,.4);--radius: 8px;--radius-sm: 4px;--gap: 12px;--gap-sm: 6px;--gap-lg: 20px}html,body{height:100%;height:100dvh;font-family:Georgia,Times New Roman,serif;background:var(--bg-table);color:var(--text-primary);overflow:hidden}#app{height:100vh;height:100dvh;display:flex;flex-direction:column}h1,h2,h3{font-weight:700;letter-spacing:.02em}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 22px;border:none;border-radius:var(--radius);font-family:inherit;font-size:.95rem;font-weight:600;cursor:pointer;transition:filter .15s,transform .1s;letter-spacing:.03em}.btn:hover:not(:disabled){filter:brightness(1.15)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--gem-gold);color:#1a1000}.btn-secondary{background:#ffffff1f;color:var(--text-primary);border:1px solid var(--border-subtle)}.btn-danger{background:var(--gem-red);color:#fff}.btn-sm{padding:5px 12px;font-size:.8rem}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.lobby-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--gap-lg);padding:var(--gap-lg);overflow-y:auto}.lobby-logo{text-align:center}.logo-title{font-size:clamp(2.5rem,8vw,5rem);background:linear-gradient(135deg,var(--gem-gold) 0%,#fff8d6 50%,var(--gem-gold) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:none;letter-spacing:.1em}.logo-sub{color:var(--text-muted);font-style:italic}.lobby-cards{display:flex;gap:var(--gap-lg);align-items:flex-start;flex-wrap:wrap;justify-content:center;max-width:clamp(760px,80vw,1100px);width:100%}.lobby-card{background:#ffffff0f;border:1px solid var(--border-subtle);border-radius:16px;padding:clamp(20px,2.5vw,36px);display:flex;flex-direction:column;gap:var(--gap);min-width:clamp(280px,28vw,380px);flex:1;max-width:clamp(340px,36vw,480px)}.lobby-card h2{font-size:clamp(1.2rem,1.8vw,1.6rem);color:var(--gem-gold)}.lobby-card label{display:flex;flex-direction:column;gap:6px;font-size:clamp(.85rem,1.1vw,1rem);color:var(--text-muted)}.lobby-card input,.lobby-card select{background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);color:var(--text-primary);padding:clamp(7px,.8vw,12px) clamp(10px,1vw,16px);font-family:inherit;font-size:clamp(.95rem,1.2vw,1.1rem);outline:none;transition:border-color .15s}.lobby-card input:focus,.lobby-card select:focus{border-color:var(--gem-gold)}.lobby-divider{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:clamp(.9rem,1.1vw,1.05rem);padding:0 4px}.error-msg{color:var(--gem-red);font-size:clamp(.82rem,1vw,.95rem);min-height:1.1em}.ai-slots-label{font-size:clamp(.82rem,1vw,.95rem);color:var(--text-muted)}.ai-slot-row{display:flex;align-items:center;gap:var(--gap-sm);font-size:clamp(.85rem,1.1vw,1rem)}.slot-label{width:56px;flex-shrink:0;color:var(--text-muted)}.slot-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;flex-shrink:0;white-space:nowrap;color:var(--text-primary)}.slot-toggle input[type=checkbox]{flex-shrink:0}.diff-select{flex:1;min-width:0;background:#0000004d;border:1px solid rgba(255,255,255,.15);color:var(--text-primary);border-radius:var(--radius-sm);padding:4px 8px;font-size:clamp(.8rem,1vw,.9rem)}.waiting-room{display:flex;flex-direction:column;align-items:center;gap:clamp(12px,1.5vw,24px);padding:clamp(20px,2.5vw,40px)}.room-title{font-size:clamp(1.6rem,2.5vw,2.4rem)}.room-code{color:var(--gem-gold);letter-spacing:.2em}.room-hint{color:var(--text-muted);font-size:clamp(.85rem,1.1vw,1rem)}.player-list{list-style:none;width:100%;max-width:clamp(360px,40vw,540px);display:flex;flex-direction:column;gap:var(--gap-sm)}.player-entry{display:flex;align-items:center;gap:var(--gap-sm);padding:clamp(8px,1vw,14px) clamp(12px,1.5vw,20px);background:#ffffff0f;border-radius:var(--radius);font-size:clamp(.9rem,1.2vw,1.1rem)}.player-dot{width:clamp(10px,1.2vw,14px);height:clamp(10px,1.2vw,14px);border-radius:50%;background:var(--gem-green);flex-shrink:0}.player-dot.empty{background:var(--text-muted)}.player-name{flex:1}.player-name.muted{color:var(--text-muted);font-style:italic}.ai-badge{font-size:clamp(.7rem,.9vw,.85rem);background:#4fa3d140;color:var(--gem-blue);border-radius:4px;padding:2px 8px;text-transform:capitalize}.host-badge{font-size:clamp(.7rem,.9vw,.85rem);background:#f5c84240;color:var(--gem-gold);border-radius:4px;padding:2px 8px}.waiting-msg{color:var(--text-muted);font-style:italic;font-size:clamp(.9rem,1.1vw,1.05rem)}.random-start-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:clamp(.85rem,1.1vw,1rem);color:var(--text-muted);-webkit-user-select:none;user-select:none}.random-start-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--gem-gold);cursor:pointer}.random-start-toggle:has(input:checked){color:var(--gem-gold)}.turn-toast{position:fixed;top:16px;left:50%;transform:translate(-50%);background:var(--gem-gold);color:#1a1000;font-weight:700;padding:8px 22px;border-radius:999px;font-size:.9rem;z-index:100;pointer-events:none;box-shadow:0 4px 20px #0006;animation:toastIn .3s ease}@keyframes toastIn{0%{opacity:0;top:0}to{opacity:1;top:16px}}.game-over-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:200}.game-over-card{background:var(--bg-panel);border:2px solid var(--gem-gold);border-radius:16px;padding:40px;text-align:center;max-width:420px;display:flex;flex-direction:column;gap:16px}.game-over-title{font-size:2rem;color:var(--gem-gold)}.game-over-leaderboard{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;width:100%}.leaderboard-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;background:#ffffff0d;font-size:1rem}.leaderboard-winner{background:#d4af372e;border:1px solid rgba(212,175,55,.45)}.lb-rank{width:32px;text-align:center;font-weight:700;color:var(--text-muted);flex-shrink:0}.leaderboard-winner .lb-rank{color:var(--gem-gold);font-size:1.2rem}.lb-name{flex:1;font-weight:600;text-align:left;display:flex;align-items:center;gap:5px}.leaderboard-winner .lb-name{color:var(--gem-gold)}.lb-pts{font-weight:800;color:var(--gem-gold);flex-shrink:0}.leave-game-btn{margin-right:4px;flex-shrink:0;padding:4px 10px;font-size:.72rem;font-weight:600;border-radius:999px;white-space:nowrap;opacity:.65;background:transparent;border:1px solid rgba(255,80,80,.5);color:#ff7070}.leave-game-btn:hover{opacity:1;background:#ff505026;border-color:#ff7070}.game-over-new-game-btn{margin-top:8px;width:100%;font-size:1rem;padding:12px 0}.fullscreen-toggle-btn{margin-left:auto;flex-shrink:0;padding:4px 10px;font-size:.72rem;font-weight:600;border-radius:999px;white-space:nowrap;opacity:.75}.fullscreen-toggle-btn:hover{opacity:1}.gem-token{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.55);border:2.5px solid #f2d36a;box-shadow:inset 0 -2px 4px #00000040,0 0 0 1px #00000059,0 2px 6px #0000004d;flex-shrink:0;-webkit-user-select:none;user-select:none}.gem-token.sz-xl{width:clamp(60px,5.5vw,80px);height:clamp(60px,5.5vw,80px);font-size:clamp(1.1rem,1.4vw,1.5rem)}.gem-token.sz-lg{width:44px;height:44px;font-size:1rem}.gem-token.sz-md{width:32px;height:32px;font-size:.8rem}.gem-token.sz-sm{width:22px;height:22px;font-size:.65rem}.gem-token.white{background:radial-gradient(circle at 40% 35%,#fff,#c9c4ae);color:#555}.gem-token.blue{background:radial-gradient(circle at 40% 35%,#7bc8ec,#2d7aab)}.gem-token.green{background:radial-gradient(circle at 40% 35%,#7ed98a,#2e7d42)}.gem-token.red{background:radial-gradient(circle at 40% 35%,#f08080,#a82020)}.gem-token.black{background:radial-gradient(circle at 40% 35%,#666,#111)}.gem-token.gold{background:radial-gradient(circle at 40% 35%,#fff0a0,#c8960a);color:#5a3800}.gem-token.clickable{cursor:pointer;transition:transform .15s,filter .15s}.gem-token.clickable:hover{transform:scale(1.06);filter:brightness(1.15)}.gem-token.clickable.selected{outline:3px solid #fff;outline-offset:2px;transform:none;box-shadow:inset 0 -2px 4px #00000040,0 0 0 1px #00000059,0 2px 6px #0000004d,0 0 8px #fff6}.gem-token.clickable:disabled,.gem-token.clickable[data-disabled=true]{opacity:.35;cursor:not-allowed;pointer-events:none}.gem-bank{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}.gem-stack{display:flex;flex-direction:column;align-items:center;gap:4px}.gem-stack-count{font-size:.72rem;font-weight:700;color:var(--text-muted)}.gem-pips{display:flex;flex-wrap:wrap;gap:3px}.gem-pip{width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.25);flex-shrink:0}.gem-pip.white{background:var(--gem-white)}.gem-pip.blue{background:var(--gem-blue)}.gem-pip.green{background:var(--gem-green)}.gem-pip.red{background:var(--gem-red)}.gem-pip.black{background:var(--gem-black)}.gem-pip.gold{background:var(--gem-gold)}.picker-hint{color:var(--text-muted);font-size:.85rem;margin-bottom:8px}.splendor-card{position:relative;border-radius:var(--radius);border:2px solid transparent;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s,border-color .15s;-webkit-user-select:none;user-select:none;flex-shrink:0;background-size:cover;background-position:center;background-repeat:no-repeat;background-blend-mode:soft-light,normal,normal}.splendor-card.interactive{cursor:pointer}.splendor-card.interactive:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 8px 28px #0000008c}.splendor-card.interactive:hover.tier-1{border-color:var(--tier1-border)}.splendor-card.interactive:hover.tier-2{border-color:var(--tier2-border)}.splendor-card.interactive:hover.tier-3{border-color:#7080d8}.splendor-card.selected{outline:3px solid var(--gem-gold);outline-offset:2px}.splendor-card.unaffordable{opacity:.55}.splendor-card{aspect-ratio:4 / 5}.splendor-card.sz-lg{width:clamp(180px,17vw,260px);height:auto}.splendor-card.sz-md{width:var(--card-w, 148px);height:auto}.splendor-card.sz-sm{width:144px;height:auto}.splendor-card.sz-xs{width:104px;height:auto}.splendor-card.tier-1{background-color:#efe3bf;color:#2a1e00}.splendor-card.tier-2{background-color:#ead588;color:#2a1e00}.splendor-card.tier-3{background-color:#5a6387;color:#f4f4f7}.card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:5px 6px 2px;flex-shrink:0}.card-vp{font-size:clamp(1.8rem,3.2vh,3.3rem);font-weight:800;line-height:1;min-width:clamp(28px,4vh,48px);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6)}.card-vp.zero{opacity:0}.card-bonus{width:clamp(26px,4.2vh,48px);height:clamp(26px,4.2vh,48px);border-radius:50%;border:2px solid #f2d36a;box-shadow:0 0 0 1px #00000059;flex-shrink:0}.card-bonus.white{background:radial-gradient(circle at 40% 35%,#fff,#c9c4ae)}.card-bonus.blue{background:radial-gradient(circle at 40% 35%,#7bc8ec,#2d7aab)}.card-bonus.green{background:radial-gradient(circle at 40% 35%,#7ed98a,#2e7d42)}.card-bonus.red{background:radial-gradient(circle at 40% 35%,#f08080,#a82020)}.card-bonus.black{background:radial-gradient(circle at 40% 35%,#666,#111)}.card-body{flex:1}.card-cost{position:absolute;bottom:5px;left:5px;right:5px;display:flex;flex-direction:column;gap:2px;background:linear-gradient(180deg,#0000,#0000004d 80%);padding-top:7px;border-radius:4px}.card-cost-row{display:flex;align-items:center;gap:6px;font-size:1.2rem;font-weight:700}.splendor-card .card-cost-row{font-size:clamp(1rem,1.6vh,1.8rem)}.card-cost-pip{width:20px;height:20px;border-radius:50%;border:2px solid #f2d36a;box-shadow:0 0 0 1px #00000059;flex-shrink:0}.splendor-card .card-cost-pip{width:clamp(16px,2.6vh,30px);height:clamp(16px,2.6vh,30px)}.card-cost-pip.white{background:radial-gradient(circle at 40% 35%,#fff,#c9c4ae)}.card-cost-pip.blue{background:radial-gradient(circle at 40% 35%,#7bc8ec,#2d7aab)}.card-cost-pip.green{background:radial-gradient(circle at 40% 35%,#7ed98a,#2e7d42)}.card-cost-pip.red{background:radial-gradient(circle at 40% 35%,#f08080,#a82020)}.card-cost-pip.black{background:radial-gradient(circle at 40% 35%,#666,#111)}.cost-num{display:inline-flex;align-items:center;justify-content:center;min-width:18px;font-size:1.25rem;font-weight:700;line-height:1;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.55)}.splendor-card .cost-num{min-width:clamp(14px,2.4vh,26px);font-size:clamp(1rem,1.7vh,1.88rem)}.tier-3 .cost-num{color:#fff}.deck-placeholder{border-radius:var(--radius);border:2px dashed;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;gap:4px;cursor:pointer;transition:filter .15s}.deck-placeholder.interactive:hover{filter:brightness(1.2)}.deck-placeholder.tier-1{border-color:var(--tier1-border);color:var(--tier1-border);background:#e8dfc814}.deck-placeholder.tier-2{border-color:var(--tier2-border);color:var(--tier2-border);background:#f7e07a14}.deck-placeholder.tier-3{border-color:#4a5a9e;color:#8898d8;background:#2a3a6e4d}.deck-placeholder{aspect-ratio:4 / 5}.deck-placeholder.sz-md{width:var(--card-w, 148px);height:auto}.deck-placeholder.sz-sm{width:144px;height:auto}.deck-count{font-size:min(2.2rem,calc(var(--card-w, 148px) * .28));font-weight:800;line-height:1}.deck-label{font-size:min(.93rem,calc(var(--card-w, 148px) * .11));text-transform:uppercase;letter-spacing:.08em;line-height:1}.noble-tile{background:linear-gradient(135deg,#e8d9b0,#c9b070);border:2px solid #a07830;border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:4px;padding:6px 5px;color:#2a1800;box-shadow:var(--shadow);flex-shrink:0}.noble-tile{aspect-ratio:1 / 1}.noble-tile.sz-lg{width:clamp(150px,13vw,200px);height:auto}.noble-tile.sz-md{width:var(--noble-w, 108px);height:auto}.noble-tile.sz-sm{width:90px;height:auto}.noble-vp{font-size:clamp(1.2rem,2vh,2.2rem);font-weight:800;color:#fff;align-self:flex-start;text-align:left;text-shadow:0 1px 2px rgba(0,0,0,.75)}.noble-req{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:4px;width:100%;margin-top:auto;overflow:hidden}.noble-req-row{display:inline-flex;align-items:center;gap:2px}.noble-req-num{font-size:clamp(.75rem,1.3vh,1.3rem);font-weight:800;line-height:1;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8)}@media (orientation: portrait) and (min-width: 700px){.board-area{--card-w-by-width: calc((100vw - 16px - 4 * var(--gap-sm)) / 5);--card-w-by-height: calc((100dvh - 420px) / 3 * .8);--card-w: min(var(--card-w-by-width), var(--card-w-by-height));--noble-w: calc(var(--card-w) * .9)}.board-area .card-vp{font-size:clamp(1.6rem,3vw,3rem)}.board-area .card-bonus{width:clamp(24px,3.6vw,44px);height:clamp(24px,3.6vw,44px)}.board-area .card-cost-pip,.board-area .splendor-card .card-cost-pip{width:clamp(14px,2.2vw,28px);height:clamp(14px,2.2vw,28px)}.board-area .splendor-card .card-cost-row,.board-area .cost-num,.board-area .splendor-card .cost-num{font-size:clamp(.9rem,1.7vw,1.7rem)}.board-area .noble-vp{font-size:clamp(1.3rem,2.2vw,2rem)}.board-area .noble-req-num{font-size:clamp(.85rem,1.4vw,1.2rem)}}@media (orientation: portrait) and (max-width: 699px){.board-area{--card-w: calc((100vw - 16px)/5) ;--noble-w: calc(var(--card-w) * .95)}.board-area .card-vp{font-size:clamp(1rem,3.2vw,1.9rem)}.board-area .card-bonus{width:clamp(14px,4vw,26px);height:clamp(14px,4vw,26px)}.board-area .card-cost-pip,.board-area .splendor-card .card-cost-pip{width:clamp(9px,2.6vw,17px);height:clamp(9px,2.6vw,17px)}.board-area .splendor-card .card-cost-row,.board-area .cost-num,.board-area .splendor-card .cost-num{font-size:clamp(.6rem,2vw,1rem)}.board-area .noble-vp{font-size:clamp(.85rem,2.6vw,1.5rem)}.board-area .noble-req-num{font-size:clamp(.55rem,1.6vw,.95rem)}}@media (orientation: landscape) and (max-width: 899px){.board-area{--card-w-by-h: calc(((100dvh - 134px) / 3) * .8);--card-w-by-w: calc((100vw - 259px) / 5.9);--card-w: min(var(--card-w-by-h), var(--card-w-by-w));--card-h: calc(var(--card-w) / .8);--noble-w: calc(var(--card-w) * .9)}.board-area .splendor-card.sz-md,.board-area .deck-placeholder.sz-md{min-width:42px;max-width:130px}.board-area .noble-tile.sz-md{min-width:38px;max-width:110px}.board-area .card-vp{font-size:clamp(.9rem,3.2vh,1.9rem)}.board-area .card-bonus{width:clamp(14px,4vh,26px);height:clamp(14px,4vh,26px)}.board-area .card-cost-pip,.board-area .splendor-card .card-cost-pip{width:clamp(9px,2.6vh,17px);height:clamp(9px,2.6vh,17px)}.board-area .splendor-card .card-cost-row,.board-area .cost-num,.board-area .splendor-card .cost-num{font-size:clamp(.55rem,2vh,1rem)}.board-area .noble-vp{font-size:clamp(.8rem,2.6vh,1.5rem)}.board-area .noble-req-num{font-size:clamp(.55rem,1.6vh,.95rem)}}@media (orientation: landscape) and (min-width: 900px){.board-area{--card-w-by-h: calc(((100dvh - 236px) / 3) * .8);--card-w-by-w: calc((100vw - 300px) / 5.9);--card-w: min(var(--card-w-by-h), var(--card-w-by-w));--card-h: calc(var(--card-w) / .8);--noble-w: calc(var(--card-w) * .9)}.board-area .splendor-card.sz-md,.board-area .deck-placeholder.sz-md{min-width:110px;max-width:240px}.board-area .noble-tile.sz-md{min-width:90px;max-width:190px}.board-area .card-vp{font-size:clamp(1.3rem,3.2vh,2.6rem)}.board-area .card-bonus{width:clamp(22px,4vh,46px);height:clamp(22px,4vh,46px)}.board-area .card-cost-pip,.board-area .splendor-card .card-cost-pip{width:clamp(14px,2.6vh,30px);height:clamp(14px,2.6vh,30px)}.board-area .splendor-card .card-cost-row,.board-area .cost-num,.board-area .splendor-card .cost-num{font-size:clamp(.85rem,2vh,1.8rem)}.board-area .noble-vp{font-size:clamp(1.1rem,2.6vh,2.2rem)}.board-area .noble-req-num{font-size:clamp(.75rem,1.6vh,1.3rem)}}.modal-box .splendor-card.sz-lg .card-vp{font-size:clamp(3rem,4.5vw,4.3rem)}.modal-box .splendor-card.sz-lg .card-bonus{width:clamp(48px,5.5vw,63px);height:clamp(48px,5.5vw,63px)}.modal-box .splendor-card.sz-lg .card-cost-pip{width:clamp(30px,3.2vw,39px);height:clamp(30px,3.2vw,39px)}.modal-box .splendor-card.sz-lg .cost-num,.modal-box .splendor-card.sz-lg .card-cost-row{font-size:clamp(1.6rem,2.2vw,2.5rem)}.modal-box .noble-tile.sz-lg .noble-vp{font-size:clamp(2rem,2.8vw,3rem)}.modal-box .noble-tile.sz-lg .noble-req-num{font-size:clamp(1.3rem,1.8vw,1.9rem)}.modal-box .noble-tile.sz-lg .card-cost-pip{width:clamp(20px,2.2vw,28px);height:clamp(20px,2.2vw,28px)}.game-layout{display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:1fr;height:100vh;height:100dvh;overflow:hidden;gap:0}.opponents-bar{display:flex;gap:var(--gap-sm);padding:10px 16px;background:var(--bg-panel);border-bottom:1px solid var(--border-subtle);overflow-x:auto;flex-shrink:0}.game-center{display:flex;gap:var(--gap);padding:var(--gap-sm) var(--gap);overflow-x:hidden;overflow-y:auto;align-items:flex-start;justify-content:center;flex:1;min-height:0}.my-panel-bar{background:var(--bg-panel);border-top:1px solid var(--border-subtle);padding:10px 16px;flex-shrink:0;max-height:240px;overflow-y:auto}.board-area{display:flex;flex-direction:column;gap:var(--gap-sm);align-items:center}.noble-row{display:flex;gap:var(--gap-sm);align-items:center;justify-content:center}.tier-row{display:flex;gap:var(--gap-sm);align-items:center}.bank-panel{display:flex;flex-direction:column;gap:10px;align-items:stretch;background:#ffffff0d;border:1px solid var(--border-subtle);border-radius:var(--radius);padding:var(--gap);flex-shrink:0}.bank-title{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.bank-row{display:flex;align-items:center;width:100%}.bank-row-primary{justify-content:space-between;gap:12px}.bank-select-gems{display:flex;flex-wrap:nowrap;align-items:center;gap:18px}.bank-gem-item{display:flex;align-items:center;gap:10px;min-height:56px}.bank-row-secondary{justify-content:space-between;gap:12px}.bank-reserve-info{display:flex;align-items:center;gap:10px;flex-shrink:0}.bank-panel .gem-token.sz-md{width:48px;height:48px;font-size:1.06rem}.bank-gem-label{font-size:.84rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--gem-gold)}.bank-gem-count{font-size:.85rem;font-weight:700;min-width:16px;text-align:right}.bank-selection-hint{width:100%;height:auto;min-height:60px;padding:8px 10px;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);background:#0003;font-size:.74rem;color:var(--text-muted);text-align:left;line-height:1.35;overflow:hidden}.bank-actions{display:flex;gap:var(--gap-sm);flex-shrink:0}.bank-actions .btn{padding:10px 16px;font-size:.96rem;font-weight:800}.bank-gem-multi{min-width:34px;text-align:center;font-size:.8rem;font-weight:800;letter-spacing:.04em;color:#1a1000;background:var(--gem-gold);border-radius:999px;padding:4px 8px}.bank-gem-multi.is-empty{visibility:hidden}@media (orientation: portrait) and (min-width: 700px){.game-center{flex-direction:column;align-items:center;gap:8px;padding:var(--gap-sm) 8px;overflow-x:auto}.board-area{width:max-content;max-width:none;gap:var(--gap-sm)}.tier-row,.noble-row{justify-content:center}.bank-panel{width:min(100%,860px);flex-direction:column;align-items:stretch;gap:10px;padding:8px 10px}.bank-row-primary,.bank-row-secondary{justify-content:flex-start;gap:12px}.bank-select-gems{gap:16px;flex-wrap:nowrap}.bank-selection-hint{min-height:52px;font-size:.68rem}.my-panel-bar{max-height:142px}}@media (orientation: portrait) and (max-width: 699px){.game-center{flex-direction:column;align-items:center;gap:6px;padding:var(--gap-sm) 4px;overflow-x:hidden;overflow-y:auto}.board-area{width:100%;align-items:center;gap:var(--gap-sm)}.tier-row,.noble-row{justify-content:center;gap:2px}.bank-panel{width:100%;flex-direction:column;align-items:stretch;gap:6px;padding:6px 8px}.bank-row-primary,.bank-row-secondary{justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.bank-select-gems{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;flex:1 1 auto;min-width:0}.bank-gem-item{justify-content:center;min-height:40px;gap:4px}.bank-panel .gem-token.sz-md{width:34px;height:34px;font-size:.8rem}.bank-gem-multi{min-width:22px;padding:1px 4px;font-size:.65rem}.bank-gem-label{font-size:.7rem}.bank-actions .btn{padding:6px 10px;font-size:.78rem}.bank-selection-hint{flex:1 1 100%;min-height:36px;font-size:.62rem;padding:6px 8px;line-height:1.25}.my-panel-bar{max-height:120px}}@media (orientation: landscape) and (min-width: 900px){.opponents-bar{padding:3px 9px}.game-center{gap:16px;padding:0 6px;align-items:stretch;justify-content:center}.board-area{display:grid;grid-template-columns:max-content max-content;grid-template-areas:"nobles tier3" "nobles tier2" "nobles tier1";column-gap:clamp(4px,1vw,12px);row-gap:clamp(4px,.8vh,8px);align-items:center;flex:0 0 auto;width:auto;min-width:0}.noble-row{grid-area:nobles;flex-direction:column;justify-content:center;align-items:center;gap:clamp(3px,.8vh,6px);align-self:stretch;justify-self:center}.tier-row-3{grid-area:tier3}.tier-row-2{grid-area:tier2}.tier-row-1{grid-area:tier1}.tier-row{justify-content:center;align-items:center;gap:2px;min-width:0}.my-panel-bar{max-height:clamp(120px,22vh,177px);padding:6px 9px;overflow-y:auto}.bank-panel{width:clamp(180px,16vw,300px);gap:6px;padding:6px;align-self:center;align-items:stretch}.bank-panel .gem-token.sz-md{width:clamp(30px,3.5vw,48px);height:clamp(30px,3.5vw,48px);font-size:clamp(.7rem,1vw,1.06rem)}.bank-gem-label{font-size:clamp(.62rem,.85vw,.84rem)}.bank-row-primary,.bank-row-secondary{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:12px}.bank-select-gems{flex-direction:column;align-items:flex-start;gap:10px}.bank-gem-item{min-height:clamp(36px,5vh,50px)}.bank-selection-hint{display:block;width:100%;height:auto;min-height:46px;padding:6px;font-size:.64rem;line-height:1.25}.bank-actions{width:100%;justify-content:flex-start}}@media (orientation: landscape) and (max-width: 899px){.opponents-bar{padding:2px 6px;min-height:0;gap:4px}.opponent-strip{min-height:34px;padding:3px 6px}.game-center{gap:6px;padding:2px 4px;align-items:center;justify-content:center;overflow-x:auto;overflow-y:hidden}.board-area{display:grid;grid-template-columns:max-content max-content;grid-template-areas:"nobles tier3" "nobles tier2" "nobles tier1";column-gap:6px;row-gap:3px;align-items:center;flex:0 0 auto;width:auto;min-width:0}.noble-row{grid-area:nobles;flex-direction:column;justify-content:center;align-items:center;gap:4px;align-self:stretch;justify-self:center}.tier-row-3{grid-area:tier3}.tier-row-2{grid-area:tier2}.tier-row-1{grid-area:tier1}.tier-row{justify-content:center;align-items:center;gap:2px;min-width:0}.my-panel-bar{max-height:clamp(58px,20vh,110px);padding:2px 6px}.bank-panel{width:clamp(150px,32vw,260px);gap:3px;padding:4px 6px;align-self:center;align-items:stretch;max-height:calc(100dvh - 8px);overflow-y:auto}.bank-title{font-size:.62rem}.bank-panel .gem-token.sz-md{width:28px;height:28px;font-size:.72rem}.bank-row-primary,.bank-row-secondary{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:4px}.bank-select-gems{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 6px}.bank-gem-item{min-height:30px;gap:4px}.bank-gem-multi{min-width:22px;padding:1px 4px;font-size:.65rem}.bank-gem-label{font-size:.62rem}.bank-reserve-info{gap:6px}.bank-actions .btn{padding:4px 8px;font-size:.72rem}.bank-selection-hint{display:block;width:100%;height:auto;min-height:30px;padding:3px 4px;font-size:.55rem;line-height:1.15}.bank-actions{width:100%;justify-content:flex-start;gap:4px}}@keyframes discard-pulse{0%,to{box-shadow:0 0 0 1px #dc3c3c8c,0 0 12px #dc3c3c40}50%{box-shadow:0 0 0 1px #ff6464e6,0 0 20px #ff5a5a8c}}.bank-panel.discard-mode{background:linear-gradient(180deg,#5014148c,#320c0c8c);border:1px solid rgba(220,80,80,.7);animation:discard-pulse 2.2s ease-in-out infinite;position:relative}.bank-panel.discard-mode:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);background:repeating-linear-gradient(45deg,#d94040 0,#d94040 8px,#2a0d0d 8px,#2a0d0d 16px);pointer-events:none}.bank-panel.discard-mode .bank-title.discard-title{display:flex;flex-direction:column;align-items:flex-start;gap:2px;color:#ffd6d6;letter-spacing:.08em;padding-top:6px}.discard-title-icon{display:inline-block;color:#ffb84d;font-size:1.05rem;margin-right:6px;text-shadow:0 0 6px rgba(255,180,60,.6)}.discard-title-text{display:inline;font-size:.98rem;font-weight:900;color:#ffe3e3;text-transform:uppercase;letter-spacing:.06em}.discard-title-sub{font-size:.68rem;font-weight:600;color:#ffc8c8bf;text-transform:none;letter-spacing:.02em}.bank-panel.discard-mode .discard-gem-item.is-selected .gem-token{outline-color:#ff8080!important;box-shadow:inset 0 -2px 4px #00000040,0 0 0 1px #00000059,0 2px 6px #0000004d,0 0 12px #ff5a5a99!important}.bank-panel.discard-mode .discard-badge{background:#b02828;color:#fff;border:1px solid rgba(255,140,140,.7);font-weight:900}.bank-panel.discard-mode .discard-badge.is-empty{visibility:hidden}.bank-panel.discard-mode .discard-hint{border-color:#ff787866;background:#500f0f8c;color:#ffdcdc}.bank-panel.discard-mode .discard-confirm-btn{min-width:9.5rem}@media (orientation: landscape) and (min-width: 900px){.bank-panel.discard-mode .discard-title-text{font-size:clamp(.82rem,1vw,1.05rem)}.bank-panel.discard-mode .discard-title-sub{font-size:clamp(.58rem,.75vw,.75rem)}.bank-panel.discard-mode .discard-confirm-btn{min-width:0;width:100%}.bank-panel.discard-mode .discard-actions{flex-direction:column;width:100%;gap:6px}}@media (orientation: portrait) and (max-width: 699px){.bank-panel.discard-mode .discard-gems{display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:6px;width:100%}.bank-panel.discard-mode .discard-title-text{font-size:.86rem}.bank-panel.discard-mode .discard-title-sub{font-size:.62rem}.bank-panel.discard-mode .discard-badge{min-width:22px;padding:1px 4px;font-size:.62rem}.bank-panel.discard-mode .discard-confirm-btn{min-width:0;flex:1 1 auto}}@media (orientation: portrait) and (min-width: 700px){.bank-panel.discard-mode .discard-gems{flex-wrap:wrap;gap:16px}}.opponent-strip{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--gap-sm);background:#ffffff0d;border:1px solid var(--border-subtle);border-radius:var(--radius);padding:8px 12px;min-height:58px;width:max-content;min-width:max-content;flex-shrink:0;transition:border-color .3s}.opponent-strip.active-turn{border-color:var(--gem-gold);box-shadow:0 0 0 1px var(--gem-gold)}.opponent-summary{display:flex;align-items:center;gap:var(--gap-sm);min-width:0;flex-shrink:0}.opponent-details{display:flex;align-items:center;gap:var(--gap-sm);min-width:max-content;flex-shrink:0}.opponent-strip .player-name{display:flex;align-items:center;gap:4px;font-size:.95rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:108px}.ai-icon{font-size:.85rem;flex-shrink:0;line-height:1}.opponent-strip .player-pts{font-size:1.3rem;font-weight:800;color:var(--gem-gold);margin-left:auto;flex-shrink:0}.opponent-strip .mini-gems,.opponent-strip .mini-bonuses{display:flex;gap:3px;flex-wrap:nowrap;flex-shrink:0}.opponent-strip .gem-token.sz-sm{width:26px;height:26px;font-size:.74rem}.mini-bonus{font-size:.8rem;font-weight:800;padding:3px 7px;border-radius:5px}.mini-bonus.white{background:var(--gem-white);color:#333}.mini-bonus.blue{background:var(--gem-blue)}.mini-bonus.green{background:var(--gem-green)}.mini-bonus.red{background:var(--gem-red)}.mini-bonus.black{background:var(--gem-black)}.reserved-badge{font-size:.68rem;background:#ffffff1a;padding:1px 6px;border-radius:4px;color:var(--text-muted);flex-shrink:0}.my-panel{display:flex;gap:var(--gap);align-items:flex-start;overflow-x:auto;padding-bottom:4px}.my-panel-section{display:flex;flex-direction:column;gap:var(--gap-sm);flex-shrink:0}.my-turn-section{justify-content:center}.section-label{font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.my-gems-grid{display:flex;gap:6px;flex-wrap:wrap}.my-gem-slot{display:flex;flex-direction:column;align-items:center;gap:2px}.my-gem-count{font-size:.84rem;font-weight:700;color:var(--text-muted)}.my-bonuses-row{display:flex;gap:4px;flex-wrap:wrap}.my-bonus-chip{font-size:1.02rem;font-weight:800;padding:5px 12px;border-radius:6px}.my-bonus-chip.white{background:var(--gem-white);color:#333}.my-bonus-chip.blue{background:var(--gem-blue)}.my-bonus-chip.green{background:var(--gem-green)}.my-bonus-chip.red{background:var(--gem-red)}.my-bonus-chip.black{background:var(--gem-black)}.my-reserved-row{display:flex;gap:var(--gap-sm)}.my-points-badge{font-size:1.9rem;font-weight:800;color:var(--gem-gold);line-height:1}.my-nobles-row{display:flex;gap:var(--gap-sm)}.my-panel-bar.my-turn{border-top-color:var(--gem-gold);background:linear-gradient(180deg,#164e1ef2,#103a16f2)}.my-panel-bar{background:linear-gradient(180deg,#164e1ef2,#103a16f2)}.my-turn-label{display:inline-flex;align-items:center;justify-content:center;min-width:10.5rem;font-size:1.08rem;font-weight:800;color:var(--gem-gold);text-transform:uppercase;letter-spacing:.08em;margin-bottom:0;padding:8px 14px;border-radius:999px;border:1px solid rgba(245,200,66,.5);background:#f5c8421f}.my-turn-label.is-waiting{color:var(--text-muted);border-color:#ffffff61;background:#164e1e66}.my-panel .gem-token.sz-sm{width:30px;height:30px;font-size:.86rem}@media (orientation: landscape) and (min-width: 900px){.opponent-strip{min-height:clamp(44px,7vh,57px);padding:clamp(3px,.8vh,6px) 10px;gap:6px}.opponent-strip .player-name{font-size:1.12rem;max-width:135px}.opponent-strip .player-pts{font-size:1.42rem}.opponent-strip .gem-token.sz-sm{width:33px;height:33px;font-size:.95rem}.opponent-strip .mini-bonus{font-size:.98rem;padding:2px 6px;border-radius:5px}.opponent-strip .reserved-badge{font-size:1rem;padding:2px 8px}.my-panel{gap:21px;padding-bottom:3px;align-items:center;flex-wrap:nowrap}.my-panel-section{gap:8px}.my-panel-section.points-section,.my-panel-section.gems-section,.my-panel-section.bonuses-section,.my-panel-section.my-turn-section{flex-direction:row;align-items:center;gap:12px}.section-label{font-size:1.2rem;letter-spacing:.06em}.my-points-badge{font-size:clamp(1.5rem,2.8vh,2.25rem)}.my-turn-label{font-size:clamp(1rem,1.6vh,1.38rem);padding:clamp(5px,1vh,9px) 18px}.my-gems-grid{display:flex;flex-wrap:nowrap;gap:15px;align-items:center}.my-gem-slot{flex-direction:row;align-items:center;gap:6px}.my-panel .gem-token.sz-sm{width:clamp(28px,4.5vh,42px);height:clamp(28px,4.5vh,42px);font-size:clamp(.8rem,1.4vh,1.2rem)}.my-gem-count{font-size:1.26rem;font-weight:800;color:var(--text-primary);min-width:15px}.my-bonuses-row{flex-wrap:nowrap;gap:9px;align-items:center}.my-bonus-chip{font-size:clamp(.9rem,1.5vh,1.29rem);padding:clamp(3px,.8vh,6px) 10px;border-radius:9px}}
