/* Opening experience — intentionally isolated from the application styles. */
body.intro-active {
  overflow: hidden;
}

.intro-screen {
  --intro-ink: #f3f7f5;
  --intro-muted: rgba(227, 238, 234, 0.54);
  --intro-line: rgba(193, 219, 210, 0.16);
  --intro-mint: #91efd2;
  --intro-blue: #8ca9ff;
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  min-height: 100vh;
  min-height: 100dvh;
  overflow: hidden;
  color: var(--intro-ink);
  background: #0a0e0e;
  font-family: Inter, Arial, "Microsoft YaHei", sans-serif;
  isolation: isolate;
  opacity: 1;
  visibility: visible;
  transition: opacity 700ms cubic-bezier(0.65, 0, 0.35, 1),
    visibility 700ms,
    transform 900ms cubic-bezier(0.65, 0, 0.35, 1),
    clip-path 900ms cubic-bezier(0.76, 0, 0.24, 1);
  clip-path: inset(0 round 0);
}

.intro-screen::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 6;
  pointer-events: none;
  opacity: 0.2;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}

.intro-screen::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  box-shadow: inset 0 0 180px rgba(0, 0, 0, 0.58);
}

.intro-screen.is-leaving {
  opacity: 0;
  visibility: hidden;
  transform: scale(1.025);
  clip-path: inset(48% 48% 48% 48% round 999px);
  pointer-events: none;
}

.intro-ambient,
.intro-grid,
.intro-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.intro-ambient {
  z-index: -1;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 48%, rgba(24, 51, 44, 0.34), transparent 33%),
    linear-gradient(145deg, #0d1312 0%, #080b0c 52%, #0a1011 100%);
}

.intro-grid {
  opacity: 0.33;
  background-image:
    linear-gradient(var(--intro-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--intro-line) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: radial-gradient(circle at 50% 50%, #000 0%, transparent 76%);
  -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 0%, transparent 76%);
  transform: perspective(700px) rotateX(65deg) translateY(47%) scale(1.45);
  transform-origin: center bottom;
  animation: intro-grid-arrive 2.2s 150ms both cubic-bezier(0.22, 1, 0.36, 1);
}

.intro-glow {
  inset: auto;
  width: 42vw;
  height: 42vw;
  border-radius: 50%;
  filter: blur(110px);
  opacity: 0.09;
}

.intro-glow-one {
  top: -28vw;
  right: -7vw;
  background: var(--intro-blue);
  animation: intro-glow-drift 10s ease-in-out infinite alternate;
}

.intro-glow-two {
  bottom: -34vw;
  left: -12vw;
  background: var(--intro-mint);
  animation: intro-glow-drift 12s 1.2s ease-in-out infinite alternate-reverse;
}

.intro-header,
.intro-footer {
  position: relative;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-right: clamp(24px, 4vw, 72px);
  padding-left: clamp(24px, 4vw, 72px);
}

.intro-header {
  height: clamp(78px, 10vh, 104px);
  border-bottom: 1px solid rgba(210, 229, 222, 0.1);
  animation: intro-fade-down 900ms 100ms both cubic-bezier(0.22, 1, 0.36, 1);
}

.intro-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: inherit;
  text-decoration: none;
}

.intro-brand-mark {
  position: relative;
  display: grid;
  width: 35px;
  height: 35px;
  place-items: center;
  transform: rotate(45deg);
}

.intro-brand-mark::before,
.intro-brand-mark::after {
  content: "";
  position: absolute;
  background: var(--intro-mint);
}

.intro-brand-mark::before {
  width: 1px;
  height: 100%;
}

.intro-brand-mark::after {
  width: 100%;
  height: 1px;
}

.intro-brand-mark i {
  position: absolute;
  width: 6px;
  height: 6px;
  border: 1px solid var(--intro-mint);
  border-radius: 50%;
  background: #0a0e0e;
}

.intro-brand-mark i:nth-child(1) { top: 0; }
.intro-brand-mark i:nth-child(2) { right: 0; }
.intro-brand-mark i:nth-child(3) { bottom: 0; }
.intro-brand-mark i:nth-child(4) { left: 0; }

