.asc-splash,.asc-carr{--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--margem:var(--sp-6);--bloco:var(--sp-6);--item:var(--sp-3);--acao:var(--sp-4);--interno:var(--sp-5)}
/* ============================================================
   ASC — abertura (caminhão cruzando) e carregamento premium.
   Compartilhado pelo login e pelo app. Tudo escopado em .asc-* e com
   cores literais: não depende de nenhum token do style.css.
   ============================================================ */
.asc-splash,.asc-carr{font-family:'Montserrat',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}

/* ---------- ABERTURA ---------- */
.asc-splash{position:fixed;inset:0;z-index:9999;overflow:hidden;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(120% 80% at 50% 0%,#163A6B 0%,#07182D 62%);transition:opacity .45s ease,visibility .45s}
.asc-splash.fora{opacity:0;visibility:hidden;pointer-events:none}
.asc-splash::before,.asc-splash::after{content:"";position:absolute;border-radius:50%;pointer-events:none;filter:blur(30px)}
.asc-splash::before{width:320px;height:320px;left:-120px;top:8%;background:radial-gradient(circle,rgba(237,28,36,.38),transparent 65%)}
.asc-splash::after{width:360px;height:360px;right:-140px;top:38%;background:radial-gradient(circle,rgba(120,170,255,.28),transparent 65%)}
.asc-splash>*{position:relative;z-index:1}
.asc-marca{display:flex;align-items:center;gap:var(--item);font-weight:900;font-size:30px;letter-spacing:-.02em;margin-bottom:var(--sp-8)}
.asc-marca img{width:42px;height:42px}
.asc-marca span{color:#ED1C24}
.asc-estrada{position:relative;overflow:hidden;width:calc(100% - 2 * var(--margem));max-width:420px;height:120px;border-radius:var(--bloco);
  background:rgba(255,255,255,.08);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 20px 50px rgba(0,0,0,.3)}
.asc-estrada::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 45%);pointer-events:none}
.asc-linha{position:absolute;left:var(--acao);right:var(--acao);top:86px;border-top:2px dashed rgba(255,255,255,.3);
  mask-image:linear-gradient(90deg,transparent,#fff 15%,#fff 85%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#fff 15%,#fff 85%,transparent)}
.asc-cam{position:absolute;top:28px;left:0;width:150px;height:62px;animation:asc-dirigir 2.6s cubic-bezier(.45,.02,.3,1) infinite}
.asc-cam svg{width:100%;height:100%;animation:asc-balanco .34s ease-in-out infinite alternate;filter:drop-shadow(0 10px 18px rgba(0,0,0,.35))}
.asc-cam .roda{transform-origin:center;transform-box:fill-box;animation:asc-girar .5s linear infinite}
.asc-poeira{position:absolute;top:84px;left:0;width:150px;height:14px;pointer-events:none;animation:asc-dirigir 2.6s cubic-bezier(.45,.02,.3,1) infinite}
.asc-poeira i{position:absolute;bottom:0;width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.22);animation:asc-poeira 1s ease-out infinite}
.asc-poeira i:nth-child(2){left:14px;animation-delay:.25s}.asc-poeira i:nth-child(3){left:28px;animation-delay:.5s}
@keyframes asc-dirigir{0%{transform:translateX(-170px)}100%{transform:translateX(480px)}}
@keyframes asc-balanco{from{transform:translateY(0)}to{transform:translateY(-2px)}}
@keyframes asc-girar{to{transform:rotate(360deg)}}
@keyframes asc-poeira{0%{transform:translate(0,0) scale(.6);opacity:.7}100%{transform:translate(-22px,-10px) scale(1.6);opacity:0}}
.asc-txt{margin-top:var(--bloco);font-size:14px;font-weight:600;color:rgba(255,255,255,.85);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);
  padding:var(--sp-2) var(--acao);border-radius:999px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.asc-sub{margin-top:var(--sp-2);font-size:12px;color:rgba(255,255,255,.5)}
.asc-pontos{display:flex;gap:var(--sp-2);margin-top:var(--interno)}
.asc-pontos i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.35);animation:asc-pisca 1.2s ease-in-out infinite}
.asc-pontos i:nth-child(2){animation-delay:.2s}.asc-pontos i:nth-child(3){animation-delay:.4s}
@keyframes asc-pisca{0%,100%{opacity:.3;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}

/* ---------- CARREGAMENTO PREMIUM (tela embaçada atrás + caminhão no arco) ---------- */
.asc-carr{position:fixed;inset:0;z-index:9990;display:flex;align-items:center;justify-content:center;
  background:rgba(243,245,249,.66);backdrop-filter:blur(18px) saturate(1.15);-webkit-backdrop-filter:blur(18px) saturate(1.15);transition:opacity .35s ease,visibility .35s}
.asc-carr.fora{opacity:0;visibility:hidden;pointer-events:none}
.asc-carr-centro{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--bloco) var(--sp-8);margin:0 var(--margem);max-width:340px;
  background:rgba(255,255,255,.86);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border-radius:30px;border:1px solid rgba(255,255,255,.9);
  box-shadow:0 24px 60px rgba(7,24,45,.22);transform:translateY(-6%)}
