.lm-cosmos-intro {
  --lm-indigo-950: #030315;
  --lm-indigo-900: #08082a;
  --lm-indigo-800: #111044;
  --lm-gold: #f6ca68;
  --lm-gold-bright: #fff1b5;
  --lm-rose: #ed6a9e;
  --lm-rose-bright: #ffb7ce;
  --lm-ivory: #fff9ed;
  position: relative;
  color: var(--lm-ivory);
  font-family: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;
  background: var(--lm-indigo-950);
  overflow: hidden;
}

.lm-cosmos-intro,
.lm-cosmos-intro * {
  box-sizing: border-box;
}

body.lm-intro-pending #nav,
body.lm-intro-active #nav {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-100%);
}

#nav {
  transition: background 0.4s, opacity 0.55s, visibility 0.55s, transform 0.55s;
}

.lm-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.lm-progress {
  position: fixed;
  inset: 0 0 auto;
  z-index: 20;
  height: 2px;
  background: rgba(255, 255, 255, 0.08);
}

.lm-progress span {
  display: block;
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, var(--lm-gold), var(--lm-rose));
  box-shadow: 0 0 16px rgba(246, 202, 104, 0.8);
}

.lm-motion-toggle {
  position: fixed;
  right: clamp(12px, 2vw, 28px);
  bottom: clamp(12px, 2vw, 28px);
  z-index: 30;
  display: inline-flex;
  align-items: center;
  gap: 0.55em;
  padding: 0.7em 1em;
  border: 1px solid rgba(255, 226, 158, 0.42);
  border-radius: 999px;
  color: rgba(255, 249, 237, 0.88);
  background: rgba(7, 7, 31, 0.68);
  box-shadow: 0 0 22px rgba(246, 202, 104, 0.14);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  font: 500 0.72rem/1 ui-sans-serif, system-ui, sans-serif;
  letter-spacing: 0.08em;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}

body.lm-intro-active .lm-motion-toggle {
  opacity: 1;
  visibility: visible;
}

.lm-motion-toggle:hover,
.lm-motion-toggle:focus-visible {
  border-color: rgba(255, 239, 188, 0.9);
  background: rgba(18, 17, 57, 0.86);
  outline: none;
}

.lm-motion-toggle__icon {
  color: var(--lm-gold-bright);
  font-size: 0.86em;
}

.lm-cosmos-intro.lm-motion-paused *,
.lm-cosmos-intro.lm-motion-paused *::before,
.lm-cosmos-intro.lm-motion-paused *::after {
  animation-play-state: paused !important;
}

.lm-hero {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 100svh;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 67% 32%, rgba(80, 45, 126, 0.28), transparent 31%),
    radial-gradient(circle at 30% 62%, rgba(31, 48, 111, 0.28), transparent 36%),
    linear-gradient(145deg, #030315 0%, #090828 48%, #030312 100%);
}

#lm-cosmos {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: -4;
}

.lm-nebula {
  position: absolute;
  z-index: -3;
  width: 58vmax;
  height: 16vmax;
  border-radius: 50%;
  filter: blur(70px);
  opacity: 0.17;
  mix-blend-mode: screen;
  will-change: transform;
}

.lm-nebula--gold {
  left: -16vmax;
  bottom: 4vh;
  background: linear-gradient(90deg, transparent, #dcae4c, #fff1b5, transparent);
  transform: rotate(-14deg);
  animation: lm-drift-gold 23s ease-in-out infinite alternate;
}

.lm-nebula--rose {
  right: -24vmax;
  top: 22vh;
  background: linear-gradient(90deg, transparent, #bc3f80, #ff96bd, transparent);
  transform: rotate(-28deg);
  animation: lm-drift-rose 31s ease-in-out infinite alternate;
}

.lm-grain {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: 0.09;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,.5) 0 0.4px, transparent 0.7px),
    radial-gradient(circle at 70% 65%, rgba(255,255,255,.35) 0 0.35px, transparent 0.65px);
  background-size: 5px 5px, 7px 7px;
  mix-blend-mode: soft-light;
}

.lm-hero__copy {
  position: relative;
  z-index: 4;
  width: min(88vw, 1020px);
  text-align: center;
  transform: translate3d(var(--copy-x, 0), var(--copy-y, 0), 0);
  transition: transform 0.2s ease-out;
}

