/* RAGIT — Landing cinematográfica (v4) */

@font-face{font-family:Oswald;font-style:normal;font-weight:200 700;font-display:swap;src:url(assets/fonts/oswald-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}
@font-face{font-family:Oswald;font-style:normal;font-weight:200 700;font-display:swap;src:url(assets/fonts/oswald-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;src:url(assets/fonts/grotesk-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;src:url(assets/fonts/grotesk-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}

:root{
  --acc:#a855f7;--acc-2:#ad0ffb;--acc-3:#7a1aaa;--acc-soft:#c084fc;
  --bg:#050507;--ink:#fafafa;
  --display:Oswald,"Arial Narrow",sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:#f0f0f0;font-family:"Space Grotesk",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
:where(a){color:var(--acc);text-decoration:none}
:where(a:hover){color:var(--acc-soft)}
a:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
::selection{background:var(--acc);color:#0a0a0a}
.acc{color:var(--acc)}
.muted{color:#6b6b6b}
em{font-style:normal}

@keyframes om-marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes om-cursor{0%,100%{opacity:1}50%{opacity:0}}
@keyframes om-grain{0%{transform:translate(0,0)}20%{transform:translate(-6%,4%)}40%{transform:translate(4%,-6%)}60%{transform:translate(-3%,-3%)}80%{transform:translate(5%,3%)}100%{transform:translate(0,0)}}
@keyframes om-cue{0%{transform:translateY(-6px);opacity:0}40%{opacity:1}100%{transform:translateY(10px);opacity:0}}

/* ---------- Palco fixo: canvas + placas + grão ---------- */
.stage{position:fixed;inset:0;z-index:0;pointer-events:none;background:var(--bg)}
.stage-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.plates{position:absolute;inset:0;overflow:hidden}
.plate{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;will-change:transform,opacity}
.scrim{position:absolute;inset:0;opacity:0;background:linear-gradient(90deg,rgba(5,5,7,.88) 0%,rgba(5,5,7,.62) 48%,rgba(5,5,7,.42) 100%),linear-gradient(0deg,rgba(5,5,7,.5) 0%,rgba(5,5,7,0) 34%)}
.vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,rgba(0,0,0,0) 35%,rgba(5,5,7,.72) 100%)}
.grain{position:absolute;inset:-25%;opacity:.05;mix-blend-mode:overlay;animation:om-grain 1.1s steps(2) infinite;background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAiIGhlaWdodD0iMTYwIj48ZmlsdGVyIGlkPSJuIj48ZmVUdXJidWxlbmNlIHR5cGU9ImZyYWN0YWxOb2lzZSIgYmFzZUZyZXF1ZW5jeT0iMC44NSIgbnVtT2N0YXZlcz0iMyIvPjwvZmlsdGVyPjxyZWN0IHdpZHRoPSIxNjAiIGhlaWdodD0iMTYwIiBmaWx0ZXI9InVybCgjbikiIG9wYWNpdHk9IjAuNTUiLz48L3N2Zz4=')}

.progress{position:fixed;top:0;left:0;height:2px;z-index:60;width:0%;background:linear-gradient(90deg,var(--acc-3),var(--acc),var(--acc-2));box-shadow:0 0 14px rgba(168,85,247,.8)}

/* ---------- Navegação ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;background:transparent;border-bottom:1px solid rgba(255,255,255,0);transition:background .5s ease,backdrop-filter .5s ease,border-color .5s ease}
.nav.is-solid{background:rgba(5,5,7,.86);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom-color:rgba(255,255,255,.08)}
.nav-inner{max-width:1400px;margin:0 auto;padding:0 24px;height:68px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center}
.brand-logo{display:block;width:auto;height:28px}
.nav-links{display:flex;align-items:center;gap:28px}
.nav-link{display:none;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#8a8a8a;transition:color .3s ease}
.nav-link:hover{color:#f0f0f0}
@media (min-width:900px){.nav-link{display:inline}}

/* ---------- Botões ---------- */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;border-radius:99px;font-size:13px;letter-spacing:.16em;text-transform:uppercase;transition:transform .3s var(--ease),box-shadow .3s ease,border-color .3s ease,color .3s ease}
.btn-primary{padding:18px 38px;font-weight:700;color:#0a0a0a;background:linear-gradient(180deg,var(--acc-soft),var(--acc));box-shadow:0 22px 50px -18px rgba(168,85,247,.95),inset 0 1px 0 rgba(255,255,255,.45)}
.btn-primary:hover{color:#0a0a0a;transform:translateY(-2px);box-shadow:0 28px 60px -16px rgba(168,85,247,1),inset 0 1px 0 rgba(255,255,255,.45)}
.btn-outline{padding:18px 32px;font-weight:600;color:#d4d4d4;border:1px solid rgba(255,255,255,.16)}
.btn-outline:hover{color:#fff;border-color:rgba(168,85,247,.7)}
.btn-lg.btn-primary{padding:20px 44px;box-shadow:0 24px 60px -18px rgba(168,85,247,.95),inset 0 1px 0 rgba(255,255,255,.45)}
.btn-lg.btn-outline{padding:20px 36px}
.btn-nav{padding:12px 26px;font-size:12px;font-weight:600;color:#f5f5f5;background:linear-gradient(180deg,#2a2a2a,#141414);border:1px solid rgba(255,255,255,.14);box-shadow:0 14px 32px -14px rgba(168,85,247,.6),inset 0 1px 0 rgba(255,255,255,.12)}
.btn-nav:hover{color:#f5f5f5;border-color:rgba(168,85,247,.7);box-shadow:0 18px 40px -12px rgba(168,85,247,.85),inset 0 1px 0 rgba(255,255,255,.2)}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}

/* ---------- Revelação ao rolar ---------- */
.js .reveal{opacity:0;transform:translateY(var(--ry,30px));transition:opacity var(--rt,.9s) var(--ease) var(--rd,0s),transform var(--rt,.9s) var(--ease) var(--rd,0s)}
.js .reveal.is-in{opacity:1;transform:none}

/* ---------- Tipografia comum ---------- */
main{position:relative;z-index:10}
.eyebrow{font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--acc)}
.display{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:-.03em;line-height:.88;color:var(--ink)}
.container{max-width:1400px;margin:0 auto;padding:0 24px;width:100%;box-sizing:border-box}
.glass{border:1px solid rgba(255,255,255,.1);background:rgba(16,16,18,.62);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}

/* ---------- Hero ---------- */
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:120px 24px 40px;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}
.hero-kicker{display:flex;align-items:center;gap:18px}
.hero-kicker-rule{width:clamp(26px,5vw,68px);height:1px;flex:none;background:var(--acc)}
.hero-kicker-label{font-family:var(--display);font-size:13px;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:#c9c9c9}
.hero-title{margin:32px 0 0;font-family:var(--display);font-weight:500;text-transform:uppercase;letter-spacing:-.035em;line-height:.82;font-size:clamp(3.2rem,9.4vw,9.4rem);color:var(--ink);text-wrap:balance}
.hero-title .glow{color:var(--acc);text-shadow:0 0 60px rgba(168,85,247,.55)}
.hero-foot{margin-top:36px;display:flex;flex-wrap:wrap;gap:40px;align-items:flex-end;justify-content:space-between}
.hero-lede{margin:0;max-width:30ch;font-size:16px;line-height:1.7;color:#a3a3a3}
.hero-lede em{color:#e9d5ff}
.hero-cue{margin-top:72px;display:flex;align-items:center;gap:24px}
.cue-label{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:#555}
.cue-line{position:relative;display:block;flex:none;width:1px;height:46px;background:rgba(255,255,255,.12);overflow:hidden}
.cue-line::after{content:"";position:absolute;left:0;top:0;width:1px;height:16px;background:var(--acc);animation:om-cue 2.2s ease-in-out infinite}

/* ---------- Marquees ---------- */
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee-track{display:flex;width:max-content;animation:om-marq 34s linear infinite}
.marquee-group{display:flex;gap:38px;padding-right:38px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#6b6b6b;white-space:nowrap}
.marquee-group .sep{color:var(--acc)}
.hero-cue .marquee{flex:1}
.marquee--sectors{margin-top:36px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee--sectors .marquee-track{animation-duration:40s}
.marquee--sectors .marquee-group{gap:56px;padding-right:56px;font-family:var(--display);font-size:15px;letter-spacing:.26em;color:#8a8a8a}

/* ---------- Ato I — O silêncio ---------- */
.act1{max-width:1400px;margin:0 auto;padding:140px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:64px;align-items:start}
.act1-head{position:sticky;top:120px}
.act1-title{margin:22px 0 0;font-size:clamp(2.4rem,5.4vw,5rem)}
.act1-body{display:flex;flex-direction:column;gap:52px;padding-top:18px}
.act1-lead{margin:0;font-size:clamp(20px,2.3vw,30px);line-height:1.45;color:#e5e5e5;text-wrap:pretty}
.pain-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px}
.pain-card{border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:24px;background:rgba(20,20,20,.55);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:border-color .3s ease,background .3s ease}
.pain-card:hover{border-color:rgba(168,85,247,.45);background:rgba(26,26,26,.7)}
.pain-num{font-family:var(--display);font-size:34px;color:var(--ink);letter-spacing:-.02em}
.pain-text{margin-top:8px;font-size:13px;line-height:1.6;color:#8a8a8a}
.act1-turn{margin:0;font-family:var(--display);font-size:clamp(1.4rem,2.6vw,2.2rem);text-transform:uppercase;letter-spacing:-.01em;line-height:1.15;color:var(--ink)}

/* ---------- Ato II — A ignição (sticky, 320vh) ---------- */
.act2{position:relative;height:320vh}
.sticky-stage{position:sticky;top:0;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ring{position:absolute;border-radius:50%}
.ring--outer{width:min(78vmin,760px);height:min(78vmin,760px);border:1px solid rgba(168,85,247,.18)}
.ring--inner{width:min(54vmin,520px);height:min(54vmin,520px);border:1px dashed rgba(168,85,247,.28)}
.core{position:absolute;width:min(30vmin,300px);height:min(30vmin,300px);border-radius:50%;background:radial-gradient(circle,rgba(168,85,247,.45) 0%,rgba(168,85,247,0) 68%);filter:blur(6px)}
.act2-inner{position:relative;text-align:center;padding:0 24px;max-width:1100px}
.act2-lines{position:relative;margin-top:26px;height:clamp(180px,26vh,260px)}
.act2-line{position:absolute;inset:0;margin:0;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:-.03em;line-height:.92;font-size:clamp(2.2rem,6.4vw,5.6rem);color:var(--ink)}
.act2-line + .act2-line{opacity:0}
.act2-stats{margin-top:14px;display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(24px,5vw,64px)}
.stat-num{font-family:var(--display);font-size:clamp(28px,4vw,52px);color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat-num.acc{color:var(--acc)}
.stat-label{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:#6b6b6b}

.chat{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s ease;margin:38px auto 0;max-width:620px;text-align:left;border:1px solid rgba(168,85,247,.3);border-radius:20px;background:rgba(10,10,12,.82);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 40px 90px -40px rgba(168,85,247,.7);overflow:hidden}
.chat-bar{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.08)}
.chat-dot{width:8px;height:8px;border-radius:99px;background:#f87171}
.chat-dot:nth-child(2){background:#fbbf24}
.chat-dot:nth-child(3){background:#34d399}
.chat-title{margin-left:10px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#6b6b6b}
.chat-body{padding:20px 22px;display:flex;flex-direction:column;gap:16px}
.msg-user{align-self:flex-end;max-width:80%;border-radius:16px 16px 4px 16px;padding:12px 16px;background:rgba(255,255,255,.07);font-size:15px;color:#e5e5e5}
.msg-bot{align-self:flex-start;max-width:86%;border-radius:16px 16px 16px 4px;padding:14px 16px;background:linear-gradient(180deg,rgba(168,85,247,.22),rgba(168,85,247,.1));border:1px solid rgba(168,85,247,.35);font-size:15px;color:var(--ink)}
.msg-src{display:block;margin-top:8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc-soft)}
.caret{display:inline-block;width:7px;height:14px;margin-left:6px;vertical-align:-2px;background:var(--acc);animation:om-cursor 1s steps(2) infinite}

/* ---------- Ato III — A máquina (trilho horizontal, 340vh) ---------- */
.act3{position:relative;height:340vh}
.act3 .sticky-stage{flex-direction:column;align-items:stretch}
.act3-title{margin:18px 0 46px;line-height:.9;font-size:clamp(2.2rem,5vw,4.4rem)}
.track-viewport{overflow:hidden}
.track{display:flex;gap:22px;padding:0 24px;width:max-content;will-change:transform}
.step{width:clamp(260px,30vw,360px);border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:28px;background:rgba(16,16,18,.66);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:border-color .3s ease}
.step:hover{border-color:rgba(168,85,247,.5)}
.step--key{border-color:rgba(168,85,247,.45);background:linear-gradient(180deg,rgba(168,85,247,.16),rgba(16,16,18,.72));box-shadow:0 30px 70px -40px rgba(168,85,247,.9)}
.step-num{font-family:var(--display);font-size:13px;letter-spacing:.3em;color:var(--acc)}
.step h3{margin:14px 0 10px;font-family:var(--display);font-size:26px;font-weight:700;text-transform:uppercase;letter-spacing:-.01em;color:var(--ink)}
.step p{margin:0;font-size:14px;line-height:1.65;color:#8a8a8a}
.step--key p{color:#cbb7e8}
.step-coda{width:clamp(260px,30vw,360px);display:flex;flex-direction:column;justify-content:center;gap:14px;padding:28px}
.coda-title{font-family:var(--display);font-size:clamp(28px,3.4vw,44px);text-transform:uppercase;line-height:.95;color:var(--ink)}
.coda-link{font-size:12px;letter-spacing:.2em;text-transform:uppercase}

/* ---------- Provas (seção clara) ---------- */
.proofs{position:relative;background:rgba(230,230,230,.955);color:#0a0a0a;padding:120px 24px;box-shadow:0 -40px 120px -40px rgba(168,85,247,.5)}
.proofs-inner{max-width:1400px;margin:0 auto}
.proofs-head{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-end;justify-content:space-between}
.proofs-title{margin:0;font-size:clamp(2.2rem,5.2vw,4.6rem);color:#0a0a0a}
.proofs-title em{color:var(--acc-3)}
.proofs-note{margin:0;max-width:34ch;font-size:15px;line-height:1.7;color:#525252}
.metrics{margin-top:64px;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:#cfcfcf;border:1px solid #cfcfcf;border-radius:22px;overflow:hidden}
.metric{background:#e6e6e6;padding:34px 26px;transition:background .3s ease}
.metric:hover{background:#f0f0ee}
.metric-num{font-family:var(--display);font-size:clamp(38px,4.6vw,64px);line-height:1;letter-spacing:-.03em;color:#0a0a0a}
.metric-unit{font-size:.45em;color:var(--acc-3)}
.metric-label{margin-top:12px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#525252}
.segments{margin-top:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.segment{border:1px solid #cfcfcf;border-radius:22px;padding:28px;background:#f0f0ee}
.segment-tag{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--acc-3)}
.segment p{margin:14px 0 0;font-size:15px;line-height:1.65;color:#404040}

/* ---------- Ato IV — As vozes ---------- */
.voices{max-width:1400px;margin:0 auto;padding:140px 24px}
.voices-head{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-end;justify-content:space-between}
.voices-title{margin:18px 0 0;font-size:clamp(2.2rem,5.2vw,4.6rem)}
.rating{display:flex;align-items:center;gap:18px;border-color:rgba(255,255,255,.12);border-radius:18px;padding:18px 24px;background:rgba(16,16,18,.6)}
.rating-score{font-family:var(--display);font-size:44px;line-height:1;color:var(--ink)}
.stars{letter-spacing:.18em;color:var(--acc);font-size:15px}
.rating-count{margin-top:4px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#8a8a8a}
.quotes{margin-top:56px;display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px}
.quote{margin:0;border-radius:24px;padding:32px;display:flex;flex-direction:column;gap:22px}
.js .quote.reveal{transition-property:opacity,transform,border-color}
.quote:hover{border-color:rgba(168,85,247,.45)}
.js .quote.reveal.is-in:hover,.quote:hover{transform:translateY(-4px);transition-delay:0s}
.quote .stars{font-size:14px}
.quote blockquote{margin:0;font-size:18px;line-height:1.55;color:#e5e5e5}
.quote figcaption{display:flex;align-items:center;gap:14px;margin-top:auto}
.avatar{width:42px;height:42px;flex:none;border-radius:99px;background:linear-gradient(135deg,var(--acc-3),var(--acc-2));display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:15px;color:#fff}
.person-name{display:block;font-size:14px;color:var(--ink)}
.person-role{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#8a8a8a}

/* ---------- Ato V — O convite ---------- */
.final{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:140px 24px 90px}
.final-title{margin:26px 0 0;font-weight:500;letter-spacing:-.035em;line-height:.84;font-size:clamp(2.8rem,8.4vw,8rem);max-width:16ch}
.final-title .glow{color:var(--acc);text-shadow:0 0 70px rgba(168,85,247,.6)}
.final-lede{margin:34px 0 0;max-width:46ch;font-size:17px;line-height:1.7;color:#a3a3a3}
.final .cta-row{margin-top:40px;justify-content:center}
.footer{margin-top:110px;width:100%;max-width:1400px;border-top:1px solid rgba(255,255,255,.08);padding-top:26px;display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between;text-align:left}
.footer-brand{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;font-family:var(--display);font-size:14px;letter-spacing:.24em;text-transform:uppercase;color:#8a8a8a}
.footer-logo{display:block;width:auto;height:20px}
.footer-meta{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#a3a3a3}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important}
}