.intro-brand > span:last-child {
  display: grid;
  gap: 1px;
}

.intro-brand strong {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
}

.intro-brand small {
  color: var(--intro-muted);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.24em;
  line-height: 1.1;
  text-transform: uppercase;
}

.intro-system-status {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--intro-muted);
  font-family: "SFMono-Regular", Consolas, monospace;
  font-size: 9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.intro-system-status span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--intro-mint);
  box-shadow: 0 0 0 0 rgba(145, 239, 210, 0.45);
  animation: intro-status-pulse 2.4s ease-out infinite;
}

.intro-stage {
  --intro-x: 0px;
  --intro-y: 0px;
  position: relative;
  z-index: 2;
  display: grid;
  min-height: 0;
  place-items: center;
}

.intro-network {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(94vw, 1180px);
  height: min(76vh, 720px);
  overflow: visible;
  transform: translate(calc(-50% + var(--intro-x)), calc(-50% + var(--intro-y)));
  transition: transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
  animation: intro-network-arrive 1.8s 120ms both cubic-bezier(0.16, 1, 0.3, 1);
}

.intro-core-halo {
  fill: url("#introCoreGradient");
  transform-origin: 600px 360px;
  animation: intro-halo 4.5s ease-in-out infinite;
}

.intro-orbits {
  fill: none;
  stroke: rgba(182, 217, 205, 0.18);
  stroke-width: 1;
  transform-origin: 600px 360px;
  animation: intro-orbit-turn 38s linear infinite;
}

.intro-orbits ellipse:nth-child(2) { stroke-dasharray: 3 8; }
.intro-orbits ellipse:nth-child(3) { stroke: rgba(140, 169, 255, 0.19); }
.intro-orbits circle { stroke-dasharray: 1 10; }

.intro-traces {
  fill: none;
  stroke: url("#introLineGradient");
  stroke-linecap: round;
  stroke-width: 1.35;
}

.intro-traces path {
  stroke-dasharray: 860;
  stroke-dashoffset: 860;
  animation: intro-trace-draw 2.4s both cubic-bezier(0.65, 0, 0.35, 1);
}

.intro-traces path:nth-child(1) { animation-delay: 350ms; }
.intro-traces path:nth-child(2) { animation-delay: 520ms; }
.intro-traces path:nth-child(3) { animation-delay: 690ms; }

.intro-nodes > g {
  opacity: 0;
  animation: intro-node-in 600ms both ease-out;
}

.intro-nodes > g:nth-child(1) { animation-delay: 1.15s; }
.intro-nodes > g:nth-child(2) { animation-delay: 1.3s; }
.intro-nodes > g:nth-child(3) { animation-delay: 1.45s; }
.intro-nodes > g:nth-child(4) { animation-delay: 1.2s; }
.intro-nodes > g:nth-child(5) { animation-delay: 1.35s; }
.intro-nodes > g:nth-child(6) { animation-delay: 1.5s; }

.intro-nodes > g circle:first-child {
  fill: rgba(145, 239, 210, 0.04);
  stroke: rgba(145, 239, 210, 0.34);
  stroke-width: 1;
  transform-box: fill-box;
  transform-origin: center;
  animation: intro-node-ring 2.8s ease-out infinite;
}

.intro-nodes > g circle:last-child {
  fill: var(--intro-mint);
  filter: drop-shadow(0 0 7px rgba(145, 239, 210, 0.85));
}

.intro-compass {
  transform-origin: 0 0;
  animation: intro-compass-float 7s ease-in-out infinite;
}

.intro-compass circle,
.intro-compass path {
  fill: none;
  stroke: rgba(194, 226, 215, 0.25);
  stroke-width: 1;
}