.lm-eyebrow {
  margin: 0 0 clamp(22px, 4vh, 46px);
  color: rgba(255, 244, 211, 0.62);
  font-family: ui-sans-serif, system-ui, sans-serif;
  font-size: clamp(0.58rem, 0.75vw, 0.72rem);
  letter-spacing: 0.48em;
  opacity: 0;
  animation: lm-reveal 2.4s 5.2s cubic-bezier(0.2, 0.7, 0, 1) forwards;
}

.lm-wordmark-stage {
  position: relative;
  width: min(78vw, 900px);
  margin: 0 auto;
  transform: translateX(-4%);
}

.lm-wordmark {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  filter: blur(32px) brightness(0.34) drop-shadow(0 0 64px rgba(255, 203, 99, 0.54));
  opacity: 0;
  transform: translateY(18px) scale(0.58);
  animation: lm-logo-emerge 9.8s 1.7s cubic-bezier(0.16, 0.72, 0.12, 1) forwards;
}

.lm-wordmark-shine {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(
    102deg,
    transparent 0 45.5%,
    rgba(255, 193, 65, 0.16) 47%,
    rgba(255, 234, 166, 0.68) 49%,
    rgba(255, 255, 247, 1) 50%,
    rgba(255, 221, 119, 0.48) 51.5%,
    transparent 54% 100%
  );
  background-size: 320% 100%;
  background-position: 100% 50%;
  background-repeat: no-repeat;
  filter: brightness(1.08) contrast(1.18) drop-shadow(0 0 7px rgba(255, 241, 184, 0.92));
  mix-blend-mode: screen;
  -webkit-mask: url("./assets/luminous-muse-wordmark.png") center / contain no-repeat;
  mask: url("./assets/luminous-muse-wordmark.png") center / contain no-repeat;
  animation: lm-wordmark-light-run 21s 7.8s ease-in-out infinite;
}

.lm-wordmark-glint {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(
    ellipse at center,
    rgba(255, 255, 255, 1) 0 1%,
    rgba(255, 242, 185, 0.92) 1.8%,
    rgba(255, 208, 88, 0.38) 3.8%,
    transparent 8%
  );
  background-size: 18% 100%;
  background-position: 0% 50%;
  background-repeat: no-repeat;
  filter: drop-shadow(0 0 5px rgba(255, 255, 245, 0.95)) drop-shadow(0 0 12px rgba(255, 199, 73, 0.75));
  mix-blend-mode: screen;
  -webkit-mask: url("./assets/luminous-muse-wordmark.png") center / contain no-repeat;
  mask: url("./assets/luminous-muse-wordmark.png") center / contain no-repeat;
  animation: lm-wordmark-glint-run 21s 7.8s ease-in-out infinite;
}

.lm-wordmark-jp,
.lm-wordmark-subtitle {
  position: relative;
  left: max(-22px, -1.95vw);
  color: rgba(255, 226, 158, 0.76);
  font-family: ui-sans-serif, system-ui, sans-serif;
  font-weight: 300;
  text-shadow: 0 0 18px rgba(246, 202, 104, 0.42);
  opacity: 0;
  filter: blur(9px);
  transform: translateY(8px) scale(0.82);
}

.lm-wordmark-jp {
  margin: clamp(9px, 1.5vh, 16px) 0 0;
  font-size: clamp(0.62rem, 0.85vw, 0.8rem);
  letter-spacing: 0.24em;
  text-indent: 0.24em;
  animation: lm-subtitle-emerge 3.8s 8.25s ease-out forwards;
}

.lm-wordmark-subtitle {
  margin: 7px 0 0;
  font-size: clamp(0.54rem, 0.72vw, 0.68rem);
  letter-spacing: 0.58em;
  text-indent: 0.58em;
  animation: lm-subtitle-emerge 3.8s 8.5s ease-out forwards;
}

.lm-hero__message {
  position: relative;
  left: max(-10px, -0.9vw);
  margin: clamp(22px, 4vh, 44px) 0 0;
  color: rgba(255, 249, 237, 0.78);
  font-size: clamp(0.88rem, 1.2vw, 1.08rem);
  line-height: 2;
  letter-spacing: 0.15em;
  opacity: 0;
  animation: lm-reveal 2.4s 10.1s cubic-bezier(0.2, 0.7, 0, 1) forwards;
}

