html{scroll-behavior:smooth}
body{margin:0;background:var(--branco);-webkit-font-smoothing:antialiased;font-family:var(--font-body);font-size:15px;color:var(--text-primary);padding-top:56px}
a{color:var(--text-primary);text-decoration:none}
a:hover{color:var(--accent)}
img,video{max-width:100%}

@keyframes tcc-sobe{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.tcc-rotulo{font-family:var(--font-dados);font-size:var(--text-micro);font-weight:var(--weight-regular);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}

/* ---------- header ---------- */
/* sempre position:fixed — nunca troca de sticky pra fixed, pra nunca causar
   um salto de layout na página quando vira o estado flutuante */
.site-header{
  position:fixed;top:0;left:50%;transform:translateX(-50%);z-index:40;
  width:100%;max-width:100%;
  background:var(--branco);border-bottom:var(--fio) solid var(--border-hairline);
  border-radius:0;box-shadow:none;
  transition:top .4s var(--ease-out),max-width .4s var(--ease-out),border-radius .4s var(--ease-out),background .3s var(--ease-out),box-shadow .3s var(--ease-out),border-color .3s var(--ease-out);
}
.site-header__inner{max-width:1280px;margin:0 auto;padding:0 clamp(20px,4vw,40px);height:56px;display:flex;align-items:center;justify-content:space-between;gap:24px;transition:padding var(--dur-base) var(--ease-out)}

.site-header.is-floating{
  top:16px;
  max-width:min(920px,calc(100% - 32px));
  background:rgba(255,255,255,.86);
  backdrop-filter:var(--blur-painel);-webkit-backdrop-filter:var(--blur-painel);
  border-radius:999px;border-bottom-color:transparent;
  box-shadow:0 10px 28px rgba(62,64,69,.14),0 2px 6px rgba(62,64,69,.08);
}
.site-header.is-floating .site-header__inner{padding:0 clamp(16px,3vw,32px)}

.brand{display:flex;align-items:center;gap:9px}
.brand img{width:20px;height:20px;object-fit:contain}
.brand span{font-family:var(--font-display);font-size:15px;font-weight:500;letter-spacing:-0.02em}
.site-nav{display:flex;gap:clamp(14px,2.4vw,28px);font-size:13px;color:var(--text-secondary);white-space:nowrap}
.site-nav a{color:var(--text-secondary)}
.site-nav a:hover{color:var(--accent)}
.site-nav a.is-cta{color:var(--accent)}

@media (max-width:640px){
  .brand span{font-size:14px}
  .site-nav a:not(.is-cta){display:none}

  .site-header.is-floating .site-header__inner{height:auto;padding:8px 8px 8px 20px}
  .site-header.is-floating .site-nav a.is-cta{
    background:var(--accent);color:var(--branco);
    padding:11px 20px;border-radius:999px;
    font-size:13px;font-weight:500;
    transition:background var(--dur-toque) var(--ease-out);
  }
  .site-header.is-floating .site-nav a.is-cta:hover{background:var(--acao-fundo-hover);color:var(--branco)}
}

/* ---------- hero ---------- */
.hero{background:#EAE8E6;padding:clamp(56px,8vw,104px) clamp(20px,5vw,40px)}
.hero__copy{max-width:740px;margin:0 auto;text-align:center}
.hero__title,.section-title{margin:0;font-family:var(--font-display);font-size:clamp(38px,6vw,68px);font-weight:400;line-height:1.05;letter-spacing:-0.03em;text-transform:lowercase;text-wrap:pretty}
.hero__subtitle,.section-subtitle{margin:20px 0 0;font-size:clamp(16px,1.6vw,19px);line-height:1.55;color:var(--text-secondary);text-wrap:pretty}
.hero__waitlist{max-width:740px;margin:0 auto;text-align:center}

.hero-cover-wrap{width:100%;background:var(--preto)}
.hero-cover{width:100%;height:clamp(320px,60vw,780px);object-fit:cover;display:block}

/* ---------- waitlist (shared: hero + bottom) ---------- */
.waitlist-wrap{margin:32px auto 0;max-width:520px}
.wl-email{display:flex;flex-direction:column;gap:10px;max-width:400px;margin:0 auto}
.wl-input{width:100%;height:68px;padding:0 20px;font-family:var(--font-body);font-size:15px;color:var(--text-primary);background:var(--branco);border:2px dashed var(--neutro-400);border-radius:var(--radius-pill);outline:none;text-align:center;transition:border-color var(--dur-toque) var(--ease-out)}
.wl-input:focus{border-color:var(--graphite-600)}
.wl-submit{width:100%;height:68px;padding:0 26px;border:none;border-radius:var(--radius-pill);background:var(--accent);color:var(--branco);font-family:var(--font-body);font-size:15px;cursor:pointer;transition:background var(--dur-toque) var(--ease-out)}
.wl-submit:hover{background:var(--acao-fundo-hover)}
.wl-submit:disabled,.wl-confirm:disabled{opacity:.6;cursor:default}
.wl-error{margin:10px 0 0;font-size:13px;line-height:1.5;color:var(--sienna);text-align:center;text-wrap:pretty}

.wl-details{max-width:520px;margin:0 auto;animation:tcc-sobe var(--dur-base) var(--ease-out) both}
.wl-status{margin:0}
.wl-status-dot{width:6px;height:6px;margin-right:8px;border-radius:999px;background:var(--accent);display:inline-block;vertical-align:middle}
.wl-details__hint{margin:12px 0 18px;font-size:14px;line-height:1.55;color:var(--text-secondary);text-wrap:pretty}
.wl-details__fields{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.wl-select{flex:1 1 150px;min-width:0;height:52px;padding:0 16px;font-family:var(--font-body);font-size:15px;color:var(--text-primary);background:var(--branco);border:var(--fio) solid var(--neutro-400);border-radius:var(--radius-campo);outline:none;transition:border-color var(--dur-toque) var(--ease-out)}
.wl-select:focus{border-color:var(--graphite-600)}
.wl-select--idade{flex:1 1 170px}
.wl-confirm{flex:0 0 auto;height:52px;padding:0 26px;border:none;border-radius:var(--radius-pill);background:var(--acao-fundo);color:var(--acao-texto);font-family:var(--font-body);font-size:15px;cursor:pointer;transition:background var(--dur-toque) var(--ease-out)}
.wl-confirm:hover{background:var(--acao-fundo-hover)}
.wl-confirm:active{background:var(--acao-fundo-press)}

.wl-success{animation:tcc-sobe var(--dur-base) var(--ease-out) both}
.wl-success__thanks{margin:12px 0 0;font-size:15px;line-height:1.55;color:var(--text-secondary);text-wrap:pretty}
.hero__waitlist .wl-success__thanks{max-width:460px;margin-inline:auto}
[hidden]{display:none!important}

/* ---------- stats ---------- */
.stats-section{background:var(--branco);padding:clamp(64px,10vw,128px) clamp(20px,5vw,40px)}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,56px);max-width:940px;margin:clamp(48px,6vw,80px) auto 0}
.stat{text-align:center}
.stat__value{font-family:var(--font-display);font-size:clamp(30px,3.6vw,44px);font-weight:400;letter-spacing:-0.03em;line-height:1}
.stat__desc{margin:14px 0 0;font-size:14px;line-height:1.5;color:var(--text-secondary);text-wrap:pretty}
.stat__source{display:block;margin-top:10px;color:var(--text-muted)}

/* ---------- app section ---------- */
.app-section{padding:clamp(64px,10vw,128px) clamp(20px,5vw,40px);background:linear-gradient(180deg,#242424,#313131)}
.app-section__copy{max-width:740px;margin:0 auto;text-align:center}
.app-section .section-title{color:var(--branco)}
.app-section__subtitle{margin:26px 0 0;font-size:clamp(16px,1.6vw,19px);line-height:1.55;color:var(--cinza-lavanda);text-wrap:pretty}

.phone-stage{max-width:1100px;margin:clamp(40px,5vw,72px) auto 0;display:flex;align-items:center;justify-content:center}
.phone-bezel{position:relative;display:flex;flex-direction:column;align-items:center}
.phone-bezel__frame{padding:9px;border-radius:46px;background:linear-gradient(155deg,var(--graphite-500),var(--graphite-900) 60%);box-shadow:inset 0 1px 1px rgba(255,255,255,.22),inset 0 -1px 1px rgba(0,0,0,.35),0 30px 60px -20px rgba(15,15,18,.45)}
.phone-bezel__screen{width:min(390px,72vw);aspect-ratio:390/844;position:relative}
@media (min-width:821px){
  /* em telas largas mas baixas (ex: laptop 13", 1440x900), o mockup em altura
     fixa de 390px ocupava quase a tela inteira; reduz só um pouco, limitando
     pela altura também, sem precisar enquadrar os chips de navegação junto */
  .phone-bezel__screen{width:min(390px,72vw,38vh)}
}
.phone-bezel__canvas{width:390px;height:844px;position:absolute;top:0;left:0;transform-origin:top left;border-radius:44px;overflow:hidden}
.phone-bezel__canvas iframe{width:390px;height:844px;border:none;display:block;background:transparent}
@media (max-width:820px){
  /* no touch, o scroll interno da prévia do app prende o gesto e trava a rolagem da página */
  .phone-bezel__canvas iframe{pointer-events:none}
}
.phone-bezel__key-l{position:absolute;left:-3px;top:128px;width:3px;height:52px;border-radius:2px;background:linear-gradient(90deg,var(--graphite-900),var(--graphite-600))}
.phone-bezel__key-r{position:absolute;right:-3px;top:150px;width:3px;height:74px;border-radius:2px;background:linear-gradient(270deg,var(--graphite-900),var(--graphite-600))}
.phone-bezel__ground{width:74%;height:26px;margin-top:6px;background:radial-gradient(closest-side,rgba(20,20,22,.28),transparent 75%);border-radius:999px}

.chips-outer{max-width:640px;margin:22px auto 0;position:relative}
.chips-track{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-left:14px;padding:14px;border-radius:24px;background:rgba(255,255,255,.06);-webkit-overflow-scrolling:touch;scrollbar-width:none;position:relative;z-index:0}
.chips-track::-webkit-scrollbar{display:none}
.chip-indicator{position:absolute;top:14px;left:14px;height:calc(100% - 28px);width:108px;border-radius:18px;background:var(--branco);z-index:0;pointer-events:none;transition:transform 320ms cubic-bezier(.32,.72,0,1),width 320ms cubic-bezier(.32,.72,0,1)}
.chip{position:relative;z-index:1;flex:0 0 108px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 8px;border-radius:18px;border:none;cursor:pointer;font-family:var(--font-body);background-color:transparent;color:var(--cinza-lavanda);transform:scale(1);transition:color 420ms cubic-bezier(.32,.72,0,1),transform 420ms cubic-bezier(.32,.72,0,1)}
.chip.is-active{color:var(--azul-profundo);transform:scale(1.03)}
.chip__label{font-size:12px;font-weight:600;line-height:1.25;text-align:center;text-wrap:pretty}
/* recuados e retangulares, dentro da própria barra — em vez de circulares
   pra fora, que deixavam o chip seguinte "espiar" por baixo (feito com
   base na referência da apple) */
.chip-nav{position:absolute;top:0;bottom:0;width:38px;background:rgba(255,255,255,.14);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:var(--branco);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none;z-index:2;transition:background var(--dur-toque) var(--ease-out)}
.chip-nav:hover{background:rgba(255,255,255,.24)}
/* raio igual ao da barra (24px) na ponta externa, pra curva do botão coincidir com a curva do container */
.chip-nav--prev{left:0;border-radius:24px 10px 10px 24px}
.chip-nav--next{right:0;border-radius:10px 24px 24px 10px}
.chip-nav[hidden]{display:none!important}

/* degradê atrás do botão, pra esconder o chip seguinte em vez dele aparecer
   cortado/espiando por baixo do botão */
.chips-fade{position:absolute;top:0;bottom:0;width:56px;z-index:1;pointer-events:none}
.chips-fade--start{left:0;border-radius:24px 0 0 24px;background:linear-gradient(to right,rgba(30,30,30,.85),rgba(30,30,30,0))}
.chips-fade--end{right:0;border-radius:0 24px 24px 0;background:linear-gradient(to left,rgba(30,30,30,.85),rgba(30,30,30,0))}
.chips-fade[hidden]{display:none!important}

.feature-copy{max-width:560px;margin:clamp(24px,3vw,32px) auto 0;text-align:center;display:grid}
.feature-copy__item{grid-area:1/1;width:100%;margin:0;font-size:15px;line-height:1.55;color:var(--cinza-lavanda);text-wrap:pretty;visibility:hidden;pointer-events:none;opacity:0}
.feature-copy__item.is-active{visibility:visible;pointer-events:auto;opacity:1;animation:tcc-sobe var(--dur-base) var(--ease-out) both}

/* ---------- camera ---------- */
.camera-section{background:var(--branco);padding:clamp(64px,10vw,128px) clamp(20px,5vw,40px)}
.camera-section__copy{max-width:740px;margin:0 auto;text-align:center}

.camera-carousel{width:100%;position:relative;overflow:hidden;height:clamp(280px,54vw,700px);background:#EAE8E6}
.camera-track{display:flex;width:200%;height:100%;transition:transform 500ms var(--ease-out);touch-action:pan-y;cursor:pointer}
.camera-track.is-slide-1{transform:translateX(-50%)}
.camera-slide{width:50%;height:100%;object-fit:cover;display:block;flex:0 0 50%}
.camera-slide2{width:50%;height:100%;flex:0 0 50%;position:relative;overflow:hidden;background:#000}
.tcc-cam-full{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.tcc-cam-crop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}
@media (max-width:1279px){.tcc-cam-full{display:none}.tcc-cam-crop{display:block}}
@media (max-width:550px){.tcc-cam-crop{object-fit:contain}}

.camera-nav{position:absolute;top:0;bottom:0;width:clamp(36px,8vw,56px);display:flex;align-items:center;justify-content:center;border:none;border-radius:0;color:var(--branco);cursor:pointer;transition:background var(--dur-base) var(--ease-out)}
.camera-nav--prev{left:0;background:linear-gradient(to right,rgba(1,1,1,.32),rgba(1,1,1,0))}
.camera-nav--prev:hover{background:linear-gradient(to right,rgba(1,1,1,.5),rgba(1,1,1,.05))}
.camera-nav--next{right:0;background:linear-gradient(to left,rgba(1,1,1,.32),rgba(1,1,1,0))}
.camera-nav--next:hover{background:linear-gradient(to left,rgba(1,1,1,.5),rgba(1,1,1,.05))}
.camera-dots{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;gap:10px}
.camera-dot{width:10px;height:10px;padding:0;border:1px solid var(--neutro-500);border-radius:999px;background:transparent;cursor:pointer}
.camera-dot.is-active{background:var(--accent)}

.camera-features{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(28px,4vw,48px) clamp(24px,3vw,40px);max-width:1100px;margin:clamp(36px,4.5vw,56px) auto clamp(64px,9vw,112px);padding:0 clamp(20px,5vw,40px)}
.camera-feature{display:flex;flex-direction:column;align-items:center;text-align:center;width:clamp(140px,16vw,190px)}
.camera-feature__icon{flex:0 0 auto;width:84px;height:84px;margin:0 auto;background:var(--preto);color:var(--branco);display:flex;align-items:center;justify-content:center}
.camera-feature__label{margin-top:16px;font-family:var(--font-display);font-size:17px;font-weight:400;letter-spacing:-0.01em;text-wrap:pretty}
.camera-feature__desc{margin:10px 0 0;font-size:13px;line-height:1.45;color:var(--text-secondary);text-wrap:pretty}

@media (max-width:820px){
  .phone-stage{flex-direction:column}
  .stats-grid{grid-template-columns:1fr}
}

@media (max-width:640px){
  .camera-features{flex-direction:column;align-items:stretch;max-width:440px;gap:26px;padding:0 28px}
  .camera-feature{flex-direction:row;align-items:center;text-align:left;width:auto;gap:16px}
  .camera-feature__icon{width:60px;height:60px}
  .camera-feature__icon .icon svg{width:26px;height:26px}
  .camera-feature__text{flex:1;min-width:0}
  .camera-feature__label{margin-top:0;font-size:15px}
  .camera-feature__desc{margin-top:4px;font-size:13px;line-height:1.4}
}

/* ---------- faq ---------- */
.faq-section{background:var(--branco);padding:clamp(64px,10vw,128px) clamp(20px,5vw,40px)}
.faq-section__inner{max-width:720px;margin:0 auto}
.faq-eyebrow{display:block;text-align:center;color:var(--text-muted)}
.faq-list{margin-top:clamp(28px,4vw,48px);border-top:var(--fio) solid var(--border-hairline)}
.faq-item{border-bottom:var(--fio) solid var(--border-hairline)}
.faq-question{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:16px 0;background:transparent;border:none;cursor:pointer;text-align:left;font-family:var(--font-body);font-size:15px;color:var(--text-primary);text-wrap:pretty}
.faq-question strong{font-weight:600}
.faq-mark{font-family:var(--font-display);font-size:16px;color:var(--text-muted);line-height:1;flex:0 0 auto}
.faq-answer{margin:0 0 18px;font-size:14px;line-height:1.55;color:var(--text-secondary);text-wrap:pretty;animation:tcc-sobe var(--dur-base) var(--ease-out) both}

/* ---------- waitlist section (bottom) ---------- */
.waitlist-section{background:var(--surface-tom-1);padding:clamp(64px,10vw,128px) clamp(20px,5vw,40px);scroll-margin-top:56px}
.waitlist-section__inner{max-width:620px;margin:0 auto;text-align:center}
.waitlist-section__mark{width:99px;height:95px;object-fit:contain}
.waitlist-section__title{margin:22px 0 0}
.waitlist-section__subtitle{margin:26px 0 0;font-size:clamp(16px,1.6vw,19px);line-height:1.55;color:var(--text-secondary);text-wrap:pretty}
.waitlist-section .waitlist-wrap{margin-top:clamp(28px,3.5vw,40px)}

/* ---------- footer ---------- */
.site-footer{background:var(--branco);border-top:var(--fio) solid var(--border-hairline);padding:32px clamp(20px,5vw,40px) 48px}
.site-footer__inner{max-width:1280px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px}
.site-footer__brand{font-family:var(--font-display);font-size:15px;font-weight:500;letter-spacing:-0.02em}
.site-footer__nav{display:flex;gap:22px;font-size:13px;color:var(--text-secondary)}
.site-footer__legal{margin:0;flex:1 1 100%;font-size:12px;line-height:1.55;color:var(--text-muted);text-wrap:pretty}
