/* =========================================================
   LARY BEAUTY STUDIO — estilo principal
   Paleta: rosa sofisticado · champagne · off-white · dourado suave · vinho
   ========================================================= */

/* ---------- Fontes locais (sem dependência externa) ---------- */
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/playfair-display-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/playfair-display-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/playfair-display-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/playfair-display-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/dm-sans-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/dm-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/dm-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/dm-sans-latin-600-normal.woff2) format("woff2")}

:root{
  --wine-950:#1e050d; --wine-900:#2a0812; --wine-800:#3a0c1b; --wine-700:#5a1630; --wine-600:#74253e;
  --rose-500:#c9718b; --rose-400:#d98fa4; --rose-200:#f2cfd8; --rose-100:#f9e8ec;
  --champ-300:#e9cfb7; --champ-200:#f3e3d3; --off:#fbf6f1; --off-2:#f6ece4;
  --gold-600:#a9744f; --gold-500:#c8936b; --gold-400:#d9ab82; --gold-300:#ecc9a4; --gold-100:#fff2d9;
  --ink:#2b161c; --muted:#6f5a60; --line:rgba(169,116,79,.28);
  --gold-grad:linear-gradient(115deg,#a9744f 0%,#e9c39d 28%,#fff2d9 46%,#d6a57c 64%,#a9744f 100%);
  --serif:"Playfair Display",ui-serif,Georgia,"Times New Roman",serif;
  --sans:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --pad:clamp(1.25rem,5vw,5rem);
  --radius:22px;
  --header-h:76px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--off);color:var(--ink);font-family:var(--sans);font-size:clamp(1rem,.96rem + .2vw,1.075rem);line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
em{font-style:italic}
:focus-visible{outline:2px solid var(--gold-500);outline-offset:3px;border-radius:6px}
::selection{background:var(--rose-200);color:var(--wine-800)}
body.is-locked{overflow:hidden}

.skip-link{position:fixed;left:1rem;top:-4rem;z-index:1000;background:var(--wine-800);color:#fff;padding:.7rem 1rem;border-radius:10px;transition:top .2s}
.skip-link:focus{top:1rem}

/* ---------- Tipografia base ---------- */
.eyebrow{display:flex;align-items:center;gap:.85rem;margin:0 0 1.2rem;font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;font-weight:500;color:var(--gold-600)}
.eyebrow__line{width:42px;height:1px;background:var(--gold-grad);flex:none}
.eyebrow--light{color:var(--gold-300)}
.h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.1rem,1.4rem + 3.2vw,4.1rem);line-height:1.06;letter-spacing:-.015em;margin:0 0 1.4rem;color:var(--wine-800)}
.h2 em{color:var(--rose-500);font-weight:400}
.h2--light{color:#fff8f2}
.h2--light em{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:clamp(1.02rem,.95rem + .35vw,1.2rem);color:var(--muted);max-width:34rem;margin:0 0 1.6rem;font-weight:300}
.lead--light{color:rgba(255,240,233,.8)}
.note{font-size:.78rem;color:var(--muted);letter-spacing:.04em;margin:0}

/* ---------- Botões ---------- */
.btn{--h:56px;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.75rem;min-height:var(--h);padding:0 1.9rem;border-radius:999px;border:0;cursor:pointer;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;isolation:isolate;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease),color .3s;will-change:transform}
.btn svg{width:18px;height:18px;flex:none;transition:transform .5s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn--gold{color:var(--wine-900);background:var(--gold-grad);background-size:220% 100%;background-position:0% 0;box-shadow:0 10px 30px -10px rgba(201,147,107,.75),inset 0 1px 0 rgba(255,255,255,.65),inset 0 -1px 0 rgba(120,70,40,.25);transition:background-position 1.1s var(--ease),transform .5s var(--ease),box-shadow .5s var(--ease)}
.btn--gold::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.75) 50%,transparent 70%);transform:translateX(-120%);animation:shine 4.8s var(--ease) infinite 2.4s}
.btn--gold:hover{background-position:100% 0;box-shadow:0 18px 44px -12px rgba(201,147,107,.95),inset 0 1px 0 rgba(255,255,255,.7)}
.btn--gold:active{transform:scale(.97)}
@keyframes shine{0%{transform:translateX(-120%)}35%,100%{transform:translateX(120%)}}
.btn--ghost{color:#fff7f0;border:1px solid rgba(236,201,164,.55);background:rgba(42,8,18,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.btn--ghost:hover{background:rgba(236,201,164,.16)}
.btn--ghost-dark{color:var(--wine-800);border:1px solid var(--line);background:transparent}
.btn--ghost-dark:hover{background:var(--rose-100)}
.btn--wine{color:#fff6ef;background:linear-gradient(135deg,var(--wine-700),var(--wine-900));box-shadow:0 14px 34px -14px rgba(58,12,27,.8),inset 0 1px 0 rgba(255,255,255,.12)}
.btn--wine::before{content:"";position:absolute;inset:1px;border-radius:inherit;border:1px solid rgba(236,201,164,.35);pointer-events:none}
.btn--wine:hover{box-shadow:0 20px 44px -14px rgba(58,12,27,.9)}
.btn--link{--h:44px;padding:0 .2rem;color:#fff3ea;letter-spacing:.18em;font-weight:500;border-radius:0}
.btn--link span{background:linear-gradient(currentColor,currentColor) left bottom/100% 1px no-repeat;padding-bottom:4px;transition:background-size .6s var(--ease)}
.btn--link:hover span{background-size:0 1px;background-position:right bottom}
.btn--block{width:100%;--h:60px}
.btn__wa{width:20px!important;height:20px!important}

/* ---------- Abertura (preloader) ---------- */
.intro{display:none}
.js .intro{display:grid;place-items:center;position:fixed;inset:0;z-index:200;background:radial-gradient(120% 90% at 50% 40%,var(--wine-700),var(--wine-950) 70%);color:var(--gold-300)}
.intro__inner{display:grid;justify-items:center;gap:1.1rem}
.intro__flor{width:92px;height:76px;color:var(--gold-300)}
.intro__flor use{stroke-dasharray:900;stroke-dashoffset:900;animation:draw 1.5s var(--ease-io) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.intro__name{margin:0;font-family:var(--serif);font-size:clamp(1.6rem,4vw,2.4rem);color:#fff4ea;letter-spacing:.02em;opacity:0;transform:translateY(12px);animation:fadeUp 1s var(--ease) .5s forwards}
.intro__name em{color:var(--gold-300);font-size:.6em;letter-spacing:.3em;text-transform:uppercase;font-style:normal;font-family:var(--sans);font-weight:500;display:block;text-align:center;margin-top:.25rem}
.intro__line{width:0;height:1px;background:var(--gold-grad);animation:grow 1.2s var(--ease) .7s forwards}
@keyframes grow{to{width:160px}}
@keyframes fadeUp{to{opacity:1;transform:none}}
.intro.is-done{pointer-events:none}

/* ---------- Cursor (desktop) ---------- */
.cursor{display:none}
@media (hover:hover) and (pointer:fine){
  .has-cursor .cursor{display:block;position:fixed;inset:0;pointer-events:none;z-index:300;mix-blend-mode:normal}
  .cursor__dot,.cursor__ring{position:fixed;left:0;top:0;border-radius:50%;transform:translate3d(-100px,-100px,0)}
  .cursor__dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--gold-400)}
  .cursor__ring{width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(201,147,107,.6);transition:width .4s var(--ease),height .4s var(--ease),margin .4s var(--ease),background-color .4s,border-color .4s}
  .cursor.is-hover .cursor__ring{width:70px;height:70px;margin:-35px 0 0 -35px;background:rgba(236,201,164,.14);border-color:rgba(236,201,164,.9)}
}

/* ---------- Barra de progresso ---------- */
.progress{position:fixed;inset:0 0 auto;height:2px;z-index:150;pointer-events:none}
.progress span{display:block;height:100%;background:var(--gold-grad);transform-origin:0 50%;transform:scaleX(0)}

/* ---------- Cabeçalho ---------- */
.header{position:fixed;inset:0 0 auto;z-index:120;height:var(--header-h);display:flex;align-items:center;gap:2rem;padding:0 var(--pad);padding-top:env(safe-area-inset-top);color:#fff7f0;transition:background-color .6s var(--ease),box-shadow .6s,height .5s var(--ease),color .4s,transform .6s var(--ease)}
.header::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;background:rgba(42,8,18,.72);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border-bottom:1px solid rgba(236,201,164,.16);transition:opacity .6s var(--ease)}
.header.is-scrolled{--header-h:64px}
.header.is-scrolled::before{opacity:1}
.header.is-hidden{transform:translateY(-110%)}
.brand{display:flex;align-items:center;gap:.7rem;line-height:1}
.brand__mark{width:38px;height:32px;color:var(--gold-300)}
.brand__text{display:flex;flex-direction:column}
.brand__name{font-family:var(--serif);font-size:1.55rem;font-style:italic;letter-spacing:.01em}
.brand__sub{font-size:.56rem;letter-spacing:.42em;text-transform:uppercase;margin-top:.28rem;color:var(--gold-300)}
.nav{margin-left:auto}
.nav ul{display:flex;gap:2.2rem;list-style:none;margin:0;padding:0}
.nav a{position:relative;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;padding:.5rem 0;opacity:.88;transition:opacity .3s}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold-grad);transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease)}
.nav a:hover,.nav a.is-current{opacity:1}
.nav a:hover::after,.nav a.is-current::after{transform:scaleX(1);transform-origin:left}
.header__cta{--h:44px;padding:0 1.4rem;font-size:.7rem}
.burger{display:none;margin-left:auto;width:48px;height:48px;border:1px solid rgba(236,201,164,.45);border-radius:50%;background:rgba(42,8,18,.25);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;position:relative}
.burger span{position:absolute;left:14px;right:14px;height:1.5px;background:#fff3ea;transition:transform .5s var(--ease),top .5s var(--ease)}
.burger span:first-child{top:19px}.burger span:last-child{top:27px}
.burger[aria-expanded="true"] span:first-child{top:23px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{top:23px;transform:rotate(-45deg)}

.menu-mobile{position:fixed;inset:0;z-index:110;background:radial-gradient(130% 80% at 80% 0%,var(--wine-700),var(--wine-950) 70%);color:#fff6ef;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--header-h) + 2rem) var(--pad) 2.5rem;clip-path:circle(0% at calc(100% - 2.6rem) 2.4rem);transition:clip-path .9s var(--ease-io);overflow:hidden}
.menu-mobile.is-open{clip-path:circle(150% at calc(100% - 2.6rem) 2.4rem)}
.menu-mobile[hidden]{display:flex;visibility:hidden}
.menu-mobile.is-open[hidden],.menu-mobile.is-open{visibility:visible}
.menu-mobile ol{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.menu-mobile a{display:flex;align-items:baseline;gap:1rem;font-family:var(--serif);font-size:clamp(2.2rem,10vw,3.4rem);line-height:1.2;opacity:0;transform:translateY(30px);transition:opacity .6s var(--ease),transform .8s var(--ease)}
.menu-mobile a small{font-family:var(--sans);font-size:.75rem;letter-spacing:.2em;color:var(--gold-300)}
.menu-mobile.is-open a{opacity:1;transform:none}
.menu-mobile.is-open li:nth-child(1) a{transition-delay:.25s}.menu-mobile.is-open li:nth-child(2) a{transition-delay:.32s}.menu-mobile.is-open li:nth-child(3) a{transition-delay:.39s}.menu-mobile.is-open li:nth-child(4) a{transition-delay:.46s}
.menu-mobile__flor{position:absolute;right:-60px;bottom:-40px;width:320px;height:270px;color:rgba(236,201,164,.12)}
.menu-mobile__foot{position:absolute;bottom:2rem;left:var(--pad);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-300);margin:0}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--wine-900);color:#fff7f0;isolation:isolate}
.hero__media{position:absolute;inset:-4% -2%;z-index:-3;will-change:transform}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:68% 42%}
.js .hero__media img{transform:scale(1.14);filter:brightness(.65) saturate(1.05);transition:transform 2.8s var(--ease),filter 2.4s var(--ease)}
.is-loaded .hero__media img{transform:scale(1);filter:none}
.hero__shade{position:absolute;inset:0;z-index:-2;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(30,5,13,.92) 0%,rgba(42,8,18,.72) 28%,rgba(58,12,27,.18) 55%,transparent 72%),
    radial-gradient(90% 70% at 70% 45%,transparent 40%,rgba(30,5,13,.55) 100%),
    linear-gradient(180deg,rgba(30,5,13,.55) 0%,transparent 22%,transparent 70%,rgba(30,5,13,.4) 100%)}