.lm-hero__button {
  position: relative;
  left: max(-10px, -0.9vw);
  display: inline-flex;
  align-items: center;
  gap: 20px;
  min-width: 172px;
  margin-top: clamp(26px, 5vh, 52px);
  padding: 13px 6px 13px 22px;
  color: rgba(255, 249, 237, 0.84);
  font-family: ui-sans-serif, system-ui, sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.24em;
  text-decoration: none;
  border-bottom: 1px solid rgba(246, 202, 104, 0.4);
  opacity: 0;
  animation: lm-reveal 2.4s 10.9s cubic-bezier(0.2, 0.7, 0, 1) forwards;
}

.lm-hero__button i {
  position: relative;
  width: 42px;
  height: 1px;
  background: linear-gradient(90deg, var(--lm-gold), var(--lm-rose));
  transition: width 0.35s ease;
}

.lm-hero__button i::after {
  content: "";
  position: absolute;
  right: 0;
  top: -3px;
  width: 7px;
  height: 7px;
  border-top: 1px solid var(--lm-rose-bright);
  border-right: 1px solid var(--lm-rose-bright);
  transform: rotate(45deg);
}

.lm-hero__button:hover i,
.lm-hero__button:focus-visible i {
  width: 64px;
}

.lm-hero__button:focus-visible {
  outline: 1px solid var(--lm-gold);
  outline-offset: 8px;
}

.lm-scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 28px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.4);
  font-family: ui-sans-serif, system-ui, sans-serif;
  font-size: 0.52rem;
  letter-spacing: 0.32em;
}

.lm-scroll-cue i {
  width: 1px;
  height: 34px;
  background: linear-gradient(var(--lm-gold), transparent);
  animation: lm-scroll-pulse 1.8s ease-in-out infinite;
}

.lm-vision {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 100svh;
  padding: 12vh 8vw;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 52%, rgba(245, 202, 105, 0.08), transparent 18%),
    radial-gradient(circle at 16% 70%, rgba(237, 106, 158, 0.1), transparent 28%),
    linear-gradient(145deg, #0b0a31 0%, #080721 55%, #040416 100%);
}

.lm-vision::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 45%, rgba(255, 215, 132, 0.05), transparent 66%);
  transform: translateX(-60%);
  animation: lm-sweep 15s ease-in-out infinite;
}

.lm-vision::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    conic-gradient(from 206deg at 50% 52%, transparent 0 39%, rgba(247, 210, 124, 0.06) 43%, transparent 47% 100%),
    radial-gradient(ellipse at 50% 52%, transparent 0 25%, rgba(239, 119, 164, 0.04) 42%, transparent 62%);
  mix-blend-mode: screen;
  animation: lm-dimensional-breath 9s ease-in-out infinite alternate;
}

#lm-vision-cosmos {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.lm-vision__content {
  position: relative;
  z-index: 2;
  width: min(720px, 86vw);
  text-align: center;
  opacity: 0;
  filter: blur(14px);
  transform: translateY(34px) scale(0.96);
  transition:
    opacity 2.6s ease,
    filter 3.2s ease,
    transform 3.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.lm-vision.is-visible .lm-vision__content {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0) scale(1);
}

.lm-section-label {
  margin: 0 0 32px;
  color: var(--lm-rose-bright);
  font-family: ui-sans-serif, system-ui, sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.44em;
}

