:root, html.dark {
  --c-bg: 23 23 54;
  --c-bgalt: 29 29 70;
  --c-surface: 36 36 86;
  --c-surface2: 43 43 100;
  --c-line: 45 45 72;
  --c-cream: 246 243 234;
  --c-muted: 169 169 214;
}
html.light {
  --c-bg: 250 250 248;
  --c-bgalt: 255 255 255;
  --c-surface: 255 255 255;
  --c-surface2: 243 242 250;
  --c-line: 224 222 235;
  --c-cream: 30 28 46;
  --c-muted: 100 98 132;
}
/* accent colors are tuned for dark backgrounds; darken them when used as text on light mode so they stay readable */
html.light .text-mint{ color:#0f766e !important; }
html.light .text-sunny{ color:#a16207 !important; }
html.light .text-coral{ color:#c2410c !important; }
html.light .hover\:text-mint:hover{ color:#0f766e !important; }
html.light .hover\:text-sunny:hover{ color:#a16207 !important; }
html.light .hover\:text-coral:hover{ color:#c2410c !important; }
  html{ scroll-behavior:smooth; }
  body{ background: rgb(var(--c-bg)); font-family:'Plus Jakarta Sans', sans-serif; overflow-x:hidden; transition: background .3s ease; }
  ::selection{ background:#ff6f5b; color: rgb(var(--c-bg)); }
  ::-webkit-scrollbar{ width:10px; }
  ::-webkit-scrollbar-track{ background: rgb(var(--c-bg)); }
  ::-webkit-scrollbar-thumb{ background: rgb(var(--c-surface2)); border-radius:10px; }
  .no-scrollbar::-webkit-scrollbar{ display:none; }
  .no-scrollbar{ -ms-overflow-style:none; scrollbar-width:none; }
  .bg-glow::before{
    content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
    background-image:
      radial-gradient(circle at 15% 20%, rgba(255,111,91,0.16), transparent 40%),
      radial-gradient(circle at 85% 10%, rgba(110,231,192,0.16), transparent 40%),
      radial-gradient(circle at 50% 55%, rgba(255,209,102,0.10), transparent 45%),
      radial-gradient(circle at 20% 85%, rgba(255,111,91,0.10), transparent 40%),
      radial-gradient(circle at 80% 90%, rgba(110,231,192,0.10), transparent 40%);
  }
  .reveal{ opacity:0; transform:translateY(28px); transition:opacity .4s ease, transform .4s ease; }
  .reveal.show{ opacity:1; transform:translateY(0); }
  .nav-link::after{ content:""; position:absolute; left:0; bottom:-4px; height:2px; width:0; background:linear-gradient(90deg,#ff6f5b,#ffd166); transition:width .3s ease; }
  .nav-link:hover::after{ width:100%; }
  .chip{ transition: transform .25s cubic-bezier(.34,1.56,.64,1), background .25s ease, color .25s ease, border-color .25s ease; }
  .chip:hover{ transform:translateY(-6px) rotate(0deg) scale(1.06); }
  .chip:nth-child(3n+1){ transform:rotate(-2deg); }
  .chip:nth-child(3n+2){ transform:rotate(1.5deg); }
  .chip:nth-child(3n){ transform:rotate(-1deg); }
  .chip:nth-child(3n+1):hover, .chip:nth-child(3n+2):hover, .chip:nth-child(3n):hover{ transform:translateY(-6px) rotate(0deg) scale(1.06); }
  .slide{ transition: transform .6s cubic-bezier(.4,0,.2,1); }
  .squish{ transition: transform .15s ease; }
  .squish:active{ transform:scale(0.92); }
  .blob{ position:absolute; border-radius:50%; filter:blur(40px); opacity:0.35; pointer-events:none; }
  .sticker{
    transform:rotate(-6deg);
    border:2px dashed var(--sticker-border, #ffd166);
  }
  @media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; } }