:root{--navy:#0D2E6E;--red:#E8194B;--orange:#F7941D;--ink:#0B1A38;--mist:#EEF1F7;--line:#D6DDEA;--fade:#7A88A3}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;height:100%}
body{font-family:'Nunito',system-ui,sans-serif;color:var(--ink);background:var(--mist);line-height:1.5;-webkit-font-smoothing:antialiased;overflow:hidden}
.stage{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:20px 18px;overflow:hidden}
.shell{width:100%;max-width:520px;margin:0 auto}
.logo{display:flex;gap:11px;align-items:center;margin-bottom:clamp(16px,4vh,28px)}
.logo img{width:clamp(28px,7vw,36px);height:clamp(28px,7vw,36px);display:block}
.eyebrow{font-family:'Bebas Neue',sans-serif;font-size:13px;letter-spacing:.2em;color:var(--red)}
h1{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:clamp(32px,7.5vh,52px);line-height:1;color:var(--navy);margin:6px 0 10px}
.lede{font-size:clamp(14px,1.9vh,16px);color:#4B5B78;margin:0 0 clamp(14px,3vh,24px);max-width:40ch}
.field{margin-bottom:12px}
label{display:block;font-size:12.5px;font-weight:700;margin-bottom:5px;color:var(--fade)}
input{width:100%;padding:13px 15px;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:10px;outline:none}
input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(247,148,29,.18)}
.btn{display:inline-flex;align-items:center;justify-content:center;margin-top:10px;padding:14px 28px;font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:.09em;color:#fff;background:var(--red);border:0;border-radius:999px;cursor:pointer;transition:transform .15s,background .2s,opacity .2s}
.btn:hover{background:#c8123d;transform:translateY(-1px)}
.btn:disabled{opacity:.32;cursor:default;transform:none}
.btn:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.note{font-size:11.5px;color:var(--fade);margin-top:16px;line-height:1.45}
.err{color:var(--red);font-size:13.5px;margin-top:8px;min-height:18px}
.hidden{display:none!important}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
