:root{
  --navy:#0a2152; --navy-2:#0a3d91; --blue:#2a67ea; --blue-hover:#1f54c9; --brand:#0a3d91;
  --blue-50:#f1f6ff; --blue-100:#e8effd; --blue-200:#cfdcf7; --blue-300:#a6bff0; --blue-400:#7aa0ea;
  --ink:#0a2152; --muted:#586b93; --line:#d6e3f7; --soft:#f1f6ff; --surface:#fff; --bg:#eef4fd;
  --green:#12b76a; --teal:#22a8c9; --aqua:#6cc6d3; --orange:#f79009; --red:#f04438;
  --shadow:0 25px 70px rgba(13,26,46,.14); --shadow-sm:0 4px 14px rgba(13,26,46,.08);
  --ease:cubic-bezier(.22,1,.36,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;font-weight:400;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
img,svg{display:block;max-width:100%}

/* transição entre páginas (mesma aba) */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .22s ease both}
::view-transition-new(root){animation:vt-in .38s var(--ease) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-6px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(10px)}}

/* botões */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border:0;border-radius:10px;font-weight:600;font-size:15px;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s,color .2s}
.btn-primary{color:#fff;background:linear-gradient(135deg,#2158aa,#2a67ea);box-shadow:0 10px 22px rgba(35,100,185,.22)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(35,100,185,.3)}
.btn-ghost{color:var(--brand);background:#fff;border:1px solid var(--blue-200)}
.btn-ghost:hover{transform:translateY(-2px);background:var(--blue-50);box-shadow:var(--shadow-sm)}
.btn:active{transform:translateY(0) scale(.97)}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(61,111,176,.4);outline-offset:2px}
.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.btn .ti{transition:transform .2s var(--ease)}
.btn:hover .ti-arrow-right{transform:translateX(4px)}
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);animation:ripple .6s ease-out;pointer-events:none}
.btn-ghost .ripple{background:rgba(61,111,176,.18)}
@keyframes ripple{to{transform:scale(4);opacity:0}}
.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

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