.hero__sweep{position:absolute;inset:-20%;z-index:-1;pointer-events:none;background:linear-gradient(115deg,transparent 40%,rgba(255,226,196,.13) 48%,rgba(255,240,220,.22) 50%,rgba(255,226,196,.13) 52%,transparent 60%);transform:translateX(-60%);animation:sweep 9s var(--ease-io) infinite 3s;mix-blend-mode:screen}
@keyframes sweep{0%{transform:translateX(-60%)}45%,100%{transform:translateX(60%)}}
.hero__dust{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}

.rings{position:absolute;left:44%;bottom:-16%;width:min(62vw,900px);aspect-ratio:1;z-index:-1;perspective:1400px;pointer-events:none;opacity:.6}
.rings__stage{position:absolute;inset:0;transform-style:preserve-3d;animation:ringsSpin 26s linear infinite}
.ring{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 0 18px rgba(255,214,170,.35));mix-blend-mode:screen}
.rings__stage{transform:rotateX(74deg) rotateY(-8deg)}
.ring--a{transform:translateZ(0)}
.ring--b{transform:translateZ(60px) scale(.8);opacity:.7}
.ring--c{transform:translateZ(-50px) scale(1.16);opacity:.4}
@keyframes ringsSpin{from{transform:rotateX(74deg) rotateY(-8deg) rotateZ(0)}to{transform:rotateX(74deg) rotateY(-8deg) rotateZ(360deg)}}
.hide-sm{display:inline}

