/* LUP — seção "Como regularizamos" (desenho construído pela rolagem) */
.lupx{position:relative;height:330vh;background:#f5f0e6;color:#1f3333;font-family:'Montserrat',sans-serif}
.lupx *{box-sizing:border-box}
.lupx-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;grid-template-columns:.72fr 1.28fr;align-items:center;gap:2.5vw;padding:96px 3vw 84px max(5vw,24px)}
.lupx-sticky::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:radial-gradient(rgba(31,51,51,.07) 1px,transparent 1px);background-size:22px 22px}
.lupx-text{position:relative;z-index:2}
.lupx-eyebrow{font-size:11px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:#197891;margin:0 0 20px;display:flex;align-items:center;gap:10px}
.lupx-eyebrow::before{content:'';width:26px;height:1px;background:#197891}
.lupx-chapters{position:relative;min-height:350px}
.lupx-chap{position:absolute;inset:0;opacity:0;transform:translateY(16px);transition:opacity .35s,transform .35s;pointer-events:none}
.lupx-chap.on{opacity:1;transform:none;pointer-events:auto}
.lupx-chap h2{font-weight:300;font-size:clamp(28px,3.1vw,44px);line-height:1.12;letter-spacing:-.02em;margin:0 0 18px;color:#003333}
.lupx-chap h2 strong{color:#197891;font-weight:700}
.lupx-chap p{font-size:15px;line-height:1.8;color:#4a5a5a;max-width:440px;margin:0}
.lupx-meta{display:inline-block;margin-top:20px;padding:9px 16px;border:1px solid rgba(25,120,145,.5);border-radius:999px;font-size:10.5px;font-weight:600;letter-spacing:.12em;color:#197891;text-transform:uppercase}
.lupx-link{display:inline-block;margin-top:22px;margin-left:10px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#003333;text-decoration:none;border-bottom:1px solid #197891;padding-bottom:3px}
.lupx-art{position:relative;z-index:2;min-width:0}
.lupx-frame{position:relative;width:100%;aspect-ratio:16/9;max-height:calc(100svh - 190px);margin:0 auto;border-radius:6px;overflow:hidden;box-shadow:0 18px 50px rgba(31,51,51,.18);background:#f5f0e6}
.lupx-frame canvas{width:100%;height:100%;display:block}
.lupx-loading{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-size:12px;letter-spacing:.1em;color:#197891}
.lupx-stamp{position:absolute;opacity:0;transform:scale(1.7) rotate(-16deg);transition:opacity .3s,transform .45s cubic-bezier(.2,1.6,.4,1);pointer-events:none;filter:drop-shadow(0 2px 0 rgba(245,240,230,.6))}
.lupx-stamp.on{opacity:1;transform:scale(1) rotate(var(--r,-8deg))}
.lupx-stamp.out{opacity:0;transform:scale(.9) rotate(var(--r,-8deg));transition:opacity .35s,transform .35s}
.lupx-s1{right:4%;top:6%;width:22%;--r:-7deg}
.lupx-s2{left:31%;top:5%;width:19%;--r:5deg}
.lupx-s3{right:4%;bottom:6%;width:15%;--r:-10deg}
.lupx-progress{position:absolute;left:max(5vw,24px);right:3vw;bottom:24px;z-index:3;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.lupx-step{font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(31,51,51,.35);transition:color .4s}
.lupx-step::before{content:'';display:block;height:2px;background:rgba(31,51,51,.14);margin-bottom:10px;transition:background .4s}
.lupx-step.on,.lupx-step.done{color:#003333}
.lupx-step.on::before,.lupx-step.done::before{background:#197891}
@media (max-width:900px){
  .lupx{height:300vh}
  .lupx-sticky{grid-template-columns:1fr;grid-template-rows:auto auto;align-content:center;gap:10px;padding:80px 10px 112px}
  .lupx-art{order:-1}
  .lupx-frame{max-height:none}
  .lupx-text{padding:0 14px}
  .lupx-chapters{min-height:250px}
  .lupx-chap h2{font-size:24px;margin-bottom:10px}
  .lupx-chap p{font-size:13.5px;line-height:1.65;max-width:none}
  .lupx-meta{margin-top:12px}
  .lupx-progress{left:22px;right:22px;bottom:16px}
  .lupx-step{font-size:0}.lupx-step::before{margin-bottom:0}
}
@media (prefers-reduced-motion:reduce){.lupx-chap,.lupx-stamp{transition:none}}

/* seta "continue rolando" */
.lupx-next{position:absolute;z-index:4;left:max(5vw,24px);bottom:74px;display:flex;align-items:center;gap:14px;border:0;background:none;padding:0;cursor:pointer;font-family:inherit;color:#003333;transition:opacity .35s,transform .35s}
.lupx-next .ring{position:relative;width:58px;height:58px;flex:0 0 58px;border-radius:50%;background:#003333;box-shadow:0 10px 24px rgba(0,51,51,.25);display:grid;place-items:center;animation:lupxBounce 1.6s ease-in-out infinite}
.lupx-next .ring svg.pr{position:absolute;inset:-5px;width:68px;height:68px;transform:rotate(-90deg)}
.lupx-next .ring svg.pr circle{fill:none;stroke-width:3}
.lupx-next .ring svg.pr .bg{stroke:rgba(25,120,145,.18)}
.lupx-next .ring svg.pr .fg{stroke:#197891;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .15s}
.lupx-next .ring svg.ch{width:22px;height:22px}
.lupx-next .lbl{display:flex;flex-direction:column;line-height:1.25;text-align:left}
.lupx-next .lbl b{white-space:nowrap;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.lupx-next .lbl span{font-size:12px;color:#4a5a5a}
.lupx-next:hover .ring{background:#197891}
.lupx-next.hide{opacity:0;transform:translateY(10px);pointer-events:none}
@keyframes lupxBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}
@media (max-width:900px){
  .lupx-next{left:50%;transform:translateX(-50%);bottom:40px;flex-direction:row}
  .lupx-next.hide{transform:translateX(-50%) translateY(10px)}
  .lupx-next .ring{width:50px;height:50px;flex-basis:50px}
  .lupx-next .ring svg.pr{width:60px;height:60px}
  .lupx-next .lbl span{display:none}
}
@media (prefers-reduced-motion:reduce){.lupx-next .ring{animation:none}}

/* chamada no topo: "Role para Regularizar" — texto + seta LED */
.lupx-hint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;font-family:'Montserrat',sans-serif;white-space:nowrap}
.lupx-hint span{font-size:16px;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:#fff;padding-left:.32em;text-shadow:0 0 18px rgba(63,176,204,.55);animation:lupxGlowTxt 2.4s ease-in-out infinite}
.lupx-hint .led{position:relative;width:3px;height:52px;border-radius:3px;background:rgba(63,176,204,.45);overflow:hidden;box-shadow:0 0 10px rgba(63,176,204,.7),0 0 20px rgba(63,176,204,.35)}
.lupx-hint .led::after{content:'';position:absolute;left:0;top:-55%;width:100%;height:55%;border-radius:3px;background:linear-gradient(to bottom,rgba(127,227,255,0),#7fe3ff 55%,#fff);box-shadow:0 0 12px #7fe3ff,0 0 24px #3fb0cc;animation:lupxLed 1.5s cubic-bezier(.5,0,.5,1) infinite}
.lupx-hint svg{width:26px;height:16px;margin-top:-4px;overflow:visible;filter:drop-shadow(0 0 3px #bff1ff) drop-shadow(0 0 8px #3fb0cc) drop-shadow(0 0 16px rgba(63,176,204,.9));animation:lupxChev 1.5s ease-in-out infinite}
.lupx-hint svg path{stroke:#c8f4ff}
.lupx-hint:hover span{color:#bff1ff}
.lupx-hint.on-light span{color:#003333;text-shadow:none}
@keyframes lupxLed{0%{top:-55%}100%{top:100%}}
@keyframes lupxChev{0%,100%{opacity:.6;transform:translateY(0)}50%{opacity:1;transform:translateY(6px)}}
@keyframes lupxGlowTxt{0%,100%{text-shadow:0 0 10px rgba(63,176,204,.25)}50%{text-shadow:0 0 22px rgba(63,176,204,.85)}}
@media (max-width:900px){.lupx-hint{position:relative;left:auto;bottom:auto;transform:none;align-self:center;margin:8px auto 0}.lupx-hint span{font-size:14px;letter-spacing:.24em}}
@media (prefers-reduced-motion:reduce){.lupx-hint span,.lupx-hint .led::after,.lupx-hint svg{animation:none}}
