:root{--p:#9e60d8;--v:#7440a6;--l:#cb97ff;--y:#fff59c;--ink:#2f2438;--muted:#6e6473;--cream:#fcfaff;--line:#eadff3}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.shell{width:min(1120px,calc(100% - 40px));margin-inline:auto}
.hero{position:relative;overflow:hidden;min-height:760px;background:linear-gradient(145deg,#fff 0%,#fbf7ff 53%,#f4eaff 100%)}.glow{position:absolute;border-radius:999px;filter:blur(4px)}.one{width:460px;height:460px;right:-130px;top:-120px;background:radial-gradient(circle,#dcb9ff,transparent 68%)}.two{width:280px;height:280px;left:-130px;bottom:20px;background:radial-gradient(circle,#fff59c,transparent 72%);opacity:.35}
.nav{height:112px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}.nav img{width:245px;mix-blend-mode:multiply}.nav-contact{display:flex;align-items:center;gap:8px;padding:12px 19px;color:var(--v);border:1px solid #d8c4ea;border-radius:999px;font-weight:700}
.hero-content{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .82fr;gap:70px;align-items:center;padding:52px 0 100px}.eyebrow,.section-label{display:inline-flex;align-items:center;gap:7px;color:var(--p);text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.78rem}h1,h2,h3,p{margin-top:0}h1{max-width:650px;margin:19px 0 24px;font:500 clamp(3.4rem,6vw,5.4rem)/.98 Georgia,serif;letter-spacing:-.045em}h1 em{color:var(--p);font-weight:500}.hero-copy>p{max-width:620px;font-size:1.13rem;line-height:1.75;color:var(--muted)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 21px;border-radius:999px;font-weight:800;transition:.25s}.button:hover{transform:translateY(-2px)}.primary{background:linear-gradient(135deg,var(--p),var(--v));color:#fff;box-shadow:0 14px 30px #7440a638}.soft{background:#fff;border:1px solid var(--line);color:var(--v)}.dark{background:var(--ink);color:#fff}
.quick-links{display:flex;align-items:center;gap:10px;margin-top:28px;color:var(--muted);font-size:.85rem}.quick-links a{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);background:#fff;border-radius:50%;color:var(--v)}.quick-links b{font-size:1.45rem}
.portrait-wrap{position:relative;max-width:430px;justify-self:end}.portrait-frame{padding:12px;border-radius:48% 48% 42% 42%/40% 40% 58% 58%;background:linear-gradient(145deg,#fff,#e6ccff);box-shadow:0 35px 80px #6034802e}.portrait-frame img{width:100%;aspect-ratio:4/5.15;object-fit:cover;object-position:50% 30%;border-radius:inherit}.portrait-card{position:absolute;display:flex;align-items:center;gap:12px;left:-40px;bottom:54px;padding:15px 18px;border-radius:18px;background:#ffffffe8;box-shadow:0 16px 40px #482b592e;color:var(--p)}.portrait-card div{display:flex;flex-direction:column;gap:3px}.portrait-card span{color:var(--muted);font-size:.78rem}.wave{position:absolute;bottom:-1px;width:100%;height:55px;background:#fff;clip-path:ellipse(58% 55% at 50% 100%)}
.about{padding:105px 0 115px}.about-grid{display:grid;grid-template-columns:.9fr 1fr;gap:95px;margin-top:24px}h2{font:500 clamp(2.35rem,4vw,3.6rem)/1.1 Georgia,serif;letter-spacing:-.035em}h2 span{color:var(--p)}.about-grid p,.section-head>p,.experience-copy>p{color:var(--muted);line-height:1.8;font-size:1.05rem}
.services{background:var(--cream);padding:105px 0 115px}.section-head{display:grid;grid-template-columns:1.4fr .6fr;gap:70px;align-items:end}.section-head h2{max-width:700px;margin:15px 0 0}.service-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-top:50px}.service-card{position:relative;grid-column:span 2;min-height:310px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:1.6rem;box-shadow:0 14px 36px #542c6f0e;transition:.3s;overflow:hidden}.service-card:nth-child(4){grid-column:2/span 2}.service-card:nth-child(5){grid-column:4/span 2}.service-card:hover{transform:translateY(-5px);border-color:#cba7e7}.service-card>svg{color:var(--p);margin:11px 0 28px}.service-number{position:absolute;top:24px;right:25px;color:#dccbea;font:1.15rem Georgia}.service-card h3{font:500 1.45rem Georgia}.service-card p{color:var(--muted);line-height:1.65;font-size:.94rem}.service-card a{display:flex;align-items:center;color:var(--p);font-weight:800;font-size:.9rem;position:absolute;bottom:27px}
.experience{display:grid;grid-template-columns:.95fr 1fr;gap:90px;align-items:center;padding:115px 0}.experience-photo{border-radius:46% 46% 28px 28px;overflow:hidden;box-shadow:24px 24px 0 #f2e5ff}.experience-photo img{width:100%;aspect-ratio:4/4.75;object-fit:cover;object-position:center 60%;transform:scaleX(-1)}.experience-copy h2{margin:16px 0 22px}.experience-copy blockquote{margin:27px 0;padding:20px 24px;background:#fbf7ff;border-left:4px solid var(--l);border-radius:0 18px 18px 0;color:var(--v);font:1.18rem/1.55 Georgia}
.visit{background:linear-gradient(135deg,#63368b,var(--p));color:#fff;padding:105px 0}.visit-grid{display:grid;grid-template-columns:1fr .9fr;gap:100px;align-items:center}.section-label.light{color:var(--y)}.visit h2{max-width:520px;margin:18px 0 35px}.address{display:flex;gap:14px}.address strong,.address a{display:block}.address strong{margin-bottom:8px}.address a{color:#f5eaff;text-decoration:underline}.hours-card{background:#fff;color:var(--ink);padding:30px 34px;border-radius:1.6rem;box-shadow:0 25px 65px #200c303f}.hours-title{display:flex;align-items:center;gap:10px;color:var(--p)}.hours-title h3{margin:0;font:1.5rem Georgia}.hour-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #eee6f3;color:var(--muted)}.hour-row:last-child{border:0}.hour-row strong{color:var(--ink)}.hour-row .closed{color:#a899af}
.final-cta{padding:95px 0 40px}.final-box{text-align:center;padding:68px 30px;border-radius:34px;background:linear-gradient(145deg,#fffdec,#faf3ff);border:1px solid #efe1f6}.final-box>svg{color:var(--p)}.final-box h2{max-width:700px;margin:18px auto 13px}.final-box p{color:var(--muted);font-size:1.05rem;margin-bottom:28px}.footer{min-height:150px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:65px;color:var(--muted);font-size:.84rem}.footer img{width:175px;mix-blend-mode:multiply}.footer a{color:var(--v);font-weight:700}.floating{position:fixed;right:22px;bottom:22px;z-index:20;width:58px;height:58px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#25d366;box-shadow:0 12px 30px #25d36659}
@media(max-width:850px){.nav{height:88px}.nav img{width:190px}.hero-content{grid-template-columns:1fr;gap:48px;padding:45px 0 105px}.hero-copy{text-align:center}.hero-copy>p{margin-inline:auto}.hero-actions,.quick-links{justify-content:center}.portrait-wrap{max-width:390px;justify-self:center}.portrait-card{left:-12px}.about-grid,.section-head,.experience,.visit-grid{grid-template-columns:1fr;gap:38px}.about,.services{padding:80px 0}.service-card,.service-card:nth-child(4){grid-column:span 3}.service-card:nth-child(5){grid-column:2/span 4}.experience{padding:90px 0}.experience-photo{max-width:520px;margin:auto}.footer{flex-wrap:wrap;justify-content:center;text-align:center;padding:35px 0}}
@media(max-width:560px){.shell{width:min(100% - 28px,1120px)}.nav img{width:158px}.nav-contact{font-size:0;width:44px;height:44px;padding:0;justify-content:center}h1{font-size:3.15rem}.hero-content{padding-top:24px}.hero-copy>p{font-size:1rem}.hero-actions{flex-direction:column}.button{width:100%}.quick-links span{display:none}.portrait-card{bottom:28px}.about,.services,.experience,.visit{padding:72px 0}.service-grid{grid-template-columns:1fr}.service-card,.service-card:nth-child(4),.service-card:nth-child(5){grid-column:auto;min-height:285px}.experience{gap:60px}.hours-card{padding:25px 21px}.hour-row{font-size:.91rem}.final-box{padding:55px 19px}.footer{flex-direction:column;margin-top:35px}.floating{width:54px;height:54px;right:15px;bottom:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Mobile-first refinements */
.hero{background:linear-gradient(145deg,#fff 0%,#f8efff 48%,#ead6ff 100%)}
.one{background:radial-gradient(circle,#c88cff,transparent 68%)}
.nav{justify-content:flex-start}.nav img{mix-blend-mode:normal}
h1{line-height:1.08;letter-spacing:-.035em}
.portrait-wrap{max-width:390px}.portrait-frame{padding:10px;border-radius:34px;background:linear-gradient(145deg,#fff,#d8b1ff)}.portrait-frame img{aspect-ratio:4/5;object-position:50% 30%;border-radius:25px}
.services{background:linear-gradient(180deg,#fcfaff,#f3e3ff)}
.final-box{background:linear-gradient(145deg,#fffdec,#ead6ff);border-color:#dfc0f4}
.footer img{mix-blend-mode:normal}
.floating{width:auto;height:auto;min-height:52px;padding:0 19px;display:flex;align-items:center;gap:9px;border-radius:999px;font-size:.9rem;font-weight:800}.floating span{display:inline}
@media(max-width:850px){.nav{height:96px;justify-content:center}.nav img{width:210px}.portrait-wrap{max-width:340px}}
@media(max-width:560px){.nav img{width:205px}h1{font-size:2.85rem;line-height:1.14;letter-spacing:-.025em}.hero-content{padding-top:18px}.portrait-wrap{max-width:315px}.portrait-frame{border-radius:28px}.portrait-frame img{border-radius:20px;object-position:50% 24%}.portrait-card{left:-8px;bottom:22px}.floating{right:12px;bottom:12px;width:auto;height:auto;min-height:50px;padding:0 16px;font-size:.82rem}}

/* Signature motion: calm, breathing and layered */
.portrait-frame{position:relative;z-index:2;animation:portrait-arrive 1s cubic-bezier(.2,.75,.25,1) both}
.aura{position:absolute;z-index:0;inset:8% 4%;border-radius:42px;pointer-events:none}
.aura-one{background:rgba(203,151,255,.52);filter:blur(22px);animation:aura-breathe 5.2s ease-in-out infinite}
.aura-two{inset:-3% 13%;border:1px solid rgba(158,96,216,.42);animation:aura-orbit 9s ease-in-out infinite}
.hero-copy .eyebrow{animation:soft-rise .65s .1s both}.hero-copy h1{animation:soft-rise .8s .22s both}.hero-copy>p{animation:soft-rise .8s .36s both}.hero-actions{animation:soft-rise .8s .48s both}.quick-links{animation:soft-rise .8s .58s both}
main section:not(.hero),.service-card{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.75,.25,1)}
main section.is-visible:not(.hero),.service-card.is-visible{opacity:1;transform:none}
.service-card:nth-child(2){transition-delay:.08s}.service-card:nth-child(3){transition-delay:.16s}.service-card:nth-child(4){transition-delay:.08s}.service-card:nth-child(5){transition-delay:.16s}
.button:active,.quick-links a:active{transform:scale(.97)}
@keyframes soft-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes portrait-arrive{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
@keyframes aura-breathe{0%,100%{transform:scale(.94);opacity:.42}50%{transform:scale(1.08);opacity:.76}}
@keyframes aura-orbit{0%,100%{transform:translate(-5px,5px) rotate(-2deg)}50%{transform:translate(8px,-7px) rotate(3deg)}}
@keyframes cta-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(max-width:560px){.hero{background:linear-gradient(180deg,#fff 0 96px,#f7edff 96px,#ead5ff 64%,#f9f4ff 100%)}.hero-content{gap:42px}.eyebrow{margin-top:9px}.portrait-card{z-index:3}.aura{border-radius:32px}.floating{animation:cta-enter .6s 1.3s both}}
@media(prefers-reduced-motion:reduce){.portrait-frame,.aura,.hero-copy .eyebrow,.hero-copy h1,.hero-copy>p,.hero-actions,.quick-links,.floating{animation:none!important}main section:not(.hero),.service-card{opacity:1;transform:none;transition:none}}
.hero-copy .eyebrow,.hero-copy h1,.hero-copy>p,.hero-actions,.quick-links{animation-name:gentle-arrive}
.portrait-frame{animation-name:gentle-photo}
@keyframes gentle-arrive{from{transform:translateY(16px)}to{transform:none}}
@keyframes gentle-photo{from{transform:translateY(20px) scale(.98)}to{transform:none}}

/* Clear brand contrast and a distinct motion language */
.hero{background:#9e60d8;color:#fff}
.hero>.glow{display:none}
.glow.one{background:rgba(203,151,255,.68)}.glow.two{background:rgba(255,245,156,.26)}
.nav{background:#9e60d8}.nav img{width:270px}
.eyebrow{color:#fff59c}.hero-copy h1,.hero-copy>p{color:#fff}.hero-copy>p{opacity:.88}.hero-copy h1 em{color:#fff59c}
.hero .primary{background:#fff;color:#7440a6;box-shadow:0 14px 32px rgba(77,32,111,.25)}.hero .soft{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.42);color:#fff}
.quick-links{gap:10px;color:#fff}.quick-links .social-link{width:auto;height:48px;padding:0 13px;display:flex;align-items:center;gap:7px;border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:#fff;border-radius:14px}.social-link small{font-size:.72rem;font-weight:700;white-space:nowrap}
.portrait-frame{background:#fff}.aura-one{background:rgba(255,245,156,.32)}.aura-two{border-color:rgba(255,255,255,.55)}
.service-card{min-height:0;padding:27px;display:flex;flex-direction:column}.service-card h3{margin-bottom:10px}.service-card p{margin-bottom:0}.service-card a{position:static;margin-top:18px;padding-top:15px;border-top:1px solid #eadff3}
.wa{width:21px;height:21px;display:block;flex:0 0 auto}
main section:not(.hero){opacity:1;transform:none}
main section:not(.hero) h2,main section:not(.hero) .section-label{opacity:0;transform:translateX(-28px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.8,.2,1)}
main section.is-visible:not(.hero) h2,main section.is-visible:not(.hero) .section-label{opacity:1;transform:none}
.service-card{opacity:1;transform:none;clip-path:inset(0 100% 0 0 round 1.6rem);transition:clip-path .8s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s}
.service-card:nth-child(even){clip-path:inset(0 0 0 100% round 1.6rem)}.service-card.is-visible{clip-path:inset(0 0 0 0 round 1.6rem)}
@media(max-width:560px){.hero{background:#9e60d8}.nav{background:#9e60d8;height:108px}.nav img{width:245px}.hero-content{padding-top:20px}.quick-links{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.quick-links .social-link{height:58px;padding:6px 5px;flex-direction:column;justify-content:center;gap:2px}.quick-links span{display:inline}.service-card{padding:24px}.service-card a{margin-top:14px;padding-top:13px}.portrait-wrap{margin-top:6px}}
@media(prefers-reduced-motion:reduce){main section:not(.hero) h2,main section:not(.hero) .section-label,.service-card{opacity:1;transform:none;clip-path:none;transition:none}}