.lm-vision h2 {
  margin: 0;
  font-size: clamp(2rem, 5vw, 4.6rem);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.06em;
  background: linear-gradient(135deg, #fffaf0 10%, #e9c679 48%, #f3a6c1 88%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.lm-vision__content > p:last-child {
  max-width: 620px;
  margin: 38px auto 0;
  color: rgba(255, 249, 237, 0.64);
  font-size: clamp(0.86rem, 1.2vw, 1rem);
  line-height: 2.2;
  letter-spacing: 0.08em;
}

.lm-vision__orbit {
  position: absolute;
  inset: 50% auto auto 50%;
  width: min(82vw, 900px);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(246, 202, 104, 0.28);
  border-radius: 50%;
  animation: lm-orbit-drift 26s linear infinite;
}

.lm-vision__orbit::before,
.lm-vision__orbit::after {
  content: "";
  position: absolute;
  inset: 12%;
  border: 1px solid rgba(237, 106, 158, 0.21);
  border-radius: 50%;
}

.lm-vision__orbit::after {
  inset: 24%;
  border-color: rgba(246, 202, 104, 0.19);
}

.lm-vision__orbit span {
  position: absolute;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--lm-gold-bright);
  box-shadow:
    0 0 5px 1px rgba(255, 251, 224, 0.96),
    0 0 18px 5px rgba(246, 202, 104, 0.72),
    0 0 42px 10px rgba(246, 202, 104, 0.18);
  animation: lm-orbit-light-pulse 4.8s ease-in-out infinite;
}

.lm-vision__orbit span:nth-child(1) { left: 8%; top: 54%; }
.lm-vision__orbit span:nth-child(2) { right: 17%; top: 16%; background: var(--lm-rose-bright); animation-delay: -1.1s; }
.lm-vision__orbit span:nth-child(3) { right: 2%; bottom: 31%; }
.lm-vision__orbit span:nth-child(4) { left: 23%; top: 13%; background: var(--lm-rose-bright); animation-delay: -2.4s; }
.lm-vision__orbit span:nth-child(5) { left: 30%; bottom: 7%; animation-delay: -3.2s; }
.lm-vision__orbit span:nth-child(6) { right: 34%; top: 2%; animation-delay: -4s; }

.lm-vision__orbit span:nth-child(2),
.lm-vision__orbit span:nth-child(4) {
  box-shadow:
    0 0 5px 1px rgba(255, 235, 244, 0.96),
    0 0 18px 5px rgba(237, 106, 158, 0.66),
    0 0 42px 10px rgba(237, 106, 158, 0.16);
}

.lm-vision__gateway {
  position: absolute;
  inset: 50% auto auto 50%;
  width: min(112vw, 1240px);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  perspective: 1000px;
  opacity: 0.84;
}

.lm-vision__gateway i {
  position: absolute;
  border: 1px solid rgba(255, 226, 157, 0.29);
  border-radius: 50%;
  box-shadow:
    inset 0 0 26px rgba(246, 202, 104, 0.04),
    0 0 22px rgba(236, 106, 158, 0.035);
  animation: lm-gateway-turn 34s linear infinite;
}

.lm-vision__gateway i:nth-child(1) { inset: 3%; transform: rotateX(67deg) rotateZ(0deg); }
.lm-vision__gateway i:nth-child(2) { inset: 11%; transform: rotateX(63deg) rotateZ(32deg); animation-direction: reverse; animation-duration: 42s; border-color: rgba(246, 125, 171, 0.14); }
.lm-vision__gateway i:nth-child(3) { inset: 20%; transform: rotateX(70deg) rotateZ(64deg); animation-duration: 29s; }
.lm-vision__gateway i:nth-child(4) { inset: 29%; transform: rotateX(60deg) rotateZ(96deg); animation-direction: reverse; animation-duration: 38s; border-color: rgba(246, 125, 171, 0.12); }
.lm-vision__gateway i:nth-child(5) { inset: 37%; transform: rotateX(68deg) rotateZ(128deg); animation-duration: 24s; }
.lm-vision__gateway i:nth-child(6) { inset: 44%; transform: rotateX(58deg) rotateZ(160deg); animation-direction: reverse; animation-duration: 31s; }

.lm-vision__constellation {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.lm-vision__constellation b {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--lm-gold-bright);
  box-shadow: 0 0 10px 2px rgba(246, 202, 104, 0.7), 0 0 34px 7px rgba(246, 202, 104, 0.16);
  animation: lm-far-light 7s ease-in-out infinite;
}

