.elementor-466 .elementor-element.elementor-element-b841190{--display:flex;}.elementor-466 .elementor-element.elementor-element-30998ef{width:100%;max-width:100%;}.elementor-466 .elementor-element.elementor-element-30998ef > .elementor-widget-container{margin:0px -350px 0px -350px;padding:0px 0px 0px 0px;}.elementor-466 .elementor-element.elementor-element-30998ef.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-466 .elementor-element.elementor-element-43c2c2d{--display:flex;}.elementor-466 .elementor-element.elementor-element-ede52d8{--display:flex;}@media(max-width:1024px){.elementor-466 .elementor-element.elementor-element-30998ef > .elementor-widget-container{margin:0px 0px 0px 0px;}}@media(max-width:767px){.elementor-466 .elementor-element.elementor-element-30998ef > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}}/* Start custom CSS for html, class: .elementor-element-30998ef */:root{
  /* — Marca ZH+ (amostradas do site oficial) — */
  --teal:            #229494;
  --teal-bright:     #2BC9C9;
  --teal-deep:       #0F5C5C;
  --teal-abyss:      #073E3E;
  --mint:            #00DFC2;
  --cyan:            #90F4F4;
  --lime:            #B2FE02;
  --butter:          #F1EE73;
  --gold:            #D5D123;

  /* — Neutros quentes — */
  --ink:             #121716;
  --ink-soft:        #333333;
  --ink-mute:        #5B6664;
  --cream:           #FBFAF4;
  --cream-2:         #F4F2E9;
  --paper:           #FFFFFF;
  --line:            color-mix(in srgb, var(--teal-deep) 12%, transparent);
  --line-strong:     color-mix(in srgb, var(--teal-deep) 22%, transparent);

  /* — Tipografia — */
  --font-display: 'Outfit', 'Usual', 'Poppins', system-ui, sans-serif;
  --font-body:    'Poppins', 'Outfit', system-ui, sans-serif;

  --t-xs:   clamp(.68rem, .66rem + .1vw, .74rem);
  --t-sm:   clamp(.8rem, .78rem + .12vw, .88rem);
  --t-base: clamp(.95rem, .9rem + .22vw, 1.06rem);
  --t-lg:   clamp(1.1rem, 1rem + .45vw, 1.32rem);
  --t-xl:   clamp(1.35rem, 1.15rem + .9vw, 1.85rem);
  --t-2xl:  clamp(1.8rem, 1.35rem + 2vw, 3rem);
  --t-3xl:  clamp(2.4rem, 1.5rem + 4vw, 5rem);
  --t-4xl:  clamp(3rem, 1.4rem + 7vw, 8.5rem);

  /* — Ritmo espacial — */
  --gut: clamp(1.15rem, 4vw, 2.5rem);
  --sec: clamp(5.5rem, 11vw, 10.5rem);
  --shell: 1220px;

  /* — Raios concêntricos — */
  --r-shell: 2.25rem;
  --r-core:  1.75rem;
  --r-sm:    1rem;
  --r-pill:  999px;

  /* — Sombras difusas e quentes (nunca duras) — */
  --sh-1: 0 1px 2px rgba(12,52,50,.04), 0 8px 24px -12px rgba(12,52,50,.14);
  --sh-2: 0 2px 4px rgba(12,52,50,.05), 0 24px 56px -28px rgba(12,52,50,.30);
  --sh-3: 0 4px 8px rgba(12,52,50,.06), 0 48px 100px -40px rgba(12,52,50,.42);
  --sh-teal: 0 20px 46px -22px color-mix(in srgb, var(--teal) 65%, transparent);
  --inner-lite: inset 0 1px 1px rgba(255,255,255,.7);
  --inner-dark: inset 0 1px 1px rgba(255,255,255,.14);

  /* — Curvas de motion (nunca ease-in-out padrão) — */
  --out:    cubic-bezier(.23,1,.32,1);
  --inout:  cubic-bezier(.77,0,.175,1);
  --drawer: cubic-bezier(.32,.72,0,1);
  --spring: cubic-bezier(.34,1.56,.64,1);

  --focus: 0 0 0 3px var(--cream), 0 0 0 6px color-mix(in srgb, var(--teal) 55%, transparent);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }

body{
  margin:0;
  font-family:var(--font-body);
  font-size:var(--t-base);
  line-height:1.65;
  color:var(--ink-soft);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.is-locked{overflow:hidden}

h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);margin:0;line-height:1.02;letter-spacing:-.035em;font-weight:600}
p{margin:0}
img{max-width:100%;display:block}
/* Ícones via <use> não carregam viewBox próprio: largura E altura sempre explícitas */
svg{display:block;width:1em;height:1em;flex:none}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:.6rem}

/* — Grão de filme fixo (nunca em container que rola) — */
.grain{
  position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.032;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");
}

.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:var(--gut)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ============================================================
   TIPOGRAFIA EDITORIAL
   ============================================================ */
.eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--font-display);
  font-size:var(--t-xs);font-weight:600;text-transform:uppercase;letter-spacing:.2em;
  padding:.45rem .9rem .45rem .65rem;border-radius:var(--r-pill);
  background:color-mix(in srgb, var(--teal) 9%, transparent);
  color:var(--teal-deep);
  border:1px solid color-mix(in srgb, var(--teal) 18%, transparent);
}
.eyebrow.on-dark{background:rgba(255,255,255,.09);color:var(--cyan);border-color:rgba(255,255,255,.16)}
.eyebrow .spark{width:.85em;height:.85em;flex:none}

.h-display{font-size:var(--t-3xl);font-weight:600;letter-spacing:-.045em}
.h-sec{font-size:var(--t-2xl);font-weight:600;letter-spacing:-.04em}
.lede{font-size:var(--t-lg);color:var(--ink-mute);font-weight:300;line-height:1.55;max-width:56ch}
.ital{font-family:var(--font-display);font-style:italic;font-weight:300}

