
  :root {
    --navy: #1B143A;
    --offwhite: #F0F5FA;
    --purple: #824CA2;
    --mint: #21EDD4;
    --pulse: #00BDE9;
    --halo: #F78FCD;
    --flare: #FFCB00;
    --bg: var(--navy);
  }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --bg: var(--navy); } }
  :root[data-theme="dark"] { --bg: var(--navy); }
  body { background: var(--bg); color: rgba(243,246,250,.72); font-family: 'Inter', system-ui, sans-serif; }
  .font-display { font-family: 'Fraunces', Georgia, serif; }
  .font-body { font-family: 'Inter', system-ui, sans-serif; }
  .font-logo { font-family: 'Poppins', system-ui, sans-serif; }
  .bg-navy { background-color: var(--navy); }
  .text-offwhite { color: var(--offwhite); }
  .text-purple { color: var(--purple); }
  .text-mint { color: var(--mint); }
  .text-pulse { color: var(--pulse); }
  .text-halo { color: var(--halo); }
  .border-purple { border-color: var(--purple); }
  .border-mint { border-color: var(--mint); }
  .border-flare { border-color: var(--flare); }
  .btn-primary { background-color: var(--halo); color: var(--navy); transition: opacity .15s ease; }
  .btn-primary:hover { opacity: .88; }
  .btn-flare { background-color: var(--flare); color: var(--navy); transition: opacity .15s ease; }
  .btn-flare:hover { opacity: .88; }
  a, button { -webkit-tap-highlight-color: transparent; }
  :focus-visible { outline: 2px solid var(--flare); outline-offset: 3px; }
  @keyframes riseIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
  .rise-in > * { animation: riseIn .7s cubic-bezier(.22,.61,.36,1) both; }
  .rise-in > *:nth-child(2) { animation-delay: .08s; }
  .rise-in > *:nth-child(3) { animation-delay: .16s; }
  .rise-in > *:nth-child(4) { animation-delay: .24s; }
  @media (prefers-reduced-motion: reduce) { .rise-in > * { animation: none; } }
  html { scroll-behavior: smooth; }
  [id] { scroll-margin-top: 6.5rem; }
  #mobile-menu { display: none; }
  #mobile-menu.open { display: block; }
