/* Shared by the static fallback and the animated shadow tree. */
luna-hero,
:host {
  display: block;
  min-width: 0;
}
.lr-hero-copy,
.lr-hero-copy * {
  box-sizing: border-box;
}
.lr-hero-copy {
  display: grid;
  gap: 24px;
}
.lr-hero-stack {
  display: grid;
  min-width: 0;
}
.lr-hero-stack > * {
  grid-area: 1 / 1;
  align-self: start;
}
.lr-hero-ghost {
  visibility: hidden;
  pointer-events: none;
}
.lr-hero-headline {
  margin: 0;
  font-family: var(--font-sans), system-ui, sans-serif;
  font-size: var(--size-display, 56px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -1.6px;
  color: var(--color-ink-1);
  white-space: pre-line;
}
.lr-hero-body {
  margin: 0;
  font-family: var(--font-sans), system-ui, sans-serif;
  font-size: var(--size-section, 18px);
  line-height: 1.65;
  color: var(--color-ink-4);
}
.lr-hero-cursor {
  color: var(--color-accent);
  animation: lr-hero-blink 1s steps(1) infinite;
}
.lr-hero-controls {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 8px;
  margin-top: -16px;
}
.lr-hero-controls button {
  min-width: 44px;
  min-height: 44px;
  padding: 8px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  font: inherit;
  font-size: 14px;
  color: var(--color-ink-4);
  cursor: pointer;
}
.lr-hero-pause:hover {
  color: var(--color-accent);
}
.lr-hero-controls button:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}
.lr-hero-dots {
  display: flex;
  grid-column: 2;
}
.lr-hero-pause {
  justify-self: end;
}
.lr-hero-controls .lr-hero-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  color: var(--color-ink-1);
  transition: color 180ms ease-in-out;
}
.lr-hero-dot::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  transition: transform 180ms ease-in-out;
}
.lr-hero-controls .lr-hero-dot[aria-pressed='true'] {
  color: var(--color-accent);
}
.lr-hero-dot[aria-pressed='true']::before {
  transform: scale(1.3);
}
.lr-hero-copy [hidden] {
  display: none !important;
}
.lr-hero-privacy {
  align-self: flex-start;
  font-size: var(--size-small);
  line-height: 1.65;
  color: var(--color-ink-3);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.lr-hero-privacy:hover {
  color: var(--color-accent);
}
.lr-hero-privacy:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 4px;
}
#sec-privacy {
  scroll-margin-top: 88px;
}
@keyframes lr-hero-blink {
  50% {
    opacity: 0;
  }
}
@media (max-width: 760px) {
  .lr-hero-headline {
    font-size: var(--size-title, 28px);
    letter-spacing: -0.5px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .lr-hero-cursor {
    animation: none;
  }
  .lr-hero-controls .lr-hero-dot,
  .lr-hero-dot::before {
    transition: none;
  }
}