/* Realce de texto com traço orgânico */
.mark{position:relative;display:inline-block;color:var(--teal-deep)}
.mark::after{
  content:'';position:absolute;left:-.08em;right:-.08em;bottom:.06em;height:.36em;z-index:-1;
  background:linear-gradient(100deg, var(--butter), var(--lime));
  border-radius:.4em;transform:scaleX(0);transform-origin:left;
  transition:transform 900ms var(--out) 240ms;
}
.reveal.in .mark::after, .in .mark::after{transform:scaleX(1)}

/* ============================================================
   BOTÕES — arquitetura ilha / botão-dentro-de-botão
   ============================================================ */
.btn{
  --bg: var(--teal-deep); --fg: #fff; --nest: rgba(255,255,255,.16);
  display:inline-flex;align-items:center;gap:.85rem;
  padding:.55rem .55rem .55rem 1.55rem;
  background:var(--bg);color:var(--fg);
  border:0;border-radius:var(--r-pill);cursor:pointer;
  font-family:var(--font-display);font-weight:600;font-size:var(--t-base);letter-spacing:-.015em;
  box-shadow:var(--sh-teal), var(--inner-dark);
  transition:transform 220ms var(--out), box-shadow 320ms var(--out), background-color 320ms var(--out);
  will-change:transform;
}
.btn__nest{
  width:2.4rem;height:2.4rem;flex:none;border-radius:var(--r-pill);
  background:var(--nest);display:grid;place-items:center;
  transition:transform 320ms var(--out), background-color 320ms var(--out);
}
.btn__nest svg{width:1.05rem;height:1.05rem;transition:transform 320ms var(--out)}
@media (hover:hover) and (pointer:fine){
  .btn:hover{transform:translateY(-2px);box-shadow:0 28px 54px -20px color-mix(in srgb, var(--teal) 75%, transparent), var(--inner-dark)}
  .btn:hover .btn__nest{background:var(--lime);transform:scale(1.06)}
  .btn:hover .btn__nest svg{transform:translate(2px,-2px);color:var(--ink)}
}
.btn:active{transform:scale(.975) translateY(0)}
.btn--lime{--bg:var(--lime);--fg:var(--ink);--nest:rgba(9,30,28,.10);box-shadow:0 20px 44px -22px color-mix(in srgb, var(--lime) 70%, transparent), var(--inner-lite)}
@media (hover:hover) and (pointer:fine){ .btn--lime:hover .btn__nest{background:var(--teal-deep);color:#fff} }
.btn--ghost{--bg:transparent;--fg:var(--ink);--nest:color-mix(in srgb, var(--teal) 12%, transparent);box-shadow:inset 0 0 0 1px var(--line-strong)}
@media (hover:hover) and (pointer:fine){ .btn--ghost:hover{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line-strong), var(--sh-1)} }
.btn--sm{font-size:var(--t-sm);padding:.4rem .4rem .4rem 1.15rem}
.btn--sm .btn__nest{width:1.95rem;height:1.95rem}
.btn--block{width:100%;justify-content:space-between}

/* ============================================================
   NAV — ilha flutuante de vidro
   ============================================================ */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;padding-top:clamp(.8rem,2vw,1.4rem);pointer-events:none}
.nav__inner{
  pointer-events:auto;
  width:min(100% - 2*var(--gut), var(--shell));margin-inline:auto;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.5rem .5rem .5rem 1.35rem;border-radius:var(--r-pill);
  background:color-mix(in srgb, var(--cream) 78%, transparent);
  -webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5), var(--sh-1);
  transition:box-shadow 400ms var(--out), background-color 400ms var(--out), transform 400ms var(--out);
}
.nav.scrolled .nav__inner{box-shadow:inset 0 0 0 1px rgba(255,255,255,.55), var(--sh-2)}
.nav__logo{display:flex;align-items:center;gap:.6rem;flex:none}
.nav__logo svg{height:1.05rem;width:8.03rem;fill:var(--teal-deep);transition:fill 300ms var(--out)}
.nav__links{display:flex;align-items:center;gap:.25rem}
.nav__links a{
  font-family:var(--font-display);font-size:var(--t-sm);font-weight:500;color:var(--ink-soft);
  padding:.5rem .85rem;border-radius:var(--r-pill);position:relative;
  transition:color 260ms var(--out), background-color 260ms var(--out);
}
@media (hover:hover) and (pointer:fine){ .nav__links a:hover{color:var(--teal-deep);background:color-mix(in srgb, var(--teal) 8%, transparent)} }
.nav__cta{display:flex;align-items:center;gap:.5rem}

.burger{
  display:none;width:2.85rem;height:2.85rem;border-radius:var(--r-pill);border:0;cursor:pointer;
  background:var(--teal-deep);position:relative;flex:none;
  transition:transform 220ms var(--out), background-color 300ms var(--out);
}
.burger:active{transform:scale(.94)}
.burger i{
  position:absolute;left:50%;top:50%;width:1.05rem;height:1.6px;border-radius:2px;background:#fff;
  transition:transform 420ms var(--drawer), opacity 200ms var(--out);
}
.burger i:nth-child(1){transform:translate(-50%,-5px)}
.burger i:nth-child(2){transform:translate(-50%,0)}
.burger i:nth-child(3){transform:translate(-50%,5px)}
.burger[aria-expanded="true"] i:nth-child(1){transform:translate(-50%,0) rotate(45deg)}
.burger[aria-expanded="true"] i:nth-child(2){opacity:0;transform:translate(-50%,0) scaleX(.3)}
.burger[aria-expanded="true"] i:nth-child(3){transform:translate(-50%,0) rotate(-45deg)}

