:root{color-scheme:dark;font-family:"Segoe UI",Arial,sans-serif;--paper:#f3f1e7;--muted:#abb8ba;--accent:#e2edb4;--team:#a8dcb5;--line:#ffffff20;--ink:#121a21}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#101a27;color:var(--paper)}button{font:inherit;cursor:pointer;color:inherit;border:0}button:disabled{opacity:.35;cursor:not-allowed}button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}[hidden]{display:none!important}#game,#world{position:fixed;inset:0}#world canvas{display:block;width:100%;height:100%;outline:none}#damage-flash{position:fixed;inset:0;pointer-events:none;z-index:2;opacity:0;box-shadow:inset 0 0 100px 25px #a72924a8;transition:opacity .16s}#crosshair{position:fixed;left:50%;top:50%;width:4px;height:4px;transform:translate(-50%,-50%);border-radius:50%;background:#fff;z-index:3;pointer-events:none}.menu-button{position:fixed;right:22px;top:18px;width:36px;height:30px;background:#10192140;border:1px solid #ffffff18;border-radius:6px;color:#ffffffad;font-size:24px;line-height:10px;letter-spacing:2px;z-index:6;opacity:.6}.menu-button:hover{opacity:1;background:#101921aa}#health{position:fixed;bottom:27px;left:50%;transform:translateX(-50%);width:100px;height:3px;background:#121a2188;border-radius:3px;z-index:3;overflow:hidden;pointer-events:none}#health-fill{display:block;height:100%;width:100%;background:var(--paper);transition:width .2s}.interaction{position:fixed;left:50%;bottom:55px;transform:translateX(-50%);z-index:4;font-size:11px;color:#ffffffe3;background:#1019216e;padding:7px 11px;border-radius:4px;pointer-events:none;white-space:nowrap}.toast{position:fixed;left:50%;bottom:95px;transform:translateX(-50%);padding:10px 16px;border:1px solid #ffffff20;background:#16222bd9;border-radius:6px;z-index:24;font-size:12px;max-width:400px;text-align:center;}.screen{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#0c17263d}.entry-content,.pause-content{width:260px;text-align:center}.brand-mark{font-size:37px;color:var(--accent);}.entry-content h1{font-size:48px;font-weight:850;letter-spacing:-3px;margin:10px 0 34px}.entry-content .primary-button{width:180px;margin:auto}.primary-button{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--accent);color:#202b22;border:0;border-radius:5px 8px 4px 7px;min-height:43px;padding:10px 16px;font-size:13px;font-weight:700;transition:transform .12s,background .12s}.primary-button>span{font-size:19px;font-weight:400}.primary-button:hover:not(:disabled){background:#eef5ce;transform:translateY(-1px)}.text-button{display:block;margin:18px auto 0;padding:6px 8px;background:none;font-size:12px;color:var(--paper);}.text-button:hover{text-decoration:underline}.local-note{display:block;font-size:9px;color:#e0e9e4b0;margin-top:22px;letter-spacing:.6px}#pause-screen{background:#0c172688;backdrop-filter:blur(6px)}.pause-content{text-align:center}.eyebrow{font:9px monospace;letter-spacing:2px;color:var(--muted)}h2{font-size:29px;letter-spacing:-1px;font-weight:750;margin:10px 0 23px;line-height:1.2}.pause-content .primary-button{margin-bottom:16px}.menu-row{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border-bottom:1px solid var(--line);padding:16px 0;font-size:12px}.menu-row:hover{color:var(--accent)}kbd{font:9px monospace;border:1px solid #ffffff28;background:#ffffff05;border-radius:3px;padding:4px 6px;color:var(--muted)}dialog{width:370px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);overflow:auto;border:1px solid #d4ded32b;border-radius:9px 14px 8px 13px;background:#15212bf5;backdrop-filter:blur(15px);padding:28px;color:var(--paper);}dialog::backdrop{background:#09141e88;backdrop-filter:blur(5px)}.close-button{position:absolute;right:17px;top:13px;background:none;color:var(--muted);font-size:23px;padding:3px;line-height:1}.close-button:hover{color:var(--paper)}.dialog-title{display:flex;align-items:center;justify-content:space-between;margin:8px 0 25px}.dialog-title h2{margin:0}.resources{display:flex;gap:7px;align-items:center}.resources>span{color:var(--accent);font-size:24px}.resources b{font-size:17px}.resources small{font:10px monospace;color:var(--muted)}.core-row{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:8px}.bar{height:3px;background:#ffffff12;border-radius:3px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--team)}.section-label{font-size:11px;color:var(--muted);margin:25px 0 10px}.build-card{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:12px 0}.build-icon{font-size:25px;color:var(--accent);width:28px}.build-copy{flex:1}.build-copy strong{display:block;font-size:12px}.build-copy small{display:block;font-size:9px;color:var(--muted);margin-top:6px}.build-button{background:#ffffff08;border:1px solid #ffffff20;border-radius:4px;padding:8px 10px;font:11px monospace;color:var(--accent)}.build-button:hover:not(:disabled){background:#ffffff18}.age-track{display:flex;gap:5px;margin:13px 0}.age-step{height:3px;background:#ffffff14;flex:1}.age-step.active{background:var(--accent)}.age-title{display:flex;justify-content:space-between;align-items:center}.age-title strong{font-size:13px}.age-title small{font:9px monospace;color:var(--muted)}.muted{font-size:12px;line-height:1.75;color:var(--muted)}.small{font-size:10px}.known-planet{border-top:1px solid var(--line);padding:17px 0}.known-title{display:flex;align-items:center;gap:8px}.known-dot{width:7px;height:7px;background:var(--color);border-radius:50%}.known-title strong{font-size:14px}.known-title small{margin-left:auto;font:8px monospace;color:var(--muted)}.states{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:15px}.state-value{font-size:14px}.state-unit{font-size:9px;color:var(--muted)}.state-name{display:block;font-size:8px;color:var(--muted);margin-top:5px}.known-planet button{display:block;width:100%;padding:9px;background:#ffffff07;border:1px solid var(--line);border-radius:4px;margin-top:15px;font-size:10px}.controls{margin:20px 0}.controls>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0}.controls dt{margin:0}.controls dd{margin:0;font-size:11px;color:var(--muted)}.death-screen{background:#161e2866;backdrop-filter:grayscale(.8);text-align:center;z-index:11}.death-screen h2{font-size:25px}.death-screen p{font:12px monospace;color:var(--accent)}.loading{z-index:50;background:#10202c}.loading .brand-mark{animation:turn 8s linear infinite}@keyframes turn{to{transform:rotate(360deg)}}@media(max-width:600px){dialog{padding:24px}h2{font-size:25px}.menu-button{top:12px;right:13px}.toast{max-width:calc(100vw - 40px);width:max-content;font-size:11px}.entry-content h1{font-size:43px}.interaction{font-size:10px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.hq-name{font-size:12px;color:var(--accent);margin:-13px 0 20px}.local-map-heading{display:flex;align-items:center;justify-content:space-between;margin-top:20px}.local-map-heading strong{font-size:13px}.local-map-heading small{font:8px monospace;color:var(--muted);letter-spacing:1px}#local-map{display:block;width:100%;margin:10px 0 0}.map-ground{fill:#25392f;stroke:#89a17b66;stroke-width:1}.map-grid{fill:none;stroke:#9bac7d22;stroke-width:1;stroke-dasharray:3 5}.map-route{stroke:#d5e7ac55;stroke-width:1;stroke-dasharray:3 4;fill:none}#map-headquarters>circle{fill:#263328;stroke:#e2edb4;stroke-width:1}#map-headquarters>path{fill:none;stroke:#eff5d7;stroke-width:1.5;stroke-linejoin:round}#map-player circle{fill:#81deeb;stroke:none}#map-player path{fill:#a7eef7}.map-legend{display:flex;justify-content:center;gap:24px;font-size:10px;color:#d8e6c5;margin:-2px 0 24px}.map-legend .player-key{color:#91e3ed}.map-feature{fill:#a7b49388;stroke:none}

.toolbox{display:grid;grid-template-columns:1fr 1fr;gap:6px}.toolbox button{font-size:11px;background:#ffffff08;border:1px solid #ffffff20;border-radius:4px;padding:10px;text-align:center}.toolbox button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:#dce8a915}.site-marker{position:fixed;transform:translate(-50%,-50%);pointer-events:none;z-index:3;background:#13252ac9;color:#f2e4ba;border:1px solid #e5d8a755;border-radius:4px;font:10px monospace;padding:6px 9px;}.build-button{font-size:9px;max-width:100px;line-height:1.5}.build-copy small{line-height:1.6}.build-copy strong{font-size:11px}

.entry-content{width:290px}.entry-content h1{margin-bottom:24px}.entry-content .primary-button{width:100%;justify-content:center}.match-settings{text-align:center;margin:0 0 22px;padding:15px 18px;background:#11202a99;border:1px solid #fff2;border-radius:8px;backdrop-filter:blur(12px)}.match-settings label{font-size:12px;color:#e4e8da;display:block}.match-settings input{font:600 25px "Segoe UI",sans-serif;color:#f5f1dc;border:0;border-bottom:1px solid #ffffff30;background:none;width:100%;padding:9px 0;outline-offset:3px}.match-settings p{font-size:10px;color:#bac4be;margin:12px 0 0}.pace-options{display:flex;gap:6px;margin-top:12px}.pace-options button{flex:1;border:1px solid #ffffff28;background:none;padding:6px 0;border-radius:4px;font-size:10px}.pace-options button[aria-pressed=true]{background:#e4ecb51a;color:var(--accent);border-color:#e4ecb577}.points{position:fixed;top:25px;left:25px;color:#f6f1df;font:12px "Segoe UI",sans-serif;z-index:3;pointer-events:none}.research-progress{position:fixed;bottom:44px;left:50%;transform:translateX(-50%);width:220px;height:3px;background:#07171a99;border-radius:2px;overflow:hidden;z-index:4}.research-progress span{height:100%;display:block;background:var(--accent)}#base-dialog .dialog-title{margin:5px 0 18px}#base-dialog .build-card{gap:10px;padding:15px 0}#base-dialog .build-copy small:empty{display:none}#base-dialog .build-button{font:11px "Segoe UI",sans-serif;max-width:none}#base-dialog .build-copy strong{font-size:13px}#base-dialog .resources small{font:10px "Segoe UI",sans-serif}.interaction{white-space:normal;text-align:center;width:max-content;max-width:calc(100vw - 40px)}

#crosshair.confirmed-hit{width:12px;height:12px;background:none;}#crosshair.confirmed-hit::before,#crosshair.confirmed-hit::after{content:"";position:absolute;left:5px;top:0;width:2px;height:12px;background:#fff0c9;transform:rotate(45deg)}#crosshair.confirmed-hit::after{transform:rotate(-45deg)}
.points{top:22px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;transform-origin:center;color:#ffda3e}.points b{font:italic 1000 30px/1 "Arial Black","Segoe UI",sans-serif;letter-spacing:-1px}.mining-combo{position:fixed;top:58px;left:50%;transform:translateX(-50%);width:96px;z-index:3;pointer-events:none}.combo-pips{display:flex;gap:4px;margin:5px 0}.combo-pips i{height:5px;flex:1;background:#fff2;transform:skewX(-15deg);border:0;border-radius:1px}.combo-pips i.lit{background:#ffd73c}.combo-timer{height:2px;background:#fff1;width:100%}.combo-timer i{display:block;height:100%;width:100%;background:#fff0a2;transform-origin:left;transition:transform .08s linear}.mining-combo[data-max=true] .lit{background:#a9ffed}.score-popup{position:fixed;left:50%;top:85px;transform:translateX(-50%);text-align:center;z-index:4;min-width:110px;pointer-events:none;color:#ffdb35;font:italic 900 52px/1 "Arial Black","Segoe UI",sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-2px}.score-popup span{display:block;transform-origin:center}.score-popup[data-precision=true]{font-size:60px}.score-popup[data-break=true]{font-size:68px;color:#ffe67b}#score-particles{position:fixed;inset:0;z-index:4;pointer-events:none;overflow:hidden}#score-particles i{position:absolute;width:7px;height:7px;background:#ffe367;border:0;border-radius:2px}.pickaxe-upgrade{margin-top:23px;padding-top:18px;border-top:1px dashed #ffda3e55}.pickaxe-upgrade .eyebrow{color:#ffdb53;letter-spacing:1.4px}.pickaxe-upgrade .build-icon{color:#ffdc57}.pickaxe-upgrade .build-card{border-bottom:0!important}.pickaxe-upgrade .build-button{color:#ffde66;border-color:#ffda3e55}.pickaxe-upgrade p{margin:0}.pickaxe-upgrade .build-copy small{max-width:160px}.resources b{color:#ffda3e}#crosshair.precision-hit{transform:translate(-50%,-50%) scale(1.5)}#crosshair.precision-hit::before,#crosshair.precision-hit::after{background:#ffdc40}
@media(max-width:600px){.points{left:50%;top:18px}.points b{font-size:26px}.mining-combo{left:50%;top:50px;width:82px}.score-popup{left:50%;top:76px;font-size:44px}.score-popup[data-precision=true]{font-size:50px}.score-popup[data-break=true]{font-size:56px}}

.points>span{display:flex;align-items:center;gap:7px}.points b{display:inline-block}.points svg{width:18px;height:18px;fill:currentColor}.points .colony-points{color:#f6eed5;gap:5px}.points .colony-points b{font-size:20px;letter-spacing:0}.points .colony-points svg{width:16px;height:16px}.points .door{fill:#a9a488}.score-popup[data-deposit=true]{color:#fff2c4}

.points .table-guide{position:relative;display:grid;place-items:center;width:30px;height:30px;color:#f6eed59e;flex-shrink:0}.table-guide::before,.table-guide::after{content:"";position:absolute;top:50%;width:9px;height:1px;background:currentColor;opacity:.45}.table-guide::before{right:100%;margin-right:2px}.table-guide::after{left:100%;margin-left:2px}.points .table-guide svg{grid-area:1/1;width:21px;height:21px;fill:currentColor;transform-origin:center;transition:transform .12s linear}.points .table-guide .guide-ready{display:none;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.points .table-guide[data-ready=true]{background:#fff1;border-radius:50%}.points .table-guide[data-ready=true] #table-guide-arrow{display:none}.points .table-guide[data-ready=true] .guide-ready{display:block}.points[data-carrying=true] .table-guide,.points[data-carrying=true][data-at-table=true] .colony-points{color:#ffda3e}.match-settings{padding:17px 18px 18px}.match-settings input{text-align:center;font-size:34px;padding:6px 0 13px}

/* One direction, one carried score. */
.points{top:7px;display:flex;flex-direction:column;align-items:center;gap:0;min-width:65px;color:#ffda3e}
.points b{font-size:25px;line-height:28px;letter-spacing:-.6px}
.points .table-guide{width:25px;height:25px;color:#f6eed5;display:grid;place-items:center}
.points .table-guide::before,.points .table-guide::after{display:none}
.points .table-guide svg{width:22px;height:22px}
.points .table-guide[data-ready=true]{background:none;border-radius:0;color:#ffea92}
.points .table-guide[data-ready=true] #table-guide-arrow{display:block}
.score-popup{top:70px}
.inventory{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:5}
.inventory-slot{position:relative;width:62px;height:64px;display:grid;place-items:center;background:#263c3d80;border:1px solid #f8edcd40;border-radius:8px;color:#fbf0d3;backdrop-filter:blur(7px);transition:background .12s,border-color .12s,transform .12s}
.inventory-slot[aria-pressed=true]{background:#af9c5755;border-color:#f8dfa0;box-shadow:inset 0 -3px #f8dfa0;transform:translateY(-3px)}
.inventory-slot:hover:not(:disabled){background:#64775a88}
.inventory-slot.empty-slot{opacity:.55;border-style:dashed;background:#263c3d40}
.slot-key{position:absolute;top:5px;left:7px;font:700 10px/1 "Segoe UI",sans-serif;color:#fff2c7cc}
.slot-icon{display:block;width:44px;height:44px;margin-top:5px}
.slot-icon svg{display:block;width:100%;height:100%;overflow:visible}
.slot-count{position:absolute;right:6px;bottom:4px;font:800 12px "Segoe UI",sans-serif;color:#fff2c7}
#health{bottom:101px}.interaction{bottom:116px}.research-progress{bottom:106px}.toast{bottom:155px}
.consumable-effects{position:fixed;bottom:22px;left:calc(50% + 117px);display:flex;gap:8px;z-index:4;pointer-events:none}
.consumable-effects>span{display:flex;flex-direction:column;align-items:center;gap:2px;color:#f5edc9;font-size:10px}
.consumable-effects i,.consumable-effects svg{display:block;width:24px;height:24px}
.chest-item{display:flex;align-items:center;gap:11px;padding:15px 0;border-top:1px solid #fff2}
.chest-item-icon,.chest-item-icon svg{display:block;width:38px;height:38px;flex-shrink:0}
.chest-item>div{flex:1}.chest-item strong{font-size:12px}.chest-item small{display:block;font-size:10px;line-height:1.6;color:var(--muted);margin-top:4px}
.chest-item>b{font-size:17px;color:#ffe29e}.chest-item button{background:#ffffff0b;border:1px solid #fff3;border-radius:4px;font-size:10px;padding:8px}
#chest-store{justify-content:center;margin-top:20px}#chest-message{margin-bottom:0}
@media(max-width:600px){.points{top:5px}.points b{font-size:23px}.score-popup{top:67px}.inventory{bottom:14px;gap:6px}.inventory-slot{width:54px;height:57px}.slot-icon{width:39px;height:39px}#health{bottom:89px}.interaction{bottom:101px}.research-progress{bottom:91px}.consumable-effects{bottom:16px;left:calc(50% + 97px)}}

/* Text shares a central axis throughout the HUD and menus. */
body,button,input,dialog{text-align:center}
.primary-button{justify-content:center;gap:10px}
.menu-row{position:relative;justify-content:center;padding-inline:42px}
.menu-row>kbd,.menu-row>span{position:absolute;right:0}
.dialog-title,.local-map-heading,.known-title{flex-direction:column;justify-content:center;gap:8px}
.resources{justify-content:center}
.known-title small{margin-left:0}
.known-dot{display:none}
.build-card{display:grid;grid-template-columns:76px minmax(0,1fr) 76px;justify-items:center}
.build-copy{width:100%;min-width:0}
.build-copy small,.pickaxe-upgrade .build-copy small{max-width:none}
#base-dialog .build-card{gap:6px}
#base-dialog .build-button{max-width:76px;padding:8px 6px}
.controls>div{flex-direction:column;justify-content:center;gap:8px;margin:18px 0}
.chest-item{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;justify-items:center;gap:10px}
.chest-item button{grid-column:1/-1;min-width:100px}
.core-row,.age-title{justify-content:center;gap:12px}
.join-color{display:block;width:42px;height:42px;border-radius:50%;margin:0 auto 20px;box-shadow:0 0 32px #ffffff14}
#join-dialog h2{margin-bottom:14px}#join-dialog .primary-button{margin-top:24px}#join-dialog .text-button{margin-top:12px}
.slot-key{left:50%;transform:translateX(-50%)}
.slot-count{left:50%;right:auto;transform:translateX(-50%)}

#online-status:empty { display: none; }
#online-form { display: grid; gap: 12px; }
#online-form label { font-size: 13px; }
#player-nickname, #room-code {
  width: 100%;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #ffffff09;
  color: var(--paper);
  font: inherit;
}
#player-nickname:focus-visible, #room-code:focus-visible, #invite-code:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
#online-join-status { margin: 0; }
#online-join-status:empty { display: none; }
#invite-code {
  margin: 20px 0;
  padding: 16px 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #ffffff09;
  color: var(--accent);
  font: 700 clamp(22px, 5vw, 30px)/1.35 ui-monospace, "Cascadia Mono", monospace;
  overflow-wrap: anywhere;
  cursor: text;
  -webkit-user-select: all;
  user-select: all;
}
#invite-status { margin: 14px 0 0; }
#invite-status:empty { display: none; }

.mouse-option {
  display: grid;
  justify-items: center;
  gap: 10px;
  font-size: 13px;
}

.mouse-option input {
  width: min(100%, 240px);
  margin: 0;
  accent-color: var(--accent);
  cursor: pointer;
}

.mouse-option input:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
  border-radius: 6px;
}

.mouse-option output {
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}
