:root {
  color-scheme: dark;
  --black: #07090b;
  --surface: #101318;
  --surface-raised: #1c2229;
  --light-center: #484e54;
  --light-mid: #363d44;
  --text: #edf0f2;
  --text-secondary: #bcc2ca;
  --text-muted: #a0a8b2;
  --line: #79828e40;
  --silver: #a0a8b2;
  --energy: #bc203c;
  --energy-bright: #f52d50;
  --energy-rgb: 188, 32, 60;
  --font-ui: 'Segoe UI', 'Yu Gothic UI', Meiryo, system-ui, sans-serif;
  --font-display: Georgia, 'Yu Mincho', 'Hiragino Mincho ProN', serif;
  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-5: 3rem;
  --space-6: 4rem;
  --radius: .4rem;
  --radius-orbit: 50%;
  --blur: 28px;
  --smoke-intensity: .38;
  --smoke-accent: .38;
  --glow: 0 0 32px rgba(var(--energy-rgb), .12);
  --ease-reveal: cubic-bezier(.22, 1, .36, 1);
  --ease-orbit: cubic-bezier(.45, 0, .2, 1);
  --duration-interaction: 260ms;
  --duration-reveal: 900ms;
  --duration-ambient: 36s;
  --duration-burst: 1800ms;
  --z-content: 2;
  --z-atmosphere: 1;
  --z-controls: 10;
  --z-overlay: 40;
  --z-transition: var(--z-overlay);
  /* Breakpoints are mirrored in the media queries: compact 600px, short 600px high. */
}