.menu{
  position:fixed;inset:0;z-index:59;pointer-events:none;opacity:0;
  background:color-mix(in srgb, var(--teal-abyss) 88%, transparent);
  -webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);
  display:grid;place-items:center;
  transition:opacity 420ms var(--out);
}
.menu.open{opacity:1;pointer-events:auto}
.menu ul{list-style:none;margin:0;padding:0;text-align:center;display:grid;gap:.4rem}
.menu a{
  font-family:var(--font-display);font-size:clamp(2rem,9vw,3.4rem);font-weight:500;letter-spacing:-.045em;color:#fff;
  display:block;padding:.2rem 0;
  opacity:0;transform:translateY(2.5rem);
  transition:opacity 520ms var(--out), transform 620ms var(--drawer), color 240ms var(--out);
}
.menu.open a{opacity:1;transform:translateY(0)}
.menu.open li:nth-child(1) a{transition-delay:80ms}
.menu.open li:nth-child(2) a{transition-delay:130ms}
.menu.open li:nth-child(3) a{transition-delay:180ms}
.menu.open li:nth-child(4) a{transition-delay:230ms}
.menu.open li:nth-child(5) a{transition-delay:280ms}
@media (hover:hover) and (pointer:fine){ .menu a:hover{color:var(--lime)} }

@media (max-width:900px){
  .nav__links{display:none}
  .nav__cta .btn{display:none}
  .burger{display:block}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;padding-top:clamp(7.5rem,16vw,11rem);padding-bottom:var(--sec);overflow:clip}
.hero__bg{position:absolute;inset:0;z-index:-2;overflow:hidden}
.orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5}
.orb--1{width:44vw;height:44vw;background:var(--cyan);top:-14vw;right:-10vw}
.orb--2{width:34vw;height:34vw;background:var(--butter);bottom:-6vw;left:-12vw;opacity:.55}
.orb--3{width:22vw;height:22vw;background:var(--mint);top:38%;left:36%;opacity:.28}
.hero__grid{
  display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;
}
.hero__copy{position:relative;z-index:2}
.hero h1{font-size:clamp(2.1rem,4.15vw,3.4rem);margin:1.35rem 0 0;font-weight:600;letter-spacing:-.048em}
.hero h1 .ln{display:block;overflow:hidden;white-space:nowrap}
.hero h1 .ln span{display:block;transform:translateY(105%);transition:transform 1050ms var(--drawer)}
.hero.in h1 .ln span{transform:translateY(0)}
.hero.in h1 .ln:nth-child(2) span{transition-delay:70ms}
.hero.in h1 .ln:nth-child(3) span{transition-delay:140ms}
.hero__lede{margin-top:1.5rem;max-width:46ch}
.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.2rem;align-items:center}
.hero__units{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:2.6rem;font-size:var(--t-sm);color:var(--ink-mute)}
.unit-chip{
  display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .8rem;border-radius:var(--r-pill);
  background:var(--paper);box-shadow:inset 0 0 0 1px var(--line), var(--sh-1);
  font-family:var(--font-display);font-weight:500;color:var(--ink);font-size:var(--t-sm);
}
.unit-chip::before{content:'';width:.42rem;height:.42rem;border-radius:50%;background:var(--teal-bright)}

/* Retrato com dupla moldura (double-bezel) */
.portrait{
  position:relative;padding:.55rem;border-radius:var(--r-shell);
  background:color-mix(in srgb, var(--paper) 70%, transparent);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.65), var(--sh-3);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
}
.portrait__core{
  position:relative;border-radius:calc(var(--r-shell) - .55rem);overflow:hidden;
  background:linear-gradient(165deg, var(--cyan), var(--teal-bright) 55%, var(--teal) 100%);
  aspect-ratio:4/4.3;
  box-shadow:var(--inner-lite);
}
.portrait__core img{width:100%;height:100%;object-fit:cover;object-position:center 18%;
  transform:scale(1.02);transition:transform 1.4s var(--out)}
@media (hover:hover) and (pointer:fine){ .portrait:hover .portrait__core img{transform:scale(1.06)} }
.portrait .spark-deco{position:absolute;fill:var(--lime);filter:drop-shadow(0 6px 18px rgba(0,0,0,.14))}
.portrait .spark-deco--a{width:4.5rem;height:4.5rem;top:-1.4rem;left:-1.4rem;animation:twirl 14s linear infinite}
.portrait .spark-deco--b{width:2.4rem;height:2.4rem;bottom:8%;right:-1rem;fill:var(--butter);animation:twirl 9s linear infinite reverse}
@keyframes twirl{to{transform:rotate(360deg)}}

/* Cartão flutuante de prova */
.float-card{
  position:absolute;left:-1.5rem;bottom:6%;z-index:3;
  padding:.4rem;border-radius:var(--r-core);
  background:color-mix(in srgb, var(--paper) 82%, transparent);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.6), var(--sh-2);
  animation:bob 6s var(--inout) infinite;
}
.float-card__core{
  background:var(--paper);border-radius:calc(var(--r-core) - .4rem);padding:.9rem 1.15rem;
  display:flex;align-items:center;gap:.75rem;box-shadow:var(--inner-lite);
}
.float-card b{font-family:var(--font-display);font-size:1.35rem;color:var(--teal-deep);display:block;line-height:1}
.float-card small{font-size:var(--t-xs);color:var(--ink-mute);letter-spacing:.02em}
.float-card__ico{width:2.4rem;height:2.4rem;border-radius:var(--r-pill);background:color-mix(in srgb,var(--lime) 30%, transparent);display:grid;place-items:center;flex:none}
.float-card__ico svg{width:1.2rem;height:1.2rem;fill:var(--teal-deep)}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

