:root{--parchment: #f4e4c8;--parchment-deep: #e6d2ad;--ink: #2c1f10;--ink-soft: #5b4022;--terrain-forest: #2f9d35;--terrain-forest-deep: #18681a;--terrain-hills: #d8541b;--terrain-hills-deep: #8a3008;--terrain-pasture: #b5d840;--terrain-pasture-deep: #7da316;--terrain-fields: #f4bd1e;--terrain-fields-deep: #c08820;--terrain-mountains: #7c6e62;--terrain-mountains-deep: #2c241e;--terrain-desert: #f0d68c;--terrain-desert-deep: #c08c30;--terrain-sea: #3da4d2;--terrain-sea-deep: #155b86;--terrain-gold: #f0c020;--token-bg: #fbf3df;--token-bg-deep: #e8d6a8;--token-hot: #b32a2a;--player-crimson: #e2243f;--player-cobalt: #1a5cc8;--player-bone: #f4ecd6;--player-ember: #f08020;--player-moss: #2c9a4c;--player-saffron: #f4c81c;--player-indigo: #6a32a8;--player-walnut: #8a4a1e;--track-science: #3d7a4a;--track-politics: #2a5a9c;--track-commerce: #c89220;--font-display: "IM Fell English SC", serif;--font-body: "Cormorant Garamond", serif;--font-mono: "JetBrains Mono", monospace}.hit-vertex circle:nth-of-type(2){transition:r .12s ease-out,fill .12s ease-out}.hit-vertex:hover circle:nth-of-type(2){fill:var(--token-hot)}.hit-vertex:hover circle:nth-of-type(1){opacity:.35}.hit-edge rect:nth-of-type(1){transition:opacity .12s ease-out,fill .12s ease-out}.hit-edge:hover rect:nth-of-type(1){opacity:.42;fill:var(--token-hot)}.hit-hex circle:nth-of-type(1){transition:opacity .12s ease-out,fill .12s ease-out}.hit-hex:hover circle:nth-of-type(1){opacity:.42;fill:var(--token-hot)}@keyframes piecePulse{0%,to{opacity:.3}50%{opacity:.65}}.preview-piece{animation:piecePulse 1.6s ease-in-out infinite;cursor:pointer;transition:opacity 80ms ease-out}.preview-piece:hover{animation:none;opacity:1}@keyframes redDotPulse{0%,to{transform:scale(.85);opacity:.55}50%{transform:scale(1.1);opacity:1}}.upgrade-marker{animation:redDotPulse 1.4s ease-in-out infinite;transform-origin:center;transform-box:fill-box;cursor:pointer}.upgrade-marker:hover{animation:none;transform:scale(1.15)}@keyframes pieceAppear{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.board-piece{filter:drop-shadow(0 0 3px var(--parchment)) drop-shadow(0 0 5px var(--parchment)) drop-shadow(0 2px 3px rgba(0,0,0,.35));animation:pieceAppear .26s ease-out;transform-origin:center;transform-box:fill-box}@keyframes activePulse{0%,to{box-shadow:0 0 #2c1f1000}50%{box-shadow:0 0 0 5px #2c1f102e}}.player-card-active{animation:activePulse 2.4s ease-in-out infinite}@keyframes winShimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.win-banner{background:linear-gradient(90deg,#2c1f10,#5b4022,#d8b04a,#5b4022,#2c1f10);background-size:300% 100%;animation:winShimmer 4s ease-in-out infinite}@keyframes diceRoll{0%{transform:translateY(-30px) rotate(-180deg) scale(.6);opacity:0}35%{transform:translateY(0) rotate(60deg) scale(1.1);opacity:1}60%{transform:translateY(-4px) rotate(-30deg) scale(.95)}85%{transform:translateY(0) rotate(8deg) scale(1.02)}to{transform:translateY(0) rotate(0) scale(1)}}.dice-display .die{display:inline-block;animation:diceRoll .7s cubic-bezier(.2,.7,.3,1.2) both;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.dice-display .die-red{animation-delay:80ms}.dice-display .die-event{animation-delay:.16s}.board-shell{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:20px;margin:0 auto;padding:12px 16px 24px;align-items:start}.board-main{min-width:0}.board-rail{position:sticky;top:12px;align-self:start;display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 24px);overflow-y:auto;padding-right:4px}.rail-section{background:var(--parchment-deep);border-radius:6px;padding:12px}.rail-section h3{margin:0 0 8px;font-family:var(--font-display);font-size:18px;letter-spacing:3px;color:var(--ink-soft);font-weight:400}.rail-resizer{cursor:col-resize;position:relative;background:transparent}.rail-resizer:before{content:"";position:absolute;top:0;right:50%;bottom:0;left:50%;width:2px;margin-left:-1px;background:var(--ink-soft);opacity:.18;transition:opacity .12s}.rail-resizer:hover:before{opacity:.55}@media (max-width: 1023px){.rail-resizer{display:none}.board-shell{grid-template-columns:1fr!important}.board-rail{position:static;max-height:none;overflow:visible}}@media (max-width: 600px){.board-shell{padding:8px 8px 24px;gap:12px}.board-rail{gap:10px}.rail-section{padding:10px 11px}.rail-section h3{font-size:15px;letter-spacing:2px;margin-bottom:6px}.player-card-active,.player-card-root{padding:9px 11px!important}.board-main>header>h1{font-size:22px!important}}@keyframes confirmFadeIn{0%{opacity:0}to{opacity:1}}@keyframes confirmRise{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c1f1073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:200;display:flex;align-items:center;justify-content:center;animation:confirmFadeIn .14s ease-out}.confirm-dialog{background:var(--parchment);color:var(--ink);border:2px solid var(--ink);border-radius:10px;box-shadow:0 18px 48px #00000073;padding:22px 26px 20px;min-width:320px;max-width:460px;animation:confirmRise .18s cubic-bezier(.2,.7,.3,1.05);position:relative}.confirm-dialog:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:.8px dashed var(--ink-soft);border-radius:6px;opacity:.55;pointer-events:none}.confirm-dialog h2{margin:0 0 4px;font-family:var(--font-display);font-size:22px;letter-spacing:3px;color:var(--ink)}.confirm-dialog .confirm-rule{height:1px;background:var(--ink-soft);opacity:.4;margin:8px 0 12px}.confirm-dialog .confirm-body{font-family:var(--font-body);font-size:16px;font-style:italic;color:var(--ink-soft);margin-bottom:12px}.confirm-dialog .confirm-section-label{font-family:var(--font-mono);font-size:10px;letter-spacing:1.8px;color:var(--ink-soft);text-transform:uppercase;margin-bottom:6px}.confirm-dialog .confirm-section{margin-bottom:12px}.confirm-dialog .confirm-buttons{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.confirm-dialog .confirm-btn-primary{background:var(--ink);color:var(--parchment);border:1px solid var(--ink);padding:8px 22px;font-family:var(--font-display);font-size:16px;letter-spacing:2px;border-radius:6px;cursor:pointer}.confirm-dialog .confirm-btn-primary:hover{background:var(--ink-soft)}.confirm-dialog .confirm-btn-cancel{background:transparent;color:var(--ink);border:1px dashed var(--ink-soft);padding:8px 18px;font-family:var(--font-mono);font-size:12px;letter-spacing:1.5px;border-radius:6px;cursor:pointer}.confirm-dialog .confirm-btn-cancel:hover{border-color:var(--ink);color:var(--ink-soft)}.hex-tooltip{position:fixed;pointer-events:none;z-index:50;padding:6px 10px;background:var(--ink);color:var(--parchment);border-radius:4px;font-size:12px;font-family:var(--font-mono);letter-spacing:1.5px;white-space:nowrap;box-shadow:0 3px 8px #00000059}.hex-production-bloom{transform-box:fill-box;transform-origin:center;animation:hexBloom 1.6s ease-out forwards}@keyframes hexBloom{0%{transform:scale(.6);opacity:0}20%{transform:scale(1);opacity:.95}to{transform:scale(1.4);opacity:0}}.bot-thinking-dots{display:inline-block;letter-spacing:1px}.bot-thinking-dots span{animation:botDotBlink 1.2s infinite;opacity:.2}.bot-thinking-dots span:nth-child(2){animation-delay:.2s}.bot-thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes botDotBlink{0%,60%,to{opacity:.2}30%{opacity:1}}:root{font-family:var(--font-body);line-height:1.4;color:var(--ink)}body{margin:0;padding:24px;background:var(--parchment);min-height:100vh}h1{font-family:var(--font-display);font-weight:400;letter-spacing:.06em;margin:0 0 8px}p{margin:4px 0}button{font-family:var(--font-body);font-size:1.05rem;padding:8px 18px;background:var(--parchment-deep);color:var(--ink);border:1.5px solid var(--ink);border-radius:4px;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}