.lm-vision__constellation b:nth-child(1) { left: 12%; top: 19%; animation-delay: -1s; }
.lm-vision__constellation b:nth-child(2) { left: 24%; top: 72%; animation-delay: -4s; background: var(--lm-rose-bright); }
.lm-vision__constellation b:nth-child(3) { left: 37%; top: 12%; animation-delay: -2s; }
.lm-vision__constellation b:nth-child(4) { right: 16%; top: 26%; animation-delay: -5s; background: var(--lm-rose-bright); }
.lm-vision__constellation b:nth-child(5) { right: 8%; top: 66%; animation-delay: -3s; }
.lm-vision__constellation b:nth-child(6) { left: 7%; top: 52%; animation-delay: -6s; }
.lm-vision__constellation b:nth-child(7) { right: 31%; bottom: 12%; animation-delay: -2.5s; background: var(--lm-rose-bright); }
.lm-vision__constellation b:nth-child(8) { right: 43%; top: 8%; animation-delay: -4.5s; }

.lm-bird-flight {
  position: absolute;
  z-index: 3;
  left: 0;
  top: 0;
  width: clamp(92px, 12vw, 184px);
  opacity: 0;
  transform: translate3d(-220px, 70vh, 0) rotate(-8deg) scale(0.55);
  will-change: transform, opacity;
  contain: layout paint;
}

.lm-bird-art {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  filter: drop-shadow(0 0 12px rgba(246, 202, 104, 0.46));
}

.lm-bird-art img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
}

.lm-bird-body {
  clip-path: polygon(35% 47%, 57% 48%, 72% 42%, 96% 38%, 100% 58%, 75% 72%, 54% 78%, 39% 91%, 7% 99%, 17% 81%, 34% 67%);
}

.lm-bird-wing {
  clip-path: polygon(1% 0, 72% 0, 76% 58%, 64% 70%, 44% 79%, 22% 67%, 7% 42%);
  transform-origin: 65% 54%;
  will-change: transform;
}

.lm-bird-wing--back {
  opacity: 0.5;
  animation: lm-wing-flap-back 3.2s ease-in-out infinite;
}

.lm-bird-wing--front {
  animation: lm-wing-flap 3.2s ease-in-out infinite;
}

.lm-bird-trail {
  position: absolute;
  z-index: -1;
  right: 68%;
  top: 58%;
  width: clamp(120px, 18vw, 280px);
  height: 3px;
  border-radius: 50%;
  background: linear-gradient(90deg, transparent, rgba(241, 153, 190, 0.16), rgba(255, 224, 145, 0.82));
  filter: blur(2px);
  box-shadow: 0 0 14px rgba(246, 202, 104, 0.35);
  transform-origin: right center;
  animation: lm-trail-breathe 2.8s ease-in-out infinite;
}

@keyframes lm-logo-emerge {
  0% {
    opacity: 0;
    transform: translateY(18px) scale(0.58);
    filter: blur(34px) brightness(0.26) drop-shadow(0 0 72px rgba(255, 203, 99, 0.56));
  }
  18% {
    opacity: 0.06;
    transform: translateY(15px) scale(0.63);
    filter: blur(30px) brightness(0.4) drop-shadow(0 0 78px rgba(255, 203, 99, 0.6));
  }
  42% {
    opacity: 0.24;
    transform: translateY(10px) scale(0.74);
    filter: blur(22px) brightness(0.62) drop-shadow(0 0 66px rgba(255, 203, 99, 0.5));
  }
  68% {
    opacity: 0.68;
    transform: translateY(4px) scale(0.91);
    filter: blur(9px) brightness(0.88) drop-shadow(0 0 45px rgba(255, 203, 99, 0.38));
  }
  88% {
    opacity: 0.94;
    transform: translateY(0) scale(0.99);
    filter: blur(2px) brightness(1.05) drop-shadow(0 0 28px rgba(255, 203, 99, 0.26));
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0) brightness(1) drop-shadow(0 0 18px rgba(255, 203, 99, 0.18));
  }
}

@keyframes lm-reveal {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes lm-subtitle-emerge {
  0% {
    opacity: 0;
    filter: blur(10px);
    transform: translateY(8px) scale(0.82);
  }
  58% {
    opacity: 0.38;
    filter: blur(4px);
    transform: translateY(3px) scale(0.94);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0) scale(1);
  }
}

@keyframes lm-wordmark-light-run {
  0%, 12% {
    opacity: 0;
    background-position: 100% 50%;
  }
  18% { opacity: 0.95; }
  78% {
    opacity: 1;
    background-position: 0% 50%;
  }
  86%, 100% {
    opacity: 0;
    background-position: 0% 50%;
  }
}

