/* Kactus · shared interface palette. Invitation artwork keeps its own colours. */
:root {
  --kk-butter: #ffe497;
  --kk-gold: #ffd370;
  --kk-forest: #476d51;
  --kk-sage: #789f75;
  --kk-ink: #233b2c;
  --kk-muted: #59695d;
  --kk-paper: #faf9f5;
  --kk-surface: #ffffff;
  --kk-mist: #edf3eb;
  --kk-line: #d7e0d5;
  --kk-radius: 20px;
  --kk-shadow: 0 8px 28px -18px #233b2c40;
}
[hidden] { display: none !important; }
:where(button, input, select, textarea, a, summary) { -webkit-tap-highlight-color: transparent; }
:where(button, a, summary) { touch-action: manipulation; }
:where(button, input, select, textarea, a, summary):focus-visible {
  outline: 3px solid var(--kk-forest); outline-offset: 4px;
}
.kk-skip {
  position: fixed; top: 8px; left: 16px; z-index: 10000;
  transform: translateY(-160%); padding: 14px 22px; border-radius: 12px;
  color: white; background: var(--kk-ink); font: 600 16px system-ui;
}
.kk-skip:focus { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  button, input, select, textarea { border: 1px solid ButtonText !important; }
  [aria-current], [aria-pressed=true], [aria-selected=true] { outline: 2px solid Highlight !important; }
}
