:root {
  --ink: #392d52;
  --ink-soft: #5b4b74;
  --lavender-50: #fbf8ff;
  --lavender-100: #f3ecff;
  --lavender-200: #e9dbff;
  --lavender-300: #d4bff5;
  --violet: #7f5ab7;
  --violet-deep: #5b3d8b;
  --ocean: #67bfd3;
  --ocean-deep: #4f7fb2;
  --gold: #c7a76b;
  --gold-soft: #e6d4ac;
  --white: #ffffff;
  --shadow: 0 18px 60px rgba(84, 61, 121, .16);
  --radius: 28px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: radial-gradient(circle at 15% 0%, rgba(217, 235, 255, .65), transparent 30rem), linear-gradient(180deg, #fcfaff 0%, #f7f0ff 45%, #fbf8ff 100%); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.65; }
h1,h2,h3,.brand { font-family: Georgia, "Times New Roman", serif; }
h1,h2,h3,p { margin-top: 0; }
a { color: inherit; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 999; background: #fff; padding: .8rem 1rem; border-radius: .8rem; }
.skip-link:focus { top: 1rem; }
.site-header { position: fixed; inset: 0 0 auto; z-index: 100; display: flex; align-items: center; justify-content: space-between; padding: 1rem clamp(1.1rem, 3vw, 3.5rem); transition: .25s ease; color: #43305e; }
.site-header.scrolled { background: rgba(252, 249, 255, .88); box-shadow: 0 10px 35px rgba(60, 42, 84, .08); backdrop-filter: blur(18px); }
.brand { display: inline-flex; gap: .7rem; align-items: center; text-decoration: none; font-size: clamp(1rem, 1.8vw, 1.35rem); letter-spacing: .02em; }
.brand-mark { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid rgba(125, 90, 183, .28); border-radius: 50%; color: var(--violet); }
.site-nav { display: flex; gap: .45rem; align-items: center; }
.site-nav a { padding: .65rem .9rem; text-decoration: none; border-radius: 999px; font-size: .95rem; }
.site-nav a:hover { background: rgba(255,255,255,.48); }
.nav-cta { border: 1px solid rgba(127, 90, 183, .25); }
.menu-button { display: none; }
.hero { min-height: 100svh; position: relative; overflow: hidden; display: grid; place-items: center; padding: 8rem 1.3rem 5rem; isolation: isolate; background: radial-gradient(circle at 50% 24%, rgba(255, 244, 213, .95) 0 5%, rgba(246, 211, 255, .46) 16%, transparent 35%), radial-gradient(circle at 10% 20%, rgba(210, 238, 255, .72), transparent 36%), linear-gradient(180deg, #f9f6ff 0%, #ede1ff 48%, #dcecff 100%); }
.hero-sky, .hero-art { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-art { z-index: -1; object-fit: cover; }
.hero-sky { z-index: -2; }
.stars { position: absolute; inset: 0; opacity: .7; background-image: radial-gradient(circle, rgba(255,255,255,.95) 0 1px, transparent 1.4px), radial-gradient(circle, rgba(199,167,107,.65) 0 1px, transparent 1.5px); background-size: 72px 72px, 113px 113px; background-position: 0 0, 30px 18px; mask-image: linear-gradient(to bottom, black, transparent 72%); }
.violet-flame { position: absolute; left: 50%; top: 9%; width: 180px; height: 300px; transform: translateX(-50%) rotate(2deg); border-radius: 52% 48% 50% 50% / 72% 72% 28% 28%; background: radial-gradient(ellipse at 50% 70%, rgba(255,255,255,.95), rgba(200,131,255,.7) 28%, rgba(111,73,180,.55) 56%, transparent 72%); filter: blur(4px) drop-shadow(0 0 28px rgba(126,70,220,.38)); opacity: .42; }
.flame-two { transform: translateX(-50%) scale(.6) rotate(-8deg); opacity: .3; top: 11%; }
.hero-content { width: min(900px, 92vw); text-align: center; padding: 4.5rem 1.5rem 1rem; text-shadow: 0 2px 30px rgba(255,255,255,.8); }
.eyebrow,.section-kicker { text-transform: uppercase; letter-spacing: .22em; font-size: .78rem; font-weight: 700; color: var(--violet-deep); }
.hero h1 { margin: .45rem auto .8rem; font-size: clamp(3.2rem, 8vw, 7rem); line-height: .94; font-weight: 500; max-width: 12ch; color: #5c428a; }
.hero-mantra { font-family: Georgia, "Times New Roman", serif; font-style: italic; font-size: clamp(1.35rem, 2.3vw, 2rem); color: #7555a5; margin-bottom: .75rem; }
.hero-copy { max-width: 700px; margin: 0 auto .9rem; font-size: clamp(1rem, 1.4vw, 1.18rem); }
.modalities-line { letter-spacing: .08em; font-weight: 600; color: #69518c; }
.modalities-line span { color: var(--gold); padding: 0 .35rem; }
.hero-actions { display: flex; justify-content: center; gap: .8rem; flex-wrap: wrap; margin-top: 1.55rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .85rem 1.25rem; border-radius: 999px; text-decoration: none; font-weight: 700; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: #fff; background: linear-gradient(135deg, #7452a7, #9170c4); box-shadow: 0 12px 30px rgba(113, 78, 166, .25); }
.button-ghost { background: rgba(255,255,255,.62); border: 1px solid rgba(96,72,134,.2); }
.section { padding: clamp(5rem, 9vw, 8rem) clamp(1.3rem, 5vw, 5rem); }
.section > * { max-width: 1180px; margin-left: auto; margin-right: auto; }
.section h2 { font-size: clamp(2.4rem, 5vw, 4.8rem); line-height: 1.04; font-weight: 500; margin-bottom: 1.3rem; }
.section h3 { font-size: 1.65rem; font-weight: 500; }
.lead { font-size: clamp(1.12rem, 1.5vw, 1.35rem); color: var(--ink-soft); }
.split-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.about-section { background: rgba(255,255,255,.52); }
.quote-card { min-height: 330px; padding: 2.2rem; border-radius: var(--radius); position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; background: radial-gradient(circle at 50% 25%, rgba(255,255,255,.9), transparent 22%), linear-gradient(145deg, #e7d7ff, #d7edff 55%, #f5e3ff); border: 1px solid rgba(199,167,107,.35); box-shadow: var(--shadow); }
.quote-card p { font-family: Georgia, "Times New Roman", serif; font-size: 2rem; line-height: 1.15; margin-bottom: .45rem; }
.quote-card span { color: var(--violet-deep); }
.mini-flame { position: absolute; width: 125px; height: 180px; top: 35px; left: 50%; transform: translateX(-50%); border-radius: 50% 50% 55% 45% / 70% 70% 30% 30%; background: radial-gradient(ellipse at 50% 70%, white, #ce9dff 34%, #7754b1 58%, transparent 72%); filter: drop-shadow(0 0 25px rgba(135, 82, 192, .28)); }
.modalities-section { background: linear-gradient(180deg, #fbf8ff, #f1e9fb); }
.cards-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.2rem; margin-top: 2.2rem; }
.service-card { padding: 2rem; background: rgba(255,255,255,.72); border: 1px solid rgba(129,99,169,.13); border-radius: var(--radius); box-shadow: 0 12px 36px rgba(84,61,121,.08); }
.service-icon { width: 3.4rem; height: 3.4rem; display: grid; place-items: center; border-radius: 50%; margin-bottom: 1.3rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; color: var(--violet-deep); background: linear-gradient(145deg,#efe5ff,#e0f4ff); border: 1px solid rgba(199,167,107,.3); }
.service-card a { font-weight: 700; text-decoration: none; color: var(--violet-deep); }
.journey-section { position: relative; overflow: hidden; background: radial-gradient(circle at 50% 15%, rgba(238,205,255,.72), transparent 32%), linear-gradient(135deg, #362c55, #604582 48%, #3e6481 100%); color: #fff; }
.journey-inner { text-align: center; max-width: 850px !important; position: relative; z-index: 2; }
.journey-section .section-kicker { color: #ead7ff; }
.journey-section p { color: rgba(255,255,255,.82); }
.journey-glow { position: absolute; left: 50%; top: -12rem; width: 32rem; height: 48rem; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(ellipse, rgba(205,137,255,.55), rgba(118,78,170,.1) 50%, transparent 70%); filter: blur(16px); }
.pill-row { display: flex; flex-wrap: wrap; gap: .65rem; justify-content: center; margin-top: 2rem; }
.pill-row span { border: 1px solid rgba(255,255,255,.28); border-radius: 999px; padding: .55rem .85rem; background: rgba(255,255,255,.08); }
.workshops-section { background: linear-gradient(180deg,#f9f4ff,#fff); }
.workshop-grid { align-items: stretch; }
.workshop-card { border-radius: var(--radius); padding: 2rem; background: radial-gradient(circle at 80% 0%, rgba(228,214,255,.8), transparent 40%), linear-gradient(145deg,#fff,#f7f0ff); border: 1px solid rgba(199,167,107,.28); box-shadow: var(--shadow); display: flex; flex-direction: column; justify-content: center; }
.workshop-label { font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; color: var(--violet-deep); font-weight: 700; }
.contact-section { padding-top: 2rem; }
.contact-shell { border-radius: 34px; padding: clamp(2rem, 5vw, 4rem); background: radial-gradient(circle at 20% 20%, rgba(255,255,255,.92), transparent 28%), linear-gradient(135deg,#e8dcff,#d8efff 60%,#f5e8ff); border: 1px solid rgba(199,167,107,.35); box-shadow: var(--shadow); display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.contact-actions { display: grid; gap: .8rem; }
.contact-link { display: flex; flex-direction: column; padding: 1.1rem 1.25rem; border-radius: 18px; text-decoration: none; background: rgba(255,255,255,.64); border: 1px solid rgba(92,66,138,.12); overflow-wrap: anywhere; }
.contact-link span { font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-soft); }
.contact-link strong { font-size: 1rem; }
.site-footer { max-width: 1180px; margin: 0 auto; padding: 2rem 1.3rem 3rem; color: var(--ink-soft); font-size: .9rem; text-align: center; }
.site-footer div { display: flex; flex-direction: column; gap: .15rem; margin-bottom: .6rem; }
.site-footer strong { color: var(--ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.2rem; }
.disclaimer { max-width: 760px; margin-left: auto; margin-right: auto; font-size: .82rem; opacity: .85; }
@media (max-width: 900px) { .split-grid, .contact-shell { grid-template-columns: 1fr; } .cards-grid { grid-template-columns: 1fr; } .hero-art { width: 125%; left: -12.5%; } .site-nav { display: none; position: absolute; right: 1rem; top: calc(100% + .2rem); flex-direction: column; align-items: stretch; width: min(250px, calc(100vw - 2rem)); padding: .6rem; border-radius: 18px; background: rgba(252,249,255,.97); box-shadow: var(--shadow); } .site-nav.open { display: flex; } .menu-button { display: inline-flex; border: 1px solid rgba(92,66,138,.2); background: rgba(255,255,255,.68); color: var(--ink); border-radius: 999px; padding: .6rem .9rem; } }
@media (max-width: 560px) { .site-header { padding: .8rem 1rem; } .brand span:last-child { font-size: .95rem; } .hero { padding-top: 7rem; } .hero-content { padding-inline: .3rem; } .hero h1 { font-size: clamp(3rem, 16vw, 4.6rem); } .hero-copy { font-size: 1rem; } .section { padding-inline: 1.15rem; } .section h2 { font-size: 2.55rem; } .quote-card { min-height: 280px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *,*::before,*::after { transition: none !important; animation: none !important; } }