.float{position:absolute;pointer-events:none;z-index:-1;will-change:transform}
.float--flor{width:clamp(70px,8vw,120px);left:46%;top:16%;opacity:.55;animation:bob 9s ease-in-out infinite}
.float--spark{width:30px;opacity:.9;animation:twinkle 4s ease-in-out infinite}
.float--spark.s1{left:58%;top:28%;width:34px}
.float--spark.s2{right:14%;top:70%;width:22px;animation-delay:1.3s}
.float--spark.s3{left:40%;bottom:22%;width:18px;animation-delay:2.4s}
@keyframes bob{0%,100%{translate:0 0;rotate:-4deg}50%{translate:0 -16px;rotate:4deg}}
@keyframes twinkle{0%,100%{opacity:.25;scale:.6}50%{opacity:1;scale:1.1}}

.hero__content{position:relative;padding:calc(var(--header-h) + 3rem) var(--pad) 7rem;max-width:min(780px,62vw)}
.hero__eyebrow{color:var(--gold-300)}
.hero__title{margin:0 0 1.6rem;font-family:var(--serif);font-weight:400;font-size:clamp(3.1rem,1.6rem + 6vw,7.4rem);line-height:.98;letter-spacing:-.025em}
.hero__title .line{display:block;overflow:hidden;padding-bottom:.08em}
.hero__title .line>span{display:inline-block}
.hero__title em{background:var(--gold-grad);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.08em;animation:goldflow 8s linear infinite}
@keyframes goldflow{to{background-position:200% 0}}
.hero__title .line--small{font-size:.36em;letter-spacing:.01em;font-style:italic;color:var(--champ-200);margin-top:.5rem;line-height:1.2}
.hero__sub{max-width:28rem;font-size:clamp(1rem,.95rem + .3vw,1.2rem);font-weight:300;color:rgba(255,241,233,.86);margin:0 0 2.4rem}
.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem 2rem}

.js .hero__eyebrow,.js .hero__sub,.js .hero__actions{opacity:0;transform:translateY(24px)}
.js .hero__title .line>span{transform:translateY(110%)}

.hero__scroll{position:absolute;left:50%;bottom:clamp(5.5rem,10vw,8rem);translate:-50% 0;display:grid;justify-items:center;gap:.6rem;font-size:.62rem;letter-spacing:.35em;text-transform:uppercase;color:var(--gold-300);z-index:2}
.hero__scroll i{width:1px;height:46px;background:linear-gradient(var(--gold-300),transparent);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:#fff;animation:drip 2.2s var(--ease-io) infinite}
@keyframes drip{to{top:110%}}

.hero__wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:clamp(70px,11vw,170px);z-index:1;pointer-events:none}
.hero__wave .wave-back{animation:waveA 12s ease-in-out infinite alternate;transform-origin:center}
.hero__wave .wave-line{stroke-dasharray:2200;stroke-dashoffset:2200;animation:drawWave 3s var(--ease) 1.6s forwards}
@keyframes waveA{to{transform:translateX(-3%) scaleY(1.15)}}
@keyframes drawWave{to{stroke-dashoffset:0}}

/* =========================================================
   MARQUEE
   ========================================================= */
.marquee{background:var(--off-2);overflow:hidden;padding:1.4rem 0 1.2rem;border-bottom:1px solid var(--line)}
.marquee__track{display:flex;align-items:center;gap:2.4rem;width:max-content;animation:marquee 38s linear infinite}
.marquee span{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,1rem + 1.4vw,2.2rem);color:var(--wine-700);white-space:nowrap}
.marquee svg{width:16px;height:16px;color:var(--gold-500);flex:none}
@keyframes marquee{to{transform:translateX(-50%)}}

/* =========================================================
   SERVIÇOS
   ========================================================= */