@media (max-width:920px){
  .hero h1 .ln{white-space:normal;overflow:visible}
  .hero h1 .ln span{transform:none;opacity:0;transition:opacity 700ms var(--out)}
  .hero.in h1 .ln span{opacity:1}
  .hero__grid{grid-template-columns:1fr;gap:3rem}
  .hero__visual{order:-1;max-width:26rem;margin-inline:auto;width:100%}
  .float-card{left:-.5rem}
}
@media (prefers-reduced-motion: reduce){
  .float-card,.spark-deco--a,.spark-deco--b{animation:none}
}

/* ============================================================
   MARQUEE
   ============================================================ */
.marquee{
  background:var(--teal-deep);color:#fff;padding:1.1rem 0;overflow:hidden;
  transform:rotate(-1.15deg) scale(1.04);margin-block:clamp(2rem,6vw,4rem);
  box-shadow:var(--sh-2);
}
.marquee__track{display:flex;width:max-content;animation:slide 38s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee span{
  font-family:var(--font-display);font-weight:600;font-size:clamp(1rem,2.1vw,1.45rem);
  letter-spacing:-.02em;text-transform:uppercase;padding-inline:1.1rem;display:flex;align-items:center;gap:1.5rem;white-space:nowrap;
}
.marquee svg{width:1.05rem;height:1.05rem;fill:var(--lime);flex:none}
@keyframes slide{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){ .marquee__track{animation:none} }

/* ============================================================
   SEÇÕES GENÉRICAS
   ============================================================ */
.sec{padding-block:var(--sec);position:relative}
.sec--paper{background:var(--paper)}
.sec--dark{background:var(--teal-abyss);color:color-mix(in srgb,#fff 78%, transparent)}
.sec--dark h2,.sec--dark h3{color:#fff}
.sec__head{max-width:62ch;margin-bottom:clamp(2.5rem,6vw,4.5rem)}
.sec__head .h-sec{margin-top:1.15rem}
.sec__head .lede{margin-top:1.15rem}

/* Reveal de scroll */
.reveal{opacity:0;transform:translateY(2.6rem);filter:blur(6px);
  transition:opacity 850ms var(--out), transform 950ms var(--drawer), filter 700ms var(--out)}
.reveal.in{opacity:1;transform:none;filter:blur(0)}
.reveal[data-d="1"]{transition-delay:70ms}
.reveal[data-d="2"]{transition-delay:140ms}
.reveal[data-d="3"]{transition-delay:210ms}
.reveal[data-d="4"]{transition-delay:280ms}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;filter:none;transition:none}
  .hero h1 .ln span{transform:none}
}

/* ============================================================
   CICLOS — abas interativas
   ============================================================ */
.cycles__tabs{
  display:flex;gap:.3rem;padding:.35rem;border-radius:var(--r-pill);
  background:color-mix(in srgb, var(--teal-deep) 6%, transparent);
  box-shadow:inset 0 0 0 1px var(--line);
  position:relative;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;
}
.cycles__tabs::-webkit-scrollbar{display:none}
.cycles__ind{
  position:absolute;top:.35rem;bottom:.35rem;left:0;width:0;border-radius:var(--r-pill);
  background:var(--teal-deep);box-shadow:var(--sh-teal), var(--inner-dark);
  transition:transform 520ms var(--drawer), width 520ms var(--drawer);
  z-index:0;
}
.cycles__tab{
  position:relative;z-index:1;border:0;background:transparent;cursor:pointer;
  padding:.7rem 1.35rem;border-radius:var(--r-pill);white-space:nowrap;
  font-family:var(--font-display);font-weight:600;font-size:var(--t-sm);color:var(--ink-soft);
  transition:color 320ms var(--out), transform 200ms var(--out);
}
.cycles__tab[aria-selected="true"]{color:#fff}
.cycles__tab:active{transform:scale(.97)}

.cycles__stage{margin-top:clamp(2rem,4vw,3rem);position:relative}
.cycle{
  display:none;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;
}
.cycle[data-active]{display:grid}
.cycle.anim .cycle__txt,.cycle.anim .cycle__art{animation:cyIn 620ms var(--out) both}
.cycle.anim .cycle__art{animation-delay:60ms}
@keyframes cyIn{from{opacity:0;transform:translateY(1.6rem);filter:blur(7px)}to{opacity:1;transform:none;filter:blur(0)}}
.cycle__age{
  font-family:var(--font-display);font-size:var(--t-xs);font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--teal);display:block;margin-bottom:.7rem;
}
.cycle h3{font-size:var(--t-2xl);letter-spacing:-.04em}
.cycle p{margin-top:1.1rem;font-size:var(--t-lg);font-weight:300;color:var(--ink-mute);line-height:1.55}
.cycle__list{list-style:none;margin:1.9rem 0 0;padding:0;display:grid;gap:.65rem}
.cycle__list li{display:flex;gap:.7rem;align-items:flex-start;font-size:var(--t-sm)}
.cycle__list svg{width:.95rem;height:.95rem;flex:none;fill:var(--teal);margin-top:.32rem}
.cycle__art{
  position:relative;padding:.5rem;border-radius:var(--r-shell);
  background:var(--paper);box-shadow:inset 0 0 0 1px var(--line), var(--sh-2);
}
.cycle__art .core{
  border-radius:calc(var(--r-shell) - .5rem);aspect-ratio:5/4;overflow:hidden;position:relative;
  display:grid;place-items:center;box-shadow:var(--inner-lite);
}
.cycle__art .core img{width:100%;height:100%;object-fit:cover}
.cycle__art .glyph{font-family:var(--font-display);font-size:clamp(4rem,13vw,8rem);font-weight:700;color:rgba(255,255,255,.9);letter-spacing:-.06em;line-height:1;text-shadow:0 20px 50px rgba(0,0,0,.14)}
@media (max-width:820px){ .cycle{grid-template-columns:1fr} .cycle__art{order:-1} }

/* ============================================================
   BENTO — diferenciais
   ============================================================ */
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(.8rem,1.6vw,1.35rem)}
.tile{
  padding:.5rem;border-radius:var(--r-shell);
  background:color-mix(in srgb, var(--paper) 60%, transparent);
  box-shadow:inset 0 0 0 1px var(--line), var(--sh-1);
  transition:transform 480ms var(--out), box-shadow 480ms var(--out);
}
.tile__core{
  height:100%;border-radius:calc(var(--r-shell) - .5rem);padding:clamp(1.5rem,3vw,2.4rem);
  background:var(--paper);box-shadow:var(--inner-lite);display:flex;flex-direction:column;gap:.85rem;
  position:relative;overflow:hidden;
}
@media (hover:hover) and (pointer:fine){
  .tile:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px var(--line-strong), var(--sh-2)}
}
.tile--a{grid-column:span 7}
.tile--b{grid-column:span 5}
.tile--c{grid-column:span 5}
.tile--d{grid-column:span 7}
.tile--teal .tile__core{background:var(--teal-deep);color:rgba(255,255,255,.8);box-shadow:var(--inner-dark)}
.tile--teal h3{color:#fff}
.tile--lime .tile__core{background:var(--butter);box-shadow:var(--inner-lite)}
.tile__ico{width:3rem;height:3rem;border-radius:var(--r-sm);display:grid;place-items:center;flex:none;
  background:color-mix(in srgb, var(--teal) 10%, transparent)}
.tile--teal .tile__ico{background:rgba(255,255,255,.12)}
.tile--lime .tile__ico{background:rgba(9,30,28,.09)}
.tile__ico svg{width:1.35rem;height:1.35rem;fill:var(--teal-deep)}
.tile--teal .tile__ico svg{fill:var(--lime)}
.tile h3{font-size:var(--t-xl);letter-spacing:-.035em}
.tile p{font-size:var(--t-sm);color:var(--ink-mute)}
.tile--teal p{color:rgba(255,255,255,.7)}
.tile--lime p{color:color-mix(in srgb, var(--ink) 72%, transparent)}
.tile__deco{position:absolute;right:-2rem;bottom:-2.5rem;width:9rem;height:9rem;opacity:.09;fill:currentColor;pointer-events:none}
@media (max-width:860px){ .tile--a,.tile--b,.tile--c,.tile--d{grid-column:span 12} }

/* ============================================================
   UNIDADES
   ============================================================ */
.units{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.9rem,2vw,1.5rem)}
.unit{
  padding:.5rem;border-radius:var(--r-shell);background:rgba(255,255,255,.05);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);
  transition:transform 480ms var(--out), box-shadow 480ms var(--out), background-color 480ms var(--out);
  display:flex;
}
.unit__core{
  flex:1;border-radius:calc(var(--r-shell) - .5rem);padding:clamp(1.4rem,2.6vw,2rem);
  background:rgba(255,255,255,.04);box-shadow:var(--inner-dark);
  display:flex;flex-direction:column;gap:1rem;align-items:flex-start;
}
@media (hover:hover) and (pointer:fine){
  .unit:hover{transform:translateY(-5px);background:rgba(255,255,255,.09);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18), 0 40px 80px -40px rgba(0,0,0,.6)}
}
.unit__n{font-family:var(--font-display);font-size:var(--t-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--cyan);opacity:.8}
.unit h3{font-size:var(--t-xl)}
.unit p{font-size:var(--t-sm);color:rgba(255,255,255,.62);flex:1}
.unit .btn{margin-top:.4rem}
@media (max-width:820px){ .units{grid-template-columns:1fr} }