.intro-compass circle:nth-child(2) { stroke-dasharray: 2 7; }
.intro-compass path:nth-of-type(1) { stroke: rgba(145, 239, 210, 0.25); }
.intro-compass .intro-needle {
  fill: rgba(145, 239, 210, 0.14);
  stroke: var(--intro-mint);
  filter: drop-shadow(0 0 10px rgba(145, 239, 210, 0.35));
  transform-box: fill-box;
  transform-origin: center;
  animation: intro-needle-settle 2.6s 200ms both cubic-bezier(0.16, 1, 0.3, 1);
}

.intro-compass circle:last-child {
  fill: var(--intro-mint);
  stroke: none;
}

.intro-copy {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(920px, calc(100vw - 40px));
  text-align: center;
  transform: translate(calc(var(--intro-x) * -0.14), calc(var(--intro-y) * -0.14));
  transition: transform 1100ms cubic-bezier(0.22, 1, 0.36, 1);
}

.intro-kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 clamp(16px, 2.4vh, 26px);
  color: rgba(230, 241, 237, 0.62);
  font-family: "SFMono-Regular", Consolas, monospace;
  font-size: clamp(8px, 0.72vw, 10px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  animation: intro-fade-up 850ms 720ms both cubic-bezier(0.22, 1, 0.36, 1);
}

.intro-kicker > span {
  width: 24px;
  height: 1px;
  background: var(--intro-mint);
}

.intro-copy h1 {
  margin: 0;
  color: var(--intro-ink);
  font-size: clamp(52px, 8.4vw, 126px);
  font-weight: 520;
  letter-spacing: -0.065em;
  line-height: 0.82;
}

.intro-title-line {
  display: block;
  overflow: hidden;
  padding: 0 0.08em 0.11em;
}

.intro-title-line > span {
  display: block;
  transform: translateY(112%) rotate(2deg);
  animation: intro-title-reveal 1.1s 530ms both cubic-bezier(0.16, 1, 0.3, 1);
}

.intro-title-line:nth-child(2) > span {
  animation-delay: 680ms;
}

.intro-title-accent {
  padding-top: 0.08em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(220, 239, 232, 0.72);
}

.intro-subtitle {
  margin: clamp(20px, 3.2vh, 34px) 0 0;
  color: var(--intro-muted);
  font-size: clamp(12px, 1.05vw, 15px);
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.65;
  animation: intro-fade-up 900ms 1.08s both cubic-bezier(0.22, 1, 0.36, 1);
}

.intro-start {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 42px;
  align-items: center;
  width: 176px;
  height: 48px;
  margin-top: clamp(24px, 4vh, 42px);
  padding: 0 3px 0 20px;
  overflow: hidden;
  border: 1px solid rgba(181, 224, 210, 0.44);
  border-radius: 999px;
  background: rgba(13, 22, 20, 0.72);
  color: var(--intro-ink);
  cursor: pointer;
  font: inherit;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.025), 0 12px 42px rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  animation: intro-fade-up 900ms 1.3s both cubic-bezier(0.22, 1, 0.36, 1);
  transition: width 350ms ease, color 250ms ease, border-color 250ms ease, background 250ms ease, transform 250ms ease;
}

.intro-start::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--intro-mint);
  transform: translateX(-102%);
  transition: transform 450ms cubic-bezier(0.65, 0, 0.35, 1);
}

.intro-start:hover,
.intro-start:focus-visible {
  border-color: var(--intro-mint);
  color: #07100d;
  outline: none;
  transform: translateY(-2px);
}

.intro-start:hover::before,
.intro-start:focus-visible::before {
  transform: translateX(0);
}