.services{position:relative;background:linear-gradient(180deg,var(--off-2) 0%,var(--off) 40%,var(--rose-100) 100%);padding:clamp(4.5rem,9vw,8rem) 0 clamp(3rem,6vw,5rem);overflow:hidden}
.services::before{content:"";position:absolute;width:60vw;aspect-ratio:1;right:-20vw;top:-10vw;background:radial-gradient(circle,rgba(242,207,216,.8),transparent 65%);pointer-events:none}
.services__pin{position:relative}
.services__track{display:flex;gap:clamp(1.2rem,2.4vw,2.4rem);padding:0 var(--pad) 2rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.services__track::-webkit-scrollbar{display:none}
.services__intro{flex:0 0 min(440px,82vw);scroll-snap-align:start;align-self:center;padding-right:1rem}
.services__hint{display:inline-flex;align-items:center;gap:.6rem;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-600);margin:0}
.services__hint svg{width:22px;height:22px;animation:nudge 2s var(--ease-io) infinite}
@keyframes nudge{50%{transform:translateX(8px)}}

.card{flex:0 0 clamp(290px,80vw,390px);scroll-snap-align:center;perspective:1100px}
.card__inner{position:relative;height:100%;background:linear-gradient(160deg,rgba(255,255,255,.92),rgba(251,243,238,.88));border-radius:var(--radius);padding:12px;box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 30px 60px -30px rgba(90,22,48,.35),0 10px 22px -16px rgba(90,22,48,.25);transform-style:preserve-3d;transition:transform .8s var(--ease),box-shadow .8s var(--ease)}
.card__inner::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(140deg,rgba(236,201,164,.9),rgba(255,255,255,.2) 40%,rgba(201,147,107,.6));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.card:hover .card__inner{box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 44px 80px -30px rgba(90,22,48,.45),0 0 0 1px rgba(236,201,164,.4)}
.card__media{position:relative;margin:0;aspect-ratio:4/3.3;border-radius:calc(var(--radius) - 6px) calc(var(--radius) - 6px) 120px 120px / calc(var(--radius) - 6px) calc(var(--radius) - 6px) 60px 60px;overflow:hidden;transform:translateZ(30px);background:var(--champ-200)}
.card__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.4s var(--ease);filter:saturate(1.02) contrast(1.02)}
.card:hover .card__media img{transform:scale(1.14)}
.card__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(58,12,27,.28));pointer-events:none}
.card__glare{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(circle at var(--gx,50%) var(--gy,0%),rgba(255,246,230,.55),transparent 45%);opacity:0;transition:opacity .5s;mix-blend-mode:soft-light}
.card:hover .card__glare{opacity:1}
.js .card__media{clip-path:inset(0 0 100% 0)}
.js .card.is-in .card__media,.no-anim .card__media{clip-path:inset(0 0 0 0);transition:clip-path 1.4s var(--ease-io)}
.card__body{padding:1.4rem 1rem 1.1rem;transform:translateZ(20px)}
.card__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
.card__num{font-family:var(--serif);font-style:italic;font-size:1.05rem;color:var(--gold-600)}
.card__icon{width:40px;height:40px;color:var(--gold-500)}
.card h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,1.3rem + .6vw,1.85rem);line-height:1.15;color:var(--wine-800);margin:0 0 .6rem}
.card p{margin:0 0 1.3rem;color:var(--muted);font-size:.95rem;line-height:1.6}
.card__cta{display:inline-flex;align-items:center;gap:.6rem;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--wine-700);padding:.5rem 0;border-bottom:1px solid var(--line);transition:gap .5s var(--ease),color .3s,border-color .3s}
.card__cta svg{width:16px;height:16px}
.card__cta:hover{gap:1rem;color:var(--rose-500);border-color:var(--rose-400)}

.services__foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 var(--pad);margin-top:.6rem}
.services__dots{display:flex;gap:.5rem}
.services__dots i{width:22px;height:2px;border-radius:2px;background:var(--line);transition:background .4s,width .5s var(--ease)}
.services__dots i.is-on{background:var(--gold-500);width:40px}

/* Desktop: faixa horizontal fixada (GSAP) */
@media (min-width:1024px){
  .is-hscroll .services{padding-top:0;padding-bottom:0}
  .is-hscroll .services__pin{height:100vh;display:flex;align-items:center}
  .is-hscroll .services__track{overflow:visible;scroll-snap-type:none;padding-top:calc(var(--header-h) + 1rem);padding-bottom:3rem;will-change:transform}
  .is-hscroll .services__foot{position:absolute;left:0;right:0;bottom:2rem}
  .is-hscroll .card{flex-basis:clamp(330px,27vw,410px)}
  .is-hscroll .services__intro{flex-basis:min(480px,34vw)}
  .is-hscroll .services__hint span::after{content:" para explorar"}
}

/* =========================================================
   EXPERIÊNCIA (frases progressivas + seda WebGL)
   ========================================================= */
.experience{position:relative;background:var(--wine-900);color:#fff7f0}
.js .experience{height:340vh}
.experience__sticky{position:relative;min-height:100vh;overflow:hidden;isolation:isolate}
.js .experience__sticky{position:sticky;top:0;height:100vh;height:100svh;min-height:0}
.silk{position:absolute;inset:0;width:100%;height:100%;z-index:-3;background:
  radial-gradient(80% 60% at 30% 30%,rgba(201,113,139,.55),transparent 60%),
  radial-gradient(70% 70% at 80% 80%,rgba(116,37,62,.9),transparent 70%),
  linear-gradient(135deg,var(--wine-700),var(--wine-950))}
.experience__veil{position:absolute;inset:0;z-index:-2;background:radial-gradient(70% 70% at 50% 50%,rgba(30,5,13,.25),rgba(30,5,13,.75));pointer-events:none}
.layers{position:absolute;inset:0;z-index:-1;pointer-events:none}
.layer{position:absolute;margin:0;will-change:transform}
.layer img{width:100%;height:100%;object-fit:cover}
.layer--1{width:clamp(180px,24vw,360px);aspect-ratio:3/4;left:-3vw;top:12%;border-radius:200px 200px 24px 24px;overflow:hidden;opacity:.55;filter:saturate(.9)}
.layer--2{width:clamp(130px,17vw,260px);aspect-ratio:4/5;right:5vw;top:9%;border-radius:20px;overflow:hidden;opacity:.7;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);outline:1px solid rgba(236,201,164,.35);outline-offset:8px}
.layer--3{width:clamp(140px,18vw,280px);aspect-ratio:1;right:16vw;bottom:8%;border-radius:50%;overflow:hidden;opacity:.6;outline:1px solid rgba(236,201,164,.35);outline-offset:10px}
.layer--ring{width:clamp(220px,30vw,460px);left:8vw;bottom:-8%;opacity:.55;mix-blend-mode:screen;animation:spinSlow 40s linear infinite}
.layer--flor{width:clamp(80px,9vw,140px);right:44%;top:10%;opacity:.5}
@keyframes spinSlow{to{rotate:360deg}}

