*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; -webkit-tap-highlight-color: transparent; }
html, body { height: 100%; }
img, svg, canvas, video { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; background: none; border: 0; }
button { cursor: pointer; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
[hidden] { display: none !important; }

.skip-link {
  position: fixed;
  top: -100px;
  left: 8px;
  z-index: 9999;
  padding: 10px 18px;
  background: var(--accent);
  color: #1a0a14;
  font-weight: 800;
  border-radius: 10px;
  box-shadow: 0 4px 14px rgba(255,111,168,.4);
  transition: top .2s ease;
}
.skip-link:focus { top: 8px; }

.noscript-overlay {
  position: fixed; inset: 0;
  background: #0a0a0c;
  color: #f2eef0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 32px;
  z-index: 99999;
  font-family: 'M PLUS Rounded 1c', system-ui, sans-serif;
}
.noscript-overlay h2 {
  font-size: 24px;
  color: #ff6fa8;
  margin-bottom: 12px;
  font-weight: 900;
}
.noscript-overlay p { line-height: 1.7; font-weight: 600; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
