:root{--bg-deep:#0a0e17;--bg-panel:#121a2b;--bg-panel-hover:#1a2540;--accent:#22d3ee;--accent-dim:#0891b2;--text:#e2e8f0;--text-muted:#94a3b8;--glow:rgba(34,211,238,0.35);--wood:#2d6a4f;--brick:#9b2226;--wool:#90be6d;--grain:#f9c74f;--ore:#6c757d;--desert:#d4a373}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;margin:0;overflow:hidden;background:var(--bg-deep);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}@keyframes pulse-glow{0%,to{filter:drop-shadow(0 0 8px var(--glow))}50%{filter:drop-shadow(0 0 18px var(--glow))}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes dice-shake{0%{transform:rotate(0deg) scale(1)}25%{transform:rotate(-8deg) scale(1.08)}50%{transform:rotate(8deg) scale(1.12)}75%{transform:rotate(-4deg) scale(1.05)}to{transform:rotate(0deg) scale(1)}}.dice-rolling{animation:dice-shake .5s ease-in-out}.hex-glow:hover{animation:pulse-glow 2s ease-in-out infinite}.hex-hot{filter:drop-shadow(0 0 10px rgba(248,113,113,.45))}.hex-warm{filter:drop-shadow(0 0 6px rgba(34,211,238,.2))}@keyframes vertex-pulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.vertex-pulse{transform-origin:center;transform-box:fill-box;animation:vertex-pulse 1.4s ease-in-out infinite}.dice-roller{display:flex;flex-direction:column;align-items:center;gap:.5rem}.dice-label{color:var(--text-muted);font-size:.8rem;margin:0}.dice-pair{display:flex;gap:.75rem}.die{width:52px;height:52px;background:linear-gradient(145deg,#f8fafc,#cbd5e1);border-radius:10px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:8px;box-shadow:0 4px 12px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.8)}.die-rolling{animation:dice-shake .35s ease-in-out infinite}.die-pip{width:9px;height:9px;border-radius:50%;background:#0f172a;justify-self:center;align-self:center}.dice-total{font-weight:700;color:var(--accent);margin:0}.dice-roll-btn{padding:.65rem 1.25rem;background:linear-gradient(135deg,var(--accent-dim),var(--accent));color:#0a0e17;font-weight:700;border:none;border-radius:8px;cursor:pointer;width:100%}.dice-roll-btn:disabled{opacity:.5;cursor:not-allowed}.game-board-wrap{flex:1 1;min-width:0;max-height:calc(100vh - 200px);display:flex;flex-direction:column}.hex-board{width:100%;height:auto;max-height:calc(100vh - 220px);flex:1 1}.game-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-template-rows:1fr auto;grid-gap:.75rem;gap:.75rem;padding:.75rem}.game-sidebar{grid-row:1/3;grid-column:2;display:flex;flex-direction:column;gap:.65rem;max-height:calc(100vh - 1.5rem);overflow-y:auto}.game-bottom-bar{grid-column:1;grid-row:2}.building-costs{font-size:.8rem}.building-costs h3{font-size:.85rem;margin-bottom:.5rem;color:var(--text-muted)}.cost-row{display:flex;justify-content:space-between;align-items:center;padding:.35rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.cost-vp{margin-left:.35rem;color:var(--text-muted);font-size:.75rem}.cost-pips{display:flex;gap:3px}.cost-pip{width:12px;height:12px;border-radius:50%;border:1px solid rgba(255,255,255,.2)}.cost-note{margin-top:.5rem;font-size:.7rem;color:var(--text-muted)}.dev-hand{background:var(--bg-panel);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:.65rem .85rem}.dev-hand h3{font-size:.8rem;color:var(--text-muted);margin-bottom:.5rem}.dev-hand.empty{color:var(--text-muted);font-size:.85rem}.dev-hand-row{display:flex;flex-wrap:wrap;gap:.5rem}.dev-card{min-width:72px;padding:.45rem .5rem;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:linear-gradient(145deg,#1e293b,#0f172a);text-align:center}.dev-card-label{font-size:.75rem;font-weight:700;display:block}.dev-card-knight{border-color:#64748b}.dev-card-victory_point{border-color:#fbbf24}.dev-card-vp{font-size:.65rem;color:#fbbf24}.setup-hint{color:var(--accent);font-size:.95rem;margin:.5rem 0;padding:.5rem .75rem;background:rgba(34,211,238,.08);border-radius:8px;border:1px solid rgba(34,211,238,.25)}