/* a11y.css — primitives the template had none of. */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--base-500);
  outline-offset: 3px;
}

.skip-link {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100002;
  padding: 0.75em 1.25em;
  background: var(--base-500);
  color: var(--base-400);
  font-family: "Geist Mono", monospace;
  font-size: 0.8rem;
  text-transform: uppercase;
  transform: translateY(-120%);
  transition: transform 0.2s;
}

.skip-link:focus { transform: translateY(0); }

.vh {
  position: absolute;
  width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap; border: 0;
}

/* The mobile menu toggle was a <p> with a click handler; it is a button now. */
.nav-menu-toggle {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  text-transform: inherit;
}

/* The two carousel controls were <ion-icon> from unpkg; inline SVG now. */
.traces-controller-nav-btn {
  background: none;
  border: 0;
  color: inherit;
  cursor: pointer;
}

.ctrl-icon { width: 1em; height: 1em; display: block; }

/* Selection was disabled document-wide; only the animated chrome needs it off. */
.preloader-overlay,
.transition-grid,
.interactive-grid,
.traces-slider { user-select: none; }

/* Nothing may stay invisible when the animations are fast-forwarded away.
   Each of these starts hidden in a stylesheet, not in script. */
.reduced-motion .cta .cta-row .cta-card { opacity: 1 !important; }
.reduced-motion .cta .cta-content .cta-logo { transform: none !important; }
.reduced-motion .faq-container .faq-item { opacity: 1 !important; transform: none !important; }
.reduced-motion .hero-timer { opacity: 1 !important; }

/* The nav items are a real list now. */
nav .nav-items { list-style: none; }

/* The trace detail toggle was a <div> with a click handler. */
.controller-inner {
  border: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

/* Accordion: the heading wraps a real button, so the heading itself has to
   step out of the layout the stylesheet built around .faq-question. */
.faq-heading { display: contents; }

.faq-question {
  width: 100%;
  background: none;
  border: 0;
  color: inherit;
  font: inherit;
  text-align: left;
}

/* The question text moved out of the <h3> into a <span>; the display face
   came from the tag, so it has to be named. */
.faq-question .faq-q {
  font-family: "SCHABO", sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  line-height: 0.85;
}
