body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.btn-primary{background-color:#4caf50;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:background .2s}.btn-primary:hover{background-color:#43a047}.btn-primary:disabled{background-color:#9e9e9e;cursor:not-allowed}.btn-secondary{background:none;border:1px solid #999;border-radius:6px;color:#555;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s}.btn-secondary:hover{border-color:#333;color:#333}.full-width{width:100%}.error-msg{color:#e53935;font-size:13px;margin:8px 0}.hint{color:#888;font-size:14px;padding:20px 0}.auth-page{align-items:center;background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460);display:flex;justify-content:center;min-height:100vh}.auth-card{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000004d;max-width:90vw;padding:40px 36px;width:360px}.auth-card h2{color:#333;font-size:22px;margin:0 0 24px;text-align:center}.form-group{margin-bottom:16px}.form-group label{color:#555;display:block;font-size:13px;font-weight:600;margin-bottom:6px}.form-group input{border:1px solid #ddd;border-radius:6px;box-sizing:border-box;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.form-group input:focus{border-color:#4caf50;box-shadow:0 0 0 2px #4caf5026;outline:none}.auth-link{color:#888;font-size:13px;margin-top:16px;text-align:center}.auth-link a{color:#4caf50;font-weight:600;text-decoration:none}.auth-link a:hover{text-decoration:underline}.lobby-page{margin:0 auto;max-width:900px;padding:24px 20px}.lobby-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.lobby-header h2{font-size:22px;margin:0}.lobby-header-right{align-items:center;display:flex;gap:12px}.username-badge{background:#f0f0f0;border-radius:20px;color:#555;font-size:14px;padding:6px 12px}.section{margin-bottom:28px}.section h3{font-size:16px;margin:0 0 12px}.game-list{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.game-card{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:16px;transition:box-shadow .2s}.game-card:hover{box-shadow:0 4px 12px #00000014}.game-card.my-game{background:#f9fff9;border-color:#4caf50}.game-card-title{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.game-card-info{color:#666;font-size:13px;margin-bottom:12px}.status-badge{border-radius:10px;font-size:11px;font-weight:600;padding:3px 8px}.status-waiting{background:#fff3e0;color:#e65100}.status-ready{background:#e8f5e9;color:#2e7d32}.status-in_progress{background:#e3f2fd;color:#1565c0}.status-finished{background:#f3e5f5;color:#6a1b9a}.create-game-form{background:#f9f9f9;border-radius:10px;padding:20px}.form-group-inline{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.btn-choice{background:#fff;border:2px solid #ddd;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:8px 18px;transition:all .2s}.btn-choice.active,.btn-choice:hover{border-color:#4caf50}.btn-choice.active{background:#e8f5e9;color:#2e7d32}.btn-row{display:flex;gap:10px;margin-top:16px}.btn-create{margin-bottom:20px}.filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-bottom:12px}.filter-buttons{display:flex;gap:6px}.btn-filter{background:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:13px;padding:6px 14px;transition:all .2s}.btn-filter:hover{border-color:#999}.btn-filter.active{background:#333;border-color:#333;color:#fff}.room-page{margin:0 auto;max-width:600px;padding:24px 20px}.room-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.room-header h2{font-size:20px;margin:0}.room-meta{align-items:center;color:#555;display:flex;font-size:14px;gap:16px;margin-bottom:20px}.players-list{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.room-player{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:10px;display:flex;justify-content:space-between;padding:14px 18px}.room-player.me{background:#f9fff9;border-color:#4caf50}.room-player.empty{border-style:dashed;color:#aaa}.room-player-name{font-size:15px;font-weight:600}.ready-badge{border-radius:8px;font-size:12px;font-weight:600;padding:4px 10px}.ready-badge.is-ready{background:#e8f5e9;color:#2e7d32}.ready-badge.not-ready{background:#fce4ec;color:#c62828}.room-actions{display:flex;gap:12px;justify-content:center}.btn-ready{background:#fff;border:2px solid #4caf50;border-radius:8px;color:#4caf50;cursor:pointer;font-size:15px;font-weight:600;padding:12px 32px;transition:all .2s}.btn-ready:hover{background:#e8f5e9}.btn-ready.is-ready{background:#4caf50;color:#fff}.btn-start{background:#ff9800;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:12px 32px;transition:background .2s}.btn-start:hover{background:#f57c00}.btn-start:disabled{background:#ccc;cursor:not-allowed}.start-hint{color:#888;font-size:13px;margin:8px 0 0;text-align:center}.loading-page{color:#888;min-height:50vh}:root{--bg-dark:#1a1a2e;--bg-panel:#16213e;--accent-gold:#e6a817;--accent-gold-light:#f5d670;--accent-green:#4caf50;--accent-red:#e53935;--text-light:#eee;--text-muted:#89a;--border-subtle:#ffffff14;--glow-green:0 0 12px #4caf5080;--glow-gold:0 0 14px #e6a81766;--radius-lg:14px;--radius-md:10px;--radius-sm:6px}.game-board{background:#1a1a2e;background:var(--bg-dark);box-sizing:border-box;color:#eee;color:var(--text-light);display:flex;flex-direction:column;font-family:Segoe UI,system-ui,-apple-system,sans-serif;height:100vh;margin:0 auto;max-width:none;min-height:0;overflow:hidden;padding:8px 12px;width:100%}.game-header{background:#16213e;background:var(--bg-panel);border:1px solid #ffffff14;border:1px solid var(--border-subtle);border-radius:10px;border-radius:var(--radius-md);box-shadow:0 4px 20px #0000004d;gap:10px;margin-bottom:8px;min-height:42px;padding:7px 12px}.game-header,.game-info{align-items:center;display:flex}.game-info{color:#89a;color:var(--text-muted);flex:1 1;font-size:14px;gap:8px}.game-info .divider{color:#444}.game-info strong{color:#f5d670;color:var(--accent-gold-light)}.turn-badge{animation:pulse-glow 2s ease infinite;background:linear-gradient(135deg,#4caf50,#2e7d32);background:linear-gradient(135deg,var(--accent-green),#2e7d32);border-radius:20px;box-shadow:0 0 12px #4caf5080;box-shadow:var(--glow-green);color:#fff;font-size:13px;font-weight:700;letter-spacing:.5px;padding:5px 12px}@keyframes pulse-glow{0%,to{box-shadow:0 0 12px #4caf5080;opacity:1}50%{box-shadow:0 0 20px #4caf50b3;opacity:.8}}.btn-back{background:#0000;border-color:#444;color:#89a;color:var(--text-muted);font-size:13px;transition:all .2s}.btn-back:hover{border-color:#e6a817;border-color:var(--accent-gold);color:#fff}.game-error{background:#e539351a;border-radius:6px;border-radius:var(--radius-sm);color:#e53935;color:var(--accent-red);font-size:13px;margin:0 0 6px;padding:6px;text-align:center}.game-layout{grid-gap:10px;align-items:stretch;flex:1 1;gap:10px;grid-template-columns:minmax(0,1fr) 280px}.game-layout,.game-main{display:grid;min-height:0}.game-main{grid-gap:8px;gap:8px;grid-template-areas:"cards cards" "nobles tokens" "log log";grid-template-columns:minmax(280px,1fr) 380px;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.nobles-section{grid-area:nobles}.cards-section{grid-area:cards}.tokens-section{grid-area:tokens}.game-log{grid-area:log}.cards-section,.nobles-section,.tokens-section{background:#16213e;background:var(--bg-panel);border:1px solid #ffffff14;border:1px solid var(--border-subtle);border-radius:10px;border-radius:var(--radius-md);box-shadow:0 2px 12px #0003;padding:8px 10px}.cards-section h3,.nobles-section h3,.tokens-section h3{color:#89a;color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:1.5px;margin:0 0 6px;text-transform:uppercase}.nobles-container{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.noble-card{background:linear-gradient(145deg,#bfa76a,#9c8550);border-radius:10px;border-radius:var(--radius-md);box-shadow:0 3px 10px #0000004d,inset 0 1px 0 #ffffff26;display:flex;flex-direction:column;height:72px;justify-content:space-between;min-width:72px;overflow:hidden;padding:6px;position:relative;transition:transform .2s,box-shadow .2s;width:72px}.noble-card:before{content:"\1F451";font-size:11px;left:6px;opacity:.5;position:absolute;top:4px}.noble-card:hover{box-shadow:0 6px 20px #0006;transform:translateY(-3px)}.noble-card.selectable{border:2px solid #0000;cursor:pointer}.noble-card.selectable:hover{border-color:#e6a817;border-color:var(--accent-gold);box-shadow:0 0 14px #e6a81766;box-shadow:var(--glow-gold)}.noble-points{color:#fff;font-size:18px;font-weight:800;text-align:right;text-shadow:0 2px 4px #0006}.noble-requirements{display:flex;gap:2px;justify-content:center}.token-dot{align-items:center;background-position:50%;background-size:cover;border-radius:50%;box-shadow:0 1px 3px #0000004d;color:#fff;display:inline-flex;font-size:9px;font-weight:800;height:18px;justify-content:center;text-shadow:0 1px 2px #00000080;width:18px}.card-row{align-items:stretch;display:flex;gap:7px;margin-bottom:7px}.card-row:last-child{margin-bottom:0}.card-deck{align-items:center;border:2px solid #ffffff1a;border-radius:10px;border-radius:var(--radius-md);color:#ffffffe6;display:flex;flex-direction:column;font-size:15px;font-weight:800;gap:6px;height:126px;justify-content:center;min-width:88px;overflow:hidden;position:relative;text-shadow:0 2px 4px #0006;-webkit-user-select:none;user-select:none;width:88px}.card-deck.clickable{cursor:pointer}.card-deck.clickable:hover{opacity:.9;transform:scale(1.03)}.deck-count{background:#0000004d;border-radius:10px;font-size:12px;opacity:.7;padding:1px 8px}.card-deck.level1{background:linear-gradient(145deg,#558b2f,#33691e)}.card-deck.level2{background:linear-gradient(145deg,#e6a817,#c49000)}.card-deck.level3{background:linear-gradient(145deg,#c62828,#8e0000)}.tokens-container{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(6,50px);overflow:visible;padding:6px 0 8px}.token,.tokens-container{align-items:center;justify-content:center}.token{background-position:50%;background-size:cover;border-radius:50%;display:flex;flex-direction:column;font-weight:700;height:50px;position:relative;transition:transform .2s,box-shadow .2s;-webkit-user-select:none;user-select:none;width:50px}.token.clickable{cursor:pointer}.token.clickable:hover{transform:scale(1.04)}.token.selected{box-shadow:0 0 0 3px #e6a817,0 0 14px #e6a81766;box-shadow:0 0 0 3px var(--accent-gold),var(--glow-gold);transform:scale(1.06)}.token-label{font-size:9px;height:0;letter-spacing:.5px;opacity:0;overflow:hidden;text-transform:uppercase}.token-count{align-items:center;background:#00000094;border-radius:999px;color:#fff;display:inline-flex;font-size:11px;font-weight:800;height:17px;justify-content:center;min-width:17px;position:absolute;right:3px;text-shadow:0 0 4px #000000e6,1px 1px 3px #000000b3;top:2px;z-index:2}.token.gold .token-count{background:#000000ad;color:#fff;text-shadow:0 1px 3px #000000e6}.selected-count{background:#e6a817;background:var(--accent-gold);border-radius:10px;bottom:2px;color:#1a1a2e;font-size:10px;font-weight:700;left:50%;padding:1px 7px;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:2}.token-actions{align-items:center;display:flex;gap:8px;justify-content:center;margin-top:2px}.selection-hint{color:#89a;color:var(--text-muted);font-size:12px}.take-tokens-btn{background:linear-gradient(135deg,#4caf50,#2e7d32);background:linear-gradient(135deg,var(--accent-green),#2e7d32);border:none;border-radius:6px;border-radius:var(--radius-sm);box-shadow:0 2px 8px #4caf504d;color:#fff;cursor:pointer;font-size:13px;font-weight:700;padding:7px 18px;transition:all .2s}.take-tokens-btn:hover{box-shadow:0 0 12px #4caf5080;box-shadow:var(--glow-green)}.take-tokens-btn:disabled{background:#444;box-shadow:none;cursor:not-allowed}.take-tokens-btn:active:not(:disabled){transform:scale(.97)}.btn-clear{font-size:12px;padding:6px 12px}.players-panel{display:flex;flex-direction:column;gap:8px;max-height:100%;min-height:0;overflow-y:auto;padding-right:2px}.players-panel h3{color:#89a;color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:1.5px;margin:0 0 4px;text-transform:uppercase}.player-card{background:#16213e;background:var(--bg-panel);border:1px solid #ffffff14;border:1px solid var(--border-subtle);border-radius:10px;border-radius:var(--radius-md);box-shadow:0 2px 8px #00000026;padding:8px 10px;transition:border-color .3s,box-shadow .3s}.player-card.active-turn{border-color:#4caf50;border-color:var(--accent-green);border-width:2px;box-shadow:0 0 16px #4caf5033}.player-card.is-me{background:linear-gradient(135deg,#16213e,#4caf500f);background:linear-gradient(135deg,var(--bg-panel),#4caf500f)}.player-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px}.player-name{font-size:13px;font-weight:700}.player-prestige{color:#e6a817;color:var(--accent-gold);font-size:15px;font-weight:800}.player-tokens-row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:7px;margin-bottom:6px}.token-mini{align-items:center;display:inline-flex;flex-direction:column;gap:2px;justify-content:center;min-height:40px;width:30px}.token-mini-icon{background-position:50%;background-size:cover;border-radius:50%;box-shadow:0 1px 3px #0000004d;display:block;height:28px;width:28px}.token-mini-count{color:#fff;font-size:12px;font-weight:800;line-height:1;text-shadow:0 1px 3px #000000bf}.player-stats{border-top:1px solid #ffffff14;border-top:1px solid var(--border-subtle);color:#89a;color:var(--text-muted);display:flex;font-size:11px;gap:8px;margin-top:4px;padding-top:4px}.modal-overlay{align-items:center;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideUp .25s ease;background:#16213e;background:var(--bg-panel);border:1px solid #ffffff14;border:1px solid var(--border-subtle);border-radius:18px;box-shadow:0 20px 60px #00000080;color:#eee;color:var(--text-light);max-width:90vw;min-width:340px;padding:32px 36px;text-align:center}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-content h2,.modal-content h3{margin:0 0 16px}.winner-modal .winner-name{color:#e6a817;color:var(--accent-gold);font-size:28px;font-weight:800;margin:12px 0;text-shadow:0 2px 8px #e6a8174d}.noble-choices{display:flex;gap:14px;justify-content:center;margin:20px 0}.return-hint{color:#89a;color:var(--text-muted);font-size:13px;margin-bottom:14px}.return-tokens-grid{flex-wrap:wrap;margin-bottom:20px}.modal-actions,.return-tokens-grid{display:flex;gap:12px;justify-content:center}.white{background:linear-gradient(145deg,#f5f5f5,#d0d0d0);border:2px solid #bbb;color:#333}.blue{background:linear-gradient(145deg,#2196f3,#1565c0);border:2px solid #0d47a1;color:#fff}.green{background:linear-gradient(145deg,#4caf50,#2e7d32);border:2px solid #1b5e20;color:#fff}.red{background:linear-gradient(145deg,#f44336,#c62828);border:2px solid #b71c1c;color:#fff}.black{background:linear-gradient(145deg,#424242,#1a1a1a);border:2px solid #000;color:#fff}.gold{background:linear-gradient(145deg,#ffd54f,#f9a825);border:2px solid #f57f17;color:#333}.token-icon{border-radius:50%;box-shadow:0 1px 3px #0000004d;display:inline-block;height:22px;margin-right:2px;position:relative;width:22px}.token-icon:after{color:#fff;content:attr(data-count);font-size:12px;font-weight:800;left:50%;position:absolute;text-shadow:0 1px 2px #0009;top:50%;transform:translate(-50%,-50%)}.token-icon.white:after{color:#333}@media (max-width:960px){.game-board{height:auto;min-height:100vh;overflow:visible}.game-layout{height:auto}.game-layout,.game-main{grid-template-columns:1fr}.game-main{grid-template-areas:"nobles" "cards" "tokens" "log";overflow:visible}.players-panel{flex-direction:row;flex-wrap:wrap;overflow:visible}.player-card{flex:1 1;min-width:220px}.card-deck,.dev-card{height:120px;min-width:84px;width:84px}}.game-board .btn-primary{background:linear-gradient(135deg,#4caf50,#2e7d32);background:linear-gradient(135deg,var(--accent-green),#2e7d32);border:none;border-radius:6px;border-radius:var(--radius-sm);box-shadow:0 2px 8px #4caf504d;color:#fff;cursor:pointer;font-size:14px;font-weight:700;padding:10px 24px;transition:all .2s}.game-board .btn-primary:hover{box-shadow:0 0 12px #4caf5080;box-shadow:var(--glow-green)}.game-board .btn-primary:disabled{background:#444;box-shadow:none;cursor:not-allowed}.game-board .btn-secondary{background:#0000;border:1px solid #555;border-radius:6px;border-radius:var(--radius-sm);color:#89a;color:var(--text-muted);cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s}.game-board .btn-secondary:hover{border-color:#e6a817;border-color:var(--accent-gold);color:#e6a817;color:var(--accent-gold)}.loading-page{align-items:center;background:#1a1a2e;background:var(--bg-dark);color:#89a;color:var(--text-muted);display:flex;font-size:16px;height:100vh;justify-content:center}.fly-card-layer{inset:0;pointer-events:none;position:fixed;z-index:200}.fly-card{animation:flyToPlayer .65s cubic-bezier(.4,0,.2,1) forwards;position:absolute}@keyframes flyToPlayer{0%{left:var(--fly-sx);opacity:1;top:var(--fly-sy);transform:scale(1)}to{left:var(--fly-ex);opacity:.5;top:var(--fly-ey);transform:scale(.35)}}.dev-card{background-position:50%;background-repeat:no-repeat;background-size:cover;border:2px solid #ffffff1a;border-radius:8px;box-shadow:0 3px 10px #00000059;cursor:pointer;display:flex;flex-direction:column;height:126px;justify-content:space-between;min-width:88px;overflow:hidden;position:relative;transition:transform .2s,box-shadow .2s;width:88px}.dev-card:hover{box-shadow:0 10px 25px #00000073;transform:translateY(-3px)}.dev-card.can-buy{box-shadow:0 0 0 2px #4caf50,0 0 14px #4caf5059}.dev-card__top{align-items:flex-start;display:flex;justify-content:space-between;padding:4px 5px 0;position:relative;z-index:1}.dev-card__level{background:#0000008c;font-size:12px;line-height:1.3;padding:2px 7px;text-shadow:0 1px 2px #00000080}.dev-card__level,.dev-card__points{border-radius:6px;color:#fff;font-weight:800}.dev-card__points{background:#00000073;font-size:15px;line-height:1;min-width:14px;padding:2px 6px;text-align:right;text-shadow:0 1px 3px #0009}.dev-card__points:empty{display:none}.dev-card__bottom{padding:0 3px 4px;position:relative;z-index:1}.dev-card__cost-row{display:flex;gap:2px;justify-content:center}.dev-card__cost-pip{align-items:center;border-radius:12px;box-shadow:0 1px 4px #00000059;color:#fff;display:inline-flex;font-size:10px;font-weight:800;justify-content:center;line-height:1.3;padding:1px 5px;text-shadow:0 1px 2px #0009;white-space:nowrap}.dev-card__cost-pip.white{background:linear-gradient(145deg,#f5f5f5,silver);border:1.5px solid #aaa;color:#333;text-shadow:none}.dev-card__cost-pip.blue{background:linear-gradient(145deg,#2196f3,#1565c0);border:1.5px solid #0d47a1}.dev-card__cost-pip.green{background:linear-gradient(145deg,#4caf50,#2e7d32);border:1.5px solid #1b5e20}.dev-card__cost-pip.red{background:linear-gradient(145deg,#f44336,#c62828);border:1.5px solid #b71c1c}.dev-card__cost-pip.black{background:linear-gradient(145deg,#555,#222);border:1.5px solid #000}.dev-card__actions{align-items:center;animation:cardFadeIn .12s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;border-radius:10px;display:flex;gap:8px;inset:0;justify-content:center;position:absolute;z-index:2}@keyframes cardFadeIn{0%{opacity:0}to{opacity:1}}.dev-card__btn{border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:700;padding:5px 10px;transition:background .15s,transform .1s}.dev-card__btn:active{transform:scale(.95)}.dev-card__btn--buy{background:linear-gradient(135deg,#4caf50,#2e7d32)}.dev-card__btn--buy:hover{background:linear-gradient(135deg,#66bb6a,#388e3c)}.dev-card__btn--reserve{background:linear-gradient(135deg,#ff9800,#e65100)}.dev-card__btn--reserve:hover{background:linear-gradient(135deg,#ffb74d,#f57c00)}.mini-dev-card{background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #ffffff0f;border-radius:5px;box-shadow:0 1px 4px #00000059,inset 0 1px 0 #ffffff1a;display:flex;flex-direction:column;height:46px;overflow:hidden;position:relative;transition:transform .15s,box-shadow .15s;width:34px}.mini-dev-card__info{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:flex-end;padding:2px 3px}.mini-dev-card__points{align-self:flex-end;font-size:10px;font-weight:800;line-height:1;text-shadow:0 1px 1px #00000040}.mini-dev-card__gem{border-radius:50%;box-shadow:inset 0 -1px 2px #0000004d;height:12px;width:12px}.card-tooltip{animation:tooltipIn .15s ease;background:#1e2a45;border:1px solid #ffffff1f;border-radius:8px;bottom:calc(100% + 8px);box-shadow:0 8px 24px #00000080;color:#eee;left:50%;padding:8px;pointer-events:none;position:absolute;transform:translateX(-50%);width:120px;z-index:50}@keyframes tooltipIn{0%{opacity:0;transform:translateX(-50%) translateY(4px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.card-tooltip__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.card-tooltip__pts{font-size:16px;font-weight:800}.card-tooltip__gem{border-radius:50%;box-shadow:inset 0 -1px 2px #0000004d,0 1px 2px #0003;height:16px;width:16px}.card-tooltip__cost{display:flex;flex-wrap:wrap;gap:3px}.card-tooltip__cost .gem-pip{font-size:10px;height:18px;width:18px}.card-tooltip:after{border:6px solid #0000;border-top-color:#1e2a45;content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}.reserved-dev-card{background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #ffffff14;border-radius:7px;box-shadow:0 2px 6px #00000040;height:76px;justify-content:space-between;overflow:hidden;width:54px}.reserved-dev-card,.reserved-dev-card__info{display:flex;flex-direction:column;position:relative}.reserved-dev-card__info{gap:3px;margin-top:auto;padding:3px 4px 4px;z-index:1}.reserved-dev-card__header{align-items:center;display:flex;justify-content:space-between}.reserved-dev-card__level{background:#00000080;border-radius:4px;color:#fff;font-size:8px;font-weight:800;padding:1px 4px;text-shadow:0 1px 1px #00000080}.reserved-dev-card__pts{background:#0006;border-radius:4px;color:#fff;font-size:11px;font-weight:800;padding:0 4px;text-shadow:0 1px 2px #00000080}.reserved-dev-card__cost{display:flex;flex-wrap:wrap;gap:2px}.reserved-dev-card__cost .gem-pip{font-size:8px;height:14px;width:14px}.reserved-dev-card__buy-btn{background:#4caf50;border:none;border-radius:4px;bottom:2px;color:#fff;cursor:pointer;font-size:10px;font-weight:700;padding:2px 8px;position:absolute;right:2px;transition:background .15s}.reserved-dev-card__buy-btn:hover{background:#388e3c}.pp-purchased-section{margin-bottom:2px;margin-top:5px}.pp-section-label{color:var(--text-muted);font-size:10px;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.pp-purchased-stacks{display:flex;flex-wrap:wrap;gap:6px}.pp-card-stack{align-items:center;display:flex;flex-direction:column;width:36px}.pp-stack-cards{position:relative;width:34px}.pp-stack-item{left:0;position:absolute;transition:transform .15s}.pp-stack-item:hover{transform:translateY(-4px);z-index:30!important}.pp-stack-count{background:#ffffff14;border-radius:8px;color:var(--text-muted);font-size:9px;font-weight:700;margin-top:3px;padding:1px 6px;text-align:center;white-space:nowrap}.pp-nobles-section{margin-bottom:2px;margin-top:4px}.pp-nobles-row{display:flex;gap:4px}.pp-noble{align-items:center;background:linear-gradient(145deg,#bfa76a,#9c8550);border-radius:6px;box-shadow:0 2px 6px #0000004d,inset 0 1px 0 #ffffff26;cursor:pointer;display:flex;flex-direction:column;height:30px;justify-content:center;position:relative;width:30px}.pp-noble-tooltip{animation:nobleTooltipIn .15s ease;background:#1e2a45;border:1px solid #ffffff1f;border-radius:8px;bottom:calc(100% + 8px);box-shadow:0 8px 24px #00000080;color:#eee;left:50%;padding:8px;pointer-events:none;position:absolute;text-align:center;transform:translateX(-50%);width:120px;z-index:50}@keyframes nobleTooltipIn{0%{opacity:0;transform:translateX(-50%) translateY(4px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.pp-noble-tooltip__title{color:var(--accent-gold-light);font-size:13px;font-weight:700;margin-bottom:6px}.pp-noble-tooltip__req{display:flex;gap:3px;justify-content:center}.pp-noble-tooltip__req .gem-pip{font-size:10px;height:18px;width:18px}.pp-noble-tooltip:after{border:6px solid #0000;border-top-color:#1e2a45;content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}.pp-token-total{align-items:center;background:#ffffff0f;border-radius:10px;color:var(--text-muted);display:inline-flex;font-size:10px;font-weight:700;justify-content:center;margin-left:2px;padding:2px 6px}.pp-noble-crown,.pp-noble-pts{font-size:10px;line-height:1}.pp-noble-pts{color:#fff;font-weight:800;text-shadow:0 1px 2px #0006}.pp-reserved-section{margin-top:6px}.pp-reserved-row{display:flex;flex-wrap:wrap;gap:6px}.purchase-modal{animation:slideUp .25s ease;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:18px;box-shadow:0 20px 60px #0009;color:var(--text-light);max-width:90vw;min-width:380px;overflow:hidden;padding:28px 32px;position:relative}.purchase-modal h3{font-size:18px;letter-spacing:.5px;margin:0 0 18px;text-align:center}.purchase-modal__card-preview{display:flex;justify-content:center;margin-bottom:16px}.purchase-modal__card{border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 6px 20px #0006;overflow:hidden;width:110px}.purchase-modal__card.white{background:linear-gradient(160deg,#fafafa,#d8d8d8);color:#333}.purchase-modal__card.blue{background:linear-gradient(160deg,#1e88e5,#0d47a1);color:#fff}.purchase-modal__card.green{background:linear-gradient(160deg,#43a047,#1b5e20);color:#fff}.purchase-modal__card.red{background:linear-gradient(160deg,#e53935,#9a0007);color:#fff}.purchase-modal__card.black{background:linear-gradient(160deg,#424242,#111);color:#fff}.purchase-modal__card-art{height:60px;overflow:hidden;position:relative}.purchase-modal__card-art.white{background:linear-gradient(135deg,#e8e8e8,silver)}.purchase-modal__card-art.blue{background:linear-gradient(135deg,#1565c0,#0d47a1)}.purchase-modal__card-art.green{background:linear-gradient(135deg,#2e7d32,#1b5e20)}.purchase-modal__card-art.red{background:linear-gradient(135deg,#c62828,#7f0000)}.purchase-modal__card-art.black{background:linear-gradient(135deg,#333,#111)}.purchase-modal__card-art .sparkle{background:#ffffff73;border-radius:50%;height:4px;position:absolute;width:4px}.purchase-modal__card-art .sparkle:first-child{left:20px;top:14px}.purchase-modal__card-art .sparkle:nth-child(2){right:18px;top:30px}.purchase-modal__card-art .sparkle:nth-child(3){bottom:12px;left:36px}.purchase-modal__card-info{padding:8px 10px 10px}.purchase-modal__card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.purchase-modal__card-pts{font-size:20px;font-weight:800;text-shadow:0 1px 2px #0000004d}.purchase-modal__card-cost{display:flex;flex-wrap:wrap;gap:3px}.purchase-modal__discount{align-items:center;background:#4caf501a;border-radius:8px;color:#81c784;display:flex;font-size:12px;gap:6px;justify-content:center;margin-bottom:14px;padding:6px 12px}.purchase-modal__discount-label{margin-right:4px}.purchase-modal__payment{margin-bottom:20px}.purchase-modal__payment-header{align-items:center;color:var(--text-muted);display:flex;font-size:13px;justify-content:space-between;letter-spacing:.5px;margin-bottom:10px;text-transform:uppercase}.purchase-modal__gold-avail{color:#ffd54f;font-size:12px;font-weight:600}.purchase-modal__row{align-items:center;border-bottom:1px solid #ffffff0a;display:flex;gap:8px;padding:8px 0}.purchase-modal__row:last-child{border-bottom:none}.purchase-modal__arrow{color:var(--text-muted);font-size:16px;margin:0 4px}.purchase-modal__plus{color:var(--text-muted);font-size:16px;font-weight:700}.purchase-modal__token-group{align-items:center;display:flex;gap:4px}.purchase-modal__gem-large{font-size:14px!important;height:32px!important;width:32px!important}.purchase-modal__adj-btn{align-items:center;background:#ffffff0f;border:1px solid #ffffff26;border-radius:50%;color:var(--text-light);cursor:pointer;display:flex;font-size:16px;font-weight:700;height:26px;justify-content:center;line-height:1;padding:0;transition:all .15s;width:26px}.purchase-modal__adj-btn:hover:not(:disabled){background:#ffffff26;border-color:var(--accent-gold)}.purchase-modal__adj-btn:disabled{cursor:not-allowed;opacity:.25}.purchase-modal__actions{display:flex;gap:12px;justify-content:center;margin-top:4px}.purchase-modal__anim-layer{align-items:center;display:flex;gap:6px;inset:0;justify-content:center;pointer-events:none;position:absolute;z-index:10}.purchase-modal__flying-gem{animation:gemFlyUp .5s ease forwards;font-size:0!important;height:28px!important;opacity:0;width:28px!important}@keyframes gemFlyUp{0%{opacity:1;transform:translateY(0) scale(1)}60%{opacity:1;transform:translateY(-60px) scale(1.2)}to{opacity:0;transform:translateY(-100px) scale(.5)}}.purchase-modal--animating .purchase-modal__card-preview{animation:cardPulse .6s ease}@keyframes cardPulse{0%{filter:brightness(1);transform:scale(1)}50%{filter:brightness(1.3);transform:scale(1.06)}to{filter:brightness(1);transform:scale(1)}}.purchase-modal--animating .purchase-modal__payment{opacity:.3;transition:opacity .3s}.reserve-modal{animation:slideUp .25s ease;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:18px;box-shadow:0 20px 60px #00000080;color:var(--text-light);max-width:400px;min-width:300px;padding:28px 32px;text-align:center}.reserve-modal h3{font-size:18px;font-weight:700;margin:0 0 16px}.reserve-modal__card-preview{display:flex;justify-content:center;margin-bottom:16px}.reserve-modal__card{border:1px solid #ffffff0f;border-radius:10px;box-shadow:0 4px 16px #0006;display:flex;flex-direction:column;height:140px;overflow:hidden;width:96px}.reserve-modal__card.white{background:linear-gradient(160deg,#fafafa,#d8d8d8);color:#333}.reserve-modal__card.blue{background:linear-gradient(160deg,#1e88e5,#0d47a1);color:#fff}.reserve-modal__card.green{background:linear-gradient(160deg,#43a047,#1b5e20);color:#fff}.reserve-modal__card.red{background:linear-gradient(160deg,#e53935,#9a0007);color:#fff}.reserve-modal__card.black{background:linear-gradient(160deg,#424242,#111);color:#fff}.reserve-modal__card-art{flex-shrink:0;height:56px;overflow:hidden;position:relative}.reserve-modal__card-art.white{background:linear-gradient(135deg,#e8e8e8,silver)}.reserve-modal__card-art.blue{background:linear-gradient(135deg,#1565c0,#0d47a1)}.reserve-modal__card-art.green{background:linear-gradient(135deg,#2e7d32,#1b5e20)}.reserve-modal__card-art.red{background:linear-gradient(135deg,#c62828,#7f0000)}.reserve-modal__card-art.black{background:linear-gradient(135deg,#333,#111)}.reserve-modal__card-art .sparkle{background:#ffffff73;border-radius:50%;height:3px;position:absolute;width:3px}.reserve-modal__card-art .sparkle:first-child{left:18px;top:12px}.reserve-modal__card-art .sparkle:nth-child(2){right:16px;top:28px}.reserve-modal__card-art .sparkle:nth-child(3){bottom:10px;left:30px}.reserve-modal__card-info{display:flex;flex:1 1;flex-direction:column;justify-content:space-between;padding:4px 6px 5px}.reserve-modal__card-header{align-items:center;display:flex;justify-content:space-between}.reserve-modal__card-pts{font-size:17px;font-weight:800;text-shadow:0 1px 2px #00000040}.reserve-modal__card-cost{display:flex;flex-wrap:wrap;gap:2px;margin-top:auto}.reserve-modal__blind{display:flex;justify-content:center;margin-bottom:16px}.reserve-modal__blind-deck{align-items:center;border:2px solid #ffffff1a;border-radius:10px;color:#ffffffe6;display:flex;flex-direction:column;font-size:18px;font-weight:800;gap:6px;height:140px;justify-content:center;text-shadow:0 2px 4px #0006;width:96px}.reserve-modal__blind-deck.level1{background:linear-gradient(145deg,#558b2f,#33691e)}.reserve-modal__blind-deck.level2{background:linear-gradient(145deg,#e6a817,#c49000)}.reserve-modal__blind-deck.level3{background:linear-gradient(145deg,#c62828,#8e0000)}.reserve-modal__blind-label{background:#0000004d;border-radius:10px;font-size:12px;opacity:.7;padding:2px 10px}.reserve-modal__info{margin:12px 0 16px}.reserve-modal__gold-msg{align-items:center;color:var(--accent-gold-light);display:flex;font-size:14px;gap:6px;justify-content:center;margin:0 0 6px}.reserve-modal__warn{color:var(--accent-red);font-size:12px}.reserve-modal__no-gold{color:var(--text-muted);font-size:13px;margin:0 0 6px}.reserve-modal__token-count{color:var(--text-muted);font-size:12px;margin:0}.reserve-modal__actions{display:flex;gap:12px;justify-content:center}.game-log{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:0 2px 12px #0003;display:flex;flex-direction:column;max-height:none;min-height:0;padding:8px 10px}.game-log h3{color:var(--text-muted);flex-shrink:0;font-size:12px;font-weight:600;letter-spacing:1.5px;margin:0 0 5px;text-transform:uppercase}.game-log__list{display:flex;flex:1 1;flex-direction:column;gap:2px;overflow-y:auto}.game-log__list::-webkit-scrollbar{width:4px}.game-log__list::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.game-log__entry{align-items:center;border-radius:4px;display:flex;font-size:11px;gap:5px;line-height:1.35;padding:2px 3px;transition:background .15s}.game-log__entry:hover{background:#ffffff0a}.game-log__icon{flex-shrink:0;font-size:11px;text-align:center;width:16px}.game-log__round{color:var(--text-muted);flex-shrink:0;font-size:10px;font-weight:600;min-width:22px;opacity:.5}.game-log__name{color:var(--accent-gold-light);flex-shrink:0;font-weight:700;white-space:nowrap}.game-log__text{color:var(--text-light);opacity:.9}body{background-color:#f0f0f0;font-family:Arial,sans-serif;margin:0;padding:0}.App{text-align:center}.App-header{background-color:#282c34;color:#fff;margin-bottom:20px;padding:20px}.App-header h1{margin:0}main{padding:0 20px}
/*# sourceMappingURL=main.1694b616.css.map*/