/* =========================================================
   Cyra: base do site único
   Tokens, tipografia, navegação, hero, cenas e rodapé
   ========================================================= */
:root{
  --obsidian:#000; --paper:#fff; --inkstone:#181818; --felt:#6d6d6d; --ash:#9a9a9a; --mist:#efefef;
  --bg:var(--paper); --fg:var(--obsidian); --muted:var(--felt); --line:rgba(0,0,0,.14);
  --font:'General Sans','Inter',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --signal:#ffac2e;
  --ease:cubic-bezier(.19,1,.22,1);
  --ease-io:cubic-bezier(.76,0,.24,1);
  --max:1078px; --wide:1320px; --gutter:clamp(20px,4vw,48px); --pill:75px;
}
body.is-dark{ --bg:var(--obsidian); --fg:var(--paper); --muted:var(--ash); --line:rgba(255,255,255,.18); }
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
html.lenis,html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-stopped{ overflow:hidden; }
body{
  margin:0; background:var(--bg); color:var(--fg); font-family:var(--font); font-size:16px; line-height:1.5;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
  transition:background-color 1.25s var(--ease), color 1.25s var(--ease);
}
a{ color:inherit; text-decoration:none; }
img,svg,canvas,video{ display:block; max-width:100%; }
button,input,textarea{ font:inherit; color:inherit; }
button{ background:none; border:0; cursor:pointer; padding:0; }
:focus-visible{ outline:2px solid var(--signal); outline-offset:4px; }
::selection{ background:var(--signal); color:#000; }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.container{ max-width:var(--max); margin:0 auto; }
.muted{ color:var(--muted); transition:color 1.25s var(--ease); }
.line{ display:block; overflow:hidden; padding-bottom:.1em; margin-bottom:-.1em; }
.line > span{ display:block; will-change:transform; }
.label{ display:block; font-family:var(--mono); font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); margin:0 0 22px; transition:color 1.25s var(--ease); }
.h-whisper{ font-size:clamp(40px,5.4vw,78px); font-weight:300; line-height:1.06; letter-spacing:-.03em; margin:0; }
.h-anchor{ font-size:clamp(56px,8.7vw,94px); font-weight:400; line-height:.86; letter-spacing:-.04em; margin:0; }
.lede{ font-size:18px; line-height:1.55; max-width:32em; margin:0; }
.section{ position:relative; z-index:2; padding:140px var(--gutter); }
.sec-head{ display:grid; grid-template-columns:7fr 5fr; gap:28px 48px; align-items:end; margin-bottom:72px; }
.sec-head .lede{ color:var(--muted); transition:color 1.25s var(--ease); }

