*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--bg); color: var(--ink);
  font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 400; line-height: 1.65; overflow-x: hidden;
}
h1, h2, h3, .display { font-family: 'Baloo 2', sans-serif; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
section { position: relative; scroll-margin-top: 96px; }
.wrap { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
:focus-visible { outline: 3px solid var(--purple); outline-offset: 3px; border-radius: 6px; }
.eyebrow {
  font-family: var(--font-brand-futura);
  font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--magenta-deep);
  font-weight: 700; margin-bottom: 28px; display: inline-flex; align-items: center; gap: 9px;
  background: var(--magenta-light); padding: 8px 16px 8px 12px; border-radius: var(--radius-pill);
}
.eyebrow .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--brand-gradient); display: inline-block; flex: none; }
.ribbon-rule { width: 86px; height: 6px; border-radius: 99px; background: var(--ribbon-gradient); background-size: 220% 100%; margin: 0 0 22px; animation: flow 7s linear infinite; }
.section-head { max-width: 620px; margin-bottom: 36px; }
.section-head h2 { font-size: clamp(30px, 3.4vw, 44px); margin-bottom: 14px; }
.section-head p { color: var(--ink-soft); font-size: 16.5px; }
.section-head.center { margin-left: auto; margin-right: auto; text-align: center; display: flex; flex-direction: column; align-items: center; }
.wave { display: block; width: 100%; height: auto; }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: translateY(0); }
@keyframes flow { 0% { background-position: 0% 0; } 100% { background-position: 220% 0; } }
@keyframes fadeUpIn { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@keyframes floatY { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
@keyframes floatBlob { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(10px, -14px) scale(1.06); } }
@keyframes fadeUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }
a, button, .faq-q, .filter-chip, .seg-btn {
  transition: color 0.2s ease, background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}
.blog-card, .event-card, .service-card, .team-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
a:active, button:active, .faq-q:active, .filter-chip:active, .seg-btn:active {
  transform: scale(0.97);
}