.phrases{position:relative;height:100%;display:grid;place-items:center;padding:0 var(--pad)}
.phrase{grid-area:1/1;margin:0;max-width:min(980px,90vw);text-align:center;opacity:0;visibility:hidden;transition:opacity 1s var(--ease),visibility 0s 1s}
.phrase.is-active{opacity:1;visibility:visible;transition:opacity 1s var(--ease),visibility 0s}
.phrase .eyebrow{justify-content:center}
.phrase__text{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,1.1rem + 4vw,4.6rem);line-height:1.12;letter-spacing:-.015em;margin:0;text-wrap:balance}
.phrase__text em{color:var(--gold-300)}
.phrase__text em .w{background:linear-gradient(115deg,#d9ab82,#fff2d9 50%,#e2b48a);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.04em}
.phrase__text .w{display:inline-block;opacity:.08;filter:blur(8px);transform:translateY(.25em);transition:opacity .9s var(--ease),filter .9s var(--ease),transform .9s var(--ease)}
.phrase.is-active .w{opacity:1;filter:blur(0);transform:none}
.experience__meter{position:absolute;right:var(--pad);top:50%;translate:0 -50%;display:grid;gap:.7rem}
.experience__meter i{width:2px;height:34px;background:rgba(236,201,164,.25);border-radius:2px;transition:background .5s,height .5s var(--ease)}
.experience__meter i.is-on{background:var(--gold-300);height:58px}
/* Sem JS: frases empilhadas */
.no-js .experience__sticky{padding:6rem 0}
.no-js .phrases{gap:4rem}
.no-js .phrase{grid-area:auto;opacity:1;visibility:visible}

/* =========================================================
   LARISSA
   ========================================================= */
.about{position:relative;background:var(--off);padding:clamp(5rem,10vw,9rem) var(--pad);overflow:hidden;border-radius:clamp(28px,4vw,56px) clamp(28px,4vw,56px) 0 0;margin-top:-56px;z-index:2;box-shadow:0 -30px 60px -30px rgba(30,5,13,.6)}
.about__bg{position:absolute;inset:0;z-index:-1;background:
  radial-gradient(50% 50% at 15% 30%,rgba(242,207,216,.75),transparent 70%),
  radial-gradient(40% 40% at 90% 85%,rgba(233,207,183,.6),transparent 70%),
  url(../img/seda-rosa.webp) center/cover no-repeat;opacity:.9}
.about__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(251,246,241,.86),rgba(251,246,241,.94))}
.about__grid{position:relative;max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(3rem,7vw,7rem);align-items:center}
.about__visual{position:relative;max-width:500px;justify-self:center;width:100%}
.portrait{position:relative;margin:0;z-index:1}
.portrait__frame{position:relative;aspect-ratio:4/5;border-radius:999px 999px 28px 28px;overflow:hidden;box-shadow:0 50px 90px -40px rgba(90,22,48,.6),0 0 0 1px rgba(236,201,164,.6);background:var(--champ-200)}
.portrait__frame::after{content:"";position:absolute;inset:10px;border-radius:999px 999px 20px 20px;border:1px solid rgba(255,242,217,.7);pointer-events:none}
.portrait__frame img{width:100%;height:118%;object-fit:cover;object-position:50% 20%;will-change:transform}
.js .portrait__frame{clip-path:inset(100% 0 0 0 round 999px 999px 28px 28px)}
.js .portrait.is-in .portrait__frame{clip-path:inset(0 0 0 0 round 999px 999px 28px 28px);transition:clip-path 1.8s var(--ease-io)}
.portrait figcaption{margin-top:1.2rem;text-align:center;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted)}
.portrait figcaption span{display:block;font-family:var(--serif);font-style:italic;text-transform:none;letter-spacing:0;font-size:1.5rem;color:var(--wine-700);margin-bottom:.15rem}
.portrait-rings{position:absolute;inset:-14% -18% 6%;perspective:1000px;pointer-events:none;z-index:0}
.pring{position:absolute;inset:0;width:100%;height:100%;opacity:.8}
.pring--a{animation:pring 18s linear infinite}
.pring--b{animation:pring 26s linear infinite reverse;opacity:.45;scale:.86}
@keyframes pring{from{transform:rotateX(68deg) rotateZ(0)}to{transform:rotateX(68deg) rotateZ(360deg)}}
.about__flor{position:absolute;width:110px;left:-36px;bottom:16%;z-index:2;filter:drop-shadow(0 8px 16px rgba(169,116,79,.35));animation:bob 10s ease-in-out infinite}
.about__spark{position:absolute;width:40px;right:2%;top:8%;z-index:2;animation:twinkle 3.6s ease-in-out infinite}
.about__text p{color:var(--muted);max-width:34rem;margin:0 0 1.2rem}
.signature{font-family:var(--serif);font-style:italic;font-size:2.6rem!important;line-height:1;color:var(--rose-500)!important;margin:1.6rem 0 2rem!important;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent!important}

/* =========================================================
   AGENDAMENTO
   ========================================================= */