/* ============================================================
   PASSOS
   ============================================================ */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.4vw,2rem);counter-reset:s}
.step{position:relative;padding-top:2.6rem}
.step::before{
  counter-increment:s;content:counter(s,decimal-leading-zero);
  position:absolute;top:0;left:0;font-family:var(--font-display);font-size:var(--t-sm);font-weight:700;
  color:var(--teal);letter-spacing:.1em;
}
.step::after{content:'';position:absolute;top:.55rem;left:2.6rem;right:0;height:1px;background:var(--line)}
.step:last-child::after{display:none}
.step h3{font-size:var(--t-lg);margin-bottom:.6rem}
.step p{font-size:var(--t-sm);color:var(--ink-mute)}
@media (max-width:760px){ .steps{grid-template-columns:1fr;gap:2rem} .step::after{display:none} }

/* ============================================================
   PARCEIROS
   ============================================================ */
.partners{display:flex;flex-wrap:wrap;gap:clamp(.8rem,2vw,1.4rem);align-items:stretch;justify-content:center}
.partner{
  padding:.4rem;border-radius:var(--r-core);background:var(--paper);
  box-shadow:inset 0 0 0 1px var(--line), var(--sh-1);
  transition:transform 420ms var(--out), box-shadow 420ms var(--out);
  flex:1 1 190px;max-width:250px;
}
.partner__core{border-radius:calc(var(--r-core) - .4rem);overflow:hidden;background:#fff;display:grid;place-items:center;height:100%;padding:.35rem}
.partner img{width:100%;height:auto;object-fit:contain;filter:saturate(.9)}
@media (hover:hover) and (pointer:fine){ .partner:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px var(--line-strong), var(--sh-2)} }

/* ============================================================
   FAQ
   ============================================================ */