@keyframes lm-wordmark-glint-run {
  0%, 12% {
    opacity: 0;
    background-position: 0% 50%;
  }
  18% { opacity: 0.82; }
  78% {
    opacity: 1;
    background-position: 100% 50%;
  }
  86%, 100% {
    opacity: 0;
    background-position: 100% 50%;
  }
}

@keyframes lm-scroll-pulse {
  0%, 100% { opacity: 0.25; transform: scaleY(0.65); transform-origin: top; }
  50% { opacity: 1; transform: scaleY(1); transform-origin: top; }
}

@keyframes lm-drift-gold {
  to { transform: translate(18vw, -9vh) rotate(-7deg) scale(1.12); }
}

@keyframes lm-drift-rose {
  to { transform: translate(-14vw, 10vh) rotate(-18deg) scale(0.92); }
}

@keyframes lm-sweep {
  0%, 22% { transform: translateX(-70%); }
  58%, 100% { transform: translateX(70%); }
}

@keyframes lm-dimensional-breath {
  from { opacity: 0.52; transform: scale(0.96) rotate(-1deg); }
  to { opacity: 1; transform: scale(1.05) rotate(1.5deg); }
}

@keyframes lm-orbit-drift {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes lm-orbit-light-pulse {
  0%, 100% { opacity: 0.62; transform: scale(0.78); }
  50% { opacity: 1; transform: scale(1.28); }
}

@keyframes lm-gateway-turn {
  from { rotate: 0deg; }
  to { rotate: 360deg; }
}

@keyframes lm-far-light {
  0%, 100% { opacity: 0.25; transform: scale(0.7); }
  50% { opacity: 1; transform: scale(1.65); }
}

@keyframes lm-wing-flap {
  0%, 100% { transform: rotate(8deg) scaleY(1.06); }
  52% { transform: rotate(-34deg) scaleY(0.82); }
}

@keyframes lm-wing-flap-back {
  0%, 100% { transform: rotate(-28deg) scaleY(0.8); }
  52% { transform: rotate(5deg) scaleY(1.02); }
}

@keyframes lm-trail-breathe {
  0%, 100% { opacity: 0.45; transform: scaleX(0.78); }
  50% { opacity: 0.92; transform: scaleX(1.08); }
}

@media (max-width: 720px) {
  .lm-hero__copy { width: 94vw; }
  .lm-wordmark-stage { width: 94vw; }
  .lm-eyebrow { letter-spacing: 0.3em; }
  .lm-hero__message {
    left: -1vw;
    letter-spacing: 0.09em;
  }
  .lm-hero__button { left: -1vw; }
  .lm-scroll-cue span { display: none; }
  .lm-vision { padding-inline: 6vw; }
  .lm-bird-flight { width: 98px; }
  .lm-wordmark-jp {
    left: -2.4vw;
    margin-top: 6px;
    font-size: 0.57rem;
    letter-spacing: 0.2em;
    text-indent: 0.2em;
  }
  .lm-wordmark-subtitle {
    left: -2.4vw;
    margin-top: 5px;
    font-size: 0.48rem;
    letter-spacing: 0.46em;
    text-indent: 0.46em;
  }
  .lm-vision__orbit {
    width: min(110vw, 620px);
    border-color: rgba(246, 202, 104, 0.36);
  }
  .lm-vision__orbit span {
    width: 8px;
    height: 8px;
  }
  .lm-vision__orbit::before { border-color: rgba(237, 106, 158, 0.29); }
  .lm-vision__orbit::after { border-color: rgba(246, 202, 104, 0.25); }
  .lm-vision__gateway { width: 148vw; opacity: 0.94; }
}

@media (prefers-reduced-motion: reduce) {
  .lm-cosmos-intro,
  .lm-cosmos-intro *,
  .lm-cosmos-intro *::before,
  .lm-cosmos-intro *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* 2026-08-09 Safari安全化：CSSのマスクと合成は使わず、
   文字の形へ切り抜くcanvas版の光だけを表示する。 */
.lm-wordmark-shine,
.lm-wordmark-glint {
  display: none !important;
}

.lm-wordmark-shine-canvas {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
  display: block;
  pointer-events: none;
}

.lm-wordmark {
  filter: none !important;
  -webkit-filter: none !important;
}
