/* Sites: movimento editorial, leitura confortável e interações progressivas. */
:root { --ease-out:cubic-bezier(.19,1,.22,1); }
html { scroll-padding-top:120px; }
body { font-size:1rem; }
.topline { font-size:.75rem; letter-spacing:.7px; }
.header { position:sticky; top:0; z-index:10; background:var(--paper); transition:box-shadow .35s,background .35s; }
.header::before { content:''; position:absolute; inset:0 calc((100vw - 100%) / -2); z-index:-1; background:var(--paper); border-bottom:1px solid transparent; transition:border-color .35s; }
body.has-scrolled .header::before { border-bottom-color:var(--line); }
.header nav { gap:22px; font-size:.875rem; }
.header nav a { position:relative; }
.header nav a::after { content:''; position:absolute; bottom:-7px; left:0; height:1px; width:100%; background:var(--rose); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease-out); }
.header nav a:hover { text-decoration:none; }
.header nav a:hover::after,.header nav a:focus-visible::after { transform:scaleX(1); }
.header .button { font-size:.875rem; gap:18px; padding-inline:18px; }
.scroll-progress { position:fixed; top:0; left:0; width:100%; height:3px; background:#b1798a; z-index:12; transform:scaleX(var(--read-progress,0)); transform-origin:left; pointer-events:none; }
.hero { min-height:615px; }
.hero-copy,.hero-art { animation:none; }
.hero .eyebrow { font-size:.75rem; letter-spacing:1.3px; }
.title-line { display:block; }
.hero h1 { font-size:clamp(90px,8.8vw,130px); }
.hero .intro { font-size:1rem; }
.hero-secondary,.hero-signature { font-size:.875rem; }
.hero-signature { letter-spacing:1px; }
.hero-secondary { margin-left:0; margin-top:18px; display:flex; }
.hero-signature { margin-top:20px; }
.hero-copy .eyebrow { animation:editorial-in .75s var(--ease-out) both; }
.title-line:first-child { animation:title-in 1.05s var(--ease-out) .08s both; }
.title-line:last-child { animation:title-in 1.05s var(--ease-out) .17s both; }
.hero-copy .intro,.hero-copy>.button,.hero-secondary,.hero-signature { animation:editorial-in .85s var(--ease-out) .3s both; }
.hero-art { animation:portrait-in 1.25s var(--ease-out) .08s both; }
.hero-portrait { transform:translate3d(var(--portrait-x,0px),var(--portrait-y,0px),0) scale(1.015); transition:transform .8s var(--ease-out); }
.poster-orbit { transform:rotate(calc(27deg + var(--orbit-angle,0deg))); transition:transform 1.2s var(--ease-out); }
.poster-letter { transform:translateY(var(--letter-y,0px)); transition:transform .8s var(--ease-out); }
.poster-label { font-size:.75rem; writing-mode:horizontal-tb; top:21px; left:23px; right:auto; letter-spacing:1.5px; }
.poster-seal { box-shadow:0 7px 25px #713d5010; transition:transform .4s var(--ease-out),background .3s; }
.poster-seal b { transition:transform .4s var(--ease-out),background .3s; }
.poster-seal:hover { transform:translateY(-5px); }
.poster-seal:hover b { transform:rotate(45deg); background:#ead2cd; }
.button { font-size:.875rem; position:relative; transition:background .3s,box-shadow .4s,transform .3s; }
.button span,.service-cta span,.quick-care span { display:inline-block; transition:transform .4s var(--ease-out); }
.button:hover { box-shadow:0 8px 24px #713d501c; transform:translateY(-2px); }
.button:hover span,.service-cta:hover span,.quick-care a:hover span { transform:translate(3px,-3px); }
.button:active { transform:translateY(0); }
.quick-care a { font-size:.875rem; padding-inline:18px; }
.eyebrow { font-size:.75rem; letter-spacing:1.8px; }
.section-head>p,.founder-copy>p:not(.eyebrow),.experience-steps p,.visit p:not(.eyebrow) { font-size:1rem; }
.section-head>p { max-width:350px; }
.treatment-layout { grid-template-columns:.88fr 1.32fr; gap:44px; }
.treatment-menu button { min-height:130px; position:relative; padding-block:26px; transition:background .4s,padding .4s var(--ease-out); }
.treatment-menu button::before { content:''; position:absolute; left:0; top:0; width:2px; height:100%; background:var(--rose); transform:scaleY(0); transform-origin:top; transition:transform .5s var(--ease-out); }
.treatment-menu button[aria-pressed=true]::before { transform:scaleY(1); }
.treatment-menu strong { font-size:1.8rem; }
.treatment-menu small { font-size:.8125rem; line-height:1.55; }
.service-index { font-size:.75rem; }
.service-photo { height:270px; }
.service-photo figcaption { font-size:.75rem; }
.service-details { grid-template-columns:1fr 1fr; gap:26px; }
.service-details .eyebrow { font-size:.75rem; line-height:1.6; letter-spacing:1.1px; }
.service-details h3 { font-size:2rem; }
.service-description>p:last-child { font-size:1rem; line-height:1.65; }
.service-options ul { font-size:.875rem; }
.service-options li { padding-block:4px; }
.service-cta,.service-options .text-link { font-size:.875rem; }
.service-options .text-link { line-height:1.65; }
.treatment-note { font-size:.8125rem; max-width:690px; margin-top:28px; }
.testimonials { padding-block:74px; }
.testimonial-intro>p:not(.eyebrow) { font-size:1rem; }
.testimonial-service { font-size:.75rem; }
.testimonial-display { min-height:263px; }
.testimonial-display blockquote { font-size:clamp(34px,3vw,44px); }
#review-author { font-size:.875rem; }
.review-source { font-size:.75rem; }
.review-choices { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 18px; }
.review-choices button { font-size:.875rem; padding-block:17px; line-height:1.5; }
.review-choices small { font-size:.75rem; }
.review-choices button[aria-pressed=true] { padding-top:16px; }
.field-title { font-size:1rem; }
.effect-filters { gap:8px; }
.effect-filters button { font-size:.875rem; min-height:48px; padding:10px 13px; transition:background .3s,color .3s,transform .3s; }
.effect-filters button:hover { transform:translateY(-2px); }
.goddess-detail { min-height:280px; }
.goddess-detail .eyebrow { font-size:.75rem; line-height:1.6; }
.goddess-detail>p:not(.eyebrow) { font-size:1rem; max-width:none; }
.goddess-detail p.collection-note { font-size:.8125rem; max-width:none; }
.goddess-options { gap:3px 21px; }
.goddess-options button { font-size:1.25rem; }
.collection-photo figcaption small,.collection-footer span { font-size:.75rem; }
.collection-image-frame { isolation:isolate; }
.collection-photo figcaption { gap:14px; }
.founder-main figure { transition:transform .7s var(--ease-out); }
.founder-main figure:hover { transform:translateY(-5px); }
.founder-main figcaption { font-size:.8125rem; }
.encounters .eyebrow,.encounters p:not(.eyebrow) { font-size:.75rem; }
.encounter-photos img:nth-child(odd) { --photo-tilt:-3deg; }
.encounter-photos img:nth-child(even) { --photo-tilt:3deg; }
.encounter-photos img { transform:rotate(var(--photo-tilt)); transition:transform .5s var(--ease-out); }
.encounter-photos img:hover { transform:translateY(-7px) rotate(0deg) scale(1.035); }
.experience-steps span { font-size:.8125rem; }
.visit-aside a,.footer>div { font-size:.875rem; }
.floating-contact { font-size:.875rem; padding:13px 18px; min-height:49px; transition:transform .35s var(--ease-out),background .3s; }
.floating-contact:hover { transform:translateY(-3px); }
dialog[open] { animation:dialog-in .4s var(--ease-out); }
dialog>p:not(.eyebrow),select,textarea,.message-result blockquote { font-size:1rem; }
form label,.message-result small,.text-link { font-size:.875rem; }
.close-dialog { min-width:44px; min-height:44px; }
.reveal-wait { opacity:0; transform:translateY(24px); }
.reveal-ready { opacity:1; transform:translateY(0); transition:opacity .8s var(--ease-out),transform .8s var(--ease-out); transition-delay:var(--reveal-delay,0ms); }
@keyframes title-in { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:translateY(0); } }
@keyframes editorial-in { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes portrait-in { from { opacity:0; transform:translateY(18px) scale(.985); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes dialog-in { from { opacity:0; transform:translateY(16px) scale(.985); } to { opacity:1; transform:translateY(0) scale(1); } }
@media (max-width:1100px) {
  .header nav { gap:15px; font-size:.8125rem; }
  .header .button { font-size:.8125rem; padding-inline:13px; gap:10px; }
  .hero .eyebrow { font-size:.75rem; letter-spacing:.6px; }
  .hero h1 { font-size:98px; }
  .treatment-layout { gap:30px; }
  .service-details { grid-template-columns:1fr; gap:18px; }
  .service-options { border:0; padding:16px 0 0; border-top:1px solid var(--line); }
  .service-options ul { display:grid; grid-template-columns:1fr 1fr; column-gap:18px; }
  .service-options .text-link { display:inline-block; margin-right:20px; }
  .service-cta { display:inline-flex; }
  .treatment-menu button { min-height:143px; }
  .treatment-menu strong { font-size:1.55rem; }
  .collection { gap:40px; }
}
@media (max-width:800px) {
  html { scroll-padding-top:100px; }
  .topline { font-size:.75rem; }
  .header nav { font-size:1rem; }
  .menu-toggle { font-size:.875rem; padding-inline:16px; }
  .hero { min-height:0; }
  .hero-copy { padding-bottom:25px; }
  .hero .eyebrow { font-size:.75rem; letter-spacing:.7px; margin-bottom:20px; gap:9px; }
  .hero h1 { font-size:82px; line-height:1; }
  .hero .intro { font-size:1rem; margin-top:21px; line-height:1.7; }
  .hero-copy>.button { font-size:.875rem; min-height:52px; padding:14px 19px; gap:18px; }
  .hero-secondary { display:flex; font-size:.875rem; margin:15px 0 0; }
  .hero-signature { display:none; }
  .poster-label { font-size:.75rem; top:18px; left:18px; letter-spacing:1px; }
  .hero-art { height:auto; aspect-ratio:1; }
  .poster-seal { padding:14px 18px; }
  .poster-seal span { font-size:1.125rem; }
  .quick-care a { font-size:.875rem; padding:15px 13px; min-height:65px; gap:8px; line-height:1.5; }
  .quick-care span { font-size:20px; flex-shrink:0; }
  .treatments .eyebrow,.eyebrow { font-size:.75rem; }
  .section-head>p { font-size:1rem; }
  .treatment-menu { gap:0 10px; }
  .treatment-menu button { min-height:151px; padding:19px 8px; gap:8px; }
  .treatment-menu strong { font-size:1.35rem; }
  .treatment-menu small { font-size:.8125rem; padding-right:0; }
  .service-index { font-size:.75rem; }
  .service-photo { height:230px; }
  .service-photo figcaption { font-size:.75rem; }
  .service-details { grid-template-columns:1fr; gap:19px; }
  .service-details .eyebrow { font-size:.75rem; }
  .service-details h3 { font-size:2rem; }
  .service-description>p:last-child { font-size:1rem; }
  .service-options ul { font-size:.875rem; }
  .service-options .text-link,.service-cta { font-size:.875rem; }
  .treatment-note { font-size:.8125rem; }
  .testimonials { padding-block:52px; }
  .testimonial-display { min-height:295px; }
  .testimonial-display blockquote { font-size:32px; line-height:1.3; }
  .review-source { font-size:.75rem; }
  .review-choices { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; }
  .review-choices button { font-size:.875rem; }
  .review-choices small { font-size:.75rem; }
  .collection-photo figcaption small { font-size:.75rem; }
  .effect-filters { gap:8px; }
  .effect-filters button { font-size:.875rem; }
  .goddess-detail { min-height:280px; }
  .goddess-detail .eyebrow { font-size:.75rem; }
  .goddess-detail>p:not(.eyebrow) { font-size:1rem; }
  .goddess-options { column-gap:20px; }
  .collection-footer span { font-size:.75rem; }
  .founder-copy>p:not(.eyebrow),.experience-steps p,.visit p:not(.eyebrow) { font-size:1rem; }
  .footer>div { font-size:.875rem; gap:16px; flex-wrap:wrap; }
  .floating-contact { font-size:.875rem; }
  dialog { padding:39px 24px 27px; }
}
@media (max-width:380px) {
  .hero h1 { font-size:74px; }
  .hero .eyebrow { letter-spacing:0; gap:7px; }
  .treatment-menu button { min-height:165px; gap:6px; }
  .treatment-menu strong { font-size:1.22rem; }
  .service-index { display:none; }
  .service-options ul { grid-template-columns:1fr; }
}
@media (pointer:coarse) {
  .hero-portrait,.poster-letter { transform:none; }
  .button:hover,.floating-contact:hover,.founder-main figure:hover { transform:none; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .reveal-wait,.reveal-ready { opacity:1; transform:none; }
  .hero-portrait,.poster-letter,.hero-art,.title-line,.hero-copy .intro,.hero-copy>.button,.hero-secondary { transform:none!important; opacity:1!important; }
  .scroll-progress { display:none; }
}

@media (max-width:800px) {
  .treatment-layout { grid-template-columns:minmax(0,1fr); gap:25px; }
  .service-panel { min-width:0; }
}