.faq{display:grid;gap:.6rem;max-width:56rem;margin-inline:auto}
.qa{
  border-radius:var(--r-core);background:var(--paper);
  box-shadow:inset 0 0 0 1px var(--line);
  transition:box-shadow 380ms var(--out), background-color 380ms var(--out);
  overflow:hidden;
}
.qa[open]{box-shadow:inset 0 0 0 1px var(--line-strong), var(--sh-1)}
.qa summary{
  cursor:pointer;list-style:none;padding:1.25rem 1.5rem;display:flex;gap:1rem;align-items:center;justify-content:space-between;
  font-family:var(--font-display);font-weight:500;font-size:var(--t-base);color:var(--ink);
  transition:color 240ms var(--out);
}
.qa summary::-webkit-details-marker{display:none}
.qa__plus{width:1.9rem;height:1.9rem;border-radius:var(--r-pill);flex:none;display:grid;place-items:center;
  background:color-mix(in srgb, var(--teal) 9%, transparent);position:relative;
  transition:background-color 300ms var(--out), transform 420ms var(--drawer)}
.qa__plus::before,.qa__plus::after{content:'';position:absolute;background:var(--teal-deep);border-radius:2px;
  transition:transform 420ms var(--drawer), opacity 240ms var(--out)}
.qa__plus::before{width:.7rem;height:1.5px}
.qa__plus::after{width:1.5px;height:.7rem}
.qa[open] .qa__plus{background:var(--teal-deep);transform:rotate(90deg)}
.qa[open] .qa__plus::before,.qa[open] .qa__plus::after{background:#fff}
.qa[open] .qa__plus::after{opacity:0;transform:scaleY(.2)}
.qa__body{padding:0 1.5rem 1.4rem;font-size:var(--t-sm);color:var(--ink-mute);max-width:62ch}

/* ============================================================
   CTA FINAL + FOOTER
   ============================================================ */
.finale{position:relative;overflow:clip;background:var(--teal-deep);border-radius:clamp(1.75rem,4vw,3rem);padding:clamp(2.5rem,7vw,5.5rem);text-align:center;color:#fff;box-shadow:var(--sh-3)}
.finale::before{content:'';position:absolute;width:60%;aspect-ratio:1;border-radius:50%;background:var(--teal-bright);filter:blur(90px);opacity:.45;top:-25%;left:-10%}
.finale::after{content:'';position:absolute;width:42%;aspect-ratio:1;border-radius:50%;background:var(--lime);filter:blur(110px);opacity:.13;bottom:-34%;right:-10%}
.finale > *{position:relative;z-index:1}
.finale h2{font-size:var(--t-2xl);color:#fff;max-width:22ch;margin-inline:auto}
.finale p{margin:1.2rem auto 2.2rem;color:rgba(255,255,255,.72);max-width:48ch}

.foot{padding-block:clamp(3rem,7vw,5rem) 2.5rem;background:var(--cream-2)}
.foot__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;align-items:start}
.foot__logo{display:block}
.foot__logo svg{height:1.4rem;width:10.7rem;fill:var(--teal-deep)}
.foot h4{font-family:var(--font-display);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.18em;color:var(--ink-mute);margin-bottom:1rem;font-weight:600}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;font-size:var(--t-sm)}
.foot a{transition:color 240ms var(--out)}
@media (hover:hover) and (pointer:fine){ .foot a:hover{color:var(--teal-deep)} }
.foot__bar{margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:var(--t-xs);color:var(--ink-mute)}
@media (max-width:760px){ .foot__grid{grid-template-columns:1fr;gap:2rem} }

/* ============================================================
   MODAL — formulário passo a passo
   ============================================================ */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:clamp(.75rem,3vw,2rem);
  pointer-events:none;visibility:hidden}
.modal.open{pointer-events:auto;visibility:visible}
.modal__scrim{
  position:absolute;inset:0;background:color-mix(in srgb, var(--teal-abyss) 72%, transparent);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  opacity:0;transition:opacity 380ms var(--out);
}
.modal.open .modal__scrim{opacity:1}

.sheet{
  position:relative;width:min(100%, 46rem);max-height:min(92dvh, 52rem);
  padding:.5rem;border-radius:var(--r-shell);
  background:color-mix(in srgb, var(--cream) 92%, transparent);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.6), 0 60px 120px -40px rgba(4,32,30,.6);
  opacity:0;transform:scale(.96) translateY(14px);
  transition:opacity 320ms var(--out), transform 460ms var(--drawer);
  display:flex;flex-direction:column;
}
.modal.open .sheet{opacity:1;transform:none}
.sheet__core{
  background:var(--paper);border-radius:calc(var(--r-shell) - .5rem);box-shadow:var(--inner-lite);
  display:flex;flex-direction:column;overflow:hidden;flex:1;min-height:0;
}

.sheet__top{padding:1.15rem 1.35rem .9rem;display:flex;align-items:center;gap:1rem;flex:none}
.sheet__brand{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0}
.sheet__brand svg{height:.85rem;width:6.5rem;fill:var(--teal-deep);flex:none}
.sheet__count{font-family:var(--font-display);font-size:var(--t-xs);font-weight:600;letter-spacing:.12em;color:var(--ink-mute);text-transform:uppercase;
  font-variant-numeric:tabular-nums}
.x{width:2.25rem;height:2.25rem;border-radius:var(--r-pill);border:0;cursor:pointer;flex:none;
  background:color-mix(in srgb, var(--teal-deep) 7%, transparent);display:grid;place-items:center;
  transition:background-color 260ms var(--out), transform 200ms var(--out)}
.x svg{width:.85rem;height:.85rem;stroke:var(--ink);stroke-width:1.6;fill:none;stroke-linecap:round}
@media (hover:hover) and (pointer:fine){ .x:hover{background:color-mix(in srgb, var(--teal-deep) 14%, transparent)} }
.x:active{transform:scale(.93)}

.bar{height:4px;background:color-mix(in srgb, var(--teal-deep) 10%, transparent);margin-inline:1.35rem;border-radius:2px;overflow:hidden;flex:none}
.bar__fill{display:block;height:100%;width:0;border-radius:2px;background:linear-gradient(90deg, var(--teal-deep), var(--teal) 55%, var(--teal-bright));
  transition:width 620ms var(--drawer)}

