/* A brief brand transition, never a fake loading percentage or an indefinite gate. */
.brand-loader{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#040c08;color:#ecfff5;pointer-events:none;animation:loader-exit .65s 1.3s ease-in-out forwards}.loader-brand{font:800 clamp(50px,10vw,110px)/1 'Manrope',sans-serif;letter-spacing:-6px;animation:brand-build 1s both}.loader-brand>span{color:#00ed9b}.loader-brand small{display:block;font:500 10px/2 sans-serif;letter-spacing:4px;text-align:center;margin-top:20px}.brand-loader>p{font-size:11px;letter-spacing:2px;color:#92b7a2;margin-top:30px}.loader-line{height:2px;width:180px;background:#00eda1;transform-origin:left;animation:brand-line 1.3s ease-in-out both;box-shadow:0 0 14px #00eda1}.loader-grid{display:grid;grid-template-columns:repeat(4,12px);gap:5px;margin-bottom:35px}.loader-grid i{width:12px;height:12px;border:1px solid #00eda1;animation:pixel-in .9s backwards}.loader-grid i:nth-child(3n){animation-delay:.2s;background:#00eda1}.loader-grid i:nth-child(2n){animation-delay:.4s}.loader-grid i:nth-child(5n){animation-delay:.6s}@keyframes pixel-in{from{opacity:0;transform:translateY(15px) scale(.2)}to{opacity:1;transform:none}}@keyframes brand-build{from{opacity:0;filter:blur(8px);transform:translateY(12px)}to{opacity:1;filter:blur(0);transform:none}}@keyframes brand-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes loader-exit{to{opacity:0;visibility:hidden;transform:translateY(-25px)}}
.intro h2 .typed-word,.intro h2 .typed-char{color:inherit}.typed-word{white-space:nowrap;display:inline-block}.typed-char{transition:opacity .05s linear}.writing-head{text-shadow:0 0 18px #00eda199}.intro .intro-foot p{min-height:4em}
#pain-cta.button{color:#e5fff3;background:#123e2b;border:1px solid #61dba4;font-weight:700}#pain-cta.button:hover{color:#031a0e;background:#8cffd0}
.service-cover.is-selected .cover-surface>img{filter:none!important}.service-cover.is-selected .cover-color{opacity:0!important}.service-cover:not(.is-selected).pointer-lit .cover-color{opacity:1!important}.service-cover:not(.is-selected){cursor:pointer}.cover-surface>*{pointer-events:none}.cover-surface{pointer-events:none}.cover-hint{line-height:1.8}.service-cover:focus-visible:not(.is-selected) .cover-color{opacity:1}
.case-visual{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden}.case-visual .case-color{position:absolute;inset:0;filter:none!important;opacity:0;mask-image:radial-gradient(circle 135px at var(--case-x,50%) var(--case-y,50%),#000 20%,transparent 100%);-webkit-mask-image:radial-gradient(circle 135px at var(--case-x,50%) var(--case-y,50%),#000 20%,transparent 100%);pointer-events:none}.case-lit:not(.is-center) .case-color{opacity:1}.case-visual img{pointer-events:none}.case-card.is-center .case-visual>img:first-child{filter:saturate(1.1) brightness(1)}
.method-nav a.is-reached{color:#597769;text-shadow:none}.method-nav a[aria-current=step]{color:#74ffc7;text-shadow:0 0 10px #00ff9d,0 0 30px #00ed9b70}.method-step .step-body h3{color:#768c7f;transition:color .18s,text-shadow .18s,transform .3s}.method-step.is-active .step-body h3{color:#91ffd1;text-shadow:0 0 24px #00ed9b50;transform:translateX(4px)}.method-step.is-active .step-rail>b{background:#00eda1;color:#042d1a;border-color:#a2ffdd;box-shadow:0 0 24px #00eda18c}.method-step:not(.is-active) .step-rail>b{background:#0b1912;color:#779787;box-shadow:none}
.contact{background:radial-gradient(ellipse at 80% 40%,#175d3c60,transparent 60%),#07110d;color:#ebfff3}.contact .eyebrow{color:#85dcb1}.contact h2 em{color:#00eda1}.contact .contact-copy>p:not(.eyebrow){color:#b8d2c3}.contact-copy>a{color:#bff7d9}#briefing{padding:32px;border:1px solid #8ec6aa66;border-radius:24px;background:linear-gradient(135deg,#a7f1c61b,#25583e45);backdrop-filter:blur(24px) saturate(130%);-webkit-backdrop-filter:blur(24px) saturate(130%);box-shadow:inset 0 1px 0 #e3ffef55,0 20px 60px #0005}#briefing label{color:#edfff3;font-size:13px}#briefing label span{color:#b2cbbd}#briefing input,#briefing textarea,#briefing select{background:#071810e8;color:#f0fff6;border:1px solid #6e9980;border-radius:10px;padding:14px;margin-bottom:24px;font-size:14px;color-scheme:dark}#briefing input::placeholder,#briefing textarea::placeholder{color:#abc4b6;opacity:1}#briefing :is(input,textarea,select):focus{outline:2px solid #00eda1;outline-offset:3px;border-color:#00eda1}#briefing option{background:#10291b;color:#edfff5}#briefing .button{background:#00eda1;color:#052518}#briefing .form-note{color:#b8cfc1}@media(max-width:760px){#briefing{padding:24px 20px}.loader-brand{letter-spacing:-3px}.loader-brand small{letter-spacing:2px}.cover-hint{font-size:7px;padding:0 16px}}@media(prefers-reduced-motion:reduce){.brand-loader{display:none}.typed-char{opacity:1!important}}.motion-paused .brand-loader{display:none}
/* Flatten hit testing: rear covers stay clickable instead of falling behind the track plane. */
.cover-track{transform-style:flat;isolation:isolate}.service-cover{transform-style:flat;transform:translateX(calc(var(--offset)*var(--cover-gap))) perspective(1000px) rotateY(var(--turn)) scale(.92)}.service-cover.is-selected{transform:translateX(calc(var(--offset)*var(--cover-gap))) perspective(1000px) rotateY(0deg) scale(1.03)}
/* Fractional transform motion avoids native scroll rounding and smooth-scroll resets. */
.cases-viewport{overflow:hidden;touch-action:pan-y;scroll-behavior:auto!important}.cases-track{will-change:transform;transition:none!important}.case-card{transition:none}.center-hovered .case-card.is-center .case-visual{box-shadow:0 0 28px #00eda125}.dock-contact{white-space:nowrap}

/* Reversible deck-to-fan choreography; settled cards keep normal Cover Flow hit testing. */
#solucoes h2 .typed-word,#solucoes h2 .typed-char{color:inherit}
.fan-moving .service-cover,.fan-moving .service-cover.is-selected{transition:none;transform-origin:50% 85%;transform:translateX(calc(var(--offset)*var(--cover-gap)*var(--fan-spread))) translateY(var(--fan-drop)) perspective(1000px) rotateY(calc(var(--turn)*var(--fan-spread))) rotateZ(calc(var(--offset)*var(--fan-angle))) scale(calc(.84 + .16*var(--fan-spread)));opacity:var(--fan-opacity)}
.fan-moving .cover-surface{transition:filter .3s,border-color .3s;transform:none;opacity:1}
.motion-paused #solucoes .typed-char{opacity:1!important}

/* HERO MOBILE — ajuste isolado de enquadramento (30/10/2026).
   A foto tem margem transparente; 70.64% é o centro do corpo no arquivo.
   Não altera os estilos de desktop nem os textos do site. */
@media (max-width: 760px) {
  .hero.personal-hero {
    min-height: 0;
    padding-bottom: 64px;
  }
  .hero.personal-hero .portrait-stage {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    width: calc(100% + 14vw);
    height: calc(min(135vw, 600px) + 80px);
    margin: 32px 0 0 -7vw;
  }
  .hero.personal-hero .hero-portrait {
    height: calc(100% - 80px);
    left: 50%;
    top: 0;
    translate: -70.64% 0;
    transform: none !important;
  }
  .hero.personal-hero .portrait-signature {
    bottom: 12px;
    left: 7%;
  }
  .hero.personal-hero .chip-code { top: 37%; }
  .hero.personal-hero .chip-growth { bottom: 26%; }
  .hero.personal-hero + .personal-intro { padding-top: 80px; }
}
