.orbit-game-page {
  background: linear-gradient(#050916ba,#050916ec), url('/assets/orbita-hero.png') center/cover fixed !important;
  display: grid;
  place-items: center;
  min-height: 100svh;
  padding: 16px;
}
.orbit-console {
  width: min(620px, 100%);
  position: relative;
}
.orbit-console-head {
  height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.orbit-console-head > img {
  width: 166px;
}
.orbit-console-head > a {
  color: #c0c9df;
  text-decoration: none;
  font-size: 14px;
}
.orbit-environment {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--lime);
}
.orbit-screen {
  height: min(820px, calc(100svh - 150px));
  min-height: 490px;
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  background: #080d1d;
  border: 1px solid #a497ff45;
  box-shadow: 0 0 0 5px #10172a, 0 0 0 6px #6ee5ef15, 0 30px 100px #000b;
  isolation: isolate;
}
.orbit-screen canvas {
  width: 100%;
  height: 100%;
  display: block;
  touch-action: none;
  cursor: crosshair;
}
.orbit-hud {
  position: absolute;
  inset: 14px 14px auto;
  display: flex;
  justify-content: space-between;
  pointer-events: none;
  gap: 8px;
}
.orbit-hud > div {
  min-width: 65px;
  padding: 8px 12px;
  background: #0b1328d9;
  border: 1px solid #ffffff18;
  border-radius: 12px;
  backdrop-filter: blur(10px);
}
.orbit-hud small {
  display: block;
  color: #a1aac2;
  font-size: 11px;
  letter-spacing: 0.1em;
  font-weight: 750;
}
.orbit-hud strong {
  font-size: 20px;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
  color: #fff;
}
.orbit-instruction {
  position: absolute;
  top: 85px;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  background: #161e38cc;
  padding: 6px 14px;
  border-radius: 25px;
  color: #c7d0e6;
  font-size: 12px;
  pointer-events: none;
}
.orbit-instruction.is-ready {
  background: var(--lime);
  color: #142113;
  font-weight: 800;
}
.orbit-effects {
  position: absolute;
  top: 127px;
  left: 16px;
  display: flex;
  gap: 8px;
  pointer-events: none;
}
.orbit-effect {
  border-radius: 10px;
  border: 1px solid #7ba7dc45;
  background: #122542e6;
  padding: 6px 10px;
  font-size: 11px;
  white-space: nowrap;
  color: var(--cyan);
}
.nix-message {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  background: #0c1527e6;
  padding: 9px 16px;
  border: 1px solid #ad9cfe45;
  border-radius: 14px;
  font-size: 13px;
  white-space: nowrap;
  pointer-events: none;
}
.orbit-intro {
  position: absolute;
  inset: 0;
  background: linear-gradient(155deg,#17213e,#080e20 85%);
  overflow: auto;
}
.orbit-intro-art {
  height: 46%;
  min-height: 160px;
  width: 100%;
  object-fit: cover;
  object-position: 74% center;
  mask-image: linear-gradient(black 75%, transparent);
}
.orbit-intro-bottom {
  padding: 0 34px 24px;
  margin-top: -8px;
  position: relative;
  text-align: left;
}
.orbit-intro-bottom h1 {
  font-size: clamp(34px, 6vw, 48px);
  line-height: 1.08;
  letter-spacing: -0.04em;
  margin: 14px 0;
  color: #fff;
}
.orbit-intro-bottom p {
  font-size: 16px;
  color: var(--muted);
  margin: 12px 0;
}
.orbit-intro .orb-btn {
  width: 100%;
  margin-top: 15px;
}
.orbit-intro-bottom > small {
  display: block;
  text-align: center;
  color: #8d9bb6;
  font-size: 11px;
  margin-top: 12px;
}
.orbit-entry {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  color: #becbe1;
  flex-wrap: wrap;
}
.orbit-entry select {
  background: #20283d;
  color: white;
  border: 1px solid #ffffff30;
  padding: 8px 12px;
  border-radius: 10px;
}
.orbit-entry > span {
  margin-left: auto;
  font-weight: 800;
  color: var(--lime);
}
.orbit-link {
  display: block;
  color: #b6c3df;
  background: none;
  border: 0;
  font-size: 13px;
  cursor: pointer;
  padding: 11px 5px;
  text-decoration: none;
  text-align: center;
}
.orbit-error {
  color: #ffbdcb !important;
}
.orbit-pause,
.orbit-result {
  position: absolute;
  inset: 0;
  background: #0c1126ed;
  backdrop-filter: blur(20px);
  padding: 22px 36px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: auto;
}
.orbit-pause > img,
.orbit-result > img {
  width: 135px;
  max-height: 150px;
  object-fit: contain;
  animation: nixFloat 3s ease-in-out infinite;
}
.orbit-pause h2,
.orbit-result h2 {
  font-size: 28px;
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin: 16px 0;
}
.orbit-pause p,
.orbit-result p {
  font-size: 14px;
  color: var(--muted);
  max-width: 300px;
}
.orbit-pause .orb-btn,
.orbit-result .orb-btn {
  width: 100%;
  margin-top: 16px;
}
.orbit-result-value {
  font-size: 54px;
  letter-spacing: -0.06em;
  line-height: 1.2;
  color: var(--lime);
}
.orbit-result small {
  color: var(--muted);
  font-size: 11px;
}
.orbit-result-stats {
  display: flex;
  gap: 12px;
  font-size: 12px;
  color: var(--muted);
  margin: 10px 0;
}
.orbit-result-stats strong {
  color: #fff;
}
.orbit-controls {
  display: flex;
  gap: 8px;
  padding: 12px 0;
}
.orbit-controls button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  background: #151d32;
  border: 1px solid #2e3955;
  border-radius: 12px;
  padding: 12px 10px;
  color: #d1d9e9;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  min-height: 47px;
}
.orbit-controls button:disabled {
  opacity: 0.38;
  cursor: default;
}
.orbit-controls svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}
.orbit-controls [aria-pressed="false"] {
  color: #76849f;
}
.orbit-controls .orbit-bank {
  margin-left: auto;
  background: var(--lime);
  color: #172619;
  border-color: var(--lime);
}
.orbit-game-page .orb-btn {
  flex-shrink: 0;
}
@media (max-width: 600px) {
  .orbit-game-page {
    padding: 0 12px;
  }
  .orbit-screen {
    height: calc(100svh - 139px);
    min-height: 440px;
  }
  .orbit-console-head {
    height: 60px;
  }
  .orbit-console-head > img {
    width: 150px;
  }
  .orbit-controls button > span:not(.orbit-bank span) {
    display: none;
  }
  .orbit-intro-bottom {
    padding: 0 24px 18px;
  }
  .orbit-intro-bottom h1 {
    font-size: 33px;
  }
  .orbit-pause,
  .orbit-result {
    padding: 20px 25px;
  }
  .orbit-hud > div {
    min-width: 60px;
    padding: 7px 9px;
  }
  .orbit-hud strong {
    font-size: 18px;
  }
  .orbit-result-value {
    font-size: 48px;
  }
}
@media (max-height: 700px) {
  .orbit-intro-art {
    height: 34%;
    min-height: 100px;
  }
  .orbit-intro-bottom h1 {
    font-size: 28px;
  }
  .orbit-intro-bottom p {
    margin: 7px 0;
  }
  .orbit-result > img {
    max-height: 90px;
    width: 90px;
  }
  .orbit-result-value {
    font-size: 40px;
  }
}
.orbit-result[data-outcome=win]>img{animation:nixCelebrate 1.8s ease-in-out infinite}
.orbit-result[data-outcome=lost]>img{animation:nixRecover 1s ease-out 1,nixFloat 4s 1s ease-in-out infinite}
.nix-message{max-width:calc(100% - 30px);white-space:normal;text-align:center;line-height:1.4}
.orbit-result,.orbit-pause{scroll-padding:20px;justify-content:safe center}
@keyframes nixCelebrate{0%,100%{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-12px) rotate(8deg)}}
@keyframes nixRecover{0%{transform:rotate(-22deg) translateY(20px);opacity:.3}100%{transform:rotate(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.orbit-result>img{animation:none!important}}

/* Expedition cockpit. UI geometry is separate from fixed-step world physics. */
.orbit-game-page{padding:10px 16px max(10px,env(safe-area-inset-bottom));}
.orbit-screen{height:min(820px,calc(100svh - 194px));min-height:410px;}
.orbit-console-head{height:60px;}
.orbit-environment{font-size:12px;letter-spacing:.05em;}
.orbit-hud{inset:12px 12px auto;display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:6px;}
.orbit-hud>div{min-width:0;padding:9px 10px;background:linear-gradient(150deg,#182842ec,#0b1529ed);border:1px solid #749edc33;border-radius:12px;box-shadow:0 6px 20px #0002;}
.orbit-hud>div:first-child{border-color:#dfff8a45;}
.orbit-hud small{font-size:12px;letter-spacing:.025em;color:#b5c3db;}
.orbit-hud strong{font-size:24px;line-height:1.2;}
.orbit-hud>div:first-child strong{color:#dfff8e;}
.orbit-sector{position:absolute;left:18px;right:18px;top:88px;display:flex;justify-content:space-between;gap:8px;font-size:12px;line-height:1.4;letter-spacing:.035em;color:#91adc8;pointer-events:none;}
.orbit-sector>span:first-child{color:#a996e2;font-weight:800;white-space:nowrap;}
.orbit-effects{top:116px;left:14px;right:14px;flex-wrap:wrap;gap:5px;}
.orbit-effect{font-size:12px;padding:5px 8px;box-shadow:0 3px 12px #0003;}
.orbit-effect.is-trap{color:#ffd0bc;background:#3d243be8;border-color:#ff9c6e55;}
.orbit-instruction{top:auto;bottom:14px;max-width:calc(100% - 24px);width:max-content;font-size:14px;white-space:normal;text-align:center;padding:9px 15px;border:1px solid #829cdf30;line-height:1.4;}
.orbit-instruction.is-ready{box-shadow:0 0 28px #dfff8a20;}
.nix-message{bottom:72px;font-size:14px;border-radius:12px;color:#e3ebf9;}
.orbit-flight-tags{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;}
.orbit-flight-tags span{font-size:12px;padding:4px 9px;border:1px solid #87b7e738;border-radius:6px;color:#bcd9f4;background:#7cadf309;}
.orbit-intro-bottom>small,.orbit-result small{font-size:12px;line-height:1.5;}
.orbit-intro .orb-btn{min-height:56px;background:linear-gradient(105deg,#e0ff95,#bbee79);box-shadow:0 8px 32px #cafa7f1a;font-size:16px;}
.orbit-entry{font-size:14px;}
.orbit-controls{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;padding:12px 0 0;}
.orbit-controls button{font-size:14px;min-height:40px;padding:8px;border-radius:10px;}
.orbit-controls button:not(.orbit-bank):not(.orbit-launch){grid-column:span 2;background:#0e192ee8;}
.orbit-controls .orbit-launch{grid-column:1/4;grid-row:2;min-height:52px;color:#081b22;background:linear-gradient(100deg,#78edf0,#62c7ec);border-color:#98f3fd;font-size:16px;transition:background .18s,box-shadow .18s;}
.orbit-controls .orbit-launch.is-ready{background:linear-gradient(105deg,#e4ff9e,#c2ef7d);border-color:#e4ff9e;box-shadow:0 0 20px #cafa7f20;}
.orbit-controls .orbit-bank{grid-column:4/7;grid-row:2;min-height:52px;margin:0;background:#17243c;color:#dbebfe;border-color:#415479;}
.orbit-controls .orbit-bank:not(:disabled){border-color:#c3e88980;color:#e2ffa9;}
.orbit-controls [data-sound][aria-pressed=false] svg,.orbit-controls [data-music][aria-pressed=false] svg{opacity:.45;}
.orbit-result-stats{width:100%;justify-content:center;gap:8px;margin:16px 0;}
.orbit-result-stats>span{flex:1;padding:10px 5px;background:#ffffff06;border:1px solid #a1b8df1c;border-radius:10px;font-size:12px;}
.orbit-result-stats strong{display:block;font-size:20px;}
.orbit-result-value{font-size:clamp(40px,10vw,64px);text-shadow:0 0 30px #bdee8818;}
.orbit-result[data-outcome=lost] .orbit-result-value{color:#b8cdf6;}
.orbit-pause p,.orbit-result p{font-size:16px;}
.orbit-link{font-size:14px;min-height:44px;}
.orbit-flight-manual{width:100%;margin:12px 0;padding:10px 14px;border:1px solid #adc7ed33;border-radius:12px;text-align:left;}
.orbit-flight-manual summary{font-size:14px;color:#d7edfe;cursor:pointer;min-height:30px;}
.orbit-flight-manual p{font-size:14px;max-width:none;line-height:1.55;}
@media(max-width:600px){
 .orbit-game-page{padding:0 8px max(6px,env(safe-area-inset-bottom));}
 .orbit-screen{height:calc(100svh - 185px - env(safe-area-inset-bottom));min-height:390px;border-radius:20px;}
 .orbit-console-head{height:56px;}.orbit-console-head>img{width:144px;}
 .orbit-controls button>span{display:inline!important;}
 .orbit-hud small{font-size:11px;}.orbit-hud>div{padding:8px 7px;}
 .orbit-hud strong{font-size:21px;}.orbit-sector{top:82px;}
 .orbit-effects{top:108px;}.orbit-intro-bottom{padding:0 22px 20px;}
 .orbit-intro-bottom h1{font-size:34px;}
}
@media(max-height:740px){.orbit-flight-tags{display:none;}.orbit-intro-art{height:35%;min-height:100px;}.orbit-intro-bottom h1{font-size:30px;margin:8px 0;}.orbit-intro .orb-btn{margin-top:8px;}.orbit-result-stats{margin:7px 0;}}
@media(prefers-reduced-motion:reduce){.orbit-controls button{transition:none}.orbit-pause>img{animation:none!important}}