.sheet__body{padding:1.6rem 1.35rem 1.15rem;overflow-y:auto;flex:1;min-height:0;-webkit-overflow-scrolling:touch}
.sheet__body::-webkit-scrollbar{width:6px}
.sheet__body::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}

.q{display:none}
.q[data-active]{display:block}
.q.enter{animation:qIn 480ms var(--out) both}
.q.enter-back{animation:qInBack 480ms var(--out) both}
@keyframes qIn{from{opacity:0;transform:translateX(26px);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes qInBack{from{opacity:0;transform:translateX(-26px);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}
@media (prefers-reduced-motion: reduce){ .q.enter,.q.enter-back{animation:fadeOnly 240ms ease both} @keyframes fadeOnly{from{opacity:0}to{opacity:1}} }

.q__kicker{font-family:var(--font-display);font-size:var(--t-xs);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);display:block;margin-bottom:.7rem}
.q h3{font-size:var(--t-xl);letter-spacing:-.035em;line-height:1.14}
.q__help{font-size:var(--t-sm);color:var(--ink-mute);margin-top:.6rem}

/* Campos */
.field{margin-top:1.5rem}
.inp{
  width:100%;padding:1rem 1.15rem;border-radius:var(--r-sm);border:0;
  background:color-mix(in srgb, var(--teal-deep) 4%, transparent);
  box-shadow:inset 0 0 0 1px var(--line);
  font-family:var(--font-display);font-size:var(--t-lg);font-weight:400;color:var(--ink);
  transition:box-shadow 300ms var(--out), background-color 300ms var(--out);
}
.inp::placeholder{color:color-mix(in srgb, var(--ink-mute) 62%, transparent);font-weight:300}
.inp:focus{outline:none;background:var(--paper);box-shadow:inset 0 0 0 1.5px var(--teal), 0 0 0 4px color-mix(in srgb, var(--teal) 12%, transparent)}
.inp[aria-invalid="true"]{box-shadow:inset 0 0 0 1.5px #E0563F, 0 0 0 4px rgba(224,86,63,.1)}
.err{display:flex;gap:.45rem;align-items:center;margin-top:.6rem;font-size:var(--t-sm);color:#C0402A;
  opacity:0;transform:translateY(-3px);transition:opacity 240ms var(--out), transform 240ms var(--out)}
.err.show{opacity:1;transform:none}
.err svg{width:.85rem;height:.85rem;fill:currentColor;flex:none}
.shake{animation:shk 380ms var(--out)}
@keyframes shk{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}

/* Opções em cartão */
.opts{display:grid;gap:.55rem;margin-top:1.5rem}
.opts--2{grid-template-columns:repeat(2,1fr)}
.opts--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:560px){ .opts--2,.opts--3{grid-template-columns:1fr} }
.opt{
  position:relative;display:flex;align-items:center;gap:.85rem;text-align:left;
  padding:1rem 1.1rem;border-radius:var(--r-sm);border:0;cursor:pointer;width:100%;
  background:color-mix(in srgb, var(--teal-deep) 3.5%, transparent);
  box-shadow:inset 0 0 0 1px var(--line);
  font-family:var(--font-display);font-size:var(--t-base);font-weight:500;color:var(--ink);
  transition:transform 220ms var(--out), box-shadow 300ms var(--out), background-color 300ms var(--out);
}
@media (hover:hover) and (pointer:fine){
  .opt:hover{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line-strong), var(--sh-1);transform:translateY(-1px)}
}
.opt:active{transform:scale(.985)}
.opt[aria-pressed="true"]{background:color-mix(in srgb, var(--teal) 10%, transparent);box-shadow:inset 0 0 0 1.5px var(--teal)}
.opt__dot{width:1.35rem;height:1.35rem;border-radius:var(--r-pill);flex:none;position:relative;
  box-shadow:inset 0 0 0 1.5px var(--line-strong);transition:box-shadow 260ms var(--out), background-color 260ms var(--out)}
.opt__dot::after{content:'';position:absolute;inset:0;margin:auto;width:.5rem;height:.5rem;border-radius:50%;background:#fff;
  transform:scale(.2);opacity:0;transition:transform 320ms var(--spring), opacity 200ms var(--out)}
.opt[aria-pressed="true"] .opt__dot{background:var(--teal-deep);box-shadow:inset 0 0 0 1.5px var(--teal-deep)}
.opt[aria-pressed="true"] .opt__dot::after{transform:scale(1);opacity:1}
.opt__txt{flex:1;min-width:0}
.opt__txt small{display:block;font-family:var(--font-body);font-size:var(--t-xs);font-weight:400;color:var(--ink-mute);margin-top:.15rem;letter-spacing:0}

/* Grupos de turma */
.group{margin-top:1.35rem}
.group__label{font-family:var(--font-display);font-size:var(--t-xs);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:.6rem;display:flex;align-items:center;gap:.5rem}
.group__label::after{content:'';flex:1;height:1px;background:var(--line)}
.chips{display:flex;flex-wrap:wrap;gap:.4rem}
.chip{
  border:0;cursor:pointer;padding:.55rem .95rem;border-radius:var(--r-pill);
  background:color-mix(in srgb, var(--teal-deep) 4%, transparent);
  box-shadow:inset 0 0 0 1px var(--line);
  font-family:var(--font-display);font-size:var(--t-sm);font-weight:500;color:var(--ink-soft);
  transition:transform 200ms var(--out), box-shadow 280ms var(--out), background-color 280ms var(--out), color 280ms var(--out);
}
@media (hover:hover) and (pointer:fine){ .chip:hover{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line-strong), var(--sh-1)} }
.chip:active{transform:scale(.96)}
.chip[aria-pressed="true"]{background:var(--teal-deep);color:#fff;box-shadow:var(--sh-teal), var(--inner-dark)}

/* Revisão */
.review{margin-top:1.4rem;border-radius:var(--r-core);overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}
.review__row{display:flex;gap:1rem;justify-content:space-between;align-items:baseline;padding:.85rem 1.1rem;font-size:var(--t-sm)}
.review__row + .review__row{border-top:1px solid var(--line)}
.review__row dt{color:var(--ink-mute);flex:none}
.review__row dd{margin:0;font-family:var(--font-display);font-weight:500;color:var(--ink);text-align:right}
.review__row button{border:0;background:none;cursor:pointer;color:var(--teal);font-size:var(--t-xs);font-family:var(--font-display);font-weight:600;text-decoration:underline;text-underline-offset:3px;padding:0;margin-left:.5rem}
.consent{display:flex;gap:.7rem;align-items:flex-start;margin-top:1.2rem;font-size:var(--t-xs);color:var(--ink-mute);line-height:1.55;cursor:pointer}
.consent input{position:absolute;opacity:0;width:0;height:0}
.consent__box{width:1.25rem;height:1.25rem;border-radius:.45rem;flex:none;margin-top:.05rem;position:relative;
  box-shadow:inset 0 0 0 1.5px var(--line-strong);transition:background-color 240ms var(--out), box-shadow 240ms var(--out)}
.consent__box svg{position:absolute;inset:0;margin:auto;width:.75rem;height:.75rem;stroke:#fff;stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:20;stroke-dashoffset:20;transition:stroke-dashoffset 320ms var(--out)}
.consent input:checked + .consent__box{background:var(--teal-deep);box-shadow:inset 0 0 0 1.5px var(--teal-deep)}
.consent input:checked + .consent__box svg{stroke-dashoffset:0}
.consent input:focus-visible + .consent__box{box-shadow:var(--focus)}

/* Rodapé do modal */
.sheet__foot{padding:1rem 1.35rem 1.25rem;display:flex;align-items:center;gap:.75rem;flex:none;
  border-top:1px solid var(--line);background:color-mix(in srgb, var(--cream) 55%, transparent)}
.back{
  border:0;background:none;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;
  font-family:var(--font-display);font-size:var(--t-sm);font-weight:500;color:var(--ink-mute);
  padding:.55rem .8rem;border-radius:var(--r-pill);
  transition:color 240ms var(--out), background-color 240ms var(--out), opacity 240ms var(--out), transform 200ms var(--out);
}
.back svg{width:.85rem;height:.85rem;fill:currentColor}
@media (hover:hover) and (pointer:fine){ .back:hover{color:var(--ink);background:color-mix(in srgb, var(--teal-deep) 6%, transparent)} }
.back:active{transform:scale(.96)}
.back[hidden]{display:none}
.sheet__foot .grow{flex:1}
.kbd{font-family:var(--font-display);font-size:var(--t-xs);color:var(--ink-mute);display:none;align-items:center;gap:.35rem}
.kbd b{font-weight:600;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);border-radius:.35rem;padding:.15rem .4rem;color:var(--ink-soft)}
@media (min-width:700px){ .kbd{display:flex} }

/* Sucesso */
.done{text-align:center;padding:1.5rem .5rem}
.done__ring{width:5rem;height:5rem;margin:0 auto 1.5rem;border-radius:var(--r-pill);display:grid;place-items:center;
  background:color-mix(in srgb, var(--lime) 30%, transparent);position:relative}
.done__ring svg{width:2rem;height:2rem;stroke:var(--teal-deep);stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:28;stroke-dashoffset:28;animation:tick 560ms var(--out) 220ms forwards}
@keyframes tick{to{stroke-dashoffset:0}}
.done__ring::before{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 color-mix(in srgb,var(--lime) 55%, transparent);
  animation:pulse 1.6s var(--out) .2s 2}
@keyframes pulse{to{box-shadow:0 0 0 22px transparent}}
.done h3{font-size:var(--t-2xl)}
.done p{margin-top:1rem;color:var(--ink-mute);max-width:40ch;margin-inline:auto;font-size:var(--t-sm)}
.done__card{margin-top:1.8rem;padding:.4rem;border-radius:var(--r-core);background:color-mix(in srgb,var(--teal-deep) 4%,transparent);box-shadow:inset 0 0 0 1px var(--line)}
.done__card .in{background:var(--paper);border-radius:calc(var(--r-core) - .4rem);padding:1.1rem;display:grid;gap:.5rem;text-align:left;font-size:var(--t-sm)}
.done__card .in div{display:flex;justify-content:space-between;gap:1rem}
.done__card .in span:first-child{color:var(--ink-mute)}
.done__card .in span:last-child{font-family:var(--font-display);font-weight:500;color:var(--ink)}

.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit}
.confetti i{position:absolute;width:.5rem;height:.5rem;border-radius:1px;opacity:0;animation:fall 2.4s var(--out) forwards}
@keyframes fall{0%{opacity:1;transform:translateY(-10%) rotate(0)}100%{opacity:0;transform:translateY(560px) rotate(540deg)}}
@media (prefers-reduced-motion: reduce){ .confetti{display:none} .done__ring::before{animation:none} .done__ring svg{animation:none;stroke-dashoffset:0} }

/* Barra fixa mobile */
.dock{
  position:fixed;left:var(--gut);right:var(--gut);bottom:1rem;z-index:55;display:none;
  transform:translateY(160%);transition:transform 520ms var(--drawer);
}
.dock.show{transform:translateY(0)}
.dock .btn{width:100%;justify-content:space-between}
@media (max-width:900px){ .dock{display:block} }/* End custom CSS */