* { box-sizing: border-box; }
html { background: var(--black); scroll-behavior: smooth; }
body { margin: 0; font: 1rem/1.6 var(--font-ui); color: var(--text); -webkit-font-smoothing: antialiased; }
button, summary, a { -webkit-tap-highlight-color: transparent; }
button, a { touch-action: manipulation; }
a { color: inherit; }
button { font: inherit; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--silver); outline-offset: 6px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip { position: fixed; top: 12px; left: 12px; z-index: 60; padding: 10px 18px; background: var(--surface-raised); transform: translateY(-180%); }
.skip:focus { transform: none; }
.intro, .arrival {
  min-height: 100vh; min-height: 100svh;
  position: relative; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center;
  padding: 100px max(20px, env(safe-area-inset-left)) 110px;
  background: radial-gradient(ellipse max(760px, 62vw) 56% at 50% 40%, var(--light-center), var(--light-mid) 40%, #191e24 72%, var(--black));
}
.intro { display: none; }
.js body[data-view='intro'] .intro { display: flex; }

html:not(.js) body:has(#home:target) .intro { display: none !important; }
html:not(.js) body:has(#home:target) .arrival { display: flex !important; }
.intro { background: radial-gradient(ellipse max(680px, 55vw) 50% at 50% 43%, #3d434a, #2b3239 44%, #10151a 72%, var(--black)); }
.intro::after, .arrival::after {
  content: ''; pointer-events: none; position: absolute; inset: 0; opacity: .14; z-index: 0;
  background-image: url('/assets/grain.svg');
}
.intro-brand, .brand { margin: 0; width: min(860px, 100%); line-height: 0; position: relative; z-index: var(--z-content); }
.intro-brand { width: min(680px, 100%); }
.brand-image { display: block; width: 100%; height: auto; }
.brand-fallback { display: none; font: 500 clamp(2rem, 7vw, 5rem)/1.4 var(--font-ui); letter-spacing: .22em; padding-block: var(--space-6); }
.image-failed picture { display: none; }
.image-failed .brand-fallback { display: block; }
.enter {
  position: relative; z-index: var(--z-content); display: grid; place-items: center; min-width: 116px; height: 116px;
  margin-top: clamp(24px, 5vh, 54px); border-radius: var(--radius-orbit); color: var(--text);
  text-decoration: none; text-transform: uppercase; font-size: .75rem; letter-spacing: .28em; text-indent: .28em;
  transition: color var(--duration-interaction), box-shadow var(--duration-interaction);
}
.enter svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: var(--silver); stroke-width: .6; transition: transform var(--duration-reveal) var(--ease-orbit); }
.enter .entry-scar { stroke: var(--energy-bright); stroke-width: 1.2; }
.enter::after { content: ''; position: absolute; inset: 17%; border-radius: 50%; background: radial-gradient(circle, rgba(var(--energy-rgb), .13), transparent 70%); opacity: 0; transition: opacity var(--duration-reveal); }
.enter span { position: relative; z-index: 1; }
.enter:hover, .enter:focus-visible { color: #fff; box-shadow: var(--glow); }
.enter:hover svg { transform: rotate(12deg); }
.enter:hover::after, .enter:focus-visible::after { opacity: 1; }
.enter[aria-disabled='true'] { pointer-events: none; }
.intro-status { margin: 0; }
.message { position: relative; z-index: var(--z-content); margin-top: var(--space-5); }
.opening { margin: 0; font: 400 clamp(1.8rem, 3vw, 2.5rem)/1.35 var(--font-display); letter-spacing: -.025em; }
.disciplines { margin: var(--space-2) 0 0; font-size: 1rem; color: var(--text-secondary); letter-spacing: .07em; }
.status { position: relative; z-index: var(--z-content); margin: var(--space-5) 0 0; color: var(--text-muted); font-size: .875rem; }
.status::before { content: ''; display: block; width: 28px; height: 1px; background: var(--energy); margin: 0 auto var(--space-3); }
.home-reveal .message, .home-reveal .status { animation: reveal var(--duration-reveal) var(--ease-reveal) both; }
.home-reveal .status { animation-delay: 120ms; }
.language-menu { position: fixed; right: max(28px, env(safe-area-inset-right)); top: max(24px, env(safe-area-inset-top)); z-index: var(--z-controls); }
.language-menu summary { list-style: none; cursor: pointer; min-width: 58px; min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 10px; letter-spacing: .12em; font-size: .75rem; border-bottom: 1px solid var(--line); }
.language-menu summary::-webkit-details-marker { display: none; }
.language-menu summary::after { content: '⌄'; font-size: 15px; color: var(--text-muted); }
.language-menu nav { position: absolute; top: calc(100% + 10px); right: 0; min-width: 172px; padding: 8px; background: #101419f5; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 20px 60px #0009; }
.language-menu a { display: flex; align-items: center; min-height: 44px; padding: 8px 14px; font-size: .875rem; text-decoration: none; border-radius: var(--radius); }
.language-menu a:hover, .language-menu a[aria-current] { background: var(--surface-raised); }
.language-menu a[aria-current]::after { content: ''; width: 4px; height: 4px; background: var(--energy-bright); border-radius: 50%; margin-left: auto; }
.atmosphere { position: fixed; right: max(24px, env(safe-area-inset-right)); bottom: max(22px, env(safe-area-inset-bottom)); z-index: var(--z-controls); display: flex; flex-direction: row-reverse; align-items: center; gap: var(--space-2); }
.atmosphere-control { position: relative; width: 54px; height: 54px; flex: 0 0 54px; display: grid; place-items: center; cursor: pointer; padding: 8px; border: 1px solid var(--line); border-radius: var(--radius-orbit); color: var(--silver); background: #0b0e13ed; transition: color var(--duration-interaction), border-color var(--duration-interaction), box-shadow var(--duration-reveal); }
.atmosphere-control svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1; }
.atmosphere-control .orbit { stroke-dasharray: 28 8 4 8; transform-origin: center; }
.atmosphere-control .resonance { opacity: .15; }
.atmosphere[data-state='playing'] .atmosphere-control { color: var(--text); border-color: var(--energy); box-shadow: var(--glow); }
.atmosphere[data-state='playing'] .orbit { animation: orbit-turn var(--duration-ambient) linear infinite; }
.atmosphere[data-state='playing'] .resonance { opacity: .9; stroke: var(--energy-bright); }
.atmosphere-control:hover { border-color: var(--silver); }
.atmosphere-label { max-width: min(240px, calc(100vw - 112px)); font-size: .75rem; color: var(--text-secondary); text-align: right; letter-spacing: .04em; padding: 4px 8px; border-radius: var(--radius); background: #07090bb0; }
.orb-smoke { position: absolute; inset: -24px; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 25% 70%, var(--energy-bright), transparent 55%), radial-gradient(ellipse at 70% 30%, #870f24, transparent 65%); border-radius: 55% 40% 65% 30%; filter: blur(14px); opacity: 0; }
.smoke-pulse .orb-smoke { animation: smoke-bloom var(--duration-burst) ease-out both; }
.smoke { position: fixed; inset: 0; z-index: var(--z-atmosphere); overflow: hidden; pointer-events: none; opacity: var(--smoke-intensity); mask-image: radial-gradient(ellipse at 50% 40%, transparent 30%, #000 72%); }
.smoke i { position: absolute; width: min(85vw, 1000px); height: 52vh; left: -25%; bottom: -12%; border-radius: 46% 54% 65% 35%; background: radial-gradient(ellipse at 32% 65%, #000 6%, transparent 57%), radial-gradient(ellipse at 65% 30%, #050609 10%, #242b35 38%, transparent 68%); filter: blur(var(--blur)); transform: rotate(-18deg); animation: smoke-drift var(--duration-ambient) ease-in-out infinite alternate; }
.smoke i:nth-child(2) { left: 55%; bottom: 35%; animation-delay: -19s; }
.smoke i:nth-child(3) { left: 20%; bottom: -28%; animation-delay: -9s; opacity: .5; }
body[data-view='intro'] .smoke { opacity: .22; }
.effects-paused .smoke i, .effects-paused .orbit { animation-play-state: paused !important; }
.transition-fallback { position: fixed; inset: 0; z-index: var(--z-overlay); background: var(--black); pointer-events: none; animation: fallback-cover 600ms var(--ease-orbit) both; }
.error-page .brand { width: min(450px, 80%); }
.error-code { font-size: .75rem; color: var(--energy-bright); letter-spacing: .3em; margin-top: var(--space-4); }
.error-page h1 { margin: var(--space-2) 0; font: 400 clamp(1.8rem, 4vw, 3rem)/1.2 var(--font-display); }
.error-page p { color: var(--text-secondary); max-width: 35rem; }
.return-link { display: inline-block; margin-top: var(--space-3); padding: 12px 4px; text-underline-offset: 8px; text-decoration-color: var(--energy); }
@keyframes smoke-drift { to { transform: translate(12%, -14%) rotate(8deg) scale(1.12, .88); } }
@keyframes orbit-turn { to { transform: rotate(360deg); } }
@keyframes smoke-bloom { 0% { opacity: 0; transform: scale(.55); } 25% { opacity: var(--smoke-accent); } 100% { opacity: 0; transform: translate(-25px, -34px) scale(1.7) rotate(28deg); } }
@keyframes reveal { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes fallback-cover { 0%,100% { opacity: 0; } 40%,60% { opacity: 1; } }
@media (max-width: 600px) {
  :root { --smoke-intensity: .25; --smoke-accent: .28; --blur: 20px; }
  .intro, .arrival { padding-inline: 14px; background: radial-gradient(ellipse 100% 40% at 50% 40%, #434950, #30363e 40%, #171d23 72%, var(--black)); }
  .intro { background: radial-gradient(ellipse 96% 36% at 50% 40%, #393f46, #293039 48%, var(--black)); }
  .enter { width: 104px; min-width: 104px; height: 104px; margin-top: 36px; }
  .message { margin-top: var(--space-4); }
  .disciplines { font-size: .875rem; letter-spacing: .015em; }
  .language-menu { right: max(16px, env(safe-area-inset-right)); top: max(12px, env(safe-area-inset-top)); }
  .atmosphere { right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); gap: 4px; }
  .smoke i:nth-child(3) { display: none; }
}
@media (max-height: 600px) and (min-width: 601px) {
  .intro, .arrival { padding-block: 48px 80px; }
  .intro-brand { width: min(500px, 64vh); }
  .brand { width: min(650px, 84vh); }
  .enter { min-width: 84px; width: 84px; height: 84px; margin-top: 18px; }
  .message { margin-top: var(--space-2); }
  .opening { font-size: 1.6rem; }
  .disciplines { margin-top: 8px; }
  .status { margin-top: var(--space-3); }
  .status::before { margin-bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .orb-smoke { display: none; }
}

/* The navigation is a spatial diagram. Links retain a useful no-JavaScript layout. */
:root {
  --z-spatial-stage: 44;
  --z-spatial-nav: 46;
  --duration-pullback: 1400ms;
  --font-instrument: 'Cascadia Code', Consolas, monospace;
}
.spatial-trigger {
  position: fixed; z-index: 12; left: max(28px, env(safe-area-inset-left)); bottom: max(24px, env(safe-area-inset-bottom));
  display: inline-flex; align-items: center; gap: 14px; min-height: 48px; text-decoration: none;
  font-size: .69rem; letter-spacing: .17em; text-transform: uppercase; color: var(--text-secondary);
}
.spatial-trigger svg { width: 44px; height: 44px; fill: none; stroke: var(--silver); stroke-width: .7; transition: transform 700ms var(--ease-orbit); }
.spatial-trigger:hover svg, .spatial-trigger:focus-visible svg { transform: rotate(-16deg) scale(1.06); }
.spatial-trigger:hover { color: var(--text); }
.spatial-nav { padding: 70px max(24px, 8vw); background: var(--black); }
.spatial-nav__header { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.spatial-nav h2 { margin: 0; font: 400 .8rem/1.6 var(--font-ui); text-transform: uppercase; letter-spacing: .24em; }
.spatial-nav__hint { color: var(--text-muted); font-size: .84rem; max-width: 36ch; margin-top: 18px; }
.spatial-nav__links { margin-top: 60px; display: flex; flex-wrap: wrap; gap: 60px; }
.spatial-nav__destination { display: flex; flex-direction: column; gap: 14px; max-width: 30ch; text-decoration: none; }
.spatial-nav__destination > span { font: 400 clamp(1.7rem, 2.8vw, 3rem)/1.14 var(--font-display); letter-spacing: -.03em; }
.spatial-nav__destination small { color: var(--text-muted); font-size: .83rem; line-height: 1.65; }
.spatial-nav > [data-spatial-home] { display: inline-block; margin-top: 60px; font-size: .8rem; color: var(--text-secondary); text-underline-offset: 8px; }
.js .spatial-nav:not([data-spatial-active]) { display: none; }
.js body:has(#destinations:target) .spatial-nav:not([data-spatial-active]) { display: block; }
.spatial-nav[data-spatial-active] {
  position: fixed; z-index: var(--z-spatial-nav); inset: 0; overflow: auto;
  min-height: 100svh; padding: max(42px, env(safe-area-inset-top)) max(46px, env(safe-area-inset-right)) 112px;
  background: transparent; text-align: left;
}
.spatial-nav__close {
  position: relative; flex: 0 0 48px; display: grid; place-items: center; width: 48px; height: 48px;
  color: var(--text-secondary); background: #080c1080; border: 1px solid var(--line); border-radius: 50%; cursor: pointer;
}
.spatial-nav__close svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1; }
.spatial-nav[data-spatial-active] .spatial-nav__links { position: absolute; inset: 0; display: block; margin: 0; pointer-events: none; }
.spatial-nav[data-spatial-active] .spatial-nav__destination {
  position: absolute; left: 16%; top: 42%; width: min(30vw, 410px); max-width: none; padding: 22px 0;
  pointer-events: auto; isolation: isolate; transition: transform 600ms var(--ease-reveal), opacity 500ms;
}
.spatial-nav[data-spatial-active] .spatial-nav__destination:nth-child(2) { left: 60%; top: 60%; }
.spatial-nav__destination::before { content: ''; width: 74px; height: 1px; background: linear-gradient(90deg, var(--energy-bright) 3px, #8a97a47d 3px, transparent); transform-origin: left; transition: width 500ms var(--ease-orbit); }
.spatial-nav__destination::after { content: ''; position: absolute; top: 17px; left: -10px; width: 10px; height: 10px; border: 1px solid #a2afb76b; border-radius: 50%; box-shadow: 0 0 18px #f52d5010; }
.spatial-nav__destination:hover::before, .spatial-nav__destination:focus-visible::before { width: 140px; }
.spatial-nav__destination:hover, .spatial-nav__destination:focus-visible { transform: translateX(6px); }
.spatial-nav__destination[aria-current]::after { background: var(--energy); border-color: var(--energy); }
.spatial-nav[data-spatial-active] > [data-spatial-home] { position: absolute; bottom: max(40px, env(safe-area-inset-bottom)); left: max(46px, env(safe-area-inset-left)); margin: 0; letter-spacing: .08em; }
.spatial-nav[data-phase='opening'] .spatial-nav__links { animation: spatial-signals 1500ms var(--ease-reveal) both; }
.spatial-stage { position: fixed; inset: 0; z-index: var(--z-spatial-stage); overflow: hidden; pointer-events: none; background: #06090d; }
.spatial-stage::before { content: ''; position: absolute; width: 120vw; height: 120vw; left: 26%; top: -25%; border: 1px solid #82939e12; border-radius: 50%; box-shadow: 0 0 0 80px #06090d, 0 0 0 81px #82939e0d; transform: rotateX(65deg) rotateZ(-26deg); }
.spatial-stage canvas { position: absolute; inset: 0; }
body.spatial-open:not(.spatial-travelling) .spatial-stage { animation: spatial-emergence var(--duration-pullback) var(--ease-orbit) both; }
body.spatial-open { overflow: hidden; }
body.spatial-open > main { transform: perspective(1200px) translateZ(-650px) scale(.8); opacity: .3; transition: transform var(--duration-pullback) var(--ease-orbit), opacity var(--duration-pullback); }
/* The destination scene owns the background; never leave a miniature home in it. */
body[data-page='home'].spatial-open > main { opacity: 0; visibility: hidden; transition: none; }
body.spatial-open .language-menu, body.spatial-open .atmosphere { visibility: hidden; }
body.spatial-travelling .spatial-nav__links, body.spatial-travelling .spatial-nav__hint, body.spatial-travelling .spatial-nav > [data-spatial-home] { opacity: 0; visibility: hidden; pointer-events: none; }
body.spatial-travelling > main { opacity: 0; }
body.spatial-revealing .spatial-stage { background: transparent; }
body.spatial-revealing .spatial-stage::before { opacity: 0; }
body.spatial-revealing > main { transform: none; opacity: 1; transition: opacity 350ms; }
.spatial-status { position: absolute; left: 50%; bottom: 37px; transform: translateX(-50%); margin: 0; width: min(42vw, 430px); text-align: center; color: var(--text-muted); font: .7rem/1.7 var(--font-instrument); letter-spacing: .04em; }
.spatial-skip, .spatial-direct { position: absolute; bottom: 35px; right: 46px; padding: 10px 0; border: 0; background: none; color: var(--text-secondary); text-decoration: underline; text-underline-offset: 6px; cursor: pointer; font: .75rem/1.5 var(--font-ui); }
.spatial-direct { right: auto; left: 50%; transform: translateX(-50%); bottom: 100px; }
.spatial-nav[data-phase='failure'] .spatial-status { color: var(--text); }

/* Destination structures are the resting form of the procedural journey. */
.deck.arrival { min-height: 100svh; padding: 130px max(7vw, 28px) 140px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5vw; align-items: center; text-align: left; background: radial-gradient(ellipse 70% 75% at 82% 45%, #18232c, #0c1218 54%, var(--black)); }
.deck--engineering.arrival { background: radial-gradient(ellipse 70% 75% at 80% 45%, #24272c, #10151a 54%, var(--black)); }
.deck-copy { position: relative; z-index: 2; max-width: 38rem; }
.deck-home { position: fixed; left: max(28px, env(safe-area-inset-left)); top: max(32px, env(safe-area-inset-top)); z-index: 12; color: var(--text-secondary); font-size: .7rem; letter-spacing: .25em; text-decoration: none; }
.deck-kicker { color: var(--text-muted); font: .66rem/1.6 var(--font-instrument); letter-spacing: .18em; text-transform: uppercase; margin: 0 0 25px; }
.deck h1 { margin: 0; max-width: 10ch; font: 400 clamp(3rem, 6.5vw, 6.5rem)/1.04 var(--font-display); letter-spacing: -.045em; }
.deck-lede { max-width: 35ch; margin: 30px 0 0; font-size: clamp(1rem, 1.3vw, 1.125rem); line-height: 1.85; color: var(--text-secondary); }
.deck-status { border-left: 1px solid var(--energy); padding-left: 20px; margin-top: 38px; max-width: 42ch; color: var(--text-muted); font-size: .79rem; }
.deck-diagram { position: relative; z-index: 1; pointer-events: none; width: min(42vw, 640px); aspect-ratio: 640 / 280; justify-self: center; opacity: .8; }
.deck-lines { width: 100%; height: 100%; fill: none; stroke: #7d929f; stroke-width: .7; }
.deck-lines [data-accent] { stroke: var(--energy-bright); }
.deck-node { position: absolute; left: var(--x); top: var(--y); width: 8px; height: 8px; border: 1px solid #b1c2cb; background: var(--black); transform: translate(-50%, -50%); }
.deck-node:first-of-type { background: var(--energy); border-color: var(--energy-bright); }
.deck-diagram--engineering .deck-node { border-radius: 50%; width: 6px; height: 6px; }
.deck-diagram::after { content: ''; position: absolute; inset: 12%; border: 1px solid #7d929f0b; transform: rotate(-30deg); pointer-events: none; }
@keyframes spatial-signals { 0%, 40% { opacity: 0; transform: scale(.84); } 100% { opacity: 1; transform: none; } }
@keyframes spatial-emergence { 0% { opacity: 0; } 60%,100% { opacity: 1; } }
@media (max-width: 800px) {
  .spatial-nav[data-spatial-active] { padding: 25px 24px 130px; }
  .spatial-nav[data-spatial-active] .spatial-nav__destination { left: 12%; top: 35%; width: 75%; max-width: 420px; }
  .spatial-nav[data-spatial-active] .spatial-nav__destination:nth-child(2) { left: 23%; top: 59%; width: 70%; }
  .spatial-nav__destination > span { font-size: clamp(1.8rem, 6vw, 2.8rem); }
  .spatial-nav__destination small { max-width: 30ch; font-size: .8rem; }
  .spatial-nav[data-spatial-active] > [data-spatial-home] { bottom: 26px; left: 24px; font-size: .72rem; }
  .spatial-status { bottom: 80px; width: 85%; font-size: .65rem; }
  .spatial-skip { bottom: 22px; right: 24px; }
  .deck.arrival { padding: 110px 30px 130px; grid-template-columns: 1fr; gap: 50px; }
  .deck-copy { width: 100%; max-width: none; }
  .deck h1 { font-size: clamp(3rem, 9vw, 5rem); }
  .deck-lede { max-width: 42ch; }
  .deck-diagram { width: min(75vw, 460px); }
  .spatial-trigger { left: max(16px, env(safe-area-inset-left)); gap: 10px; font-size: .62rem; letter-spacing: .1em; bottom: max(18px, env(safe-area-inset-bottom)); }
  .atmosphere-label { position: absolute; bottom: 64px; right: 0; white-space: nowrap; opacity: 0; transition: opacity var(--duration-interaction); }
  .atmosphere:focus-within .atmosphere-label, .atmosphere:hover .atmosphere-label { opacity: 1; }
}
@media (max-height: 600px) and (min-width: 601px) {
  .spatial-nav[data-spatial-active] { padding: 14px 28px 70px; }
  .spatial-nav__hint { margin-top: 0; }
  .spatial-nav[data-spatial-active] .spatial-nav__destination { top: 30%; left: 10%; width: 34%; }
  .spatial-nav[data-spatial-active] .spatial-nav__destination:nth-child(2) { top: 39%; left: 59%; }
  .spatial-nav__destination > span { font-size: 1.8rem; }
  .deck.arrival { grid-template-columns: 1.2fr 1fr; padding: 90px 7vw 110px; }
  .deck h1 { font-size: 3rem; }
  .deck-diagram { width: min(35vw, 360px); }
}
@media (max-width: 380px) {
  .spatial-nav[data-spatial-active] { padding: 20px 20px 105px; }
  .spatial-nav[data-spatial-active] .spatial-nav__destination { top: 31%; left: 10%; width: 82%; }
  .spatial-nav[data-spatial-active] .spatial-nav__destination:nth-child(2) { top: 60%; left: 17%; width: 78%; }
  .spatial-nav__destination small { font-size: .74rem; }
  .spatial-nav__destination > span { font-size: 1.7rem; }
  .spatial-nav__hint { font-size: .76rem; }
  .deck.arrival { padding-inline: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  body.spatial-open > main { transform: none; }
  .spatial-nav[data-spatial-active] { background: #080c10; }
  .spatial-stage { display: none; }
  .spatial-nav__destination:hover, .spatial-nav__destination:focus-visible { transform: none; }
}

/* Home refinement: the existing seal is now the central invitation. Deck controls stay compact. */
body[data-page='home'] .arrival { padding-block: 72px 94px; }
body[data-page='home'] .brand { width: min(780px, 94vw); }
body[data-page='home'] .message { margin-top: 22px; }
body[data-page='home'] .opening { font-size: clamp(1.05rem, 1.4vw, 1.25rem); color: var(--text-secondary); }
body[data-page='home'] .disciplines { font-size: clamp(.8rem, 1.1vw, .95rem); margin-top: 10px; }
body[data-page='home'] .spatial-trigger {
  position: relative; inset: auto; display: inline-flex; justify-content: center;
  min-height: 72px; max-width: 100%; margin-top: 24px; padding: 10px 18px;
  font-size: clamp(.94rem, 1.45vw, 1.25rem); letter-spacing: .17em; gap: 16px;
  color: var(--text); border-radius: 3px; isolation: isolate;
}
body[data-page='home'] .spatial-trigger svg { width: 52px; height: 52px; flex-shrink: 0; }
body[data-page='home'] .spatial-trigger::before {
  content: ''; position: absolute; z-index: -1; inset: -14px -20px; opacity: 0;
  background: radial-gradient(ellipse, #bc203c18, transparent 66%); transition: opacity 400ms;
}
body[data-page='home'] .spatial-trigger::after {
  content: ''; position: absolute; bottom: 2px; left: 82px; right: 18px; height: 1px;
  background: linear-gradient(90deg, #bc203c90, #a0a8b245, transparent); transform-origin: left;
  transition: transform 600ms var(--ease-orbit);
}
body[data-page='home'] .spatial-trigger:is(:hover,:focus-visible,[aria-busy='true'])::before { opacity: 1; }
body[data-page='home'] .spatial-trigger:is(:hover,:focus-visible,[aria-busy='true'])::after { transform: scaleX(.72); }
body[data-page='home'] .spatial-trigger[aria-busy='true'] svg { transform: rotate(24deg); }
body[data-page='home'] .status { margin-top: 24px; font-size: .78rem; }
body[data-page='home'] .status::before { display: none; }

.flag-portal { position: fixed; inset: 0; z-index: 80; overflow: hidden; pointer-events: none; perspective: 1200px; }
.flag-portal__image { position: absolute; z-index: 2; display: block; max-width: none; transform-origin: 67.117% 56.54%; will-change: transform; }
.flag-portal__light { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.flag-portal__residual, .flag-portal__foreground { position: absolute; inset: -15%; pointer-events: none; opacity: 0; will-change: transform; }
.flag-portal__residual { z-index: 1; background: radial-gradient(ellipse at 8% 38%, #1d252b99, transparent 38%), radial-gradient(ellipse at 86% 80%, #020306cc, transparent 45%); }
.flag-portal__foreground { z-index: 3; background: radial-gradient(ellipse at 0% 24%, #010205, transparent 28%), radial-gradient(ellipse at 100% 78%, #111820, transparent 25%); }
body.portal-active { overflow: hidden; }
body.portal-active .spatial-nav { pointer-events: none; }
body.portal-active:not(.portal-crossing) :is(.language-menu,.atmosphere) { visibility: visible; opacity: var(--portal-controls, 1); }
body.portal-active main :is(.brand-typography,.message,.status,.spatial-trigger) { opacity: var(--portal-content, 1); animation: none !important; }
body.portal-active:not(.portal-crossing) > main { transform: none !important; opacity: 1 !important; visibility: visible !important; transition: none !important; }
body.portal-active:not(.portal-crossing) .spatial-stage,
body.portal-active:not(.portal-crossing) .spatial-nav { visibility: hidden; }
body.portal-active:not(.portal-crossing) .spatial-status { visibility: visible; clip-path: inset(50%); }
body.portal-active .spatial-stage { animation: none !important; }
body.portal-crossing .spatial-nav { opacity: 1; }
body.portal-crossing > main { opacity: 0 !important; transition: none !important; }
@media (max-width: 600px) {
  body[data-page='home'] .arrival { padding-block: 62px 86px; }
  body[data-page='home'] .spatial-trigger { padding-inline: 8px; gap: 12px; letter-spacing: .1em; }
  body[data-page='home'] .spatial-trigger::after { left: 72px; right: 8px; }
}
@media (max-height: 650px) {
  body[data-page='home'] .arrival { padding-block: 54px 78px; }
  body[data-page='home'] .brand { width: min(660px, 72vh, 94vw); }
  body[data-page='home'] .message { margin-top: 12px; }
  body[data-page='home'] .spatial-trigger { margin-top: 14px; min-height: 64px; }
  body[data-page='home'] .status { margin-top: 16px; }
}

/* Scene height is a budget, not min-height + an unbounded content stack.
   Route data is updated by SpatialRouter, so decks regain document scrolling. */
html:has(body[data-page='home']) { height: 100%; overflow: hidden; }
body[data-page='home'] { height: 100vh; height: 100dvh; overflow: hidden; }
body[data-page='home'] :is(.intro,.arrival) {
  position: fixed; inset: 0; width: 100%; height: 100vh; height: 100dvh;
  min-height: 0; overflow: hidden; padding: max(54px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-left), env(safe-area-inset-right)) max(78px, env(safe-area-inset-bottom));
}
body[data-page='home'] :is(.intro,.arrival) > * { flex-shrink: 0; }
.brand-separated { aspect-ratio: 1322 / 646; }
.brand-separated .vessel-symbol { position: absolute; left: 30.40847%; top: 3.56037%; width: 39.18306%; height: 73.37461%; }
.brand-separated .brand-typography { position: absolute; left: 1.58850%; top: 79.41176%; width: 96.822996%; height: 16.25387%; }
.brand-separated.image-failed :is(img,svg) { display: none; }
body[data-page='home'] .brand { width: min(780px, 100%, calc((100dvh - 370px) * 2.04644)); }
body[data-page='home'] .intro-brand { width: min(680px, 100%, calc((100dvh - 300px) * 2.04644)); }
body[data-page='home'] .status { margin-bottom: 0; }
/* Native anchors still expose the destinations if enhancement is unavailable. */
body[data-page='home']:has(#destinations:target) .spatial-nav:not([data-spatial-active]),
html:not(.js) body[data-page='home'] .spatial-nav {
  position: fixed; inset: 0; z-index: 46; overflow: auto; margin: 0;
}
html:not(.js) body[data-page='home']:not(:has(#destinations:target)) .spatial-nav { display: none; }
@media (max-height: 650px) {
  body[data-page='home'] .brand { width: min(660px, 100%, calc((100dvh - 310px) * 2.04644)); }
  body[data-page='home'] .intro-brand { width: min(600px, 100%, calc((100dvh - 270px) * 2.04644)); }
}
@media (max-height: 500px) {
  body[data-page='home'] :is(.intro,.arrival) { padding-block: max(40px, env(safe-area-inset-top)) max(56px, env(safe-area-inset-bottom)); }
  body[data-page='home'] .brand { width: min(660px, 100%, calc((100dvh - 238px) * 2.04644)); }
  body[data-page='home'] .intro-brand { width: min(600px, 100%, calc((100dvh - 204px) * 2.04644)); }
  body[data-page='home'] .enter { width: 80px; min-width: 80px; height: 80px; margin-top: 16px; }
  body[data-page='home'] .message { margin-top: 6px; }
  body[data-page='home'] .opening { font-size: 1rem; }
  body[data-page='home'] .disciplines { margin-top: 2px; }
  body[data-page='home'] .spatial-trigger { min-height: 48px; margin-top: 8px; padding-block: 2px; font-size: .9rem; }
  body[data-page='home'] .spatial-trigger svg { width: 40px; height: 40px; }
  body[data-page='home'] .status { margin-top: 6px; }
}

/* V2 is opt-in. Removing data-universe / selecting classic leaves the V1 CSS intact. */
.arukadia-universe { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none;
  background: radial-gradient(ellipse at 50% 38%, #364247, #111b1d 45%, #06090c 80%); }
.universe-canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.universe-canvas--back { z-index: 0; }
.universe-canvas--front { z-index: 3; }
body[data-universe='side-vortex'][data-page='home'] .arrival { background: transparent; z-index: 2; }
body[data-universe='side-vortex'][data-page='home'] > .smoke { display: none; }
.flag-portal--v2 { background: transparent !important; }
.flag-portal--v2 :is(.flag-portal__light,.flag-portal__residual,.flag-portal__foreground) { display: none; }
/* Smoke remains in world space under the existing spatial scene; the scene's
   geometry and navigation are unchanged. This override is scoped to the home. */
body[data-page='home'][data-universe='side-vortex']:has(.arukadia-universe[data-world='true']) .spatial-stage { background: transparent; }

/* An optional entrance to the account area; public destinations remain public. */
.public-access{position:fixed;top:30px;left:46px;z-index:10;display:inline-flex;align-items:center;min-height:38px;font:500 .65rem/1.3 var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);text-decoration:none;border-bottom:1px solid #7e8b9030}
.public-access:hover{color:var(--text);border-color:#a5b4b580}
body[data-view='intro'] .public-access,body.spatial-open .public-access{visibility:hidden}
body.portal-active .public-access{opacity:var(--portal-controls,1)}
@media(max-width:600px){.public-access{top:20px;left:20px;font-size:.58rem;max-width:55vw}}
@media(max-height:400px){.public-access{top:8px;left:16px;font-size:.54rem}}

/* Enhances the exact existing symbol box. Wordmark, text and controls stay HTML. */
.emblem-3d,.emblem-wisps{position:fixed;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.emblem-3d{opacity:0;transition:opacity 650ms ease}
.emblem-3d canvas{display:block;width:100%;height:100%}
.emblem-3d--ready{opacity:1}
.emblem-wisps{z-index:4}
.vessel-symbol--3d{opacity:0;transition:opacity 650ms ease}
.flag-portal--3d .emblem-3d{position:absolute;z-index:2;transition:none}
.flag-portal--3d{perspective:none;background:transparent}
body.portal-active .emblem-wisps{visibility:hidden}
@media(prefers-reduced-motion:reduce){.emblem-3d,.emblem-wisps{display:none}.vessel-symbol--3d{opacity:1;transition:none}}

/* One persistent brand/3D anchor; only navigation UI changes at departure. */
.course-gate { display: none; }
.js body[data-page='home'][data-view='intro'] .course-gate { display: block; }
/* The language gate starts at the viewport edge, independently of the hidden
   home controls. The emblem renderer and route labels share this brand anchor. */
.js body[data-page='home'][data-view='intro'] .arrival {
  justify-content: flex-start;
  padding-top: calc(env(safe-area-inset-top) + 8px);
}
.course-gate { position: absolute; inset: 0; z-index: 5; pointer-events: none; }
.course-heading { position: absolute; top: calc(var(--course-brand-bottom, 45dvh) + 22px); left: 16px; right: 16px; }
.course-heading p { margin: 0 0 10px; color: #9caeaf; font-size: .65rem; letter-spacing: .24em; text-transform: uppercase; }
.course-heading h2 { margin: 0; color: #e1e6e4; font-size: clamp(.9rem, 1.3vw, 1.12rem); font-weight: 400; letter-spacing: .3em; text-transform: uppercase; }
.course-heading h2:focus { outline: none; }
.course-bearing { display: block; width: 1px; height: 30px; margin: 18px auto 0; background: linear-gradient(#a3b2b76b, transparent); }
.course-bearing::before { content: ''; display: block; width: 5px; height: 5px; border: 1px solid #adbbbca0; transform: translate(-2px, -5px) rotate(45deg); }
.course-routes { position: absolute; width: min(900px, 92vw); height: 140px; left: 50%; top: calc(var(--course-brand-bottom, 45dvh) + 140px); transform: translateX(-50%); }
.course-chart { width: 100%; height: 100%; position: absolute; inset: 0; fill: none; stroke: #8dadaf48; stroke-width: .7; }
.course-chart__outer { opacity: .35; stroke-dasharray: 1 9; }
.course-chart--mobile { display: none; }
.course-node { position: absolute; top: var(--route-y); left: var(--route-x); transform: translateX(-50%); display: flex; align-items: center; flex-direction: column; gap: 8px; width: min(112px, 12vw); min-height: 76px; padding: 0 4px 8px; border: 0; background: none; color: #b5c0c0; cursor: pointer; pointer-events: auto; font-size: .88rem; line-height: 1.4; transition: color 250ms, opacity 700ms, filter 700ms; }
.course-node:nth-of-type(1) { --route-x: 6%; --route-y: 10%; }
.course-node:nth-of-type(2) { --route-x: 20.67%; --route-y: 36%; }
.course-node:nth-of-type(3) { --route-x: 35.33%; --route-y: 53%; }
.course-node:nth-of-type(4) { --route-x: 50%; --route-y: 59%; }
.course-node:nth-of-type(5) { --route-x: 64.67%; --route-y: 53%; }
.course-node:nth-of-type(6) { --route-x: 79.33%; --route-y: 36%; }
.course-node:nth-of-type(7) { --route-x: 94%; --route-y: 10%; }
.course-node small { color: #859b9e; font-size: .52rem; letter-spacing: .19em; transition: color 250ms; }
.course-node__point { position: relative; width: 6px; height: 6px; flex: 0 0 6px; margin-bottom: 8px; border: 1px solid #94a5a5; transform: rotate(45deg); transition: box-shadow 350ms, background 350ms; }
.course-node__point::before { content: ''; position: absolute; inset: -5px; border: 1px solid #b9d2d544; opacity: 0; transition: opacity 350ms, transform 500ms; }
.course-node:is([aria-current],:hover,:focus-visible,[data-selected]) { color: #f0f6f2; }
.course-node:is([aria-current],:hover,:focus-visible,[data-selected]) .course-node__point { background: #b7d2cf; box-shadow: 0 0 14px #8abfb764; }
.course-node:is([aria-current],:hover,:focus-visible,[data-selected]) .course-node__point::before { opacity: 1; }
.course-node:is(:hover,:focus-visible) .course-node__point::before { transform: scale(1.3); }
.course-node:focus-visible { outline: 1px solid #bed4d0; outline-offset: 4px; border-radius: 35%; }
.course-node:disabled { cursor: default; }
.js body[data-page='home'][data-view='intro'] :is(.message,.spatial-trigger,.status,.language-menu,.public-access) { visibility: hidden; opacity: 0; pointer-events: none; }
.js body[data-emblem-load='pending'][data-view='intro'] main .vessel-symbol { opacity: 0; }
body[data-course-state='departing'] .course-node:not([data-selected]) { opacity: 0; filter: blur(3px); }
body[data-course-state='departing'] .course-node[data-selected] { animation: course-depart 1250ms ease-in both; }
body[data-course-state='departing'] :is(.course-heading,.course-chart) { animation: course-absorb 1050ms ease-in both; }
@keyframes course-depart { 25% { opacity: 1; filter: brightness(1.4); } 100% { opacity: 0; transform: translate(-50%, -36px); filter: blur(5px); } }
@keyframes course-absorb { 100% { opacity: 0; filter: blur(3px); } }
@media (max-width: 700px) {
  .course-heading h2 { letter-spacing: .2em; }
  .course-routes { width: min(340px, 94vw); height: 188px; }
  .course-chart { display: none; }
  .course-chart--mobile { display: block; }
  .course-node { width: min(78px, 22vw); font-size: .8rem; gap: 7px; }
  .course-node:nth-of-type(1) { --route-x: 14%; --route-y: 4%; }
  .course-node:nth-of-type(2) { --route-x: 38%; --route-y: 12%; }
  .course-node:nth-of-type(3) { --route-x: 62%; --route-y: 12%; }
  .course-node:nth-of-type(4) { --route-x: 86%; --route-y: 4%; }
  .course-node:nth-of-type(5) { --route-x: 26%; --route-y: 56%; }
  .course-node:nth-of-type(6) { --route-x: 50%; --route-y: 63%; }
  .course-node:nth-of-type(7) { --route-x: 74%; --route-y: 56%; }
}
@media (max-height: 650px) {
  .course-heading p { margin-bottom: 4px; }
  .course-bearing { height: 12px; margin-top: 12px; }
  .course-routes { top: calc(var(--course-brand-bottom, 45dvh) + 108px); }
}
@media (max-width: 700px) and (max-height: 650px) {
  .course-routes { height: 146px; }
  .course-node { min-height: 58px; gap: 4px; }
  .course-node__point { margin-bottom: 4px; }
}
@media (max-height: 500px) and (min-width: 701px) {
  .course-heading { top: calc(var(--course-brand-bottom, 40dvh) + 14px); }
  .course-heading p { font-size: .55rem; }
  .course-heading h2 { font-size: .75rem; }
  .course-bearing { display: none; }
  .course-routes { height: 95px; top: calc(var(--course-brand-bottom, 40dvh) + 76px); }
  .course-node { min-height: 50px; gap: 4px; font-size: .76rem; }
  .course-node__point { margin-bottom: 3px; }
}
@media (prefers-reduced-motion: reduce) {
  .course-gate *, .course-gate *::before { animation: none !important; transition: none !important; }
}

.course-status { position: absolute; left: 18px; right: 18px; bottom: 6px; font-size: .72rem; color: #b9c8c7; }

/* Public deck hierarchy: two operational destinations, two deeper side decks. */
/* Ship shells share materials and navigation, not their room or window geometry. */
.ship-deck{--deck-gutter:6vw;font-family:var(--font-ui);position:relative;background:#0c1013;color:#d7dedf;padding:0 var(--deck-gutter) 35px;min-height:100dvh;overflow:clip}
.ship-hero{position:relative;min-height:650px;height:min(790px,calc(100dvh - 82px));margin:0 calc(-1 * var(--deck-gutter));isolation:isolate}
.ship-window{--exterior-crop:center center!important;position:absolute!important;inset:0!important;height:100%!important;margin:0!important;background:#070e16}
.ship-window .exterior-interior{opacity:1!important}
.ship-window::after{background:linear-gradient(90deg,#05090bcc 0,#05090b89 25%,transparent 51%),linear-gradient(0deg,#0c1013,transparent 14%)}
.ship-window__fallback{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 25%,#132331,#030609 72%)}
.ship-glass{position:absolute;z-index:3;inset:0;background:linear-gradient(119deg,transparent 61%,#bad8e204 62%,transparent 63%);pointer-events:none}
.ship-copy{position:relative;z-index:6;padding:clamp(55px,8vh,105px) 0 48px;margin-left:var(--deck-gutter);width:30%;max-width:490px}
.ship-copy h1{font:300 clamp(40px,4.6vw,76px)/1.13 var(--font-ui);letter-spacing:.025em;margin:30px 0 23px;color:#e0e5e4}
.ship-kicker{font:9px/1.7 var(--font-instrument);letter-spacing:.26em;color:#aab9be}
.ship-subtitle{font:11px/1.8 var(--font-ui);letter-spacing:.23em;color:#c1cbd0;margin-bottom:28px}
.ship-description{font:13px/1.95 var(--font-ui);color:#b5bfc6;max-width:40ch}
.ship-concept{font:8px/1.8 var(--font-instrument);letter-spacing:.11em;color:#a2afb7;margin:27px 0;max-width:40ch}
.ship-explore{display:inline-flex;gap:30px;padding:14px 0;border-bottom:1px solid #a6b7bc55;font:10px/1.6 var(--font-ui);text-decoration:none;color:#d4dedf}
.ship-coordinate{position:absolute;z-index:6;right:6vw;bottom:23px;color:#9aa9b2;font:8px var(--font-instrument);letter-spacing:.18em}
.ship-workspace{padding:65px 0;display:grid;grid-template-columns:1fr 1fr;gap:8vw;border-bottom:1px solid #7f98a428;scroll-margin-top:25px}
.ship-workspace h2{font:300 clamp(25px,3vw,42px)/1.3 var(--font-ui);margin:18px 0 25px;max-width:25ch}
.ship-workspace p:not(.ship-kicker){font:13px/1.9 var(--font-ui);color:#a1b2bd;max-width:55ch}
.ship-workspace__detail{align-self:center;border-left:1px solid #819aa238;padding:20px 0 20px 36px}
.simulation-aperture{position:relative;height:65px;margin-bottom:25px;opacity:.45}.simulation-aperture i{position:absolute;inset:5px 15%;border:1px solid #869cae;border-radius:50%;transform:rotate(-14deg)}.simulation-aperture i:nth-child(2){inset:14px 20%;transform:rotate(13deg)}.simulation-aperture i:nth-child(3){inset:24px 27%;transform:rotate(-25deg)}
.ship-footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:28px 0 15px;color:#71808b;font:9px var(--font-instrument);letter-spacing:.19em}
.ship-footer .spatial-trigger{position:static!important;font-size:10px}.ship-footer .spatial-trigger svg{width:28px}
.ship-controls-overlay{position:absolute;z-index:7;right:6vw;bottom:46px;width:50%;max-width:650px;padding:14px 20px;background:linear-gradient(90deg,#070e14dc,#0a131add);border:1px solid #829eaf33;backdrop-filter:blur(9px)}
.ship-holo-controls{display:flex;gap:20px;justify-content:space-between}.ship-holo-controls button{border:0;border-bottom:1px solid transparent;background:none;padding:8px 0;color:#b4c3cd;font:11px var(--font-ui);cursor:pointer}.ship-holo-controls button[aria-pressed='true']{color:#edf2f1;border-color:#bdd9e2}.ship-holo-description{font:10px/1.7 var(--font-ui);color:#8fa3af;margin:8px 0 0}
.ship-deck :is(a,button):focus-visible{outline:1px solid #c4d9df;outline-offset:6px}
.ship-window .design-table{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;filter:drop-shadow(0 0 4px #8bbccd28)}
.design-table__dimensions{stroke:#76939f;stroke-width:.8;fill:none;opacity:.65}.design-table__dimensions text{stroke:none;fill:#9dbbc6;font:9px monospace;letter-spacing:2px}
body[data-area='games']>.public-access,body[data-area='engineering']>.public-access{top:29px;right:132px;font-size:10px}
body[data-area='games']>.language-menu,body[data-area='engineering']>.language-menu{top:21px;right:28px}
@media(max-width:1100px){.ship-hero{height:680px}.ship-copy{width:36%}.ship-copy h1{font-size:41px}.ship-controls-overlay{right:4vw;width:52%}}
@media(max-width:700px){.ship-deck{--deck-gutter:22px}.ship-hero{display:flex;flex-direction:column;height:auto;min-height:0}.ship-copy{order:0;margin:0;width:auto;max-width:none;padding:38px 24px 22px}.ship-copy h1{font-size:39px;margin:18px 0}.ship-description{max-width:46ch}.ship-concept{margin:17px 0}.ship-window{position:relative!important;inset:auto!important;order:1;height:340px!important;width:100%}.ship-window .exterior-universe,.ship-window .exterior-interior{object-position:68% center}.ship-window .design-table{width:850px;max-width:none;left:calc(68% - 578px)}.ship-window::after{background:linear-gradient(#0c1013,transparent 12%,transparent 90%,#0c1013)}.ship-controls-overlay{order:2;position:relative;inset:auto;width:auto;max-width:none;margin:0 22px;padding:13px}.ship-holo-controls{gap:10px;flex-wrap:wrap}.ship-holo-controls button{font-size:10px}.ship-coordinate{display:none}.ship-workspace{grid-template-columns:1fr;gap:20px;padding:35px 0}.ship-workspace__detail{padding:20px 0 0;border-left:0;border-top:1px solid #819aa238}.ship-footer{align-items:start;flex-direction:column}body[data-area='games']>.public-access,body[data-area='engineering']>.public-access{right:80px;font-size:8px}body[data-area='games']>.language-menu,body[data-area='engineering']>.language-menu{right:18px;top:19px}}
@media(prefers-reduced-motion:reduce){.ship-deck *,.ship-deck *::before,.ship-deck *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.navigation-mode{position:relative;z-index:3;margin:10px 0 0;padding:8px 0;background:none;border:0;border-bottom:1px solid #677784;color:#a7b5bf;font:12px var(--font-ui);cursor:pointer}
.navigation-mode[aria-pressed='true']{color:#e4e9ed;border-color:#b8384c}
.spatial-nav__destination em{font:normal .58rem/1.4 var(--font-instrument);letter-spacing:.17em;color:#8e9ca6}
.spatial-nav[data-spatial-active] .spatial-nav__destination{width:30%;padding:24px 0;transition:transform .6s,color .4s;text-shadow:0 2px 20px #000}
.spatial-nav[data-spatial-active] .spatial-nav__destination[data-spatial-destination='software']{left:12%;top:31%}
.spatial-nav[data-spatial-active] .spatial-nav__destination[data-spatial-destination='games']{left:58%;top:35%}
.spatial-nav[data-spatial-active] .spatial-nav__destination[data-spatial-destination='merch']{left:23%;top:66%;width:26%}
.spatial-nav[data-spatial-active] .spatial-nav__destination[data-spatial-destination='engineering']{left:66%;top:70%;width:28%;color:#a6b1b8}
.spatial-nav__destination[data-weight='primary']>span{font-size:clamp(2.5rem,4.6vw,5rem);color:#dce2e5}
.spatial-nav__destination[data-weight='secondary']>span{font-size:clamp(1.6rem,2.2vw,2.5rem)}
.spatial-nav__destination[data-weight='specialist']>span{font-size:clamp(1.45rem,1.95vw,2.2rem);letter-spacing:-.025em}
.spatial-nav__destination[data-weight='specialist'] small{color:#9aa8b1}
.spatial-nav__destination:is(:hover,:focus-visible){transform:translateY(-6px) scale(1.035)}
.spatial-nav__destination[data-weight='specialist']:is(:hover,:focus-visible){color:#eff3f5;transform:translate(-12px,-8px) scale(1.09);text-shadow:0 0 32px #a7bdce55}
.spatial-nav__destination:focus-visible{outline:1px solid #b1c3cf;outline-offset:12px}
.spatial-nav__destination small{max-width:35ch}
.public-deck.arrival{position:relative;overflow:hidden;align-content:center;min-height:100dvh;background:#080c10}
.public-deck .deck-home{position:absolute;top:32px}
.public-deck .spatial-trigger{position:absolute}
body[data-page='area']>.public-access{position:absolute;left:auto;right:160px;top:28px}
body[data-page='area']>.language-menu{position:absolute}
.public-deck .deck-kicker{letter-spacing:.21em;color:#a2b0ba}
.public-deck .deck-lede{font-size:1rem;color:#a8b4bc;max-width:43ch}
.deck-scene,.simulation-world,.merch-insignia{position:relative;min-width:0;justify-self:center;width:100%;max-width:660px}
.scene-coordinate{display:block;margin-top:24px;font:10px var(--font-instrument);letter-spacing:.2em;color:#71828f;text-align:center}
.deck-subtitle{font:12px var(--font-instrument);letter-spacing:.25em;margin:25px 0 0;color:#bdcbd2}
.simulation-world svg{display:block;width:100%;height:auto}
.simulation-world i{position:absolute;width:2px;height:2px}
.deck--games.public-deck{background:radial-gradient(ellipse at 75% 50%,#142027,#080c10 68%)}
.product-preview{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr;gap:8vw;border-top:1px solid #66727d38;padding-top:38px;margin-top:35px;scroll-margin-top:100px}
.product-preview h2{font:400 clamp(1.8rem,3vw,3rem)/1.2 var(--font-display);margin:12px 0 20px}
.product-preview p{font-size:.88rem;line-height:1.8;max-width:58ch;color:#9aabb7}
.product-preview .deck-kicker{font-size:.62rem}
.access-threshold{align-self:center;border-left:1px solid #8e2437;padding-left:28px}
.systems-access{display:inline-flex;gap:22px;padding:14px 0;text-decoration:none;color:#d3dce2;letter-spacing:.16em;font-size:.76rem;border-bottom:1px solid #8a9da744}
.systems-access:hover{color:white;border-color:#b53950}
.merch-insignia{text-align:center}.merch-insignia img{width:min(65%,340px);height:auto}
.deck--engineering.public-deck{display:block;min-height:850px;height:100dvh;padding:145px 6vw 150px;background:#080c10}
.deck--engineering .deck-copy{width:31%;max-width:420px;pointer-events:none}
.deck--engineering h1{font-size:clamp(2.5rem,4.2vw,4.8rem);max-width:12ch}
.deck--engineering .deck-lede{font-size:.92rem;line-height:1.85}
.concept-notice{font:9px/1.9 var(--font-instrument);letter-spacing:.11em;margin-top:30px;color:#899da9;max-width:42ch}
.engineering-environment{position:absolute;right:0;top:0;width:76%;height:100%;overflow:hidden;background:#080c10}
.engineering-environment canvas{display:block;width:100%;height:100%;cursor:crosshair}
.engineering-environment::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#080c10,transparent 23%),linear-gradient(0deg,#080c10,transparent 24%)}
.engineering-fallback{position:absolute;inset:20%;display:grid;place-items:center}
.engineering-environment[data-ready='true'] .engineering-fallback{display:none}
.engineering-environment [data-spatial-anchor]{position:absolute;width:1px;height:1px;pointer-events:none}
.engineering-console{position:absolute;z-index:3;right:6vw;bottom:100px;width:58%;max-width:800px}
.engineering-controls{display:flex;flex-wrap:wrap;gap:12px 24px;border-bottom:1px solid #66778466;padding-bottom:18px}
.engineering-controls button{border:0;background:none;border-top:1px solid #657681;padding:12px 0 2px;color:#c0ccd3;font:12px var(--font-ui);cursor:pointer}
.engineering-controls button:is(:hover,[aria-pressed='true']){border-color:#bb354f;color:white}
.engineering-console p{font-size:.8rem;line-height:1.7;color:#b2c0ca;background:#080c10dd;padding:12px 16px;max-width:66ch}
.engineering-console small{display:block;margin-top:16px;color:#78909e;font:9px var(--font-instrument);letter-spacing:.15em}
@media(max-width:800px){
 .spatial-nav[data-spatial-active] .spatial-nav__links{position:relative;inset:auto;height:auto;margin-top:18px}
 .spatial-nav[data-spatial-active] .spatial-nav__destination{position:relative;width:76%;max-width:none;left:7%;top:auto!important;margin-bottom:16px}
 .spatial-nav[data-spatial-active] .spatial-nav__destination[data-spatial-destination='software']{left:7%;top:0;width:76%}
 .spatial-nav[data-spatial-active] .spatial-nav__destination[data-spatial-destination='games']{left:18%;top:25%;width:76%}
 .spatial-nav[data-spatial-active] .spatial-nav__destination[data-spatial-destination='merch']{left:10%;top:54%;width:78%}
 .spatial-nav[data-spatial-active] .spatial-nav__destination[data-spatial-destination='engineering']{left:20%;top:77%;width:75%}
 .spatial-nav__destination[data-weight='primary']>span{font-size:2.8rem}.spatial-nav__destination[data-weight='secondary']>span{font-size:1.9rem}.spatial-nav__destination[data-weight='specialist']>span{font-size:1.6rem}
 .spatial-nav[data-spatial-active]>[data-spatial-home]{position:relative;inset:auto;display:inline-block;margin-top:10px}
 .public-deck.arrival{padding:125px 26px 140px;gap:32px;grid-template-columns:1fr}
 .public-deck .deck-home{left:22px;top:30px}body[data-page='area']>.public-access{right:98px;top:29px;font-size:9px}
 .product-preview{grid-template-columns:1fr;gap:24px;margin-top:12px}.access-threshold{padding-left:20px}
 .deck-scene .deck-diagram{width:100%}.simulation-world{max-width:500px}
 .deck--engineering.public-deck{height:auto;min-height:1100px;padding:115px 24px 140px}
 .deck--engineering .deck-copy{width:100%;max-width:520px}.deck--engineering .deck-lede{max-width:48ch}
 .engineering-environment{position:relative;width:calc(100% + 48px);margin-left:-24px;height:520px;top:auto;right:auto;order:2}
 .deck--engineering{display:flex!important;flex-direction:column;align-items:stretch!important;gap:0!important}
 .deck--engineering .deck-copy{order:1}.engineering-console{position:relative;inset:auto;width:100%;order:3;margin-top:-55px}
 .engineering-environment::after{background:linear-gradient(0deg,#080c10,transparent 22%)}
}
@media(min-width:801px) and (max-height:650px){.spatial-nav[data-spatial-active] .spatial-nav__destination[data-spatial-destination='software']{top:23%}.spatial-nav[data-spatial-active] .spatial-nav__destination[data-spatial-destination='games']{top:27%}.spatial-nav[data-spatial-active] .spatial-nav__destination[data-spatial-destination='merch']{top:60%}.spatial-nav[data-spatial-active] .spatial-nav__destination[data-spatial-destination='engineering']{top:64%}.spatial-nav__destination[data-weight='primary']>span{font-size:2.6rem}}
@media(prefers-reduced-motion:reduce){.spatial-nav__destination{transition:none!important;transform:none!important}}

.ship-deck a{text-decoration:none}.ship-deck--engineering .ship-copy h1{font-size:clamp(31px,3.1vw,53px)}

/* Software deck: cinematic architecture, semantic HTML, no rendering runtime.
   Environmental image is decorative; product identity and all content stay real. */
body[data-area='software']{background:#101112}
body[data-area='software']::before,body[data-area='software']::after,body[data-area='software']>.smoke{display:none}
body[data-area='software']>.public-access{top:29px;right:132px;font-size:10px}
body[data-area='software']>.language-menu{top:21px;right:28px}
.software-deck{--deck-gutter:clamp(22px,5.5vw,132px);--deck-silver:#c5c6c5;--deck-ink:#101112;--deck-warm:#e3c5a2;position:relative;z-index:2;max-width:2400px;margin:auto;padding:0 var(--deck-gutter) 54px;color:#edece7;font-family:var(--font-ui);background:radial-gradient(ellipse at 8% 70%,#55504613,transparent 55%),#101112;isolation:isolate}
.software-deck *{box-sizing:border-box}
.software-deck [hidden]{display:none!important}
.software-deck a{color:inherit;text-decoration:none}
.software-deck :is(a,button,input,select):focus-visible{outline:2px solid #f0d6b7;outline-offset:6px}
.software-topbar{height:82px;display:flex;align-items:center;gap:clamp(34px,6vw,105px);padding-right:220px;position:relative;z-index:4;border-bottom:1px solid #a99a852e}
.software-topbar::before{content:'';position:absolute;z-index:-1;inset:0 calc(-1 * var(--deck-gutter));background:linear-gradient(172deg,#35322d21,transparent 45%),linear-gradient(#151719,#0b0d0ed9);box-shadow:0 7px 24px #0005;pointer-events:none}
.software-brand{display:flex;align-items:center;gap:12px;flex:none}
.software-brand__symbol{width:34px;height:auto}
.software-brand__wordmark{width:158px;height:auto}
.software-nav{display:flex;gap:clamp(19px,2.3vw,37px);font-size:11px;letter-spacing:.035em;align-items:center;text-transform:uppercase}
.software-nav a{position:relative;padding:31px 0;color:#b7b9b8;white-space:nowrap}
.software-nav a:hover{color:#fff5e9}
.software-nav a[aria-current]{color:#fff1de;font-weight:600}
.software-nav a[aria-current]::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:#ecd4b6;box-shadow:0 -1px 10px #f0c48e70}
.software-hero{position:relative;min-height:560px;display:flex;align-items:center;overflow:hidden;margin:0 calc(-1 * var(--deck-gutter));padding:54px var(--deck-gutter) 58px;background:#101315;border-bottom:1px solid #a99a8547;isolation:isolate}
.software-hero::after{content:'';position:absolute;z-index:1;inset:auto 0 0;height:90px;background:linear-gradient(transparent,#101112b3);pointer-events:none}
.software-hero__copy{position:relative;z-index:2;width:41%;max-width:530px;padding:15px 26px 25px 0;text-shadow:0 2px 14px #000b}
.software-eyebrow{font:500 10px/1.6 var(--font-ui);letter-spacing:.2em;text-transform:uppercase;color:#c1b8aa;margin:0 0 24px}
.software-eyebrow span[aria-hidden]{color:#9c9285;margin-left:15px}
.software-hero h1{font:300 clamp(43px,4.6vw,75px)/1.1 var(--font-ui);letter-spacing:.10em;margin:0 0 24px;color:#eeefed;text-transform:uppercase}
.software-hero__title{font:400 clamp(19px,1.75vw,27px)/1.4 var(--font-ui);letter-spacing:.075em;text-transform:uppercase;max-width:21ch;margin:0 0 21px;color:#dadbd6}
.software-hero__intro{max-width:33ch;color:#c4c7c5;font-size:14px;line-height:1.8;margin:0 0 28px}
.software-hero__link{font-size:11px;letter-spacing:.08em;text-transform:uppercase;display:inline-flex;gap:30px;align-items:center;border-bottom:1px solid #cdb89966;padding:12px 0;color:#eee0cd!important}
.software-hero__link:hover{border-color:#efd7b6}
.software-window{position:absolute;inset:0;overflow:hidden;background:#121719}
.software-window::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#060b10bc 0,#060b1078 27%,#080c1120 48%,transparent 68%);pointer-events:none}
.software-window__space{position:absolute;inset:0;overflow:hidden}
.software-window__space>img{width:100%;height:100%;object-fit:cover;object-position:center 56%}
.software-window__drift{position:absolute;inset:-10%;background:radial-gradient(ellipse at 78% 42%,#ffe3ba0b,transparent 40%);animation:software-cosmos 90s ease-in-out infinite alternate;will-change:transform}
.software-window__index{position:absolute;z-index:2;bottom:22px;right:5.5%;color:#e4d2b6;font-size:8px;letter-spacing:.23em;opacity:.75}
.software-anchor{position:absolute;width:1px;height:1px;pointer-events:none}
.software-catalog{padding-top:39px;position:relative;scroll-margin-top:28px}
.software-catalog__header{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:28px}
.software-catalog__header .software-eyebrow{font-size:9px;margin-bottom:10px}
.software-catalog h2{font:300 clamp(23px,2.1vw,32px)/1.3 var(--font-ui);letter-spacing:-.02em;margin:0;color:#e0e1dd}
.software-catalog__header>p{color:#a1a4a3;font-size:12px;max-width:28ch;text-align:right;line-height:1.6}
.software-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}
.software-card{position:relative;display:grid;grid-template-columns:1fr;min-width:0;border:1px solid #a49a8650;border-radius:9px;background:linear-gradient(132deg,#272a2985,#171a1a 50%,#111415);box-shadow:inset 0 1px #e6d6b614,0 18px 35px #0005;transition:transform .35s,border-color .35s,box-shadow .35s;isolation:isolate}
.software-card::before,.software-card::after{content:'';position:absolute;z-index:3;pointer-events:none;width:32px;height:1px;background:#c6b3948a;top:-1px;left:25px}
.software-card::after{top:auto;left:auto;right:25px;bottom:-1px;opacity:.5}
.software-card[data-frame='bevel']{border-radius:9px 18px 9px 18px}
.software-card[data-frame='inset']{box-shadow:inset 0 0 0 5px #0e111499,inset 0 0 0 6px #a99a8533}
.software-card[data-frame='rail']{border-left:3px solid var(--product-accent)}
.software-card[data-size='featured']{grid-column:1/-1;grid-template-columns:43% 57%;border-color:#c9b59177;box-shadow:inset 0 1px #ffe9c41a,0 0 22px #d3ad7010,0 22px 45px #0005}
.software-card[data-size='compact']{grid-template-columns:130px 1fr;align-self:start}
.software-card[data-layout='reverse'][data-size='featured']{grid-template-columns:57% 43%}
.software-card[data-layout='reverse'] .software-card__visual{order:2}
.software-card__visual{position:relative;min-height:240px;display:grid;place-items:center;overflow:hidden;border-radius:8px 0 0 8px;background:radial-gradient(ellipse at 50% 45%,#526b7036,transparent 68%),#0c141b;border-right:1px solid #c7b89c30;isolation:isolate}
/* A crop of the same architecture connects the product bay to the ship.
   The original icon stays an independent image, not a fabricated software screen. */
.software-card[data-product-id='astro-haviant'] .software-card__visual{background:linear-gradient(0deg,#071019f0,#0b162454 55%,#07101b85),url('/assets/software-lounge-v2.webp') 71% 50%/auto 105% no-repeat,#11171c}
.software-card__visual::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 40% 45%,var(--product-accent),transparent 60%),radial-gradient(ellipse at 85% 80%,var(--product-secondary),transparent 55%);opacity:calc(var(--product-intensity)*.24)}
.software-card__visual::after{content:'';position:absolute;inset:21px;border:1px solid #c6b49336;border-radius:3px;pointer-events:none;box-shadow:inset 0 0 26px #01060b44}
.software-card__visual>img{position:relative;z-index:1;width:clamp(145px,15vw,206px);height:auto;border-radius:24%;box-shadow:0 28px 50px #0009,0 0 0 1px #ddd5c726;transition:transform .7s;max-width:63%;object-fit:contain}
.software-card__orbits{position:absolute;width:75%;aspect-ratio:1;border:1px solid #c2d2d020;border-radius:50%;transform:rotate(-28deg) scaleY(.75);box-shadow:0 0 0 25px #8ba29e08,0 0 0 26px #c3d1c612,0 0 0 49px #8ba29e04,0 0 0 50px #c3d1c609}
.software-card__visual-caption{position:absolute;z-index:1;bottom:34px;left:24px;right:24px;text-align:center;text-transform:uppercase;font-size:10px;letter-spacing:.18em;color:#d9dedc;text-shadow:0 2px 8px #000}
.software-card__missing{color:#a0b8c3;font-size:12px;letter-spacing:.06em}
.software-card__content{padding:clamp(28px,3vw,46px);min-width:0}
.software-card__eyebrow{display:flex;gap:16px;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.15em;color:#ead2ad;margin-bottom:23px}
.software-card__status{letter-spacing:0;color:#aeb6b3;font-size:11px;text-align:right}
.software-card h3{font:300 clamp(28px,3.2vw,45px)/1.15 var(--font-ui);letter-spacing:.025em;margin:0 0 13px;color:#f0efea}
.software-card__tagline{font-size:15px;color:#d7dbd7;line-height:1.6;margin:0 0 17px}
.software-card__description{font-size:14px;line-height:1.85;color:#bfc5c3;max-width:60ch;margin:0 0 14px}
.software-card__audience{font-size:12px;line-height:1.8;color:#a7b1af;margin:0 0 20px}
.software-card__audience strong{font-weight:500;color:#d0d6d2}
.software-card__facts{display:flex;gap:36px;margin:20px 0 26px;padding-top:18px;border-top:1px solid #bcb69e23;font-size:11px}
.software-card__facts div{display:grid;gap:7px}.software-card__facts dt{color:#a4aca8;font-size:9px;text-transform:uppercase;letter-spacing:.14em}.software-card__facts dd{margin:0;color:#e4e7e1}
.software-card__cta{position:relative;display:inline-flex;align-items:center;gap:.35em;flex-wrap:wrap;min-height:46px;padding:12px 19px;border:1px solid #cbb6948a;border-radius:3px;background:linear-gradient(130deg,#efdcc2,#cfb899);color:#181b1b!important;font-size:12px;font-weight:600;box-shadow:inset 0 1px #fff6e866,0 4px 16px #d2b17f12;transition:background .25s,border-color .25s}
.software-card__cta b{margin-left:30px;font-size:19px;font-weight:300;color:#4a463d}
.software-card__cta:hover{background:#f0dfc8;border-color:#ffe7c5}
.software-card__trace{position:absolute;left:0;top:0;width:30%;height:1px;background:linear-gradient(90deg,transparent,#ead1ac,transparent);opacity:0;pointer-events:none}
.software-card[data-light='trace']:is(:hover,:focus-within) .software-card__trace{animation:software-trace 1.1s ease-out 1}
.software-card:is(:hover,:focus-within){transform:translateY(-2px);border-color:#d8c49a99;box-shadow:inset 0 1px #f4e0ba22,0 20px 40px #0005}
.software-card:hover .software-card__visual>img{transform:translateY(-3px)}
.software-card[data-size='standard'] h3{font-size:30px}.software-card[data-size='standard'] .software-card__visual{min-height:230px;border-radius:8px 8px 0 0}.software-card[data-size='standard'] .software-card__visual img{width:140px}.software-card[data-size='standard'] .software-card__content{padding:30px}
.software-card[data-size='compact'] .software-card__visual>img{width:80px;max-width:75%}.software-card[data-size='compact'] .software-card__visual{min-height:170px}.software-card[data-size='compact'] .software-card__visual-caption,.software-card[data-size='compact'] .software-card__audience{display:none}.software-card[data-size='compact'] .software-card__content{padding:24px}.software-card[data-size='compact'] h3{font-size:23px}.software-card[data-size='compact'] .software-card__description{font-size:12px}.software-card[data-size='compact'] .software-card__eyebrow{flex-wrap:wrap;margin-bottom:12px}
.software-card[data-emphasis='media'][data-size='featured']{grid-template-columns:50% 50%}.software-card[data-emphasis='text'][data-size='featured']{grid-template-columns:32% 68%}.software-card[data-lighting='warm'] .software-card__visual{background:radial-gradient(ellipse at 50% 40%,#80674b40,#11181e 70%)}.software-card[data-lighting='silver'] .software-card__visual{background:radial-gradient(ellipse at 50% 40%,#8da0aa30,#11181e 70%)}
.software-catalog__footer{display:flex;gap:14px;align-items:center;margin-top:29px;border-top:1px solid #b9a9822b;padding-top:24px;color:#a0aaa7;font-size:11px;line-height:1.7}.software-catalog__footer i{width:4px;height:4px;border-radius:50%;background:#d5c0a1;flex:none;box-shadow:0 0 8px #dcc39c44}.software-catalog__footer p{margin:0}.software-catalog__footer>span{margin-left:18px;letter-spacing:.16em;font-size:8px;color:#888e89}.software-catalog__footer>a{margin-left:auto;border-bottom:1px solid #ac9e8166;padding:6px 0;color:#cecaba}
.software-tools{display:flex;flex-wrap:wrap;gap:20px;align-items:end;margin:0 0 24px}.software-tools label{display:grid;gap:7px;font-size:11px;color:#c3cac7}.software-tools input,.software-tools select{background:#1b201f;border:1px solid #737b72;color:#e4ece7;padding:11px;font:13px var(--font-ui);min-height:42px}.software-tools [role='group']{display:flex;gap:10px;flex-wrap:wrap;margin-right:auto}.software-tools button,.software-retry{font:12px var(--font-ui);border:1px solid #a897764d;padding:12px 18px;background:#171b1b;color:#c9d0c8;cursor:pointer}.software-tools button[aria-pressed='true']{border-color:#d1b991;color:white;background:#34342d}.software-catalog__status{font-size:13px;line-height:1.7;color:#b9c0ba}
.software-departing .software-catalog{transform:translateY(-7px);opacity:.35;transition:transform .22s,opacity .22s}.software-departing .software-window__space{transform:scale(1.015);transition:transform .22s}
.software-deck[data-calm='true'] .software-window__drift{animation-play-state:paused}
@keyframes software-cosmos{from{transform:translate(-1%,0)}to{transform:translate(2%,1%)}}
@keyframes software-trace{0%{opacity:0;transform:translateX(-30%)}25%{opacity:.8}100%{opacity:0;transform:translateX(280%)}}
@keyframes software-in{from{opacity:0;transform:translateY(5px)}}
@media(min-width:2200px){.software-deck{--deck-gutter:100px;padding-left:100px;padding-right:100px}.software-hero{min-height:650px}.software-hero__intro{font-size:17px}.software-card__description{font-size:16px}.software-card__audience{font-size:14px}.software-card__content{padding:55px}.software-card__visual img{width:256px}.software-nav{font-size:13px}}
@media(max-width:1100px){.software-topbar{gap:30px;padding-right:0;height:123px;align-items:end;padding-bottom:14px}.software-brand{align-self:start;position:absolute;top:24px}.software-nav a{padding:12px 0}.software-hero__copy{width:47%}.software-hero h1{font-size:44px}.software-hero{min-height:500px}.software-window__space>img{object-position:56% center}.software-card[data-size='compact']{grid-template-columns:100px 1fr}.software-card__eyebrow{flex-wrap:wrap}.software-card__content{padding:28px}}
@media(max-width:700px){
 .software-deck{--deck-gutter:22px;padding:0 22px 42px}.software-topbar{height:125px;overflow:visible;padding-right:0}.software-nav{width:100%;justify-content:space-between;gap:12px;font-size:10px}.software-brand{top:26px;gap:9px}.software-brand__symbol{width:26px}.software-brand__wordmark{width:120px}
 body[data-area='software']>.public-access{top:29px;right:80px;font-size:8px}body[data-area='software']>.language-menu{right:18px;top:19px}
 .software-hero{display:flex;flex-direction:column;align-items:stretch;margin:0 -22px;padding:35px 22px 0;min-height:0;background:#101619}
 .software-hero__copy{order:-1;width:100%;max-width:none;padding:0 0 27px;background:none}.software-eyebrow{font-size:9px;margin-bottom:16px}.software-hero h1{font-size:40px;margin-bottom:18px;letter-spacing:.1em}.software-hero__title{font-size:21px;max-width:24ch;margin-bottom:16px}.software-hero__intro{font-size:13px;max-width:38ch;margin-bottom:12px}.software-hero__link{font-size:10px}
 .software-window{position:relative;inset:auto;height:258px;margin:0 -22px}.software-window__space>img{object-position:67% center}.software-window::after{background:linear-gradient(#101619 0,transparent 23%,transparent 90%,#101112)}.software-window__index{bottom:18px;right:22px;font-size:7px}.software-hero::after{display:none}
 .software-catalog{padding-top:31px}.software-catalog__header{display:block;margin-bottom:23px}.software-catalog h2{font-size:25px}.software-catalog__header>p{text-align:left;max-width:none;font-size:12px;margin-top:12px}.software-grid{grid-template-columns:1fr;gap:20px}
 .software-card[data-size],.software-card[data-size][data-emphasis],.software-card[data-size][data-layout]{grid-template-columns:1fr}.software-card[data-layout='reverse'] .software-card__visual{order:0}.software-card__visual,.software-card[data-size='standard'] .software-card__visual{min-height:258px;border-radius:8px 16px 0 0;border-right:0;border-bottom:1px solid #d3b79433}.software-card__visual>img{width:145px}.software-card__visual-caption{bottom:24px;font-size:9px}.software-card__visual::after{inset:15px}
 .software-card__content,.software-card[data-size='standard'] .software-card__content{padding:25px 22px}.software-card h3{font-size:32px}.software-card__eyebrow{gap:9px;letter-spacing:.1em;margin-bottom:18px}.software-card__status{font-size:10px}.software-card__tagline{font-size:14px}.software-card__description{font-size:13px;line-height:1.8}.software-card__audience{font-size:12px}.software-card__cta{display:flex;width:100%;min-height:50px;font-size:12px}.software-card__cta b{margin-left:auto}
 .software-card[data-size='compact']{grid-template-columns:86px 1fr}.software-card[data-size='compact'] .software-card__visual{min-height:150px;border-radius:8px 0 0 8px}.software-card[data-size='compact'] .software-card__content{padding:20px 16px}.software-card[data-size='compact'] .software-card__visual::after{inset:7px}.software-card[data-size='compact'] .software-card__cta{font-size:11px;padding:10px;gap:4px}.software-catalog__footer{flex-wrap:wrap}.software-catalog__footer>span{display:none}.software-catalog__footer>a{margin-left:18px}.software-tools label{width:100%}.software-tools input{min-width:0;width:100%}
}
@media(max-width:360px){.software-brand__wordmark{width:100px}.software-brand__symbol{width:23px}.software-brand{gap:7px}.software-card__eyebrow{display:block}.software-card__status{display:block;text-align:left;margin-top:8px}}
/* Product station uses the same material palette. Existing content, forms,
   permissions and link destinations remain owned by the PHP application. */
body[data-page='product'].commerce-space{background:radial-gradient(ellipse at 85% 0,#52473735,transparent 55%),#101112}
body[data-page='product'] .commerce-layout{max-width:1320px;animation:software-in .25s ease-out both}
body[data-page='product'] .product-hero{position:relative;isolation:isolate;overflow:hidden;grid-template-columns:minmax(170px,.65fr) minmax(0,1fr);min-height:480px;padding:clamp(26px,4vw,62px);border:1px solid #c7ae8759;border-radius:8px;background:linear-gradient(90deg,#10171b40,#0c1116ee 48%),url('/assets/software-lounge-v2.webp') 60% center/cover;box-shadow:inset 0 1px #e3caaa19,0 16px 40px #0003}
body[data-page='product'] .product-hero>img{width:clamp(130px,18vw,220px);justify-self:center;border-radius:24%;box-shadow:0 22px 50px #0009}
body[data-page='product'] .product-hero h1{font:300 clamp(32px,4.5vw,61px)/1.13 var(--font-ui);letter-spacing:.03em;color:#efeee7}
body[data-page='product'] .product-hero p{color:#c4cbc7}
body[data-page='product'] .product-hero .account-primary{background:linear-gradient(130deg,#efdcc2,#cfb899);border-color:#bca37f;color:#191c1b;box-shadow:0 4px 20px #e5c18d13}
body[data-page='product'] .account-profile{background:linear-gradient(135deg,#27292588,#161a1a);border-color:#a9997952;border-radius:6px;box-shadow:inset 0 1px #f5e0b911}
body[data-page='product'] .account-profile h2{font-family:var(--font-ui);font-weight:400;letter-spacing:.02em;color:#e4d5bf}
@media(max-width:700px){body[data-page='product'] .product-hero{grid-template-columns:1fr;gap:28px;padding:28px 23px;background:linear-gradient(#09151a66,#101619 38%),url('/assets/software-lounge-v2.webp') 64% top/auto 330px no-repeat}body[data-page='product'] .product-hero>img{width:130px}body[data-page='product'] .product-hero h1{font-size:36px}}
@media(prefers-reduced-motion:reduce){.software-deck *,.software-deck *::before,.software-deck *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.software-card:is(:hover,:focus-within),.software-card:hover .software-card__visual>img{transform:none}.software-window__drift{will-change:auto}body[data-page='product'] .commerce-layout{animation:none}}

/* Interior and realtime exterior share a single 2.5:1 optical plane and cover crop. */
[data-exterior-host]{--exterior-bounce:0;--exterior-light:255 230 198;--exterior-crop:center 56%;isolation:isolate}
[data-exterior-host] .exterior-universe,[data-exterior-host] .exterior-interior{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--exterior-crop);pointer-events:none}
[data-exterior-host] .exterior-universe{z-index:1;opacity:0}
[data-exterior-host] .exterior-interior{z-index:2;opacity:0}
[data-exterior-host] .exterior-fallback{object-position:var(--exterior-crop)}
[data-exterior='ready'] .exterior-universe,[data-exterior='ready'] .exterior-interior{opacity:1}
[data-exterior='ready'] .software-window__space{visibility:hidden}
.software-window::after{z-index:5}
.software-window__index{z-index:6}
.exterior-glass{position:absolute;z-index:3;inset:0;opacity:0;pointer-events:none;clip-path:polygon(47% 22%,87% 14%,87% 69%,40% 69%);background:linear-gradient(116deg,transparent 46%,#eadcca0a 48%,transparent 50%),linear-gradient(165deg,#a6c9df05,transparent 45%);transform:translateX(var(--glass-shift,0px))}
[data-exterior='ready'] .exterior-glass{opacity:1}
.exterior-bounce{position:absolute;inset:0;z-index:4;pointer-events:none;background:radial-gradient(ellipse at 67% 86%,rgb(var(--exterior-light)),transparent 55%);mix-blend-mode:screen;opacity:var(--exterior-bounce)}
@media(max-width:1100px){[data-exterior-host]{--exterior-crop:56% center}}
@media(max-width:700px){[data-exterior-host]{--exterior-crop:67% center}}
/* Product System core: blocks and responsive rules do not belong to individual themes. */
.arukadia-product{color:#dce0da;--product-accent:#88bacd;--product-secondary:#b19070}
.arukadia-product *{box-sizing:border-box}.arukadia-product a{color:inherit;text-decoration:none}.arukadia-product :is(a,summary):focus-visible{outline:2px solid var(--product-accent);outline-offset:5px}
.product-system__breadcrumb{display:flex;gap:14px;align-items:center;font-size:12px;margin:0 0 24px;color:#b7bcb7}
.product-system__breadcrumb a{border-bottom:1px solid #bda68266}
.product-system__hero{position:relative;display:grid;grid-template-columns:1.15fr 1fr;min-height:570px;align-items:center;gap:40px;padding:55px 5%;border:1px solid #bda68269;border-radius:8px;overflow:hidden;isolation:isolate;scroll-margin-top:24px}
.product-station__window{position:absolute;inset:0;z-index:-2}
.product-station__window .software-window{height:100%;margin:0;position:absolute;inset:0}
.product-system__hero::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#080e14ed,#080e14a8 45%,#101a2240 75%),linear-gradient(0deg,#0b1319ad,transparent 40%)}
.product-system__copy{max-width:570px}
.product-system__copy h1{font:300 clamp(34px,4vw,58px)/1.12 var(--font-ui);letter-spacing:.025em;color:#f1f0e9;margin:0 0 22px}
.product-system__copy p{font-size:14px;line-height:1.85;color:#c0c9c6}.product-system__copy .software-eyebrow{font-size:9px;color:var(--product-secondary);margin-bottom:24px}
.product-system__copy .product-system__tagline{font-size:17px;color:#d9dfd8}
.product-system__identity{display:grid;place-items:center;position:relative;min-width:0}.product-system__identity::before{content:'';position:absolute;width:80%;aspect-ratio:1;background:radial-gradient(var(--product-accent),transparent 67%);opacity:calc(var(--product-intensity)*.22)}
.product-system__identity img{position:relative;width:clamp(170px,22vw,280px);max-width:85%;height:auto;border-radius:24%;box-shadow:0 25px 65px #0009}
.product-system__platform{font-size:11px;display:flex;gap:20px;padding:18px 0;color:#aebdb9}.product-system__platform strong{font-weight:500;color:#e5e7df}
.product-system__actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:12px}
.product-system__cta{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;padding:14px 20px;min-height:48px;border:1px solid var(--product-secondary);border-radius:3px;background:linear-gradient(130deg,#ecd7b9,#cdb596);color:#19201f!important;font:500 12px/1.5 var(--font-ui)}
.product-system__secondary{display:inline-flex;align-items:center;min-height:48px;padding:12px 18px;border:1px solid #b9c0b663;border-radius:3px;background:#0c13179c;font-size:12px}
.product-system__navigation{display:flex;flex-wrap:wrap;gap:24px;padding:24px 0;border-bottom:1px solid #a9947633;margin-bottom:34px;font-size:11px;color:#c2c8bf}.product-system__navigation a{padding:7px 0}.product-system__navigation a:hover{color:#f3dfbd}
.product-system__blocks{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.product-system__blocks>section{scroll-margin-top:30px;min-width:0}
.product-system__blocks h2{font:400 21px/1.35 var(--font-ui);color:#e3dccd;margin:0 0 23px}
.product-system__features{grid-column:1/-1}.product-system__features>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.product-system__features article{padding:26px 21px;border:1px solid #ab9c804a;border-radius:4px;background:linear-gradient(135deg,#2f322d66,#151a1b);box-shadow:inset 0 1px #f7e8c912}
.product-system__features svg{width:39px;height:39px;color:var(--product-accent);margin-bottom:18px}
.product-system__features h3{font:400 14px/1.65 var(--font-ui);color:#d7ded5;margin:0}
.product-system__panel{padding:30px;background:linear-gradient(140deg,#202622aa,#121819);border:1px solid #a495773a;border-radius:5px}.product-system__panel p,.product-system__panel li{font-size:14px;color:#b6c2bc}.product-system__panel li{margin:10px 0}.product-system__panel dl{font-size:14px}.product-system__panel summary{cursor:pointer;padding:13px 0}.product-system__panel details+details{border-top:1px solid #a4957733}
.product-system__gallery{grid-column:1/-1}.product-system__gallery>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.product-system__gallery figure{margin:0}.product-system__gallery img{display:block;width:100%;height:auto}.product-system__gallery figcaption{font-size:12px;color:#adbeb5;padding-top:10px}
.product-system__access{grid-column:1/-1;padding:30px;border:1px solid #bda47f5c;background:linear-gradient(115deg,#30332960,#121819);border-radius:5px}.product-system__access h2{margin-bottom:10px}.product-system__access p{font-size:14px;color:#bdc8c1}.product-system__access .product-system__cta{margin-top:12px}
.arukadia-product[data-layout='reverse'] .product-system__copy{order:2}.arukadia-product[data-layout='poster'] .product-system__hero{grid-template-columns:1fr;text-align:center}.arukadia-product[data-layout='poster'] .product-system__copy{max-width:650px;margin:auto}.arukadia-product[data-layout='poster'] .product-system__identity{order:-1}.arukadia-product[data-layout='poster'] .product-system__identity img{width:165px}.arukadia-product[data-layout='poster'] :is(.product-system__platform,.product-system__actions){justify-content:center}
.arukadia-product[data-frame='rail'] .product-system__hero{border-left:3px solid var(--product-accent)}.arukadia-product[data-frame='inset'] .product-system__hero{box-shadow:inset 0 0 0 5px #08121899,inset 0 0 0 6px #bdc9b333}
.arukadia-product[data-lighting='warm'] .product-system__hero::after{background:linear-gradient(90deg,#170f09ef,#17120bb0 45%,#30211835)}.arukadia-product[data-lighting='silver'] .product-system__hero::after{background:linear-gradient(90deg,#12191eee,#121b23ac 45%,#202e4035)}
body[data-page='product'] .commerce-layout:has(.arukadia-product){padding-top:22px;max-width:1440px}
body[data-page='product'] #request{margin-top:26px}
.software-card__trace{background:linear-gradient(90deg,transparent,var(--product-accent),transparent)}
.software-card[data-light='edge']:is(:hover,:focus-within){box-shadow:inset 0 0 0 1px var(--product-accent),0 18px 40px #0005}
.software-card[data-badge='outline'] .software-card__eyebrow>span:first-child{border:1px solid var(--product-secondary);padding:5px 8px}.software-card[data-badge='solid'] .software-card__eyebrow>span:first-child{background:var(--product-accent);color:#0e161a;padding:5px 8px}
@media(max-width:900px){.product-system__hero{gap:25px;padding:35px 28px}.product-system__features>div{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.product-system__hero{grid-template-columns:1fr;gap:28px;padding:28px 24px}.product-system__identity{order:-1!important;min-height:165px}.product-system__identity img{width:145px}.product-system__copy{order:0!important}.product-system__copy h1{font-size:35px}.product-system__hero::after{background:linear-gradient(#09151a48,#0a1216e8 36%)}.product-station__window{height:370px}.product-station__window .software-window{height:370px}.product-system__copy .product-system__tagline{font-size:15px}.product-system__copy p{font-size:13px}.product-system__actions{align-items:stretch;flex-direction:column}.product-system__cta,.product-system__secondary{justify-content:space-between;width:100%;text-align:left}.product-system__navigation{gap:12px 19px;font-size:10px}.product-system__blocks{grid-template-columns:1fr;gap:18px}.product-system__features article{padding:22px 16px}.product-system__features h3{font-size:12px}.product-system__blocks h2{font-size:20px}.product-system__panel,.product-system__access{padding:24px 21px}.product-system__gallery>div{grid-template-columns:1fr}.arukadia-product[data-layout='reverse'] .product-system__copy{order:0}.arukadia-product[data-layout='poster'] .product-system__hero{text-align:left}}
@media(prefers-reduced-motion:reduce){.arukadia-product *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.product-station__window{opacity:calc(.42 + var(--product-intensity)*.85)}
.arukadia-product[data-light='trace'] .product-system__hero::before{content:'';position:absolute;left:0;top:0;z-index:4;height:1px;width:30%;background:linear-gradient(90deg,transparent,var(--product-accent),transparent);opacity:0;pointer-events:none}
.arukadia-product[data-light='trace'] .product-system__hero:focus-within::before{animation:software-trace 1.1s ease-out 1}
.arukadia-product[data-light='edge'] .product-system__hero:focus-within{box-shadow:inset 0 0 0 1px var(--product-accent)}
@media(prefers-reduced-motion:reduce){.arukadia-product *::before,.arukadia-product *::after{animation:none!important;transition:none!important}}

/* Navigation Bridge: one physical room, one exterior, accessible spatial links. */
.bridge-deck{--deck-gutter:6vw;background:#080d11;color:#e8e6e0;min-height:100svh;text-align:left;overflow:clip}
.bridge-deck .software-topbar{padding-left:6vw;padding-right:330px}
.bridge-deck a{text-decoration:none}
body[data-area=bridge]>.public-access{top:29px;right:132px;font-size:10px}
body[data-area=bridge]>.language-menu{top:21px;right:28px}
.bridge-scene{position:relative;min-height:680px;height:calc(100svh - 80px);isolation:isolate}
.bridge-exterior,.bridge-core{position:absolute;inset:0;pointer-events:none}
.bridge-exterior{--exterior-crop:center!important;z-index:-2;background:#07101a}
.bridge-exterior .exterior-interior{width:100%;height:100%;object-fit:cover;object-position:center;opacity:1}
.bridge-exterior .software-window__space{inset:0}
.bridge-exterior .exterior-bounce{inset:0}
.bridge-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(#070b1080,transparent 32%,transparent 72%,#070b108c);pointer-events:none;z-index:-1}
.bridge-heading{position:relative;text-align:center;padding:26px 20px 0;pointer-events:none}
.bridge-heading p{font:10px/1.7 var(--font-ui);letter-spacing:.23em;text-transform:uppercase;color:#bfc2c3;margin:7px 0}
.bridge-heading h1{font:300 clamp(20px,2.2vw,33px)/1.2 var(--font-ui);letter-spacing:.12em;margin:9px 0;text-transform:uppercase}
.bridge-map{width:100%;height:100%;fill:none;stroke:#bfd4df;stroke-width:1;filter:drop-shadow(0 0 5px #a6d8f032)}
.bridge-map [data-bridge-sector]{opacity:.46;transition:opacity .4s,stroke .4s;stroke-width:1}
.bridge-map [data-bridge-sector='software'],.bridge-map [data-bridge-sector='games']{opacity:.84;stroke-width:1.4}
.bridge-map [data-bridge-sector='bridge']{stroke:#eed7b2;opacity:.9}
.bridge-map .is-focused{opacity:1;stroke:#fff0cf;stroke-width:2}
.bridge-map__projection{opacity:.18;stroke-dasharray:2 5}
.bridge-map__route{opacity:0;stroke-dasharray:4 5;transition:opacity .4s}
.bridge-map .is-focused .bridge-map__route{opacity:1}
.bridge-anchor{position:absolute;width:1px;height:1px}
.bridge-destination{position:absolute;display:flex;flex-direction:column;width:235px;padding:16px 0;color:#d5dbdd;text-shadow:0 2px 12px #000;transition:color .3s,transform .4s;outline-offset:9px}
.bridge-destination:before{content:'';position:absolute;left:0;top:0;width:54px;height:1px;background:#c9d4d6aa;transition:width .4s}
.bridge-destination small{font:9px/1.6 var(--font-ui);letter-spacing:.13em;color:#bec6cc}
.bridge-destination strong{font:300 clamp(23px,2.3vw,36px)/1.3 var(--font-ui);letter-spacing:.06em;margin-top:8px}
.bridge-destination__hint{font:12px/1.7 var(--font-ui);max-width:29ch;margin-top:10px;opacity:0;transition:opacity .3s}
.bridge-destination__enter{font:10px/1.5 var(--font-ui);letter-spacing:.17em;text-transform:uppercase;margin-top:12px;opacity:.65}
.bridge-destination:hover,.bridge-destination:focus-visible{color:#fff0d8;transform:translateY(-3px)}
.bridge-destination:hover:before,.bridge-destination:focus-visible:before{width:110px;background:#f3dfbe}
.bridge-destination:hover .bridge-destination__hint,.bridge-destination:focus-visible .bridge-destination__hint{opacity:1}
.bridge-destination--software{left:12%;top:29%}.bridge-destination--games{right:10%;top:29%}
.bridge-destination--merch{left:17%;top:66%;width:220px}.bridge-destination--engineering{right:13%;top:66%;width:220px;opacity:.72}
.bridge-destination--merch strong,.bridge-destination--engineering strong{font-size:19px}
.bridge-destination--engineering:hover,.bridge-destination--engineering:focus-visible{opacity:1}
.bridge-bearing{position:absolute;bottom:18px;left:6%;right:9%;display:flex;justify-content:space-between;align-items:center;font:9px/1.5 var(--font-ui);letter-spacing:.18em;text-transform:uppercase;color:#b3bec3}
.bridge-bearing button{font:inherit;letter-spacing:inherit;color:inherit;padding:12px 16px;border:1px solid #9cabaf55;background:#080d11b0;cursor:pointer}
.bridge-bearing button[aria-pressed=true]{color:#ffedcf;border-color:#e2c99f}
body[data-area=bridge]>.smoke{display:none}
body[data-bridge-departure] .bridge-core{transform:scale(1.8);opacity:0;transition:transform .58s cubic-bezier(.3,0,.3,1),opacity .58s}
body[data-bridge-departure] .bridge-destinations,body[data-bridge-departure] .bridge-heading{opacity:0;transition:opacity .25s}
body[data-bridge-departure] .bridge-exterior{transform:scale(1.08);transition:transform .6s}
body.spatial-travelling .spatial-nav__header,body.spatial-travelling .navigation-mode{visibility:hidden}
@media(max-width:1100px){.bridge-deck .software-topbar{padding-right:22px}}
@media(max-width:800px){
 .bridge-deck .software-topbar{padding-left:22px;padding-right:22px}
 .bridge-scene{height:auto;min-height:810px;padding-bottom:85px}
 .bridge-exterior{height:460px}.bridge-exterior .exterior-interior{object-fit:cover;object-position:center}
 .bridge-heading{padding-top:24px}.bridge-heading h1{font-size:22px}.bridge-heading p{font-size:9px;letter-spacing:.12em}
 .bridge-core{top:145px;height:220px}.bridge-map{width:100%;height:100%}
 .bridge-destinations{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:25px 20px;margin:340px 22px 0}
 .bridge-destination{position:relative;inset:auto;width:auto;min-height:135px;padding:12px 0;opacity:1}
 .bridge-destination strong{font-size:21px}.bridge-destination--merch strong,.bridge-destination--engineering strong{font-size:16px}
 .bridge-destination small{font-size:8px;letter-spacing:.05em}.bridge-destination__hint{display:none}.bridge-destination__enter{opacity:1}
 .bridge-bearing{left:22px;right:22px;gap:15px;font-size:8px}.bridge-bearing>span{max-width:20ch}
 body[data-area=bridge]>.public-access{right:80px;font-size:8px}body[data-area=bridge]>.language-menu{right:18px}
}
@media(prefers-reduced-motion:reduce){.bridge-deck *{transition:none!important}body[data-bridge-departure] .bridge-core,body[data-bridge-departure] .bridge-exterior{transform:none}}

/* Physical console. The unchanged room plate anchors the real 3D projection. */
.bridge-core{inset:auto;left:50%;top:calc(54% - 285px);width:min(660px,53vw);height:310px;transform:translateX(-50%);pointer-events:none}
.navigation-table{position:absolute;inset:0;pointer-events:auto;cursor:crosshair}
.navigation-table canvas{width:100%;height:100%;display:block}
.bridge-map-fallback{position:absolute;inset:0;pointer-events:none}
.bridge-deck[data-hologram=webgl] .bridge-map-fallback{display:none}
.table-context{position:absolute;left:50%;top:57%;transform:translateX(-50%);margin:0;width:340px;max-width:50vw;text-align:center;font:11px/1.7 var(--font-ui);color:#e0d4c2;text-shadow:0 2px 10px #000;pointer-events:none}
.bridge-destination{width:200px;padding:12px 0}
.bridge-destination strong{font-size:clamp(19px,1.65vw,26px);letter-spacing:.08em}
.bridge-destination--software{left:14%;top:38%}.bridge-destination--games{right:11%;top:38%}
.bridge-destination--merch{left:21%;top:67%}.bridge-destination--engineering{right:17%;top:67%}
.bridge-destination--merch strong,.bridge-destination--engineering strong{font-size:16px}
.bridge-destination__hint{display:none}
.bridge-destination__enter{font-size:9px;opacity:.45;letter-spacing:.20em}
.bridge-destination:before{width:30px}
.bridge-deck[data-locked] .bridge-destination{opacity:.25}
.bridge-deck[data-locked=software] .bridge-destination--software,.bridge-deck[data-locked=games] .bridge-destination--games,.bridge-deck[data-locked=merch] .bridge-destination--merch,.bridge-deck[data-locked=engineering] .bridge-destination--engineering{opacity:1;color:#ffe6bb}
.bridge-exit{position:absolute;left:0;top:28%;height:50%;width:7%;border-right:2px solid #d8c5a100;background:linear-gradient(90deg,#070c11,#27313a00);opacity:0;pointer-events:none;transition:opacity .2s,border-color .2s}
.bridge-exit i{position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(100deg,#131c24,#080d12);border-inline:1px solid #8d8872;transition:transform .22s ease-in}
.bridge-exit i:first-child{left:0}.bridge-exit i:last-child{right:0}
body[data-bridge-departure] .bridge-exit i:first-child{transform:translateX(-100%)}
body[data-bridge-departure] .bridge-exit i:last-child{transform:translateX(100%)}
body[data-bridge-departure] .bridge-exit{opacity:1;border-color:#d8c5a1}
body[data-bridge-departure] .bridge-core{transform:translateX(-50%) scale(1.08);opacity:.75;transition:transform .22s,opacity .22s}
body[data-bridge-departure] .bridge-exterior{transform-origin:left center;transform:perspective(1100px) rotateY(3deg) scale(1.025);transition:transform .22s}
.spatial-stage[data-transit=physical]{background:#090d11;animation:none!important}
/* Hold the departing room, never a blank stage or a half-initialized camera. */
body.spatial-preparing>main{transform:none!important;opacity:1!important;visibility:visible!important;transition:none!important}
body.spatial-preparing :is(.spatial-stage,.spatial-nav[data-spatial-active]){visibility:hidden}
.spatial-stage[data-transit=physical]:not([hidden]){display:block}
body:has(.spatial-stage[data-transit=physical]) .spatial-nav[data-spatial-active]{background:transparent}
.spatial-stage[data-transit=physical]::before{display:none}
.spatial-stage[data-transit=physical] canvas{position:absolute;inset:0;width:100%;height:100%}
body.spatial-revealing .spatial-stage[data-transit=physical]{background:transparent}
body.spatial-revealing:has(.spatial-stage[data-transit=physical])>main{transition:none;transform:none;opacity:1}
@media(max-width:800px){
 .bridge-core{top:140px;width:100%;height:245px;left:0;transform:none}
 .table-context{top:385px;max-width:85vw;width:340px;font-size:10px}
 .bridge-destinations{margin-top:360px;gap:20px}
 .bridge-destination,.bridge-destination--software,.bridge-destination--games,.bridge-destination--merch,.bridge-destination--engineering{position:relative;inset:auto;width:auto;min-height:120px}
 .bridge-destination strong{font-size:19px}.bridge-destination--merch strong,.bridge-destination--engineering strong{font-size:15px}
 body[data-bridge-departure] .bridge-core{transform:scale(1.04)}
}
@media(prefers-reduced-motion:reduce){body[data-bridge-departure] .bridge-exterior{transform:none}body[data-bridge-departure] .bridge-core{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce) and (max-width:800px){body[data-bridge-departure] .bridge-core{transform:none}}

/* Refinement: projected controls, readable local surfaces and physical projection. */
.bridge-links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.bridge-links path{fill:none;stroke:#c6cecc;stroke-width:.8;opacity:.12;transition:opacity .35s,stroke .35s}
.bridge-destination{isolation:isolate;color:#f4f1e8;width:240px;padding:14px 16px 15px 18px;text-shadow:0 2px 6px #000;background:linear-gradient(100deg,#070b10d9,#09101991 72%,#09101900);border:0}
.bridge-destination small{color:#c7cecf;opacity:1;line-height:1.6;font-size:9px;letter-spacing:.1em}
.bridge-destination strong{display:block;font-weight:450;font-size:clamp(24px,1.8vw,31px);letter-spacing:.065em;color:#f0f2ee}
.bridge-destination:before{position:absolute;left:0;top:14px;width:2px!important;height:48px;background:#b0babe8c!important}
.bridge-destination--software{left:10%;top:37%}.bridge-destination--games{right:8%;top:37%}
.bridge-destination--merch{left:18%;top:68%;width:225px}.bridge-destination--engineering{right:14%;top:68%;width:225px;opacity:1}
.bridge-destination--merch strong,.bridge-destination--engineering strong{font-size:20px;color:#d6dcde}
.bridge-destination__anchor{position:absolute;left:-12px;top:23px;width:7px;height:7px;border:1px solid #bcc8cb;background:#101a23;transform:rotate(45deg);outline:1px solid #b3bdc134;outline-offset:4px}
.bridge-destination__enter{position:relative;display:inline-flex;align-items:center;gap:22px;min-height:36px;margin-top:13px;padding:6px 10px 7px 0;color:#ebdac0;opacity:1;font-size:10px;font-weight:600;letter-spacing:.18em;border-bottom:1px solid #b5a48980;overflow:hidden}
.bridge-destination__enter:after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:#fff0cf;transform:translateX(-110%)}
.bridge-destination:is(:hover,:focus-visible) .bridge-destination__enter:after{animation:bridge-command .65s ease-out forwards}
.bridge-destination:is(:hover,:focus-visible){transform:none;background:linear-gradient(100deg,#101a22f2,#101820b5 72%,#10182000)}
.bridge-destination:focus-visible{outline:1px solid #eedbc1;outline-offset:5px}
.bridge-deck[data-focus=software] .bridge-destination--software,.bridge-deck[data-focus=games] .bridge-destination--games,.bridge-deck[data-focus=merch] .bridge-destination--merch,.bridge-deck[data-focus=engineering] .bridge-destination--engineering{background:linear-gradient(100deg,#14202af2,#14202aa3 72%,#10182000);color:#fff}
.bridge-deck[data-focus=software] [data-selector-link=software],.bridge-deck[data-focus=games] [data-selector-link=games],.bridge-deck[data-focus=merch] [data-selector-link=merch],.bridge-deck[data-focus=engineering] [data-selector-link=engineering]{opacity:.56;stroke:#e9d6b7}
.bridge-destination:is(:hover,:focus-visible) .bridge-destination__anchor,.bridge-deck[data-locked] .bridge-destination__anchor{background:#dbc6a6;border-color:#f2e3ce}
.bridge-destination[data-active=true] .bridge-destination__anchor{background:#e6d4b8;border-color:#fff0d8}
.bridge-destination[data-active=true]:before{background:#e6d4b8!important}
.bridge-deck[data-locked] .bridge-destination__enter:after{animation:none;transform:none}
.bridge-core{width:min(790px,58vw);height:350px;top:calc(54% - 317px)}
.bridge-core[data-table-anchored]{left:var(--table-x);top:var(--table-y);transform:none}
body[data-bridge-departure] .bridge-core[data-table-anchored]{transform:scale(1.05)}
.table-context{color:#ede5d7;padding:5px 16px;background:radial-gradient(ellipse,#071017ce,transparent 72%);max-width:38vw}
body[data-ship-arrival].spatial-open>main{position:relative;z-index:2;isolation:isolate;opacity:1;visibility:visible;transform:none;transition:none!important}
body[data-ship-arrival] .spatial-status{clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
body.spatial-revealing :is(.language-menu,.atmosphere){visibility:visible}
.spatial-stage[data-handoff-debug=true]::after{content:'HANDOFF / LIVE DOM';position:absolute;inset:0;border:1px solid #e8cf9e;pointer-events:none;background:linear-gradient(90deg,transparent calc(50% - .5px),#e8cf9e70 50%,transparent calc(50% + .5px)),linear-gradient(transparent calc(50% - .5px),#e8cf9e70 50%,transparent calc(50% + .5px));font:10px monospace;color:#e8cf9e;padding:20px}
@keyframes bridge-command{to{transform:translateX(0)}}
@media(max-width:800px){.bridge-core{top:120px;width:100%;height:270px}.bridge-links{display:none}.bridge-destinations{margin:365px 20px 0;gap:22px 17px}.bridge-destination,.bridge-destination--software,.bridge-destination--games,.bridge-destination--merch,.bridge-destination--engineering{inset:auto;position:relative;width:auto;padding:12px 10px 12px 14px}.bridge-destination strong{font-size:21px}.bridge-destination--merch strong,.bridge-destination--engineering strong{font-size:17px}.bridge-destination small{font-size:8px}.bridge-destination__anchor{left:-6px}.table-context{top:386px;max-width:90vw}.bridge-bearing{bottom:13px}}
@media(prefers-reduced-motion:reduce){.bridge-destination__enter:after{animation:none!important;transform:none}}
@media(prefers-reduced-motion:reduce){body[data-bridge-departure] .bridge-core[data-table-anchored]{transform:none}}

body[data-area=merch]{background:#111212}body[data-area=merch]::before,body[data-area=merch]::after{display:none}
body[data-area=merch]>.public-access{right:132px;top:29px;font-size:10px}body[data-area=merch]>.language-menu{right:28px;top:21px}
.supply-deck{--deck-gutter:clamp(22px,5.5vw,132px);position:relative;z-index:2;max-width:2400px;margin:auto;background:#111212;color:#e3ded4;font-family:var(--font-ui);padding:0 var(--deck-gutter) 35px;isolation:isolate}
.supply-deck *{box-sizing:border-box}.supply-deck [hidden]{display:none!important}.supply-deck a{color:inherit;text-decoration:none}.supply-deck :is(a,button):focus-visible{outline:2px solid #e8cfaa;outline-offset:6px}
.supply-hero{position:relative;isolation:isolate;min-height:650px;height:min(75vw,850px);margin:0 calc(-1 * var(--deck-gutter));overflow:hidden;background:#121617}
.supply-room{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 78% 30%,#233341,#091119 45%)}
.supply-room .exterior-universe,.supply-interior{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}
.supply-room .exterior-universe{opacity:0;transition:opacity 1s}.supply-room[data-exterior=ready] .exterior-universe{opacity:1}.supply-interior{z-index:2;filter:brightness(.83)}
.supply-copy{position:absolute;left:var(--deck-gutter);top:15%;width:33%;max-width:460px;text-shadow:0 3px 18px #000}
.supply-kicker{font:10px/1.8 var(--font-instrument);letter-spacing:.18em;color:#c5af90}
.supply-copy h1{font:400 clamp(34px,4vw,70px)/1.08 var(--font-display);letter-spacing:.045em;margin:26px 0}
.supply-intro{font-size:clamp(14px,1.3vw,19px);line-height:1.7;max-width:24ch;color:#d4cdc2}
.supply-link{display:inline-flex;justify-content:space-between;align-items:center;gap:25px;min-height:44px;padding:12px 0;border-bottom:1px solid #cfbda281;font-size:12px;letter-spacing:.03em}.supply-link:hover{color:#fff1d9;border-color:#f2d8b3}
.supply-room-note{position:absolute;bottom:20px;left:var(--deck-gutter);max-width:55ch;margin:0;font:10px/1.8 var(--font-ui);color:#c5bdb1;background:#101315c9;padding:10px 16px}
.supply-collection{padding:55px 0 30px;scroll-margin-top:30px}.supply-collection h2{font:400 clamp(25px,3vw,40px)/1.25 var(--font-display);margin:18px 0 35px}
.supply-categories{display:flex;border-block:1px solid #a99a853a;gap:35px;padding:23px 0;flex-wrap:wrap}.supply-categories>div{flex:1;min-width:130px;display:flex;align-items:center;gap:13px}.supply-categories span{font:10px var(--font-instrument);color:#a89071}.supply-categories h3{font:400 14px var(--font-ui);margin:0}.supply-preparing{font-size:14px;color:#bbb2a4;margin:26px 0}
.supply-footer{border-top:1px solid #a99a853a;padding-top:28px;display:flex;justify-content:space-between;gap:20px;font:11px var(--font-ui);letter-spacing:.07em;color:#b6aa98}
.supply-item{display:grid;grid-template-columns:1fr 1fr;gap:35px;padding:30px 0;border-bottom:1px solid #a99a853a}.supply-item img{width:100%;height:auto;aspect-ratio:8/5;object-fit:cover}.supply-item h3{font:400 25px var(--font-display)}.supply-item dl{display:grid;grid-template-columns:auto 1fr;gap:12px;font:12px var(--font-ui)}.supply-item dd{margin:0}.supply-qa{font-size:11px;color:#d6be98}
@media(max-width:800px){.supply-hero{min-height:0;height:auto;display:flex;flex-direction:column}.supply-copy{position:relative;inset:auto;width:auto;max-width:none;padding:34px var(--deck-gutter) 26px;order:0}.supply-copy h1{font-size:38px;margin:16px 0}.supply-intro{max-width:35ch}.supply-room{position:relative;inset:auto;z-index:0;height:330px;order:1}.supply-interior{object-position:75% center}.supply-room-note{position:relative;inset:auto;max-width:none;order:2;padding:16px var(--deck-gutter)}.supply-collection{padding-top:35px}.supply-categories{gap:24px 16px}.supply-item{grid-template-columns:1fr;gap:12px}.supply-footer{flex-wrap:wrap}body[data-area=merch]>.public-access{right:85px;font-size:9px}body[data-area=merch]>.language-menu{right:20px}}
@media(prefers-reduced-motion:reduce){.supply-deck *{transition:none!important;animation:none!important}}