/* Pílulas */
.pill{
  display:inline-flex; align-items:center; position:relative; overflow:hidden; isolation:isolate;
  border:1px solid currentColor; border-radius:var(--pill); padding:11px 33px;
  font-size:16px; line-height:1.2; white-space:nowrap; transition:border-color .8s var(--ease), color .6s var(--ease);
}
.pill__roll{ display:block; height:1.2em; overflow:hidden; }
.pill__roll span{ display:block; transition:transform .8s var(--ease); }
.pill:hover .pill__roll span{ transform:translateY(-100%); }
.pill--light{ border-color:rgba(255,255,255,.3); color:#fff; }
.pill--light:hover{ border-color:#fff; }
.pill--sm{ padding:9px 22px; font-size:14px; }
.pill--solid{ background:var(--fg); color:var(--bg); border-color:var(--fg); }
button.pill{ cursor:pointer; }

/* Loader */
.loader{ position:fixed; inset:0; z-index:100; background:#000; color:#fff; display:none; place-items:center; }
.motion .loader{ display:grid; }
.loader__word{ font-size:clamp(72px,16vw,240px); letter-spacing:-.05em; line-height:.9; overflow:hidden; display:flex; }
.loader__word span{ display:inline-block; }
.loader__bar{ position:absolute; left:var(--gutter); right:var(--gutter); bottom:48px; height:1px; background:rgba(255,255,255,.2); }
.loader__bar i{ position:absolute; inset:0; background:#fff; transform-origin:left; transform:scaleX(0); }
.loader__meta{ position:absolute; left:var(--gutter); bottom:64px; font-family:var(--mono); font-size:12px; text-transform:uppercase; color:var(--ash); margin:0; }
.loader__count{ position:absolute; right:var(--gutter); bottom:64px; font-family:var(--mono); font-size:12px; color:var(--ash); margin:0; font-variant-numeric:tabular-nums; }

/* Cursor */
.cursor{ position:fixed; left:0; top:0; z-index:90; pointer-events:none; display:none; }
.has-cursor .cursor{ display:block; opacity:0; transition:opacity .4s; }
.has-cursor .cursor.is-on{ opacity:1; }
.cursor__dot{ width:10px; height:10px; margin:-5px 0 0 -5px; border-radius:50%; background:#fff; mix-blend-mode:difference; transition:transform .5s var(--ease); }
.cursor__label{ position:absolute; left:0; top:0; transform:translate(-50%,-50%) scale(.4); opacity:0; background:#000; color:#fff; border:1px solid rgba(255,255,255,.3); border-radius:var(--pill); padding:9px 20px; font-size:13px; white-space:nowrap; transition:transform .6s var(--ease), opacity .4s; }
.cursor.is-label .cursor__label{ transform:translate(-50%,-50%) scale(1); opacity:1; }
.cursor.is-label .cursor__dot{ transform:scale(0); }

/* Navegação */
.nav{ position:fixed; inset:0 0 auto 0; z-index:60; height:66px; padding:0 var(--gutter); display:grid; grid-template-columns:1fr auto; align-items:center; color:#fff; mix-blend-mode:difference; font-size:13px; }
.nav.on-hero{ mix-blend-mode:normal; }
.nav__logo{ font-size:24px; font-weight:500; letter-spacing:-.03em; justify-self:start; }
.nav__center{ font-family:var(--mono); font-size:11px; text-transform:uppercase; color:rgba(255,255,255,.7); }
.nav__menu{ justify-self:end; display:flex; align-items:center; gap:28px; list-style:none; margin:0; padding:0; }
.nav__portal{ border:1px solid rgba(255,255,255,.55); border-radius:var(--pill); padding:7px 16px; font-size:13px; transition:background-color .5s var(--ease), color .5s var(--ease); }
.nav__portal:hover{ background:#fff; color:#000; }
.nav__burger{ display:none; justify-self:end; width:44px; height:44px; position:relative; }
.nav__burger i{ position:absolute; left:11px; right:11px; height:1px; background:currentColor; transition:transform .7s var(--ease), top .7s var(--ease); }
.nav__burger i:nth-child(1){ top:19px; } .nav__burger i:nth-child(2){ top:25px; }
.menu-open .nav__burger i:nth-child(1){ top:22px; transform:rotate(45deg); }
.menu-open .nav__burger i:nth-child(2){ top:22px; transform:rotate(-45deg); }
.roll{ display:inline-block; height:1.5em; overflow:hidden; vertical-align:top; }
.roll span{ display:block; transition:transform .7s var(--ease); }
a:hover > .roll span{ transform:translateY(-100%); }

/* Menu em tela cheia (celular) */
.sheet{ position:fixed; inset:0; z-index:55; background:#000; color:#fff; display:flex; flex-direction:column; justify-content:flex-end; gap:36px; padding:96px var(--gutter) 40px; clip-path:inset(0 0 100% 0); visibility:hidden; }
.sheet ul{ list-style:none; margin:0; padding:0; }
.sheet a, .sheet button{ display:block; font-size:clamp(40px,12vw,64px); font-weight:300; letter-spacing:-.035em; line-height:1.12; text-align:left; }
.sheet li{ overflow:hidden; }
.sheet li > *{ transform:translateY(105%); }
.sheet__foot{ font-family:var(--mono); font-size:12px; color:var(--ash); text-transform:uppercase; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }

/* Hero */
.hero{ position:relative; z-index:0; height:100vh; height:100svh; min-height:560px; overflow:hidden; background:#000; color:#fff; display:grid; place-items:center; }
.hero canvas{ position:absolute; inset:0; width:100%; height:100%; }
.hero__fallback{ position:absolute; inset:-20%; background:radial-gradient(40% 50% at 30% 60%, rgba(165,45,37,.9), transparent 70%), radial-gradient(35% 40% at 70% 40%, rgba(255,172,46,.7), transparent 70%), radial-gradient(30% 35% at 55% 75%, rgba(160,224,171,.45), transparent 70%), #000; filter:blur(40px); }
.hero__title{ position:relative; margin:0; text-align:center; font-weight:400; font-size:clamp(60px,12.6vw,225px); line-height:.86; letter-spacing:-.045em; will-change:transform; }
.hero__title .word{ display:inline-block; white-space:nowrap; }
.hero__title .ch{ display:inline-block; will-change:transform; }
.hero__note{ position:absolute; right:var(--gutter); bottom:40px; width:min(340px,70vw); font-size:12px; line-height:1.5; color:rgba(255,255,255,.72); }
.hero__note p{ margin:0 0 18px; }
.hero__note strong{ display:block; font-weight:400; color:#fff; margin-bottom:6px; font-size:13px; }
.hero__ctas{ display:flex; flex-wrap:wrap; gap:8px; }
.hero__meta{ position:absolute; left:var(--gutter); top:96px; font-family:var(--mono); font-size:11px; text-transform:uppercase; color:rgba(255,255,255,.6); line-height:1.7; }
.badge{ position:absolute; left:var(--gutter); bottom:32px; width:112px; height:112px; color:#fff; }
.badge svg{ width:100%; height:100%; animation:spin 22s linear infinite; }
.badge__core{ position:absolute; left:50%; top:50%; width:7px; height:7px; margin:-3.5px; border-radius:50%; background:#fff; }
@keyframes spin{ to{ transform:rotate(360deg); } }

/* Manifesto e números */
.manifesto{ position:relative; z-index:2; background:#fff; color:#000; min-height:100vh; padding:152px var(--gutter) 120px; display:flex; align-items:center; border-radius:28px 28px 0 0; margin-top:-28px; }
.manifesto > .container{ width:100%; }
.manifesto__text{ font-size:clamp(32px,5vw,72px); font-weight:300; line-height:1.1; letter-spacing:-.025em; margin:0; max-width:15.5em; }
.motion .manifesto__text .w{ color:#d4d4d4; }
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:32px; margin-top:120px; padding-top:28px; border-top:1px solid rgba(0,0,0,.14); }
.stat > span{ display:block; font-size:14px; line-height:1.45; color:var(--felt); max-width:15em; margin-top:14px; }
.odo{ display:flex; margin:0; font-size:clamp(56px,6.4vw,94px); font-weight:300; letter-spacing:-.04em; line-height:1; }
.odo__col{ display:block; height:1em; overflow:hidden; }
.odo__strip{ display:block; transition:transform 2s var(--ease); }
.odo__strip span{ display:block; height:1em; }
.odo__suf{ display:block; }

/* Letreiro */
.marquee{ position:relative; z-index:2; overflow:hidden; padding:64px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); transition:border-color 1.25s var(--ease); }
.marquee__track{ display:flex; width:max-content; will-change:transform; }
.marquee__group{ display:flex; align-items:center; flex-shrink:0; }
.marquee__group span{ font-size:clamp(44px,6.6vw,94px); font-weight:300; letter-spacing:-.035em; line-height:1; padding:0 .45em; white-space:nowrap; }
.marquee__group i{ width:.9em; height:.42em; font-size:clamp(44px,6.6vw,94px); border:1px solid currentColor; border-radius:var(--pill); flex-shrink:0; }

/* Serviços */
.svc{ list-style:none; margin:0; padding:0; border-bottom:1px solid var(--line); }
.svc li{ border-top:1px solid var(--line); }
.svc__row{ position:relative; display:grid; grid-template-columns:48px 6fr 5fr; gap:12px 32px; align-items:baseline; padding:30px 20px; margin:0 -20px; overflow:hidden; isolation:isolate; }
.svc__row::before{ content:""; position:absolute; inset:0; z-index:-1; background:var(--fg); transform:scaleY(0); transform-origin:bottom; transition:transform .8s var(--ease); }
.svc__n{ font-family:var(--mono); font-size:12px; color:var(--muted); transition:color .5s ease; }
.svc__title{ font-size:clamp(26px,2.9vw,39px); font-weight:300; letter-spacing:-.02em; line-height:1.12; transition:transform .8s var(--ease), color .5s ease; }
.svc__desc{ font-size:15px; line-height:1.55; color:var(--muted); max-width:28em; transition:color .5s ease; }
@media (hover:hover){
  .svc__row:hover::before{ transform:scaleY(1); transform-origin:top; }
  .svc__row:hover .svc__title{ color:var(--bg); transform:translateX(12px); }
  .svc__row:hover .svc__desc, .svc__row:hover .svc__n{ color:var(--bg); }
}

/* =========================================================
   Cena fixada: como funciona (palavras gigantes e túnel de molduras)
   ========================================================= */
.scene{ position:relative; z-index:2; background:#000; color:#fff; height:100vh; height:100svh; min-height:600px; overflow:hidden; }
.scene__bg{ position:absolute; inset:-6%; background:url("../media/mount6.jpg") center/cover; opacity:.34; filter:grayscale(1) contrast(1.1); will-change:transform; }
.scene__vignette{ position:absolute; inset:0; background:radial-gradient(70% 70% at 50% 50%, transparent 30%, #000 100%); }
.scene__tunnel{ position:absolute; inset:0; display:grid; place-items:center; pointer-events:none; }
.scene__tunnel i{ position:absolute; width:min(52vw,52vh*1.6); aspect-ratio:16/10; border:1px solid rgba(255,255,255,.22); border-radius:6px; will-change:transform,opacity; }
.scene__top{ position:absolute; left:var(--gutter); right:var(--gutter); top:92px; display:flex; justify-content:space-between; gap:24px; font-family:var(--mono); font-size:12px; text-transform:uppercase; color:rgba(255,255,255,.7); }
.scene__words{ position:absolute; inset:0; display:grid; place-items:center; }
.scene__word{ position:absolute; margin:0; font-size:clamp(54px,15vw,250px); font-weight:400; letter-spacing:-.05em; line-height:.9; white-space:nowrap; display:flex; will-change:transform,opacity,filter; }
.scene__word .ch{ display:inline-block; will-change:transform; }
.scene__copy{ position:absolute; left:var(--gutter); bottom:44px; width:min(420px,calc(100% - var(--gutter) * 2)); }
.scene__copy p{ margin:0; font-size:17px; line-height:1.5; color:rgba(255,255,255,.82); position:absolute; left:0; bottom:0; opacity:0; }
.scene__copy-box{ position:relative; height:110px; }
.scene__rail{ position:absolute; right:var(--gutter); bottom:44px; display:flex; align-items:flex-end; gap:20px; font-family:var(--mono); font-size:12px; color:rgba(255,255,255,.6); }
.scene__rail ol{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; text-transform:uppercase; }
.scene__rail li{ transition:color .5s ease, transform .8s var(--ease); }
.scene__rail li.is-on{ color:#fff; transform:translateX(-8px); }
.scene__bar{ width:1px; height:84px; background:rgba(255,255,255,.2); position:relative; }
.scene__bar i{ position:absolute; inset:0; background:#fff; transform-origin:top; transform:scaleY(0); }

/* Segmentos */
.seg{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.seg__cell{ position:relative; padding:28px 24px 36px; min-height:220px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; justify-content:space-between; gap:36px; overflow:hidden; isolation:isolate; transition:border-color 1.25s var(--ease); }
.seg__cell::before{ content:""; position:absolute; inset:0; z-index:-1; background:var(--fg); clip-path:circle(0 at var(--mx,50%) var(--my,100%)); transition:clip-path .9s var(--ease); }
.seg__n{ font-family:var(--mono); font-size:12px; color:var(--muted); transition:color .5s ease; }
.seg__name{ font-size:clamp(20px,1.9vw,26px); font-weight:300; letter-spacing:-.015em; line-height:1.15; margin:0 0 10px; transition:color .5s ease; }
.seg__desc{ font-size:14px; line-height:1.5; color:var(--muted); margin:0; transition:color .5s ease; }
@media (hover:hover){
  .seg__cell:hover::before{ clip-path:circle(150% at var(--mx,50%) var(--my,100%)); }
  .seg__cell:hover .seg__name, .seg__cell:hover .seg__desc, .seg__cell:hover .seg__n{ color:var(--bg); }
}

/* Faixa de imagem que se abre */
.reveal{ position:relative; z-index:2; height:100vh; height:100svh; min-height:560px; background:var(--bg); overflow:hidden; display:grid; place-items:center; transition:background-color 1.25s var(--ease); }
.reveal__frame{ position:absolute; inset:0; clip-path:inset(16% 24% 16% 24% round 24px); overflow:hidden; background:#000; will-change:clip-path; }
.reveal__img{ position:absolute; inset:-8%; background:url("../media/mount2.jpg") center/cover; filter:grayscale(1); will-change:transform; }
.reveal__shade{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.55)); }
.reveal__quote{ position:relative; z-index:2; color:#fff; text-align:center; padding:0 var(--gutter); max-width:1100px; margin:0; font-size:clamp(30px,5vw,72px); font-weight:300; letter-spacing:-.03em; line-height:1.08; }
.reveal__quote em{ font-style:normal; color:rgba(255,255,255,.55); }

/* Perguntas */
.faq{ list-style:none; margin:0; padding:0; border-bottom:1px solid var(--line); }
.faq li{ border-top:1px solid var(--line); }
.faq__q{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:28px 0; text-align:left; font-size:clamp(20px,2vw,26px); font-weight:300; letter-spacing:-.01em; }
.faq__icon{ position:relative; width:40px; height:24px; border:1px solid currentColor; border-radius:var(--pill); flex-shrink:0; }
.faq__icon::before,.faq__icon::after{ content:""; position:absolute; left:50%; top:50%; width:10px; height:1px; margin-left:-5px; background:currentColor; transition:transform .8s var(--ease); }
.faq__icon::after{ transform:rotate(90deg); }
.faq li.is-open .faq__icon::after{ transform:rotate(0deg); }
.faq__a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .8s var(--ease); }
.faq li.is-open .faq__a{ grid-template-rows:1fr; }
.faq__a > div{ overflow:hidden; }
.faq__a p{ margin:0 0 28px; font-size:16px; line-height:1.6; color:var(--muted); max-width:40em; }

/* Contato */
.contact{ padding-bottom:96px; }
.contact .h-anchor{ font-size:clamp(60px,11.5vw,150px); margin-bottom:72px; }
.contact .h-anchor .line > span{ white-space:nowrap; }
.contact__grid{ display:grid; grid-template-columns:7fr 5fr; gap:48px 64px; align-items:start; }
.form{ display:flex; flex-direction:column; gap:6px; }
.field{ position:relative; display:block; border-bottom:1px solid var(--line); padding-top:22px; transition:border-color 1.25s var(--ease); }
.field::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px; background:var(--fg); transform:scaleX(0); transform-origin:left; transition:transform .9s var(--ease); }
.field:focus-within::after{ transform:scaleX(1); }
.field > span{ position:absolute; left:0; top:34px; font-size:18px; color:var(--muted); pointer-events:none; transition:transform .7s var(--ease), font-size .7s var(--ease), color .4s; transform-origin:left top; }
.field input{ width:100%; background:transparent; border:0; padding:12px 0 14px; font-size:20px; outline:none; }
.field input:focus + span, .field input:not(:placeholder-shown) + span{ transform:translateY(-26px); font-size:12px; font-family:var(--mono); text-transform:uppercase; }
.field input:-webkit-autofill{ -webkit-text-fill-color:var(--fg); transition:background-color 9999s; }
.form__row{ display:flex; flex-wrap:wrap; align-items:center; gap:16px 20px; margin-top:28px; }
.form__status{ font-size:14px; color:var(--muted); margin:0; min-height:1.5em; }
.form__status a{ text-decoration:underline; text-underline-offset:3px; color:var(--fg); }
.contact__side p{ font-size:18px; line-height:1.55; margin:0 0 28px; max-width:24em; }
.contact__btns{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.contact__side .contact__info{ margin-top:48px; font-size:14px; line-height:1.7; color:var(--muted); }
.contact__info a:hover{ color:var(--fg); }

/* Rodapé */
.footer{ position:relative; z-index:2; padding:80px var(--gutter) 40px; overflow:hidden; }
.footer__word{ font-size:34vw; line-height:1; letter-spacing:-.06em; margin:0 0 .1em -.03em; white-space:nowrap; display:inline-block; }
.footer__cols{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding-top:24px; border-top:1px solid var(--line); font-size:12px; line-height:1.6; color:var(--muted); }
.footer__cols p{ margin:0; }
.footer__cols a:hover, .footer__cols button:hover{ color:var(--fg); }
.footer__cols button{ font-size:inherit; color:inherit; padding:0; }

/* Portal do cliente */
.portal{ position:fixed; inset:0; z-index:120; display:none; place-items:center; padding:24px; background:rgba(0,0,0,.6); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.portal.is-open{ display:grid; }
.portal__box{ position:relative; width:100%; max-width:440px; background:#fff; color:#000; padding:44px 40px 36px; border-radius:6px; }
.portal__close{ position:absolute; top:14px; right:18px; font-size:28px; line-height:1; color:rgba(0,0,0,.4); transition:color .2s; }
.portal__close:hover{ color:#000; }
.portal__box h3{ margin:0 0 10px; font-size:28px; font-weight:300; letter-spacing:-.02em; line-height:1.15; }
.portal__box > p{ margin:0 0 26px; font-size:15px; line-height:1.55; color:var(--felt); }
.portal .field{ --line:rgba(0,0,0,.2); --muted:var(--felt); --fg:#000; }
.portal__err{ margin:10px 0 0; font-size:13px; color:#b3261e; min-height:1.4em; }
.portal__go{ margin-top:14px; width:100%; justify-content:center; background:#000; color:#fff; border-color:#000; padding:14px 24px; }
.portal__alt{ margin:18px 0 0 !important; font-size:13px !important; text-align:center; }
.portal__alt a{ color:#000; text-decoration:underline; text-underline-offset:3px; }

/* Estados iniciais de movimento */
.motion [data-fade]{ opacity:0; transform:translateY(24px); }

/* Responsivo */
@media (max-width:899px){
  .nav{ grid-template-columns:1fr auto; }
  .nav__center, .nav__menu{ display:none; }
  .nav__burger{ display:block; }
  .hero__title{ font-size:clamp(52px,17vw,120px); }
  .hero__meta{ display:none; }
  .hero__note{ left:calc(var(--gutter) + 104px); right:var(--gutter); width:auto; bottom:32px; }
  .badge{ width:88px; height:88px; bottom:28px; }
  .section{ padding:96px var(--gutter); }
  .sec-head{ grid-template-columns:1fr; margin-bottom:48px; }
  .stats{ grid-template-columns:1fr 1fr; gap:40px 24px; margin-top:80px; }
  .deck__caption{ grid-template-columns:1fr; gap:8px; margin-top:24px; }
  .demo__grid{ grid-template-columns:1fr; }
  .wa{ height:560px; }
  .svc__row{ grid-template-columns:36px 1fr; }
  .svc__desc{ grid-column:2; }
  .seg{ grid-template-columns:1fr 1fr; }
  .seg__cell{ min-height:190px; }
  .contact__grid{ grid-template-columns:1fr; }
  .contact .h-anchor{ margin-bottom:48px; }
  .footer__cols{ grid-template-columns:1fr 1fr; }
  .scene__top{ top:84px; }
  .scene__rail{ display:none; }
  .scene__copy{ bottom:36px; }
  .reveal__frame{ clip-path:inset(20% 8% 20% 8% round 18px); }
}
@media (max-width:520px){
  .hero__ctas .pill{ padding:9px 18px; font-size:13px; }
  .msg{ max-width:88%; }
  .seg{ grid-template-columns:1fr; }
  .portal__box{ padding:40px 24px 28px; }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

.wm{ display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:.12em; margin-bottom:-.12em; }
.wm > span{ display:inline-block; will-change:transform; }

.container--wide{ max-width:var(--wide); }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* Cortina de transição entre seções */
.wipe{ position:fixed; inset:0; z-index:95; background:#000; color:#fff; display:flex; align-items:flex-end; justify-content:space-between; padding:0 var(--gutter) 40px; clip-path:inset(100% 0 0 0); visibility:hidden; pointer-events:none; }
.wipe__label{ font-size:clamp(48px,11vw,180px); font-weight:400; letter-spacing:-.05em; line-height:.9; }
.wipe__n{ font-family:var(--mono); font-size:12px; color:var(--signal); font-variant-numeric:tabular-nums; }

/* Painel de posição (estilo editorial, em fonte mono) */
.hud{ position:fixed; left:var(--gutter); bottom:22px; z-index:58; display:flex; align-items:center; gap:12px; color:#fff; mix-blend-mode:difference; font-family:var(--mono); font-size:11px; text-transform:uppercase; pointer-events:none; opacity:0; font-variant-numeric:tabular-nums; }
.hud i{ width:28px; height:1px; background:currentColor; }
.hud.is-on{ opacity:1; transition:opacity .8s var(--ease); }

/* Ecos do título do hero (rastro ao rolar rápido) */
.hero__echo{ position:absolute; left:50%; top:50%; margin:0; width:max-content; text-align:center; font-weight:400; font-size:clamp(60px,12.6vw,225px); line-height:.86; letter-spacing:-.045em; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.4); pointer-events:none; will-change:transform,opacity; }
.hero__echo .line{ overflow:visible; }
@media (max-width:899px){ .hero__echo{ font-size:clamp(52px,17vw,120px); } }
.hero__echo.e2{ -webkit-text-stroke-color:rgba(255,172,46,.4); }

/* Conteúdo recua em profundidade quando a próxima seção chega */
.recede{ transform-origin:50% 100%; will-change:transform,opacity; }

@media (max-width:899px){ .hud{ display:none; } }
