/* VAYRHEX / SIGNALWORKS — original industrial cartography UI */
@import url('https://fonts.googleapis.com/css2?family=Tektur:wght@400;500;600;700;800;900&family=PT+Mono&display=swap');
:root{--vx-ink:#081516;--vx-panel:#182825;--vx-ash:#b8c5b1;--vx-bone:#e8e1cf;--vx-copper:#d28b56;--vx-line:#637f70;--vx-display:'Tektur','Trebuchet MS',sans-serif;--vx-mono:'PT Mono',monospace;color-scheme:dark}
html{background:var(--vx-ink)}body{background:radial-gradient(ellipse 65% 55% at 90% 10%,#294037,transparent 72%),repeating-linear-gradient(90deg,transparent 0 142px,#65837608 143px),#081516!important;color:var(--vx-bone)!important;font-family:var(--vx-display)!important;letter-spacing:-.018em}
button,input{font-family:var(--vx-display)!important}button{transition:background-color .15s,border-color .15s,color .15s,transform .15s!important}button:focus-visible{outline:2px solid var(--vx-copper)!important;outline-offset:3px}.app{max-width:1600px!important;padding:16px 21px!important}
.topbar{border-bottom:1px solid #69887970!important;background:transparent!important;padding:9px 4px 15px!important}.wordmark,.menu-brand{font-family:var(--vx-display)!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:-.07em!important}.wordmark span,.menu-brand span{color:var(--vx-copper)!important}.wordmark{font-size:26px!important}.build-id{border:1px solid #6b8070!important;border-radius:0!important;background:#18302a!important;color:#d9b788!important;font:10px var(--vx-mono)!important;letter-spacing:.1em}.header-button{background:#1a2b29!important;border:1px solid #698879!important;border-radius:0!important;color:#e9e2cd!important}.session-indicator{font:10px var(--vx-mono)!important;color:#c6c9b7!important}.emblem-outer{border-color:#d39b69!important;box-shadow:none!important}.emblem-inner{border-color:#a9cdb8!important}.emblem-core{background:#d39b69!important}
.gamebox{border:1px solid #6b80707f!important;border-radius:0!important;background:#0b1a1d!important;box-shadow:0 16px 65px #0008!important}.hud{background:#182928!important;border-bottom:2px solid #657f6b!important}.hud-cell{min-height:75px!important;border-right:1px solid #758b795c!important;padding:13px 19px!important;background:transparent!important}.hud-cell .hud-label{font:10px var(--vx-mono)!important;color:#acbcac!important;text-transform:uppercase;letter-spacing:.10em}.hud-cell strong{font:700 clamp(18px,2.3vw,26px) var(--vx-display)!important;color:#f1e9d6!important}.money-symbol,.hud-money strong{color:#e1a26d!important}.health-track{background:#091715!important;height:4px!important}.health-track>span{background:#a7c9b2!important;border-radius:0!important}
.field{background:#0a191b!important;border-right:1px solid #738c78!important}.field:before{content:'';position:absolute;inset:0;box-shadow:inset 0 0 60px #0006;pointer-events:none}.field-topline{z-index:2!important}.map-name,.game-status{background:#142723d9!important;border:1px solid #78907db2!important;border-radius:0!important;color:#e0ddc2!important;font-family:var(--vx-mono)!important}.map-name b{color:#e0a16b!important}.status-led{background:#d5a576!important;box-shadow:none!important}.fullscreen-btn{background:#1b302d!important;color:#e7dfcd!important;border:1px solid #7a9584!important;border-radius:0!important}.toast{border:1px solid #d3a26f!important;border-radius:0!important;background:#1d2a26ec!important;color:#ebd5b5!important;box-shadow:none!important}
.sidepanel{background:#152623!important;border-left:3px solid #687e69!important}.side-top{background:#1d302b!important;border-bottom:1px solid #668071!important;padding:18px!important}.side-top strong{font:700 20px var(--vx-display)!important;text-transform:uppercase!important}.side-counter{font:10px var(--vx-mono)!important;color:#d6bb99!important}.selection{border-bottom:1px solid #617667!important;background:#1d302b!important}.selection-indicator{border-radius:0!important;border-color:#9d845f!important;color:#d7a270!important}.selection-copy b{font:700 14px var(--vx-display)!important}.selection-copy small{font:10px/1.5 var(--vx-mono)!important;color:#b8c6b7!important}.build-controls{background:#142320!important;gap:7px!important}.tower-card,.toolbtn{background:#22312a!important;border:1px solid #62796b!important;border-radius:0!important;box-shadow:none!important}.tower-card:hover:not(:disabled),.toolbtn:hover:not(:disabled){background:#324035!important;border-color:#ddab78!important;transform:translateX(2px)!important}.tower-card.is-armed{border-color:#ecbd85!important;background:#383f32!important}.tower-glyph,.toolbtn .icon{border:1px solid #657f6c!important;border-radius:0!important;background:#112120!important}.tower-detail b,.toolcopy b{font:700 13px var(--vx-display)!important}.tower-detail small,.toolcopy small{font-family:var(--vx-mono)!important;color:#9eae9f!important}.tower-price{color:#eabd8a!important;font-family:var(--vx-mono)!important}.panel-bottom{background:#243229!important;border-top:2px solid #718370!important}.phase-line{font-family:var(--vx-mono)!important;color:#afbcaa!important}.phase-line strong{color:#f4e5cb!important}
.primary,.secondary,.begin-button{border-radius:0!important;box-shadow:none!important;text-transform:uppercase!important;letter-spacing:.03em!important}.primary{border:1px solid #e5ab77!important;background:#d28b56!important;color:#14201b!important;font-weight:800!important}.primary:hover:not(:disabled){background:#f2b984!important;filter:none!important}.secondary{background:#203630!important;border:1px solid #698576!important;color:#eee8d7!important}.helpbar{border-top:1px solid #536d5c!important;color:#9aab9a!important;font:10px var(--vx-mono)!important}.help-key{background:#2e4237!important;border-radius:0!important;color:#f3ddbb!important}.help-version{color:#a59276!important}
.modal-backdrop{background:rgba(3,12,13,.93)!important;backdrop-filter:blur(2px)!important}
#startModal .menu-pane{width:min(1040px,calc(100vw - 30px))!important;max-width:1040px!important;min-height:550px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;overflow:hidden!important;padding:60px 49% 52px 48px!important;border:1px solid #728d7c!important;border-radius:0!important;background:linear-gradient(121deg,#132522 0%,#142824 58%,#091819 58%,#081415 100%)!important;text-align:left!important;box-shadow:18px 20px 0 #0009!important;position:relative!important}
#startModal .menu-pane:before{content:'VX / IX   FIELD REACTOR   •   001';position:absolute;top:22px;left:46px;color:#dda979;font:11px var(--vx-mono);letter-spacing:.12em}#startModal .menu-pane:after{content:'◈';font:clamp(170px,26vw,340px) var(--vx-display);position:absolute;right:6%;top:50%;transform:translateY(-50%) rotate(15deg);-webkit-text-stroke:2px #85a99a53;color:transparent;pointer-events:none}
#startModal .emblem--hero{position:absolute!important;right:16%!important;top:40%!important;transform:scale(2.5)!important;z-index:1!important}
#startModal .menu-brand{font:900 clamp(46px,6vw,82px)/.9 var(--vx-display)!important;letter-spacing:-.085em!important;white-space:nowrap!important;margin:10px 0 28px!important;z-index:2}
#startModal .menu-description{color:#bdcabc!important;max-width:350px!important;text-align:left!important;font:14px/1.65 var(--vx-display)!important;margin:0 0 28px!important}
#startModal .menu-actions,#startModal .meta-bar{width:100%!important;min-width:0!important;box-sizing:border-box!important;z-index:2}.menu-nav{display:flex!important;gap:8px!important;margin-top:9px!important}.menu-nav-button{background:#20342e!important;border:1px solid #789081!important;border-radius:0!important;color:#e8ddc5!important;min-height:51px!important;padding:8px 11px!important;font:600 12px var(--vx-display)!important;flex:1!important}.menu-nav-button:hover{border-color:#e3ac78!important}.menu-nav-glyph{color:#dba473!important}
#startModal #playBtn{background:#d28b56!important;border:1px solid #f0b680!important;color:#111a15!important;opacity:1!important;min-height:61px!important;font:800 17px var(--vx-display)!important;padding:0 21px!important}
#startModal .meta-bar{border:0!important;border-top:1px solid #718777!important;border-bottom:1px solid #718777!important;border-radius:0!important;background:#20342e!important;padding:11px 0!important;margin-top:20px!important}.meta-count{min-width:0!important}.meta-count small,.meta-helper,.menu-footnote{font:10px var(--vx-mono)!important;color:#b6c3ad!important}.meta-count strong{color:#f3c58e!important}.meta-helper{display:none!important}.menu-footnote{margin-top:15px!important}
.dialog-pane,.prefs-pane,.upgrade-pane,.result-pane{background:#152725!important;border:1px solid #778b78!important;border-radius:0!important;box-shadow:12px 14px 0 #0008!important;color:#f1e6d1!important}.panel-header,.dialog-top{background:#23332b!important;border-bottom:1px solid #718575!important}.panel-kicker,.dialog-top span:first-child{color:#d8a271!important;font:10px var(--vx-mono)!important}.panel-header h2,.dialog-pane h2{font-family:var(--vx-display)!important}.close-panel{border-radius:0!important;color:#e8e0d1!important}.prefs-section h3{color:#d6ad83!important;font-family:var(--vx-mono)!important}.pref-copy small,.pref-value{font-family:var(--vx-mono)!important;color:#a8b9a9!important}input[type='range']{accent-color:#d5a071!important}.upgrade-card{background:#22352f!important;border:1px solid #7e937b!important;border-radius:0!important;box-shadow:none!important}.upgrade-card:hover{border-color:#dba772!important;background:#344139!important}.upgrade-card span,.upgrade-card i{color:#d9a271!important}.result-grid>div,.reward-option{background:#26372f!important;border:1px solid #648071!important;border-radius:0!important}
#researchModal .atlas-pane{background:#0b1a1d!important;border:1px solid #819184!important;box-shadow:18px 18px 0 #0008!important}
#researchModal .atlas-header{background:#1c302a!important;border-bottom:2px solid #ab8a64!important}#researchModal .atlas-heading h2{font:800 clamp(24px,3vw,35px) var(--vx-display)!important;text-transform:uppercase!important;color:#eee4d0!important}#researchModal .atlas-eyebrow{color:#d7a679!important;font:10px var(--vx-mono)!important;letter-spacing:.14em!important}#researchModal .atlas-currency{font-family:var(--vx-mono)!important;color:#efdcbf!important}#researchModal .atlas-shard{color:#dba46d!important}#researchModal .atlas-close{border-radius:0!important;background:#223630!important;color:#f1dfc5!important}
#researchModal .atlas-toolbar{background:#24372e!important;border-color:#678373!important;font:10px var(--vx-mono)!important}#researchModal .atlas-legend{color:#bacbb8!important;font-family:var(--vx-mono)!important}#researchModal .atlas-tools button{border-radius:0!important;background:#182b27!important;border-color:#678778!important;color:#eee4cc!important;font-family:var(--vx-mono)!important}
#researchModal .atlas-viewport{background-color:#0b1c1e!important;background-image:linear-gradient(90deg,#617b6522 1px,transparent 1px),linear-gradient(#617b6522 1px,transparent 1px),radial-gradient(#d7c39e40 1px,transparent 1px)!important;background-size:94px 94px,94px 94px,23px 23px!important}
#researchModal .atlas-lines .atlas-link{stroke:#7a90796a!important;stroke-width:3!important}#researchModal .atlas-lines .atlas-link.is-reachable{stroke:#c1a073!important}#researchModal .atlas-lines .atlas-link.is-traveled{stroke:#e2b784!important;stroke-width:5!important}
#researchModal .atlas-node .atlas-node-face{border-radius:5px!important;transform:rotate(45deg);background:#1a3330!important;border-color:#748e7d!important;color:#d9d7ba!important;box-shadow:inset 0 0 0 4px #081a1c!important;font-family:var(--vx-display)!important}#researchModal .atlas-node.type-root .atlas-node-face{background:#3b4032!important;border-color:#e2b781!important;color:#f4dec3!important}#researchModal .atlas-node.type-hub .atlas-node-face{background:#233f36!important;border-color:#b8c7a4!important;color:var(--node-color)!important}#researchModal .atlas-node.state-ready .atlas-node-face{background:#384637!important;border-color:#edca99!important}#researchModal .atlas-node.state-owned .atlas-node-face{background:#444535!important;border-color:#dfaa74!important}#researchModal .atlas-node.state-locked .atlas-node-face{opacity:.5!important;background:#102426!important}#researchModal .atlas-node.is-selected .atlas-node-face{box-shadow:inset 0 0 0 4px #102121,0 0 0 4px #0b1f1e,0 0 0 8px #cda170!important}#researchModal .atlas-node-caption{font-family:var(--vx-display)!important;color:#bbd0bd!important}#researchModal .atlas-node-level{font-family:var(--vx-mono)!important;background:#182824!important;border-color:#c0a17d!important}
#researchModal .atlas-inspector{background:#203029!important;border-color:#65816e!important}#researchModal .atlas-inspector h3{font:800 24px var(--vx-display)!important;color:#f4e6cf!important}#researchModal .atlas-inspector p{font:13px/1.6 var(--vx-display)!important;color:#bfcebd!important}#researchModal .atlas-detail-progress i.is-done{background:#dba16b!important}#researchModal .atlas-detail-requirement{color:#dfbd91!important;font-family:var(--vx-mono)!important}#researchModal .atlas-purchase{background:#d4a071!important;border-color:#ecc092!important;color:#17211b!important;border-radius:0!important;font:700 13px var(--vx-display)!important}#researchModal .atlas-purchase:disabled{background:#38463a!important;border-color:#738575!important;color:#8fa091!important}#researchModal .atlas-footer{background:#1b2e27!important;border-color:#718874!important}#researchModal .atlas-back{border-radius:0!important;border-color:#a48b6a!important;background:#39483a!important;color:#ebd6b9!important;font-family:var(--vx-display)!important}
@media(max-width:760px){.app{padding:5px!important}.wordmark{font-size:19px!important}.hud-cell{min-height:54px!important;padding:7px 8px!important}.hud-cell .hud-label{font-size:8px!important}.hud-cell strong{font-size:15px!important}.sidepanel{border:0!important}.side-top{padding:10px!important}#startModal .menu-pane{width:min(430px,calc(100vw - 20px))!important;min-height:0!important;padding:112px 20px 20px!important;background:linear-gradient(160deg,#0b1e20,#1b322c)!important;align-items:stretch!important;box-shadow:9px 12px 0 #0009!important}#startModal .menu-pane:before{top:15px;left:18px;font-size:8px}#startModal .menu-pane:after{top:28%;font-size:140px;opacity:.45}#startModal .emblem--hero{top:59px!important;right:57px!important;transform:scale(1.5)!important}#startModal .menu-brand{font-size:clamp(40px,12vw,62px)!important;margin:12px 0 18px!important}#startModal .menu-description{font-size:12px!important;margin:0 0 20px!important}.menu-nav-button{min-height:45px!important;font-size:11px!important}#startModal #playBtn{min-height:54px!important}#researchModal .atlas-inspector h3{font-size:17px!important}}
@media(max-width:380px){.menu-nav{flex-direction:column!important}.menu-nav-button{min-height:41px!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Controlled motion: one orchestrated reveal instead of perpetual UI glitter. */
@keyframes vx-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes vx-burn{0%,100%{opacity:.58}50%{opacity:.95}}
@media(prefers-reduced-motion:no-preference){
 #startModal:not(.hidden) .menu-brand{animation:vx-reveal .65s cubic-bezier(.2,.75,.25,1) both}
 #startModal:not(.hidden) .menu-description{animation:vx-reveal .62s .10s both}
 #startModal:not(.hidden) .menu-actions{animation:vx-reveal .62s .18s both}
 #startModal:not(.hidden) .meta-bar{animation:vx-reveal .62s .27s both}
 #researchModal .atlas-node.state-ready .atlas-node-face{animation:vx-burn 3.8s ease-in-out infinite}
 .tower-card:hover:not(:disabled) .tower-glyph{transform:rotate(-5deg)}
}
@media(prefers-reduced-motion:reduce){#startModal *,#researchModal *{animation:none!important}}
