*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body {
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--f-serif);
  line-height: var(--lh-normal);
  min-height: 100vh;
}
img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--c-accent); }
a:visited { color: var(--c-visited); }
:focus-visible { outline: 2px solid var(--c-focus); outline-offset: 3px; }
button, [role="button"] { min-height: var(--touch-min); cursor: pointer; }
* { border-radius: var(--radius); }
.btn--ai__dot { border-radius: 50% !important; }
.skip-link {
  position: absolute;
  top: -100px;
  left: var(--sp-4);
  background: var(--c-accent);
  color: #fff;
  font-family: var(--f-mono);
  font-size: var(--t-xs);
  padding: var(--sp-2) var(--sp-4);
  z-index: 999;
  text-decoration: none;
}
.skip-link:focus { top: var(--sp-2); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