.intro-start-label {
  justify-self: start;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.intro-start-arrow {
  display: grid;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  place-items: center;
  background: var(--intro-mint);
  color: #07100d;
  font-size: 17px;
  transition: transform 350ms cubic-bezier(0.16, 1, 0.3, 1), background 250ms ease;
}

.intro-start:hover .intro-start-arrow,
.intro-start:focus-visible .intro-start-arrow {
  background: #07100d;
  color: var(--intro-mint);
  transform: rotate(45deg);
}

.intro-screen.is-leaving .intro-start {
  width: 48px;
  padding-left: 3px;
}

.intro-screen.is-leaving .intro-start-label {
  opacity: 0;
}

.intro-coordinate {
  position: absolute;
  top: 50%;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 11px;
  color: rgba(221, 236, 231, 0.35);
  font-family: "SFMono-Regular", Consolas, monospace;
  font-size: 8px;
  letter-spacing: 0.18em;
  writing-mode: vertical-rl;
  animation: intro-fade-up 900ms 1.45s both ease;
}

.intro-coordinate span { color: var(--intro-mint); }
.intro-coordinate-left { left: clamp(22px, 4vw, 72px); transform: translateY(-50%) rotate(180deg); }
.intro-coordinate-right { right: clamp(22px, 4vw, 72px); transform: translateY(-50%); }

.intro-footer {
  min-height: clamp(56px, 8vh, 78px);
  border-top: 1px solid rgba(210, 229, 222, 0.1);
  color: rgba(225, 238, 233, 0.36);
  font-family: "SFMono-Regular", Consolas, monospace;
  font-size: 8px;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  animation: intro-fade-up 900ms 350ms both cubic-bezier(0.22, 1, 0.36, 1);
}

.intro-footer > span,
.intro-footer > i {
  margin-right: 13px;
}

.intro-footer > i {
  display: inline-block;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: rgba(145, 239, 210, 0.5);
  vertical-align: middle;
}

.intro-footer strong {
  margin-left: auto;
  color: rgba(225, 238, 233, 0.52);
  font-size: inherit;
  font-weight: 500;
}

/* LDBD visual alignment --------------------------------------------------
 * Keep the OpenCompass-inspired motion, but use the product's selected
 * palette, surface hierarchy, typography weight, and control geometry.
 */
.intro-screen {
  --intro-ink: var(--theme-ink, #252c30);
  --intro-muted: color-mix(in srgb, var(--theme-muted, #5e6970) 82%, transparent);
  --intro-line: color-mix(in srgb, var(--theme-line-strong, #bcc8ce) 50%, transparent);
  --intro-mint: var(--theme-accent, #6d858f);
  --intro-blue: var(--theme-line-strong, #bcc8ce);
  color: var(--intro-ink);
  background: var(--theme-page, #f8f8f6);
}

.intro-screen::before {
  opacity: 0.045;
  mix-blend-mode: multiply;
}

.intro-screen::after {
  box-shadow: inset 0 0 140px rgba(58, 72, 78, 0.08);
}

.intro-ambient {
  background:
    radial-gradient(circle at 50% 48%, color-mix(in srgb, var(--theme-accent, #6d858f) 12%, transparent), transparent 32%),
    var(--theme-hero, #e9edf0);
}

.intro-grid {
  opacity: 0.72;
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0,
    transparent 158px,
    var(--theme-pattern, rgba(88, 108, 118, 0.075)) 159px,
    var(--theme-pattern, rgba(88, 108, 118, 0.075)) 161px,
    transparent 162px,
    transparent 320px
  );
  background-size: auto;
  mask-image: linear-gradient(to bottom, transparent, #000 20%, #000 80%, transparent);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 20%, #000 80%, transparent);
  transform: none;
  animation-name: intro-pattern-arrive;
}

.intro-glow {
  opacity: 0.1;
  filter: blur(130px);
}

.intro-glow-one { background: var(--theme-accent, #6d858f); }
.intro-glow-two { background: var(--theme-surface, #fffefa); }

.intro-header {
  border-bottom-color: var(--theme-nav-line, #cbd4d8);
  background: color-mix(in srgb, var(--theme-nav, #dce3e7) 94%, transparent);
  box-shadow: 0 1px 0 rgba(44, 54, 59, 0.035);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.intro-brand-mark::before,
.intro-brand-mark::after {
  background: var(--theme-accent, #6d858f);
}

.intro-brand-mark i {
  border-color: var(--theme-accent, #6d858f);
  background: var(--theme-nav, #dce3e7);
}

.intro-brand small,
.intro-system-status,
.intro-kicker,
.intro-subtitle,
.intro-coordinate,
.intro-footer {
  color: var(--intro-muted);
}

.intro-brand strong {
  color: var(--theme-ink, #252c30);
}

.intro-system-status span {
  background: var(--theme-accent, #6d858f);
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--theme-accent, #6d858f) 34%, transparent);
}

#introLineGradient stop:nth-child(1),
#introLineGradient stop:nth-child(2) {
  stop-color: var(--theme-accent, #6d858f);
}

#introLineGradient stop:nth-child(3) {
  stop-color: var(--theme-line-strong, #bcc8ce);
}

#introCoreGradient stop:first-child {
  stop-color: var(--theme-accent, #6d858f);
  stop-opacity: 0.16;
}

#introCoreGradient stop:last-child {
  stop-color: var(--theme-accent, #6d858f);
}

.intro-network {
  opacity: 0.88;
}

.intro-orbits {
  stroke: color-mix(in srgb, var(--theme-accent, #6d858f) 27%, transparent);
}

.intro-orbits ellipse:nth-child(3) {
  stroke: color-mix(in srgb, var(--theme-line-strong, #bcc8ce) 72%, transparent);
}

.intro-traces {
  stroke-width: 1.15;
}

.intro-nodes > g circle:first-child {
  fill: color-mix(in srgb, var(--theme-surface, #fffefa) 45%, transparent);
  stroke: color-mix(in srgb, var(--theme-accent, #6d858f) 52%, transparent);
}

.intro-nodes > g circle:last-child {
  fill: var(--theme-accent, #6d858f);
  filter: drop-shadow(0 0 5px color-mix(in srgb, var(--theme-accent, #6d858f) 42%, transparent));
}

.intro-compass circle,
.intro-compass path {
  stroke: color-mix(in srgb, var(--theme-accent, #6d858f) 42%, transparent);
}

.intro-compass path:nth-of-type(1) {
  stroke: color-mix(in srgb, var(--theme-strong, #30393e) 30%, transparent);
}

.intro-compass .intro-needle {
  fill: color-mix(in srgb, var(--theme-accent, #6d858f) 17%, transparent);
  stroke: var(--theme-accent, #6d858f);
  filter: drop-shadow(0 0 7px color-mix(in srgb, var(--theme-accent, #6d858f) 20%, transparent));
}

.intro-compass circle:last-child {
  fill: var(--theme-strong, #30393e);
}

.intro-kicker {
  margin-bottom: clamp(15px, 2.2vh, 23px);
  color: var(--theme-muted, #5e6970);
  font-weight: 600;
}

.intro-kicker > span {
  background: var(--theme-accent, #6d858f);
}

.intro-copy h1 {
  color: var(--theme-ink, #252c30);
  font-size: clamp(50px, 7.6vw, 112px);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 0.88;
}

.intro-title-accent {
  color: var(--theme-ink, #252c30);
  -webkit-text-stroke: 0;
}

.intro-title-accent > span {
  color: color-mix(in srgb, var(--theme-ink, #252c30) 86%, var(--theme-accent, #6d858f));
}

.intro-subtitle {
  color: var(--theme-muted, #5e6970);
  font-size: clamp(12px, 1vw, 14px);
  letter-spacing: 0.02em;
}

.intro-start {
  grid-template-columns: 1fr 38px;
  width: 166px;
  height: 46px;
  padding: 0 3px 0 18px;
  border-color: var(--theme-strong, #30393e);
  border-radius: 8px;
  background: var(--theme-strong, #30393e);
  color: #fff;
  box-shadow: 0 8px 22px color-mix(in srgb, var(--theme-strong, #30393e) 15%, transparent);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.intro-start::before {
  background: var(--theme-strong-hover, #222a2e);
}

.intro-start:hover,
.intro-start:focus-visible {
  border-color: var(--theme-strong-hover, #222a2e);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 10px 26px color-mix(in srgb, var(--theme-strong, #30393e) 22%, transparent);
}

.intro-start-arrow {
  width: 36px;
  height: 36px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
}

.intro-start:hover .intro-start-arrow,
.intro-start:focus-visible .intro-start-arrow {
  background: #fff;
  color: var(--theme-strong, #30393e);
}

.intro-screen.is-leaving .intro-start {
  width: 46px;
}

.intro-coordinate span {
  color: var(--theme-accent, #6d858f);
}

.intro-footer {
  border-top-color: var(--theme-line, #d9d4cb);
  background: color-mix(in srgb, var(--theme-page, #f8f8f6) 92%, transparent);
}

.intro-footer > i {
  background: var(--theme-accent, #6d858f);
}

.intro-footer strong {
  color: color-mix(in srgb, var(--theme-ink, #252c30) 62%, transparent);
}

@keyframes intro-pattern-arrive {
  from { opacity: 0; transform: scale(1.06); }
  to { opacity: 0.72; transform: scale(1); }
}

@keyframes intro-title-reveal {
  from { transform: translateY(112%) rotate(2deg); }
  to { transform: translateY(0) rotate(0); }
}

@keyframes intro-fade-up {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes intro-fade-down {
  from { opacity: 0; transform: translateY(-16px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes intro-grid-arrive {
  from { opacity: 0; transform: perspective(700px) rotateX(65deg) translateY(60%) scale(1.7); }
}

@keyframes intro-network-arrive {
  from { opacity: 0; transform: translate(-50%, -48%) scale(0.82); }
  to { opacity: 1; }
}

@keyframes intro-trace-draw {
  0% { stroke-dashoffset: 860; opacity: 0; }
  20% { opacity: 1; }
  100% { stroke-dashoffset: 0; opacity: 1; }
}

@keyframes intro-node-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes intro-node-ring {
  0%, 35% { transform: scale(0.6); opacity: 0.9; }
  100% { transform: scale(1.7); opacity: 0; }
}

@keyframes intro-orbit-turn {
  to { transform: rotate(360deg); }
}

@keyframes intro-needle-settle {
  0% { transform: rotate(-150deg); }
  68% { transform: rotate(12deg); }
  100% { transform: rotate(0); }
}

@keyframes intro-compass-float {
  0%, 100% { transform: translate(600px, 360px) rotate(-2deg); }
  50% { transform: translate(600px, 354px) rotate(2deg); }
}

@keyframes intro-halo {
  0%, 100% { opacity: 0.55; transform: scale(0.86); }
  50% { opacity: 1; transform: scale(1.12); }
}

@keyframes intro-glow-drift {
  to { transform: translate3d(7vw, 4vw, 0) scale(1.16); opacity: 0.14; }
}

@keyframes intro-status-pulse {
  0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--theme-accent, #6d858f) 34%, transparent); }
  65%, 100% { box-shadow: 0 0 0 8px transparent; }
}

@media (max-width: 720px) {
  .intro-header { height: 76px; }
  .intro-system-status { font-size: 0; gap: 0; }
  .intro-system-status span { width: 7px; height: 7px; }
  .intro-stage { padding-bottom: 10px; }
  .intro-network { width: 142vw; height: 70vh; opacity: 0.72; }
  .intro-copy h1 { font-size: clamp(50px, 15vw, 80px); line-height: 0.88; }
  .intro-coordinate { display: none; }
  .intro-footer > span:nth-of-type(n+2),
  .intro-footer > i { display: none; }
  .intro-subtitle { font-size: 12px; }
}

@media (max-height: 650px) and (min-width: 721px) {
  .intro-header { height: 66px; }
  .intro-footer { min-height: 46px; }
  .intro-copy h1 { font-size: clamp(50px, 11vh, 76px); }
  .intro-kicker { margin-bottom: 12px; }
  .intro-subtitle { margin-top: 15px; line-height: 1.4; }
  .intro-start { margin-top: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .intro-screen *,
  .intro-screen *::before,
  .intro-screen *::after {
    animation-duration: 1ms !important;
    animation-delay: 0ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }

  .intro-screen,
  .intro-network,
  .intro-copy {
    transition-duration: 250ms !important;
  }
}