.asc-arco{position:relative;width:220px;height:120px;margin-bottom:var(--item)}
.asc-arco-trilha{position:absolute;inset:0;width:100%;height:100%;animation:asc-fluir 1.1s linear infinite}
@keyframes asc-fluir{to{stroke-dashoffset:-16}}
.asc-bilhete{position:absolute;left:0;bottom:0;width:72px;height:46px;border-radius:9px;background:linear-gradient(160deg,#163A6B,#07182D);box-shadow:0 10px 24px rgba(7,24,45,.3);
  padding:9px 10px;display:flex;flex-direction:column;gap:5px;transform:rotate(-6deg)}
.asc-bilhete::after{content:"";position:absolute;right:16px;top:-4px;bottom:-4px;border-left:2px dashed rgba(255,255,255,.35)}
.asc-bilhete i{display:block;height:4px;border-radius:2px;background:rgba(255,255,255,.75)}
.asc-bilhete i:nth-child(1){width:34px}.asc-bilhete i:nth-child(2){width:22px;opacity:.6}.asc-bilhete i:nth-child(3){width:28px;opacity:.6}
.asc-cam-arco{position:absolute;width:78px;height:32px;offset-path:path("M18 104 C 70 104, 120 70, 196 22");offset-rotate:auto;
  animation:asc-rodar 1.9s cubic-bezier(.4,.05,.55,.95) infinite;filter:drop-shadow(0 8px 14px rgba(7,24,45,.35))}
.asc-cam-arco svg{width:100%;height:100%}
@keyframes asc-rodar{0%{offset-distance:0%;opacity:0}8%{opacity:1}92%{opacity:1}100%{offset-distance:100%;opacity:0}}
@supports not (offset-path:path("M0 0 L1 1")){.asc-cam-arco{left:10px;bottom:4px;animation:asc-reto 1.9s ease-in-out infinite}
  @keyframes asc-reto{0%{transform:translate(0,0);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translate(150px,-70px) rotate(-22deg);opacity:0}}}
.asc-carr-titulo{font-size:16px;font-weight:800;color:#07182D;letter-spacing:-.02em}
.asc-carr-sub{font-size:12px;color:#6B7280;margin-top:var(--sp-2);font-weight:500;line-height:1.5}
@media(prefers-reduced-motion:reduce){.asc-cam,.asc-cam svg,.asc-cam .roda,.asc-poeira,.asc-poeira i,.asc-pontos i,.asc-cam-arco,.asc-arco-trilha{animation:none}
  .asc-cam{left:calc(50% - 75px)}.asc-cam-arco{offset-distance:55%}}