.booking{position:relative;background:var(--wine-900);color:#fff7f0;padding:clamp(5rem,10vw,9rem) var(--pad);overflow:hidden;isolation:isolate}
.booking__veil{position:absolute;inset:0;z-index:-2;background:linear-gradient(100deg,rgba(30,5,13,.86) 0%,rgba(30,5,13,.55) 50%,rgba(30,5,13,.7) 100%);pointer-events:none}
.booking .silk{z-index:-3}
.booking__grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1fr minmax(0,560px);gap:clamp(3rem,6vw,6rem);align-items:start}
.booking__intro{position:sticky;top:calc(var(--header-h) + 2rem)}
.steps{list-style:none;margin:2.2rem 0 0;padding:0;display:grid;gap:1.3rem}
.steps li{display:flex;gap:1.1rem;align-items:flex-start;color:rgba(255,240,233,.75);font-size:.95rem}
.steps li span{flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-style:italic;color:var(--gold-300);border:1px solid rgba(236,201,164,.45);background:rgba(255,255,255,.04)}
.steps strong{display:block;color:#fff6ef;font-weight:500;letter-spacing:.02em}

.form{position:relative;padding:clamp(1.6rem,3vw,2.6rem);border-radius:28px;background:linear-gradient(160deg,rgba(255,248,242,.13),rgba(255,248,242,.05));backdrop-filter:blur(22px) saturate(1.2);-webkit-backdrop-filter:blur(22px) saturate(1.2);box-shadow:0 40px 90px -40px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.18)}
.form::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(140deg,rgba(236,201,164,.8),rgba(255,255,255,.08) 40%,rgba(201,147,107,.5));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.form__head{display:flex;align-items:center;gap:.7rem;margin-bottom:1.6rem;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-300)}
.form__head p{margin:0}
.form__head svg{width:16px;height:16px}
.field{position:relative;margin-bottom:1.15rem}
.field input,.field select,.field textarea{width:100%;min-height:60px;padding:1.55rem 1.1rem .55rem;border-radius:14px;border:1px solid rgba(236,201,164,.28);background:rgba(20,3,9,.35);color:#fff8f2;font-size:1rem;outline:none;transition:border-color .3s,background-color .3s,box-shadow .3s;-webkit-appearance:none;appearance:none}
.field textarea{resize:vertical;min-height:100px;line-height:1.5}
.field select{cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--gold-300) 50%),linear-gradient(135deg,var(--gold-300) 50%,transparent 50%);background-position:calc(100% - 22px) 55%,calc(100% - 16px) 55%;background-size:6px 6px;background-repeat:no-repeat;padding-right:2.6rem}
.field select option{color:var(--ink);background:#fff}
.field input::-webkit-calendar-picker-indicator{filter:invert(.85) sepia(.6) saturate(3) hue-rotate(-20deg);cursor:pointer;opacity:.85}
.field label{position:absolute;left:1.1rem;top:1.15rem;font-size:.98rem;color:rgba(255,240,233,.6);pointer-events:none;transform-origin:0 0;transition:transform .4s var(--ease),color .3s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold-400);background:rgba(20,3,9,.5);box-shadow:0 0 0 4px rgba(217,171,130,.15)}
.field input:focus+label,.field input:not(:placeholder-shown)+label,.field textarea:focus+label,.field textarea:not(:placeholder-shown)+label,.field--select label,.field--fixed label{transform:translateY(-.7rem) scale(.74);color:var(--gold-300);letter-spacing:.06em}
.field select:invalid{color:rgba(255,240,233,.55)}
.field.has-error input,.field.has-error select{border-color:#f29db4;box-shadow:0 0 0 4px rgba(242,157,180,.12)}
.field__error{display:block;min-height:0;font-size:.78rem;color:#ffc3d1;margin-top:.35rem;padding-left:.3rem}
.field__error:empty{display:none}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.check{display:flex;gap:.9rem;align-items:flex-start;font-size:.86rem;line-height:1.5;color:rgba(255,240,233,.78);cursor:pointer;margin:.4rem 0 .4rem}
.check input{position:absolute;opacity:0;width:1px;height:1px}
.check__box{flex:none;width:22px;height:22px;border-radius:7px;border:1px solid rgba(236,201,164,.6);margin-top:1px;display:grid;place-items:center;transition:background .3s,border-color .3s}
.check__box::after{content:"";width:10px;height:6px;border:2px solid var(--wine-900);border-top:0;border-right:0;rotate:-45deg;translate:0 -1px;scale:0;transition:scale .3s var(--ease)}
.check input:checked+.check__box{background:var(--gold-grad);border-color:transparent}
.check input:checked+.check__box::after{scale:1}
.check input:focus-visible+.check__box{outline:2px solid var(--gold-400);outline-offset:3px}
.field__error--check{margin:0 0 1rem 2.2rem}
.form .btn--block{margin-top:1.4rem}
.form__fine{font-size:.76rem;color:rgba(255,240,233,.55);text-align:center;margin:1rem 0 0}

/* =========================================================
   MODAL
   ========================================================= */
.modal{position:fixed;inset:0;z-index:400;display:grid;place-items:center;padding:1.2rem}
.modal[hidden]{display:none}
.modal__backdrop{position:absolute;inset:0;background:rgba(30,5,13,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:fadeIn .5s var(--ease)}
.modal__card{position:relative;width:min(540px,100%);max-height:calc(100svh - 2.4rem);overflow:auto;background:var(--off);color:var(--ink);border-radius:28px;padding:2.4rem clamp(1.4rem,4vw,2.4rem) 2rem;box-shadow:0 40px 100px -30px rgba(0,0,0,.6);animation:pop .7s var(--ease)}
.modal__flor{width:64px;height:54px;color:var(--gold-500);margin:0 auto 1rem}
.modal h2{font-family:var(--serif);font-weight:400;font-size:1.9rem;text-align:center;color:var(--wine-800);margin:0 0 .8rem}
.modal p{color:var(--muted);text-align:center;font-size:.95rem;margin:0 0 1.2rem}
.modal__msg{white-space:pre-wrap;font-family:var(--sans);font-size:.85rem;line-height:1.55;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem 1.1rem;max-height:200px;overflow:auto;margin:0 0 1.4rem;color:var(--ink)}
.modal__actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}
.modal__actions .btn{--h:50px;font-size:.7rem}
.modal__close{position:absolute;top:.8rem;right:.9rem;width:42px;height:42px;border-radius:50%;border:0;background:transparent;font-size:1.8rem;line-height:1;color:var(--muted);cursor:pointer}
.modal__close:hover{background:var(--rose-100)}
@keyframes fadeIn{from{opacity:0}}
@keyframes pop{from{opacity:0;transform:translateY(30px) scale(.96)}}

/* =========================================================
   RODAPÉ + FAB
   ========================================================= */
.footer{background:var(--wine-950);color:rgba(255,240,233,.72);padding:clamp(4rem,7vw,6rem) var(--pad) 2rem;font-size:.92rem;position:relative;overflow:hidden}
.footer::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:var(--gold-grad);opacity:.6}
.footer__top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;padding-bottom:3rem;border-bottom:1px solid rgba(236,201,164,.14);max-width:1240px;margin:0 auto}
.brand--footer{color:#fff6ef}
.brand--footer .brand__mark{width:54px;height:46px}
.brand--footer .brand__name{font-size:2.2rem}
.footer__quote{font-family:var(--serif);font-style:italic;font-size:clamp(1.5rem,1.2rem + 1.5vw,2.6rem);margin:0;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.footer__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;padding:3rem 0;max-width:1240px;margin:0 auto}
.footer h3{font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-300);font-weight:500;margin:0 0 1rem}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.footer a{transition:color .3s}
.footer a:hover{color:var(--gold-300)}
.footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem 2rem;padding-top:2rem;border-top:1px solid rgba(236,201,164,.14);font-size:.75rem;color:rgba(255,240,233,.45);max-width:1240px;margin:0 auto}
.footer__bottom p{margin:0}

