:root{--panel:#121814c7;--panel-2:#1c241ee0;--line:#dce6d21f;--text:#e8eee4;--muted:#dce6d29e;--accent:#c4a35a;--good:#6f9f6a;--warn:#c4a35a;--font-display:"Fraunces", Georgia, serif;--font-body:"Plus Jakarta Sans", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{width:100%;height:100%;color:var(--text);font-family:var(--font-body);background:#121814;margin:0;overflow:hidden}button{font-family:inherit}.game-root{width:100%;height:100%;position:relative}.game-root canvas{touch-action:none;display:block;width:100%!important;height:100%!important}.hud{pointer-events:none;z-index:20;position:absolute;inset:0}.hud-top,.hud-bottom,.mission-panel,.controls-hint,.overlay,.build-menu,.btn,.build-card{pointer-events:auto}.hud-bottom{z-index:25}.hud-top{background:linear-gradient(#0a0e0cb8,#0000 92%);grid-template-columns:minmax(200px,1.1fr) minmax(280px,1.4fr) minmax(180px,.9fr);align-items:stretch;gap:.85rem;padding:.9rem 1rem;display:grid;position:absolute;top:0;left:0;right:0}.brand{padding:.35rem .15rem}.brand h1{font-family:var(--font-display);letter-spacing:.08em;color:#f2eee4;margin:0;font-size:clamp(1.35rem,2vw,1.85rem);line-height:1}.brand p{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:.28rem 0 0;font-size:.72rem;font-weight:600}.hud-stats{flex-direction:column;gap:.45rem;display:flex}.stat,.indicator,.mission-chip,.mission-panel,.build-menu,.placement-hint,.victory-card{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:4px}.stat{justify-content:space-between;align-items:baseline;gap:1rem;padding:.55rem .75rem;display:flex}.stat .label,.indicator .label,.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-size:.62rem;display:block}.stat strong{font-variant-numeric:tabular-nums;color:var(--accent);font-size:.98rem;font-weight:600}.indicators{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;display:grid}.indicator{padding:.45rem .5rem}.indicator strong{font-variant-numeric:tabular-nums;color:#dfe8d8;margin-top:.2rem;font-size:.95rem;display:block}.mission-chip{flex-direction:column;justify-content:center;padding:.65rem .75rem;display:flex}.mission-chip span{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.62rem;display:block}.mission-chip strong{color:var(--good);font-variant-numeric:tabular-nums;margin:.2rem 0 .5rem;font-size:1.35rem;display:block}.progress-track{background:#ffffff14;border-radius:0;height:3px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#4e7d4a,#c4a35a);height:100%;transition:width .35s}.hud-bottom{flex-direction:column;align-items:center;gap:.65rem;width:min(760px,100% - 2rem);display:flex;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}.btn{cursor:pointer;border:1px solid #0000;border-radius:2px;transition:background .15s,border-color .15s,opacity .15s}.btn.build{color:#f4f7ef;letter-spacing:.18em;background:#2f5d38;border-color:#c4a35a59;min-width:180px;padding:.85rem 1.4rem;font-size:.82rem;font-weight:700}.btn.build:hover{background:#376d41}.btn.build.active{color:#fff8e8;background:#8a6d2f;border-color:#ffe6a059}.btn.ghost{border-color:var(--line);color:var(--text);letter-spacing:.08em;text-transform:uppercase;background:0 0;margin-top:.25rem;padding:.35rem .8rem;font-size:.75rem}.btn.icon{width:2rem;height:2rem;color:var(--text);background:#ffffff0f;font-size:1.1rem;line-height:1}.placement-hint{text-align:center;padding:.7rem .9rem}.placement-hint p{margin:0;font-size:.9rem}.placement-hint span{color:var(--muted);letter-spacing:.04em;margin-top:.2rem;font-size:.75rem;display:block}.build-menu{background:var(--panel-2);width:100%;padding:.75rem}.build-menu-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:.55rem;padding-bottom:.45rem;display:flex}.build-menu-head h2{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem;font-weight:600}.build-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem;display:grid}.build-card{text-align:left;border:1px solid var(--line);color:var(--text);cursor:pointer;background:#ffffff08;border-radius:2px;flex-direction:column;gap:.18rem;padding:.65rem .55rem;display:flex}.build-card:hover:not(:disabled){background:#c4a35a14;border-color:#c4a35a73}.build-card.disabled,.build-card:disabled{opacity:.38;cursor:not-allowed}.build-name{font-size:.86rem;font-weight:700}.build-cost{color:var(--accent);font-variant-numeric:tabular-nums;font-size:.72rem}.build-meta{color:var(--muted);font-size:.66rem;line-height:1.35}.mission-panel{z-index:11;width:min(250px,100vw - 2rem);padding:.8rem .85rem;position:absolute;bottom:1rem;left:1rem}.mission-panel h2{font-family:var(--font-display);color:#f2eee4;margin:.2rem 0 .7rem;font-size:1.05rem}.mission-panel ul{flex-direction:column;gap:.32rem;margin:0;padding:0;list-style:none;display:flex}.mission-panel li{color:var(--muted);border-bottom:1px solid #ffffff0a;justify-content:space-between;gap:.5rem;padding-bottom:.28rem;font-size:.78rem;display:flex}.mission-panel li.done{color:var(--good)}.mission-progress-label{color:var(--muted);letter-spacing:.04em;margin-top:.65rem;font-size:.72rem}.controls-hint{background:var(--panel);border:1px solid var(--line);color:var(--muted);z-index:11;letter-spacing:.04em;border-radius:2px;padding:.4rem .65rem;font-size:.68rem;position:absolute;bottom:1rem;right:1rem}.overlay{z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080c0a9e;place-items:center;display:grid;position:absolute;inset:0}.victory-card{text-align:left;width:min(440px,100% - 2rem);padding:1.5rem}.victory-card h2{font-family:var(--font-display);margin:.25rem 0 .75rem;font-size:1.8rem}.victory-card p{color:var(--muted);margin:0 0 1.1rem;line-height:1.55}.eyebrow{margin:0;font-weight:700;color:var(--accent)!important}@media (width<=900px){.hud-top{grid-template-columns:1fr;gap:.5rem}.build-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mission-panel,.controls-hint{display:none}.indicators{grid-template-columns:repeat(2,minmax(0,1fr))}}
