html { color-scheme: dark; min-height: 100%; }
body.aurora-gate-page {
  min-height: 100vh; margin: 0; overflow: hidden; color: #eef8ff;
  background:
    radial-gradient(circle at 50% 48%, rgba(80,210,255,.13), transparent 34%),
    radial-gradient(circle at 52% 56%, rgba(95,255,210,.08), transparent 40%),
    linear-gradient(135deg, #070a0d 0%, #10131b 100%);
  cursor: default; user-select: none; touch-action: manipulation;
}
.aurora-gate-shell { touch-action: manipulation; }
.aurora-gate-shell, .archive-reactor { position: fixed; inset: 0; overflow: hidden; }
.gate-mobile-input {
  position: fixed; left: 50%; top: 50%; width: 1px; height: 1px; padding: 0;
  border: 0; opacity: .001; font-size: 16px; color: transparent; background: transparent;
}
.archive-reactor { pointer-events: none; opacity: .72; mix-blend-mode: screen; transition: opacity .8s, filter .8s; }
.archive-reactor::before {
  content: ""; position: absolute; inset: -20%; filter: blur(18px);
  background:
    radial-gradient(circle at 52% 52%, rgba(70,255,209,.20), transparent 14%),
    radial-gradient(circle at 50% 54%, rgba(60,140,255,.18), transparent 22%),
    conic-gradient(from 210deg at 50% 55%, transparent, rgba(0,255,210,.10), transparent 34deg 116deg, rgba(155,88,255,.12), transparent 152deg 225deg, rgba(0,170,255,.10), transparent 270deg);
  animation: breathe 9s ease-in-out infinite;
}
.archive-reactor::after {
  content: ""; position: absolute; inset: 0; opacity: .34;
  background: linear-gradient(rgba(255,255,255,.025) 50%, rgba(0,0,0,.06) 50%) 0 0/100% 4px,
    radial-gradient(circle at center, transparent, rgba(0,0,0,.34));
}
.archive-reactor-ring, .archive-reactor-alignment {
  position: absolute; left: 54%; top: 49%; border-radius: 50%;
  border: 1px solid rgba(150,255,230,.12); transform: translate(-50%,-50%);
  filter: drop-shadow(0 0 12px rgba(100,255,220,.14)); opacity: .34;
}
.archive-reactor-ring-a { width: max(28vw,260px); height: max(28vw,260px); animation: orbit 42s linear infinite; }
.archive-reactor-ring-b { width: max(40vw,420px); height: max(40vw,420px); opacity: .2; animation: orbit 68s linear infinite reverse; }
.archive-reactor-ring-c { width: max(58vw,620px); height: max(58vw,620px); opacity: .14; animation: orbit 120s linear infinite; }
.archive-reactor-depth { position: absolute; inset: -10%; filter: blur(90px); opacity: .22; }
.archive-reactor-depth-a { background: radial-gradient(circle at 34% 44%, rgba(0,255,210,.14), transparent 28%); animation: drift-a 34s ease-in-out infinite; }
.archive-reactor-depth-b { background: radial-gradient(circle at 66% 56%, rgba(70,120,255,.14), transparent 32%); animation: drift-b 48s ease-in-out infinite; }
.archive-reactor-depth-c { background: radial-gradient(circle at 52% 70%, rgba(180,90,255,.10), transparent 30%); animation: drift-c 60s ease-in-out infinite; }
.archive-reactor-core, .archive-reactor-eye, .archive-reactor-eclipse { position: absolute; left: 54%; top: 49%; border-radius: 50%; transform: translate(-50%,-50%); }
.archive-reactor-core {
  width: max(8vw,90px); height: max(8vw,90px); opacity: .78; filter: blur(8px);
  background: radial-gradient(circle, rgba(220,255,255,.88) 0 2%, rgba(85,255,215,.58) 3% 8%, rgba(45,145,255,.22) 12%, transparent 54%);
  animation: core-pulse 7s ease-in-out infinite;
}
.archive-reactor-eye { width: max(9vw,90px); height: max(4vw,40px); opacity: 0; background: radial-gradient(ellipse, rgba(130,220,255,.18), transparent 70%); filter: blur(8px); }
.archive-reactor-eclipse { width: max(17vw,170px); height: max(17vw,170px); opacity: .12; background: radial-gradient(circle, rgba(110,255,225,.22), transparent 58%); filter: blur(24px); }
.archive-reactor-alignment { width: max(34vw,330px); height: max(34vw,330px); opacity: 0; }
.archive-reactor-alignment-2 { width: max(47vw,470px); height: max(47vw,470px); border-style: dashed; }
.archive-reactor-grid { position: absolute; left: 0; right: 0; height: 42%; opacity: .16; background: linear-gradient(90deg, rgba(70,255,220,.18) 1px, transparent 1px) 0 0/82px 100%, linear-gradient(0deg, rgba(130,170,255,.15) 1px, transparent 1px) 0 0/100% 38px; animation: grid-flow 14s linear infinite; }
.archive-reactor-grid-floor { bottom: -7%; transform: perspective(600px) rotateX(62deg); transform-origin: bottom; }
.archive-reactor-grid-ceiling { top: -8%; transform: perspective(600px) rotateX(-62deg); transform-origin: top; }
.archive-reactor-dust { position: absolute; width: 3px; height: 3px; border-radius: 50%; background: rgba(180,255,240,.7); box-shadow: 0 0 12px rgba(120,255,230,.45); opacity: .18; animation: dust 34s linear infinite; }
.archive-reactor-dust:nth-child(1){left:12%;top:22%}.archive-reactor-dust:nth-child(2){left:22%;top:68%;animation-delay:-12s}.archive-reactor-dust:nth-child(3){left:38%;top:32%;animation-delay:-8s}.archive-reactor-dust:nth-child(4){left:61%;top:18%;animation-delay:-18s}.archive-reactor-dust:nth-child(5){left:73%;top:58%;animation-delay:-4s}.archive-reactor-dust:nth-child(6){left:84%;top:38%;animation-delay:-21s}.archive-reactor-dust:nth-child(7){left:47%;top:76%;animation-delay:-9s}.archive-reactor-dust:nth-child(8){left:15%;top:49%;animation-delay:-15s}
.archive-reactor-complete { opacity: 1; filter: brightness(1.8) saturate(1.3); }
.visually-hidden { position: fixed; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@keyframes breathe { 50% { transform: scale(1.06) rotate(1deg); opacity: .95; } }
@keyframes orbit { to { transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes drift-a { 50% { transform: translate(6%,-4%) scale(1.12); opacity: .35; } }
@keyframes drift-b { 50% { transform: translate(-5%,5%) scale(1.10); opacity: .32; } }
@keyframes drift-c { 50% { transform: translate(0,-7%) scale(1.16); opacity: .28; } }
@keyframes core-pulse { 50% { transform: translate(-50%,-50%) scale(1.08); opacity: .94; } }
@keyframes grid-flow { to { background-position: 82px 0, 0 38px; } }
@keyframes dust { 50% { transform: translate3d(32px,-24px,0); opacity: .5; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; } }