.fab{position:fixed;right:clamp(1rem,2.5vw,2rem);bottom:calc(clamp(1rem,2.5vw,2rem) + env(safe-area-inset-bottom));z-index:100;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;color:var(--wine-900);background:var(--gold-grad);box-shadow:0 14px 34px -10px rgba(58,12,27,.55),inset 0 1px 0 rgba(255,255,255,.6);transition:transform .5s var(--ease),opacity .5s;opacity:0;transform:translateY(20px) scale(.8);pointer-events:none}
.fab.is-visible{opacity:1;transform:none;pointer-events:auto}
.fab:hover{transform:scale(1.08)}
.fab svg{width:28px;height:28px}
.fab::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(217,171,130,.6);animation:pulse 2.8s var(--ease) infinite}
@keyframes pulse{from{transform:scale(.9);opacity:1}to{transform:scale(1.35);opacity:0}}

/* ---------- Revelação genérica ---------- */
.js .reveal{opacity:0;transform:translateY(34px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.js .reveal.is-in{opacity:1;transform:none}

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width:1100px){
  .nav{display:none}
  .header__cta{display:none}
  .burger{display:block}
}
@media (max-width:1023px){
  .about__grid{grid-template-columns:1fr}
  .about__visual{max-width:440px}
  .booking__grid{grid-template-columns:1fr}
  .booking__intro{position:static}
  .experience__meter{right:.7rem}
  .experience__meter i{height:22px}.experience__meter i.is-on{height:38px}
}
@media (max-width:759px){
  :root{--header-h:66px;--radius:20px}
  .hero{align-items:flex-end}
  .hero__media{inset:0 0 auto 0;height:68vh;-webkit-mask-image:linear-gradient(#000 60%,transparent 98%);mask-image:linear-gradient(#000 60%,transparent 98%)}
  .hero__media img{object-position:50% 30%}
  .hide-sm{display:none}
  .hero__shade{background:
    linear-gradient(180deg,rgba(30,5,13,.5) 0%,rgba(30,5,13,0) 18%,rgba(30,5,13,0) 34%,rgba(42,8,18,.75) 54%,var(--wine-900) 68%)}
  .hero__content{max-width:none;padding-bottom:clamp(5.5rem,20vw,7rem)}
  .hero__title{font-size:clamp(2.9rem,13vw,4.2rem)}
  .hero__title .line--small{font-size:.42em}
  .hero__sub{font-size:1rem;margin-bottom:1.8rem}
  .hero__actions{gap:.9rem 1.4rem}
  .hero__actions .btn--gold{width:100%}
  .hero__scroll{display:none}
  .rings{width:120vw;left:-10vw;bottom:auto;top:12vh;opacity:.35}
  .float--flor{left:auto;right:8%;top:14%;width:62px}
  .float--spark.s1{left:70%;top:36%}
  .float--spark.s3{display:none}
  .layer--1{left:-20vw;top:6%;opacity:.4}
  .layer--2{right:-6vw;top:8%;opacity:.5}
  .layer--3{right:auto;left:8vw;bottom:6%;opacity:.45}
  .layer--flor{right:10%;top:auto;bottom:22%}
  .phrase__text{font-size:clamp(1.85rem,8.4vw,2.6rem)}
  .field-row{grid-template-columns:1fr;gap:0}
  .footer__cols{grid-template-columns:1fr 1fr}
  .footer__cols>div:last-child{grid-column:1/-1}
  .about{margin-top:-36px}
  .about__flor{width:80px;left:-10px}
  .modal__actions .btn{width:100%}
}


/* =========================================================
   SEGUNDA ABERTURA — MANIFESTO DO CUIDADO
   ========================================================= */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.manifesto{position:relative;background:#f8efe8;color:var(--wine-800)}
.js .manifesto{height:300vh}
.manifesto__sticky{position:relative;min-height:100vh;overflow:hidden;isolation:isolate;display:grid;place-items:center}
.js .manifesto__sticky{position:sticky;top:0;height:100vh;height:100svh;min-height:0}
.silk--pearl{background:radial-gradient(70% 60% at 30% 30%,#fff7f1,transparent 60%),radial-gradient(70% 70% at 80% 80%,#efd3d4,transparent 70%),linear-gradient(135deg,#f8efe8,#ecd5cc)}
.manifesto__veil{position:absolute;inset:0;z-index:-2;pointer-events:none;background:
  radial-gradient(60% 55% at 50% 50%,rgba(255,250,246,.0),rgba(248,239,232,.55) 100%),
  linear-gradient(180deg,rgba(248,239,232,.9) 0%,rgba(248,239,232,0) 16%,rgba(248,239,232,0) 84%,rgba(246,236,228,.95) 100%)}

.mega{position:absolute;inset:0;pointer-events:none}
.mega__line{position:absolute;left:0;right:0;margin:0;white-space:nowrap;font-family:var(--serif);font-weight:400;font-size:clamp(4rem,13vw,13rem);line-height:.9;letter-spacing:-.035em;will-change:transform}
.mega__line--a{z-index:1;top:11vh;color:var(--wine-800);padding-left:6vw}
.mega__line--b{z-index:3;filter:drop-shadow(0 6px 22px rgba(58,12,27,.45));top:50vh;text-align:right;padding-right:4vw}
.mega__line--b em{background:linear-gradient(110deg,#a9744f,#d98fa4 35%,#e9c39d 60%,#a9744f);-webkit-background-clip:text;background-clip:text;color:transparent}

.portal{position:relative;z-index:2;margin-top:-8vh;width:min(44vmin,420px);aspect-ratio:1;will-change:transform}
.portal__window{position:absolute;inset:0;border-radius:50%;overflow:hidden;box-shadow:0 40px 80px -30px rgba(90,22,48,.55),0 0 0 1px rgba(236,201,164,.8),0 0 0 10px rgba(255,248,242,.55),0 0 0 11px rgba(201,147,107,.45)}
.portal__window img{width:100%;height:100%;object-fit:cover;transform:scale(1.25);will-change:transform}
.portal__window::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 30% 25%,rgba(255,246,236,.35),transparent 45%),radial-gradient(circle,transparent 60%,rgba(58,12,27,.25));pointer-events:none}
.portal__rings{position:absolute;inset:-34%;perspective:1100px;pointer-events:none}
.portal__ring{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 6px 14px rgba(169,116,79,.35))}
.portal__ring--a{transform:rotateX(70deg) rotateZ(var(--rz,0deg))}
.portal__ring--b{transform:rotateX(70deg) rotateY(30deg) rotateZ(calc(var(--rz,0deg) * -1.4)) scale(.84);opacity:.6}
.portal__spark{position:absolute;width:42px;right:-6%;top:4%;animation:twinkle 3.4s ease-in-out infinite}
.portal__flor{position:absolute;width:76px;left:-16%;bottom:6%;opacity:.85;animation:bob 9s ease-in-out infinite;filter:drop-shadow(0 6px 12px rgba(169,116,79,.3))}

.manifesto__captions{position:absolute;left:50%;bottom:clamp(5.5rem,12vh,8rem);translate:-50% 0;width:min(820px,90vw);justify-items:center;display:grid;text-align:center;z-index:3}
.mcap{grid-area:1/1;margin:0;padding:.7em 1.4em;border-radius:999px;background:rgba(255,249,245,.62);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 20px 40px -24px rgba(90,22,48,.45),inset 0 0 0 1px rgba(236,201,164,.65);font-family:var(--serif);font-size:clamp(1.1rem,.95rem + .8vw,1.7rem);line-height:1.3;color:var(--wine-800);opacity:0;transform:translateY(18px);filter:blur(6px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}
.mcap em{color:var(--wine-600)}
.mcap.is-active{opacity:1;transform:none;filter:none}
.manifesto__foot{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(1.6rem,4vh,2.6rem);display:flex;align-items:center;justify-content:space-between;z-index:3}
.manifesto__foot .btn{--h:50px;font-size:.7rem}
.manifesto__meter{display:flex;gap:.5rem}
.manifesto__meter i{width:22px;height:2px;border-radius:2px;background:rgba(169,116,79,.3);transition:width .5s var(--ease),background .4s}
.manifesto__meter i.is-on{width:46px;background:var(--gold-500)}
.no-js .manifesto__sticky{padding:6rem 0 10rem}
.no-js .mcap{position:static;opacity:1;transform:none;filter:none}

@media (max-width:759px){
  .mega__line{font-size:clamp(3rem,17vw,5.4rem)}
  .mega__line--a{top:15vh}.mega__line--b{top:57vh}
  .mega__line--a{padding-left:5vw}
  .portal{width:60vw;margin-top:-10vh}
  .manifesto__captions{bottom:6.6rem}
  .mcap{font-size:1.08rem;border-radius:22px;padding:.8em 1.1em}
  .manifesto__foot{justify-content:center}
  .manifesto__meter{display:none}
  .portal__flor{width:56px;left:-10%}
}
@media (prefers-reduced-motion:reduce){
  .js .manifesto{height:auto}
  .js .manifesto__sticky{position:relative;height:auto;min-height:100vh;padding:6rem 0 10rem}
  .manifesto__captions{position:relative;left:auto;bottom:auto;translate:none;gap:1rem;margin-top:2rem}
  .mega__line{position:relative;top:auto}
  .mcap{grid-area:auto;opacity:1;transform:none;filter:none}
}

/* Tablets em retrato: hero com composição vertical */
@media (min-width:760px) and (max-width:1100px) and (orientation:portrait){
  .hero{align-items:flex-end}
  .hero__media{inset:0 0 auto 0;height:70vh;-webkit-mask-image:linear-gradient(#000 60%,transparent 98%);mask-image:linear-gradient(#000 60%,transparent 98%)}
  .hero__media img{object-position:50% 30%}
  .hero__shade{background:linear-gradient(180deg,rgba(30,5,13,.5) 0%,rgba(30,5,13,0) 18%,rgba(30,5,13,0) 38%,rgba(42,8,18,.75) 56%,var(--wine-900) 70%)}
  .hero__content{max-width:640px;padding-bottom:8rem}
  .hero__title{font-size:clamp(4rem,10vw,6rem)}
  .rings{width:110vw;left:-5vw;bottom:auto;top:14vh;opacity:.4}
  .float--flor{left:auto;right:10%;top:12%}
  .hero__scroll{display:none}
}

/* =========================================================
   MOVIMENTO REDUZIDO
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .js .intro{display:none}
  .js .hero__media img{transform:none;filter:none}
  .js .hero__eyebrow,.js .hero__sub,.js .hero__actions,.js .reveal{opacity:1;transform:none}
  .js .hero__title .line>span{transform:none}
  .js .card__media,.js .portrait__frame{clip-path:none}
  .hero__sweep,.float--spark{display:none}
  .js .experience{height:auto}
  .js .experience__sticky{position:relative;height:auto;padding:6rem 0}
  .phrases{gap:4rem}
  .phrase{grid-area:auto;opacity:1;visibility:visible}
  .phrase__text .w{opacity:1;filter:none;transform:none}
  .experience__meter{display:none}
  .marquee__track{animation:none}
}
