:root {
  --tna-ink: #eee6db;
  --tna-muted: #a59a9c;
  --tna-cyan: #c25b6d;
  --tna-violet: #8d7aae;
  --tna-gold: #d6b072;
  --tna-danger: #ff6079;
  --tna-bg: #070609;
  --tna-panel: rgba(23, 15, 22, .9);
  --tna-line: rgba(194, 91, 109, .34);
}

.tna-app, .tna-app * { box-sizing: border-box; }
.tna-app {
  position: relative;
  isolation: isolate;
  width: 100vw;
  max-width: none;
  min-height: 100vh;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  color: var(--tna-ink);
  background:
    linear-gradient(rgba(194,91,109,.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(194,91,109,.026) 1px, transparent 1px),
    radial-gradient(circle at 50% -10%, rgba(111, 70, 114, .36), transparent 40%),
    linear-gradient(150deg, #050508, #100a10 58%, #08070b);
  background-size: 48px 48px, 48px 48px, auto, auto;
  font-family: "Segoe UI", system-ui, sans-serif;
  padding: clamp(16px, 3vw, 34px);
  overflow: hidden;
  line-height: 1.5;
}
.tna-app button, .tna-app input { font: inherit; }
.tna-app img { max-width: 100%; }
.tna-game { display: none; }
.tna-app.is-authenticated .tna-gateway { display: none; }
.tna-app.is-authenticated .tna-game { display: block; }
.tna-gateway {
  position: relative; min-height: calc(100vh - 2 * clamp(16px, 3vw, 34px)); max-width: 1120px; margin: auto;
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(340px, .72fr); align-items: center; gap: clamp(32px, 7vw, 90px);
}
.tna-gateway::before {
  content: ""; position: absolute; width: 56vw; height: 78vh; max-width: 660px; max-height: 780px; left: -19%; top: 1%;
  border: 1px solid rgba(194,91,109,.16); border-radius: 50% 50% 4px 4px; box-shadow: inset 0 0 100px rgba(194,91,109,.05); pointer-events: none;
}
.tna-gateway-stars {
  position: absolute; inset: 0; opacity: .35; pointer-events: none;
  background-image: radial-gradient(circle, #61e8ff 1px, transparent 1.5px);
  background-size: 54px 54px; mask-image: linear-gradient(90deg, #000, transparent 74%);
}
.tna-gateway-copy, .tna-auth-card { position: relative; z-index: 1; }
.tna-gateway-copy h1 {
  max-width: 720px; margin: 8px 0 18px; font-size: clamp(3rem, 7vw, 6.8rem); line-height: .88;
  font-family: Georgia, "Times New Roman", serif; text-transform: uppercase; letter-spacing: -.055em; text-wrap: balance;
  text-shadow: 0 16px 50px rgba(0,0,0,.82);
}
.tna-gateway-copy h1::after {
  content: ""; display: block; width: 110px; height: 3px; margin-top: 24px;
  background: linear-gradient(90deg, var(--tna-cyan), var(--tna-violet)); box-shadow: 0 0 18px var(--tna-cyan);
}
.tna-gateway-lede { max-width: 580px; color: #a9c6d3; font-size: clamp(1rem, 2vw, 1.22rem); line-height: 1.65; }
.tna-mission-status { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 30px; color: var(--tna-muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; }
.tna-mission-status strong { color: var(--tna-cyan); margin-right: 5px; }
.tna-auth-card {
  padding: clamp(22px, 4vw, 38px); border: 1px solid var(--tna-line);
  background:
    linear-gradient(rgba(194,91,109,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(194,91,109,.025) 1px, transparent 1px),
    linear-gradient(155deg, rgba(35,20,32,.97), rgba(8,7,11,.99));
  background-size: 28px 28px, 28px 28px, auto;
  box-shadow: 0 32px 90px rgba(0,0,0,.48), inset 0 1px rgba(255,255,255,.04);
  clip-path: polygon(16px 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%, 0 16px);
}
.tna-auth-brand { display: flex; align-items: center; gap: 11px; margin-bottom: 26px; }
.tna-brand-mark {
  display: grid; place-items: center; width: 42px; height: 42px; color: #001018; background: var(--tna-cyan);
  font-size: 1.5rem; font-weight: 900; clip-path: polygon(50% 0, 100% 25%, 88% 88%, 50% 100%, 12% 88%, 0 25%);
}
.tna-auth-brand strong, .tna-auth-brand small { display: block; letter-spacing: .14em; }
.tna-auth-brand small { color: var(--tna-muted); font-size: .58rem; margin-top: 3px; }
.tna-auth-tabs { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--tna-line); margin-bottom: 22px; }
.tna-auth-tabs button { color: var(--tna-muted); background: transparent; border: 0; border-bottom: 2px solid transparent; padding: 11px; cursor: pointer; text-transform: uppercase; letter-spacing: .1em; }
.tna-auth-tabs button.is-active { color: var(--tna-cyan); border-color: var(--tna-cyan); }
.tna-auth-form { display: grid; gap: 15px; }
.tna-auth-form[hidden] { display: none; }
.tna-auth-form label, .tna-sprite-picker legend { color: var(--tna-muted); font-size: .67rem; text-transform: uppercase; letter-spacing: .1em; }
.tna-auth-form input {
  width: 100%; margin-top: 7px; padding: 12px 13px; color: var(--tna-ink); background: rgba(1,8,16,.68);
  border: 1px solid rgba(122,165,184,.34); border-radius: 2px; outline: none;
}
.tna-auth-form input:focus { border-color: var(--tna-cyan); box-shadow: 0 0 0 3px rgba(97,232,255,.09); }
.tna-dispatch-optin { display: flex; align-items: flex-start; gap: 8px; line-height: 1.45; text-transform: none !important; letter-spacing: .02em !important; }
.tna-auth-form .tna-dispatch-optin input { width: auto; margin: 3px 0 0; flex: 0 0 auto; }
.tna-sprite-picker { min-width: 0; margin: 0; padding: 0; border: 0; }
.tna-sprite-picker > div { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; margin-top: 8px; }
.tna-sprite-choice { position: relative; min-width: 0; padding: 6px 3px; border: 1px solid rgba(122,165,184,.22); text-align: center; cursor: pointer; }
.tna-sprite-choice input { position: absolute; opacity: 0; width: 1px; }
.tna-sprite-choice:has(input:checked) { border-color: var(--tna-cyan); background: rgba(97,232,255,.08); }
.tna-sprite-choice small { display: block; overflow: hidden; color: var(--tna-muted); font-size: .5rem; text-overflow: ellipsis; white-space: nowrap; }
.tna-sprite {
  display: inline-block; width: 58px; height: 66px; max-width: 100%;
  background-image: url("../sprites/travelers-sprite-sheet.png"); background-size: 200% 200%; background-repeat: no-repeat;
  filter: drop-shadow(0 5px 7px rgba(0,0,0,.55));
}
.tna-sprite-0 { background-position: 0 0; }
.tna-sprite-1 { background-position: 100% 0; }
.tna-sprite-2 { background-position: 0 100%; }
.tna-sprite-3 { background-position: 100% 100%; }
.tna-auth-divider { display: flex; align-items: center; gap: 10px; margin: 20px 0 12px; color: var(--tna-muted); font-size: .62rem; text-transform: uppercase; letter-spacing: .08em; }
.tna-auth-divider::before, .tna-auth-divider::after { content: ""; height: 1px; flex: 1; background: rgba(122,165,184,.22); }
.tna-google-button {
  display: flex; justify-content: center; align-items: center; min-height: 44px; color: var(--tna-muted);
  font-size: .7rem; text-align: center;
}
.tna-google-button > div { max-width: 100%; }
.tna-google-button.is-busy { opacity: .55; pointer-events: none; }
.tna-auth-message { min-height: 1.25em; margin: 12px 0 0; color: var(--tna-gold); font-size: .72rem; text-align: center; }
.tna-auth-message.is-error { color: var(--tna-danger); }
.tna-auth-note { color: var(--tna-muted); font-size: .62rem; line-height: 1.45; text-align: center; }
.tna-install-button { width: 100%; margin-top: 10px; }
.tna-install-button span, .tna-install-button small { display: block; }
.tna-install-button small { margin-top: 4px; color: var(--tna-muted); font-size: .58rem; font-weight: 400; letter-spacing: .04em; text-transform: none; }
.tna-install-button.is-ready { border-color: var(--tna-gold); box-shadow: 0 0 18px rgba(255,211,106,.18); }
.tna-install-button.is-installed { opacity: .65; }
.tna-topbar, .tna-section-heading, .tna-coordinates {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.tna-topbar { max-width: 980px; margin: 0 auto 18px; }
.tna-player-identity { display: flex; align-items: center; gap: 13px; }
.tna-player-identity .tna-sprite {
  width: 70px; height: 80px; flex: 0 0 70px;
  border-bottom: 1px solid rgba(214,176,114,.58);
  filter: drop-shadow(0 9px 9px rgba(0,0,0,.65)) drop-shadow(0 0 12px rgba(141,122,174,.25));
  animation: tna-avatar-breathe 3.6s ease-in-out infinite;
}
.tna-update-banner {
  max-width: 980px; margin: 0 auto 14px; padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  color: var(--tna-ink); background: linear-gradient(90deg, rgba(154,124,255,.2), rgba(97,232,255,.12)); border: 1px solid var(--tna-violet);
}
.tna-update-banner[hidden] { display: none; }
.tna-update-banner strong, .tna-update-banner span { display: block; }
.tna-update-banner span { margin-top: 3px; color: var(--tna-muted); font-size: .72rem; }
.tna-topbar h1 { margin: 0; font-size: clamp(1.5rem, 5vw, 2.8rem); letter-spacing: .08em; text-transform: uppercase; }
.tna-player-faction { margin: 3px 0 0; color: var(--tna-gold); font: .58rem/1.3 ui-monospace, monospace; letter-spacing: .14em; }
.tna-topbar h1, .tna-section-heading h2, .tna-dialog h2 { font-family: Georgia, "Times New Roman", serif; }
.tna-eyebrow { color: var(--tna-cyan); font-size: .68rem; letter-spacing: .23em; margin: 0 0 5px; }
.tna-signal { color: var(--tna-muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; }
.tna-signal-dot { display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: var(--tna-danger); box-shadow: 0 0 10px currentColor; }
.tna-signal.is-live .tna-signal-dot { background: var(--tna-cyan); }

.tna-hud {
  position: relative; max-width: 980px; margin: auto; padding: 16px;
  border: 1px solid var(--tna-line); background: linear-gradient(180deg, rgba(9, 21, 38, .9), rgba(3, 9, 18, .94));
  clip-path: polygon(18px 0, 100% 0, 100% calc(100% - 18px), calc(100% - 18px) 100%, 0 100%, 0 18px);
}
.tna-compass { display: flex; justify-content: space-between; color: var(--tna-cyan); letter-spacing: .18em; font-size: .72rem; }
.tna-map {
  position: relative; width: 100%; height: clamp(420px, 64vh, 680px); margin: 10px 0; overflow: hidden;
  border: 1px solid rgba(97,232,255,.35); background: #06101d;
}
.tna-map::after {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  box-shadow: inset 0 0 55px rgba(2,7,16,.75);
  background: linear-gradient(rgba(97,232,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(97,232,255,.035) 1px, transparent 1px);
  background-size: 38px 38px;
}
.tna-map-loading { position: absolute; z-index: 1; inset: 0; display: grid; place-items: center; color: var(--tna-muted); font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; }
.tna-map.is-ready .tna-map-loading { display: none; }
.tna-map .maplibregl-map { font-family: inherit; }
.tna-map .maplibregl-canvas { filter: grayscale(.72) sepia(.24) hue-rotate(288deg) saturate(.68) brightness(.56) contrast(1.35); }
.tna-map .maplibregl-ctrl-group { background: rgba(5,15,28,.9); border: 1px solid var(--tna-line); }
.tna-map .maplibregl-ctrl button .maplibregl-ctrl-icon { filter: invert(1) sepia(1) saturate(3) hue-rotate(145deg); }
.tna-map .maplibregl-ctrl-attrib { color: #263b45; font-size: 10px; }
.tna-map .maplibregl-popup-content { color: var(--tna-ink); background: #091727; border: 1px solid var(--tna-cyan); }
.tna-map .maplibregl-popup-tip { border-top-color: #091727; }
.tna-map .maplibregl-popup-close-button { color: var(--tna-ink); }
.tna-map-player {
  width: 24px; height: 24px; border: 3px solid #fff; transform: rotate(45deg);
  background: var(--tna-cyan); box-shadow: 0 0 0 9px rgba(97,232,255,.13), 0 0 24px var(--tna-cyan);
}
.tna-relic-marker {
  position: relative; width: 28px; height: 28px; border: 2px solid #fff; transform: rotate(45deg); cursor: pointer;
  background: var(--tna-gold); box-shadow: 0 0 19px currentColor;
}
.tna-relic-marker::after { content: ""; position: absolute; inset: 7px; background: #fff; }
.tna-relic-marker.uncommon { color: #54f39a; background: #54f39a; }
.tna-relic-marker.rare { color: #61a8ff; background: #61a8ff; }
.tna-relic-marker.epic { color: var(--tna-violet); background: var(--tna-violet); }
.tna-relic-marker.legendary { color: var(--tna-gold); background: var(--tna-gold); animation: tna-relic-pulse 1.8s ease-in-out infinite; }
.tna-chest-marker, .tna-outpost-marker {
  display: grid; place-items: center; width: 31px; height: 26px; padding: 0; color: #f4e8d8;
  border: 1px solid #f4e8d8; background: #5e3849; box-shadow: 0 0 18px rgba(194,91,109,.8); cursor: pointer;
  font: 900 17px/1 Georgia, serif;
}
.tna-chest-marker::before { content: ""; position: absolute; width: 23px; height: 5px; margin-top: -28px; border: 1px solid #f4e8d8; background: #33202c; }
.tna-chest-marker.street { background: #655f5c; }
.tna-chest-marker.field { background: #6c3550; }
.tna-chest-marker.secure { background: #604d89; box-shadow: 0 0 22px rgba(141,122,174,.95); }
.tna-chest-marker.anomaly { background: #9d753b; animation: tna-chest-whisper 1.6s ease-in-out infinite; }
.tna-outpost-marker { width: 30px; height: 38px; color: #d9c4c9; border-color: #d08a97; background: #371c27; border-radius: 50% 50% 3px 3px; }
.tna-outpost-marker.has-terminal {
  color: #fff0c9;
  border-color: var(--tna-gold);
  box-shadow: 0 0 0 5px rgba(214,176,114,.1), 0 0 22px rgba(214,176,114,.75);
  animation: tna-terminal-beacon 2.4s ease-in-out infinite;
}
.tna-encounter-marker {
  display: grid; place-items: center; width: 38px; height: 38px; padding: 0; color: #ffd9df;
  border: 1px solid var(--tna-danger); border-radius: 50%; background: #3f121d;
  box-shadow: 0 0 0 6px rgba(255,96,121,.09), 0 0 24px rgba(255,96,121,.72); cursor: pointer;
  font: 900 16px/1 Georgia, serif; animation: tna-foe-pulse 1.7s ease-in-out infinite;
}
.tna-encounter-marker.ally { color: #d8ffe8; border-color: #75bd98; background: #123b2a; box-shadow: 0 0 0 6px rgba(117,189,152,.09), 0 0 24px rgba(117,189,152,.62); animation-name: tna-ally-pulse; }
.tna-encounter-marker.unknown { color: #efe3ff; border-color: var(--tna-violet); background: #271e3b; animation-name: tna-terminal-beacon; }
.tna-echo-marker {
  display: grid; place-items: center; width: 36px; height: 36px; padding: 0; color: #9fe8ff;
  border: 1px solid #61e8ff; border-radius: 50%; background: rgba(9, 32, 46, .82); cursor: pointer;
  box-shadow: 0 0 0 6px rgba(97,232,255,.08), 0 0 24px rgba(97,232,255,.62); font: 900 16px/1 Georgia, serif;
  animation: tna-echo-ripple 2.2s ease-out infinite;
}
.tna-echo-marker.has-drop { color: #ffe4a8; border-color: var(--tna-gold); box-shadow: 0 0 0 6px rgba(214,176,114,.1), 0 0 25px rgba(214,176,114,.75); }
.tna-event-marker { display:grid;place-items:center;width:40px;height:40px;padding:0;color:#fff5b8;border:1px solid #ffd666;border-radius:50% 50% 50% 8px;background:#5a3711;box-shadow:0 0 0 7px rgba(255,214,102,.1),0 0 28px rgba(255,214,102,.78);cursor:pointer;font:900 18px/1 Georgia,serif;animation:tna-event-beacon 1.55s ease-in-out infinite; }
.tna-event-marker.easter-egg { color:#ffdff7;border-color:#ff92d0;background:#4b183a;box-shadow:0 0 0 7px rgba(255,146,208,.1),0 0 30px rgba(255,146,208,.78); }
.tna-map-legend { display: flex; flex-wrap: wrap; gap: 7px; margin: 2px 0 8px; }
.tna-map-legend button { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 5px 9px; color: #776f78; border: 1px solid rgba(238,230,219,.12); background: rgba(4,8,14,.72); cursor: pointer; font: 700 .56rem/1 ui-monospace, monospace; letter-spacing: .05em; text-transform: uppercase; }
.tna-map-legend button.is-active { color: var(--tna-ink); border-color: rgba(97,232,255,.32); background: rgba(15,37,47,.82); }
.tna-map-legend b { min-width: 18px; padding: 3px 5px; color: var(--tna-cyan); border-radius: 9px; background: rgba(97,232,255,.1); text-align: center; }
.tna-legend-icon { display: grid; place-items: center; width: 18px; height: 18px; color: #fff; font-size: 13px; }
.tna-legend-icon.relic { color: var(--tna-gold); transform: rotate(45deg); }
.tna-legend-icon.chest { color: #d58ba4; }
.tna-legend-icon.outpost { color: #e3bd74; }
.tna-legend-icon.encounter { color: var(--tna-danger); }
.tna-legend-icon.echo { color: var(--tna-cyan); }
.tna-legend-icon.event { color:#ffd666; }
.tna-signal-card.tna-echo-card { border-left-color: var(--tna-cyan); background: linear-gradient(90deg, rgba(97,232,255,.08), rgba(4,9,15,.68)); }
.tna-signal-card.tna-echo-card.has-drop { border-left-color: var(--tna-gold); }
.tna-signal-card.tna-event-card { border-left-color:#ffd666;background:linear-gradient(90deg,rgba(255,214,102,.1),rgba(4,9,15,.68)); }
.tna-signal-card.tna-event-card.easter-egg { border-left-color:#ff92d0;background:linear-gradient(90deg,rgba(255,146,208,.1),rgba(4,9,15,.68)); }
.tna-event-inventory { display:grid;gap:7px;margin:8px 0 18px; }
.tna-event-inventory article { padding:10px 12px;border-left:3px solid #ffd666;background:rgba(255,214,102,.07); }
.tna-event-inventory strong,.tna-event-inventory span { display:block; }.tna-event-inventory span { margin-top:4px;color:var(--tna-muted);font:.62rem/1.4 ui-monospace,monospace; }

.tna-veil-view { position: fixed; z-index: 999999; inset: 0; overflow: hidden; color: #f2ece4; background: #020408; }
.tna-veil-view[hidden] { display: none; }
.tna-veil-view video { width: 100%; height: 100%; object-fit: cover; filter: saturate(.74) contrast(1.18) brightness(.72) hue-rotate(166deg); }
.tna-veil-shade { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at center, transparent 20%, rgba(2,6,12,.28) 64%, rgba(2,3,8,.78)), repeating-linear-gradient(0deg, rgba(97,232,255,.025) 0 1px, transparent 1px 4px); }
.tna-veil-header, .tna-veil-footer { position: absolute; z-index: 3; left: 0; right: 0; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: max(16px, env(safe-area-inset-top)) 18px 12px; background: linear-gradient(180deg, rgba(1,5,10,.84), transparent); }
.tna-veil-header { top: 0; }
.tna-veil-header p { margin: 0; color: var(--tna-cyan); font: 800 .62rem/1.4 ui-monospace, monospace; letter-spacing: .14em; }
.tna-veil-header strong { font: 500 .68rem/1.4 ui-monospace, monospace; }
.tna-veil-header button { width: 44px; height: 44px; color: #fff; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; background: rgba(0,0,0,.5); font-size: 28px; }
.tna-veil-footer { bottom: 0; top: auto; padding: 28px 18px max(18px, env(safe-area-inset-bottom)); background: linear-gradient(0deg, rgba(1,5,10,.88), transparent); font: 600 .62rem/1.4 ui-monospace, monospace; }
.tna-veil-footer span:first-child { color: var(--tna-cyan); font-size: 1.1rem; }
.tna-veil-objects { position: absolute; z-index: 2; inset: 80px 0 70px; pointer-events: none; overflow: hidden; }
.tna-veil-object { position: absolute; left: var(--veil-x); top: var(--veil-y); width: min(42vw, 180px); transform: translate(-50%, -50%) scale(var(--veil-scale)); opacity: var(--veil-opacity); text-align: center; transition: left .15s linear, top .2s ease, opacity .2s ease; }
.tna-veil-object .tna-veil-icon { display: grid; place-items: center; width: 82px; height: 82px; margin: auto; color: var(--tna-cyan); border: 1px solid currentColor; background: rgba(4,15,24,.42); box-shadow: inset 0 0 25px rgba(97,232,255,.15), 0 0 28px rgba(97,232,255,.25); font: 900 34px/1 Georgia, serif; clip-path: polygon(50% 0, 100% 22%, 90% 82%, 50% 100%, 10% 82%, 0 22%); }
.tna-veil-object.chest .tna-veil-icon { color: #e89ab1; }
.tna-veil-object.outpost .tna-veil-icon { color: #e4bd76; }
.tna-veil-object.encounter .tna-veil-icon { color: #ff758b; }
.tna-veil-object.echo .tna-veil-icon { color: #8edfff; border-radius: 50%; clip-path: none; }
.tna-veil-object.event .tna-veil-icon { color:#ffd666;border-radius:50% 50% 50% 8px;clip-path:none;background:rgba(67,38,8,.45); }
.tna-veil-object strong, .tna-veil-object span { display: block; margin-top: 5px; padding: 3px 7px; text-shadow: 0 2px 5px #000; background: rgba(0,0,0,.48); font: 800 .65rem/1.25 ui-monospace, monospace; }
.tna-veil-object span { color: #bdefff; font-size: .58rem; }
.tna-veil-reticle { position: absolute; z-index: 1; left: 50%; top: 50%; width: 110px; height: 110px; transform: translate(-50%,-50%); border: 1px solid rgba(97,232,255,.35); border-radius: 50%; box-shadow: 0 0 30px rgba(97,232,255,.16); pointer-events: none; }
.tna-veil-reticle::before, .tna-veil-reticle::after { content: ""; position: absolute; left: 50%; top: 50%; background: rgba(97,232,255,.45); transform: translate(-50%,-50%); }
.tna-veil-reticle::before { width: 150px; height: 1px; }.tna-veil-reticle::after { width: 1px; height: 150px; }
@keyframes tna-echo-ripple { 65% { box-shadow: 0 0 0 18px rgba(97,232,255,0), 0 0 30px rgba(97,232,255,.7); } }
@keyframes tna-event-beacon { 50% { transform:translateY(-3px) scale(1.08);filter:brightness(1.25); } }
@keyframes tna-chest-whisper { 50% { filter: brightness(1.4); transform: translateY(-3px); } }
@keyframes tna-relic-pulse { 50% { box-shadow: 0 0 35px currentColor; transform: rotate(45deg) scale(1.14); } }
@keyframes tna-terminal-beacon { 50% { box-shadow: 0 0 0 10px rgba(214,176,114,0), 0 0 34px rgba(214,176,114,.9); } }
@keyframes tna-avatar-breathe { 50% { transform: translateY(-2px); filter: drop-shadow(0 11px 10px rgba(0,0,0,.7)) drop-shadow(0 0 17px rgba(141,122,174,.42)); } }
@keyframes tna-foe-pulse { 50% { transform: scale(1.1); box-shadow: 0 0 0 12px rgba(255,96,121,0), 0 0 35px rgba(255,96,121,.9); } }
@keyframes tna-ally-pulse { 50% { transform: translateY(-2px); box-shadow: 0 0 0 11px rgba(117,189,152,0), 0 0 31px rgba(117,189,152,.8); } }
.tna-radar {
  width: min(74vw, 510px); aspect-ratio: 1; margin: 8px auto; border-radius: 50%;
  position: relative; overflow: hidden; border: 1px solid var(--tna-line);
  background:
    linear-gradient(rgba(97,232,255,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(97,232,255,.06) 1px, transparent 1px),
    radial-gradient(circle, rgba(97,232,255,.1), rgba(5,15,28,.94) 65%);
  background-size: 32px 32px, 32px 32px, auto;
  box-shadow: inset 0 0 50px rgba(97, 232, 255, .08), 0 0 40px rgba(0,0,0,.35);
}
.tna-ring { position: absolute; inset: 18%; border: 1px solid var(--tna-line); border-radius: 50%; }
.tna-ring-two { inset: 36%; }
.tna-sweep { position: absolute; inset: 50% 0 0 50%; transform-origin: 0 0; border-top: 1px solid var(--tna-cyan); animation: tna-sweep 5s linear infinite; opacity: .55; }
.tna-player-marker {
  position: absolute; z-index: 3; left: 50%; top: 50%; width: 20px; height: 20px; transform: translate(-50%,-50%) rotate(45deg);
  background: var(--tna-cyan); border: 3px solid #fff; box-shadow: 0 0 20px var(--tna-cyan); cursor: pointer;
}
.tna-world-marker {
  position: absolute; z-index: 2; width: 16px; height: 16px; border: 0; transform: translate(-50%,-50%) rotate(45deg);
  background: var(--tna-gold); box-shadow: 0 0 16px currentColor; cursor: pointer;
}
.tna-world-marker.encounter { background: var(--tna-violet); }
.tna-coordinates { color: var(--tna-muted); font-family: ui-monospace, monospace; font-size: .75rem; }
@keyframes tna-sweep { to { transform: rotate(360deg); } }

.tna-status-grid, .tna-actions { display: grid; max-width: 980px; margin: 12px auto; gap: 10px; grid-template-columns: repeat(5, 1fr); }
.tna-actions { grid-template-columns: repeat(7, 1fr); }
.tna-status-grid article { padding: 11px; border-left: 2px solid var(--tna-cyan); background: var(--tna-panel); }
.tna-status-grid span { display: block; color: var(--tna-muted); font-size: .64rem; letter-spacing: .14em; }
.tna-status-grid strong { font-size: 1.35rem; }
.tna-button {
  color: var(--tna-ink); background: rgba(12,31,52,.9); border: 1px solid var(--tna-line); padding: 12px;
  text-transform: uppercase; letter-spacing: .1em; font-weight: 700; cursor: pointer;
}
.tna-button:hover, .tna-button:focus { border-color: var(--tna-cyan); box-shadow: 0 0 18px rgba(97,232,255,.18); }
.tna-button-primary { color: #001018; background: var(--tna-cyan); }
.tna-button:disabled { opacity: .4; cursor: not-allowed; }
.tna-feed { max-width: 980px; margin: 24px auto; }
.tna-section-heading { border-bottom: 1px solid var(--tna-line); }
.tna-section-heading h2 { text-transform: uppercase; letter-spacing: .12em; font-size: 1rem; }
.tna-section-heading span { color: var(--tna-muted); font-size: .75rem; }
.tna-signal-list { display: grid; gap: 9px; margin-top: 12px; }
.tna-signal-card { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 14px; background: var(--tna-panel); border-left: 3px solid var(--tna-gold); }
.tna-signal-card.encounter { border-color: var(--tna-violet); }
.tna-signal-card h3 { margin: 0 0 3px; font-size: .95rem; }
.tna-signal-card p, .tna-empty { margin: 0; color: var(--tna-muted); font-size: .78rem; }
.tna-signal-card.is-near { box-shadow: inset 0 0 28px rgba(97,232,255,.08); border-color: var(--tna-cyan); }
.tna-chest-card { border-color: #8d667b; background: linear-gradient(90deg, rgba(89,46,67,.25), var(--tna-panel)); }
.tna-sponsored-card { border-color: #bc8993; background: linear-gradient(90deg, rgba(176,68,86,.13), rgba(23,15,22,.9)); }
.tna-sponsored-card .tna-rarity { color: #d9a3ad; }
.tna-encounter-card { border-color: var(--tna-danger); background: linear-gradient(90deg, rgba(255,96,121,.12), rgba(23,15,22,.94)); }
.tna-encounter-card.ally { border-color: #75bd98; background: linear-gradient(90deg, rgba(117,189,152,.12), rgba(13,26,22,.94)); }
.tna-encounter-card.unknown { border-color: var(--tna-violet); }
.tna-sponsored-card:has(.tna-button-primary) {
  border-color: var(--tna-gold);
  background: linear-gradient(90deg, rgba(214,176,114,.12), rgba(35,17,28,.95));
  box-shadow: inset 0 0 32px rgba(214,176,114,.045);
}
.tna-rarity { color: var(--tna-gold); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.tna-collect-result { padding: 12px; border-left: 3px solid var(--tna-gold); background: rgba(255,211,106,.08); }
.tna-safety { max-width: 980px; margin: 28px auto 0; color: var(--tna-muted); text-align: center; font-size: .72rem; }
.tna-dialog { width: min(92vw, 520px); color: var(--tna-ink); background: #091727; border: 1px solid var(--tna-cyan); padding: 24px; }
.tna-dialog { max-height: 88vh; overflow: auto; background: linear-gradient(155deg, #1b111a, #09080c); }
.tna-dialog::backdrop { background: rgba(0, 5, 12, .78); backdrop-filter: blur(5px); }
.tna-dialog-close { float: right; color: var(--tna-ink); background: transparent; border: 0; font-size: 1.7rem; cursor: pointer; }
.tna-install-dialog h2 { margin-top: 7px; text-transform: uppercase; letter-spacing: .08em; }
.tna-install-dialog ol { padding-left: 22px; color: var(--tna-muted); line-height: 1.75; }
.tna-install-dialog strong { color: var(--tna-ink); }
.tna-install-dialog .tna-install-checks { margin: 16px 0; padding: 12px; border-left: 2px solid var(--tna-cyan); background: rgba(97,232,255,.06); color: var(--tna-muted); font-size: .76rem; line-height: 1.55; }
.tna-dialog-note, .tna-sponsored-disclosure { padding: 11px; color: var(--tna-muted); border-left: 2px solid var(--tna-violet); background: rgba(141,122,174,.08); font-size: .75rem; line-height: 1.55; }
.tna-sponsored-disclosure { border-color: #bc8993; background: rgba(176,68,86,.08); }
.tna-outpost-link { display: block; margin-top: 14px; text-align: center; text-decoration: none; }
.tna-terminal-enter { width: 100%; margin-top: 14px; }
.tna-loot-reveal { display: grid; gap: 9px; margin-top: 18px; }
.tna-item-card {
  display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 13px;
  border-left: 3px solid #777; background: rgba(255,255,255,.035);
}
.tna-item-card h3 { margin: 2px 0 4px; font-size: .95rem; }
.tna-item-card p { margin: 0; color: var(--tna-muted); font: .66rem/1.5 ui-monospace, monospace; }
.tna-item-card.uncommon { border-color: #6fa47d; }
.tna-item-card.rare { border-color: #6d83b8; }
.tna-item-card.epic { border-color: var(--tna-violet); }
.tna-item-card.legendary { border-color: var(--tna-gold); box-shadow: inset 0 0 22px rgba(214,176,114,.06); }
.tna-loot-reveal .tna-item-card { opacity: 0; transform: translateY(10px); animation: tna-loot-reveal .45s ease forwards; animation-delay: var(--reveal-delay); }
@keyframes tna-loot-reveal { to { opacity: 1; transform: translateY(0); } }
.tna-backpack { width: min(92vw, 760px); }
.tna-backpack-notice { padding: 10px; color: #c8d9ca; border: 1px solid #63806b; background: rgba(99,128,107,.1); }
.tna-inventory-heading { margin: 22px 0 9px; color: #d2c6ba; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; }
.tna-loadout-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; }
.tna-loadout-grid article { min-width: 0; padding: 9px; border: 1px solid rgba(238,230,219,.13); background: rgba(0,0,0,.22); }
.tna-loadout-grid span, .tna-loadout-grid strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tna-loadout-grid span { color: var(--tna-muted); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; }
.tna-loadout-grid strong { margin-top: 4px; font-size: .68rem; }
.tna-loadout-grid .is-filled { border-color: var(--tna-violet); }
.tna-backpack-list { display: grid; gap: 8px; }
.tna-relic-inventory { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px; }
.tna-relic-inventory article { min-width: 0; padding: 9px; border-left: 2px solid var(--tna-gold); background: rgba(214,176,114,.05); }
.tna-relic-inventory span, .tna-relic-inventory strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tna-relic-inventory span { color: var(--tna-muted); font-size: .55rem; text-transform: uppercase; }
.tna-relic-inventory strong { margin-top: 3px; font-size: .7rem; }
.tna-item-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; align-content: center; gap: 5px; max-width: 170px; }
.tna-mini-button { padding: 6px 8px; color: var(--tna-ink); border: 1px solid rgba(238,230,219,.24); background: #251822; font: 700 .55rem/1.2 ui-monospace, monospace; text-transform: uppercase; cursor: pointer; }
.tna-mini-danger { color: #e8a6b1; border-color: rgba(194,91,109,.42); }
.tna-council-form { display: grid; gap: 14px; }
.tna-council-form label { color: var(--tna-muted); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.tna-council-form select, .tna-council-form textarea { display: block; width: 100%; margin-top: 6px; padding: 11px; color: var(--tna-ink); border: 1px solid rgba(238,230,219,.22); background: #0c090d; }
.tna-council-form .tna-check-row { letter-spacing: .01em; line-height: 1.45; text-transform: none; }
.tna-council-strip { display: flex; align-items: center; justify-content: space-between; gap: 22px; max-width: 980px; margin: 28px auto 0; padding: 18px; border: 1px solid rgba(141,122,174,.35); background: rgba(141,122,174,.07); }
.tna-council-strip p { margin: 0; color: var(--tna-muted); font-size: .78rem; line-height: 1.6; }
.tna-council-strip strong { display: block; color: var(--tna-ink); font-family: Georgia, serif; font-size: 1rem; }
.tna-council-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.tna-council-actions .tna-button { display: inline-block; text-align: center; text-decoration: none; }

.tna-field-flash {
  position: fixed; z-index: 9999; inset: 0; pointer-events: none; opacity: 0;
  background:
    radial-gradient(circle at 50% 48%, rgba(255,232,166,.3), transparent 26%),
    linear-gradient(90deg, transparent, rgba(194,91,109,.18), transparent);
  mix-blend-mode: screen;
}
.tna-app.is-economy-flash .tna-field-flash { animation: tna-commerce-flash .82s ease-out; }
@keyframes tna-commerce-flash {
  0% { opacity: 0; transform: scale(.96); }
  22% { opacity: 1; }
  100% { opacity: 0; transform: scale(1.04); }
}

.tna-dialog.tna-terminal-dialog { width: min(94vw, 800px); border-color: var(--tna-gold); box-shadow: 0 30px 100px rgba(0,0,0,.72), 0 0 45px rgba(214,176,114,.11); }
.tna-terminal-masthead {
  position: relative; display: flex; align-items: center; gap: 16px; min-height: 108px; margin: 18px 0 12px; padding: 10px 16px 0;
  overflow: hidden; border: 1px solid rgba(214,176,114,.28);
  background:
    linear-gradient(90deg, rgba(214,176,114,.08), rgba(141,122,174,.11)),
    repeating-linear-gradient(0deg, transparent 0 5px, rgba(255,255,255,.018) 5px 6px);
}
.tna-terminal-masthead::after {
  content: ""; position: absolute; right: -25px; top: -52px; width: 190px; height: 190px; opacity: .18;
  border: 1px solid var(--tna-gold); border-radius: 50%; box-shadow: inset 0 0 45px rgba(214,176,114,.14);
}
.tna-terminal-masthead .tna-sprite { position: relative; z-index: 1; width: 82px; height: 94px; flex: 0 0 82px; }
.tna-terminal-masthead div { position: relative; z-index: 1; }
.tna-terminal-masthead span:not(.tna-sprite), .tna-terminal-masthead strong { display: block; }
.tna-terminal-masthead span:not(.tna-sprite) { color: var(--tna-gold); font: .58rem/1.4 ui-monospace, monospace; letter-spacing: .14em; }
.tna-terminal-masthead strong { margin-top: 7px; font-family: Georgia, serif; font-size: clamp(.92rem, 3vw, 1.28rem); }
.tna-terminal-currency { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; margin-bottom: 20px; }
.tna-terminal-currency span { min-width: 0; padding: 9px; border-left: 2px solid var(--tna-gold); background: rgba(0,0,0,.27); }
.tna-terminal-currency small, .tna-terminal-currency strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tna-terminal-currency small { color: var(--tna-muted); font: .52rem/1.2 ui-monospace, monospace; letter-spacing: .12em; }
.tna-terminal-currency strong { margin-top: 3px; color: #f6e2bd; font: 800 .9rem/1.25 ui-monospace, monospace; }
.tna-terminal-heading {
  margin: 23px 0 9px; padding-bottom: 7px; color: #e7d9c5; border-bottom: 1px solid rgba(214,176,114,.22);
  font-family: Georgia, serif; font-size: .86rem; letter-spacing: .14em; text-transform: uppercase;
}
.tna-terminal-notice { padding: 11px 13px; color: #ead7b7; border: 1px solid rgba(214,176,114,.4); background: rgba(214,176,114,.08); animation: tna-notice-rise .4s ease-out; }
@keyframes tna-notice-rise { from { opacity: 0; transform: translateY(7px); } }
.tna-market-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.tna-market-card {
  min-width: 0; padding: 12px; border: 1px solid rgba(238,230,219,.12); border-top: 2px solid #777;
  background: linear-gradient(150deg, rgba(255,255,255,.045), rgba(0,0,0,.22));
}
.tna-market-card.uncommon, .tna-upgrade-card.uncommon { border-top-color: #6fa47d; }
.tna-market-card.rare, .tna-upgrade-card.rare { border-top-color: #6d83b8; }
.tna-market-card.epic, .tna-upgrade-card.epic { border-top-color: var(--tna-violet); }
.tna-market-card.legendary, .tna-upgrade-card.legendary { border-top-color: var(--tna-gold); }
.tna-market-card h4 { margin: 3px 0; font-family: Georgia, serif; font-size: .92rem; }
.tna-market-card > p { min-height: 2.7em; margin: 0 0 10px; color: var(--tna-muted); font: .61rem/1.45 ui-monospace, monospace; }
.tna-market-card > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.tna-market-card > div strong { color: #e1c99c; font: .58rem/1.3 ui-monospace, monospace; }
.tna-mini-button:disabled { opacity: .35; cursor: not-allowed; }
.tna-exchange-panel { padding: 14px; border: 1px solid rgba(141,122,174,.32); background: rgba(141,122,174,.07); }
.tna-exchange-panel p { margin: 0 0 12px; color: var(--tna-muted); font-size: .76rem; }
.tna-exchange-panel div { display: flex; flex-wrap: wrap; gap: 7px; }
.tna-upgrade-list { display: grid; gap: 7px; }
.tna-upgrade-card {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px;
  border: 1px solid rgba(238,230,219,.12); border-left: 3px solid #777; background: rgba(0,0,0,.21);
}
.tna-upgrade-card span, .tna-upgrade-card strong, .tna-upgrade-card small { display: block; }
.tna-upgrade-card strong { margin: 2px 0; font-size: .82rem; }
.tna-upgrade-card small { color: var(--tna-muted); font-size: .62rem; }
.tna-upgrade-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }

.tna-faction-profile { width: min(78vw, 720px); }
.tna-faction-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 20px 0; }
.tna-faction-card {
  position: relative; min-width: 0; padding: 15px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--faction-color) 55%, transparent);
  background: linear-gradient(150deg, color-mix(in srgb, var(--faction-color) 13%, transparent), rgba(0,0,0,.25));
}
.tna-faction-card::after { content: ""; position: absolute; right: -25px; top: -30px; width: 110px; height: 110px; opacity: .12; border: 1px solid var(--faction-color); border-radius: 50%; }
.tna-faction-card.is-bound { box-shadow: inset 0 0 30px color-mix(in srgb, var(--faction-color) 12%, transparent), 0 0 20px color-mix(in srgb, var(--faction-color) 15%, transparent); }
.tna-faction-sigil { position: relative; z-index: 1; display: grid; place-items: center; width: 42px; height: 42px; color: #09070a; background: var(--faction-color); font: 900 1.35rem/1 Georgia, serif; clip-path: polygon(50% 0,100% 25%,88% 88%,50% 100%,12% 88%,0 25%); }
.tna-faction-card h3 { margin: 12px 0 2px; font-family: Georgia, serif; font-size: 1.04rem; }
.tna-faction-card > strong { display: block; min-height: 2.7em; color: var(--faction-color); font-size: .66rem; letter-spacing: .05em; }
.tna-faction-card p { min-height: 7.5em; color: var(--tna-muted); font-size: .7rem; line-height: 1.55; }
.tna-faction-card .tna-button { width: 100%; padding: 9px 6px; font-size: .56rem; }
.tna-faction-bound { display: block; padding: 9px; color: var(--faction-color); border: 1px solid var(--faction-color); font: 800 .57rem/1 ui-monospace, monospace; text-align: center; letter-spacing: .12em; }
.tna-faction-progress { margin-top: 16px; padding: 15px; border: 1px solid rgba(117,189,152,.28); background: linear-gradient(145deg, rgba(117,189,152,.08), rgba(0,0,0,.22)); }
.tna-faction-progress h3 { margin: 0 0 4px; font-family: Georgia, serif; font-size: 1.05rem; }
.tna-faction-progress > p { margin: 0 0 9px; color: var(--tna-muted); font-size: .68rem; }
.tna-faction-meter { height: 7px; overflow: hidden; border: 1px solid rgba(238,230,219,.14); background: rgba(0,0,0,.35); }
.tna-faction-meter span { display: block; height: 100%; background: linear-gradient(90deg, #75bd98, #c9f1dc); box-shadow: 0 0 12px rgba(117,189,152,.5); }
.tna-faction-contract { margin-top: 12px; padding: 11px; border-left: 3px solid #c9a86a; background: rgba(201,168,106,.08); }
.tna-faction-contract strong { color: #e6ca95; font: 800 .62rem/1.2 ui-monospace, monospace; letter-spacing: .1em; }
.tna-faction-contract p { margin: 5px 0 0; color: var(--tna-text); font-size: .67rem; line-height: 1.5; }

.tna-battle-console { width: min(80vw, 740px); }
.tna-battle-relation { padding: 9px 11px; color: #ffb3c0; border-left: 3px solid var(--tna-danger); background: rgba(255,96,121,.08); font: 800 .63rem/1.4 ui-monospace, monospace; letter-spacing: .12em; }
.tna-battle-relation.ally { color: #bdeed1; border-color: #75bd98; background: rgba(117,189,152,.08); }
.tna-battle-combatants { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 15px 0; }
.tna-battle-combatants article { position: relative; min-height: 150px; padding: 13px; overflow: hidden; border: 1px solid rgba(238,230,219,.12); background: rgba(0,0,0,.24); }
.tna-battle-combatants article:first-child { padding-left: 105px; }
.tna-battle-combatants .tna-sprite { position: absolute; left: 7px; bottom: 0; width: 88px; height: 101px; }
.tna-battle-combatants h3 { margin: 0 0 22px; font-family: Georgia, serif; font-size: .9rem; text-transform: uppercase; letter-spacing: .08em; }
.tna-battle-meter { display: grid; grid-template-columns: 1fr auto; gap: 5px; align-items: center; color: var(--tna-muted); font: .54rem/1.2 ui-monospace, monospace; letter-spacing: .08em; }
.tna-battle-meter > span { grid-column: 1 / -1; display: block; height: 8px; overflow: hidden; background: rgba(255,255,255,.08); }
.tna-battle-meter i { display: block; height: 100%; background: #75bd98; box-shadow: 0 0 12px rgba(117,189,152,.6); transition: width .35s ease; }
.tna-battle-meter.enemy i { background: var(--tna-danger); box-shadow: 0 0 12px rgba(255,96,121,.65); }
.tna-battle-equipment { padding: 10px; color: #d9c8aa; border: 1px solid rgba(214,176,114,.25); background: rgba(214,176,114,.06); font: .62rem/1.45 ui-monospace, monospace; }
.tna-battle-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin: 13px 0; }

@media (max-width: 660px) {
  .tna-gateway { grid-template-columns: 1fr; align-content: center; }
  .tna-gateway-copy h1 { font-size: clamp(2.65rem, 15vw, 4.7rem); }
  .tna-gateway-copy { padding-top: 18px; }
  .tna-mission-status { display: none; }
  .tna-auth-card { margin-bottom: 20px; }
  .tna-status-grid { grid-template-columns: repeat(2, 1fr); }
  .tna-actions { grid-template-columns: repeat(2, 1fr); }
  .tna-topbar { align-items: flex-start; }
  .tna-signal { max-width: 110px; text-align: right; }
  .tna-map { height: 56vh; min-height: 390px; }
  .tna-update-banner { align-items: stretch; flex-direction: column; }
  .tna-loadout-grid { grid-template-columns: repeat(2, 1fr); }
  .tna-item-card { grid-template-columns: 1fr; }
  .tna-item-actions { justify-content: flex-start; max-width: none; }
  .tna-council-strip { align-items: stretch; flex-direction: column; }
  .tna-terminal-currency { grid-template-columns: repeat(2, 1fr); }
  .tna-market-grid { grid-template-columns: 1fr; }
  .tna-terminal-masthead { min-height: 92px; padding-left: 9px; }
  .tna-terminal-masthead .tna-sprite { width: 66px; height: 76px; flex-basis: 66px; }
  .tna-upgrade-card { align-items: stretch; flex-direction: column; }
  .tna-upgrade-card .tna-mini-button { width: 100%; }
  .tna-faction-grid { grid-template-columns: 1fr; }
  .tna-faction-card p, .tna-faction-card > strong { min-height: 0; }
  .tna-battle-combatants { grid-template-columns: 1fr; }
  .tna-battle-combatants article:first-child { padding-left: 88px; }
  .tna-battle-combatants .tna-sprite { width: 72px; height: 83px; }
}
@media (min-width: 661px) and (max-width: 900px) {
  .tna-gateway { grid-template-columns: .9fr 1fr; gap: 28px; }
  .tna-gateway-copy h1 { font-size: clamp(3rem, 7vw, 5rem); }
}
@media (prefers-reduced-motion: reduce) {
  .tna-sweep, .tna-player-identity .tna-sprite, .tna-outpost-marker.has-terminal, .tna-encounter-marker, .tna-app.is-economy-flash .tna-field-flash { animation: none; }
}
