:root {
  /* Palette inspired by the supplied screenshot: midnight navy, slate cards, vivid red CTA. */
  --bg: #10192b;
  --bg-deep: #080f1e;
  --surface: #1d293b;
  --surface-light: #263348;
  --surface-border: rgba(173, 190, 214, .11);
  --text: #f7f8fc;
  --muted: #a8b2c4;
  --accent: #ed171f;
  --accent-strong: #c9000a;
  --accent-ink: #ffffff;
  --glow: rgba(237, 23, 31, .24);
  --blue: #3568ac;
}
* { box-sizing: border-box; }
html { min-height: 100%; }
body { margin: 0; min-height: 100vh; overflow-x: hidden; color: var(--text); background: radial-gradient(ellipse at 77% 17%, rgba(100,22,36,.23), transparent 32%), linear-gradient(135deg,var(--bg),var(--bg-deep)); font-family: Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.ticker { height: 25px; overflow: hidden; background: #050a13; border-bottom: 1px solid rgba(255,255,255,.04); color: #8c9cb4; font-size: 9px; letter-spacing: .07em; }
.ticker-track { display: flex; align-items: center; justify-content: space-around; gap: 42px; min-width: 900px; height: 100%; animation: ticker 30s linear infinite; white-space: nowrap; }
.ticker b { color: #27c99a; font-weight: 700; margin-left: 5px; }
.ambient { position: fixed; pointer-events: none; border-radius: 50%; filter: blur(3px); opacity: .6; animation: drift 12s ease-in-out infinite alternate; }
.ambient-one { width: 450px; height: 450px; right: -160px; top: 5%; background: radial-gradient(circle,rgba(237,23,31,.13),transparent 70%); }
.ambient-two { width: 360px; height: 360px; left: -180px; bottom: -100px; background: radial-gradient(circle,rgba(53,104,172,.14),transparent 70%); animation-delay: -4s; }
.page-shell { width: min(1120px,calc(100% - 48px)); margin: 0 auto; position: relative; z-index: 1; }
.topbar { display:flex; align-items:center; justify-content:space-between; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.07); }
.brand { display:inline-flex; align-items:center; gap:11px; color:var(--text); text-decoration:none; font-weight:800; letter-spacing:-.035em; }
.brand-mark { display:flex; align-items:end; gap:3px; width:29px; height:27px; padding:4px; border-radius:8px; background:var(--accent); box-shadow:0 0 22px var(--glow); }
.brand-mark span { display:block; width:5px; border-radius:4px; background:white; }.brand-mark span:nth-child(1){height:8px}.brand-mark span:nth-child(2){height:14px}.brand-mark span:nth-child(3){height:19px}
.brand-name { font-size:15px; }
.secure-label { color:var(--muted); font-size:10px; letter-spacing:.08em; text-transform:uppercase; display:flex; align-items:center; gap:8px; }
.secure-dot,.live-dot { width:7px;height:7px;background:#27c99a;border-radius:50%;box-shadow:0 0 10px rgba(39,201,154,.6); }
.hero { display:grid; grid-template-columns:1.08fr .82fr; gap:clamp(45px,8vw,100px); align-items:center; padding:clamp(65px,9vw,108px) 0 72px; }
.eyebrow { display:flex; align-items:center; gap:9px; color:#ff646b; font-size:10px; font-weight:800; letter-spacing:.16em; margin:0 0 22px; }
.eyebrow-dot { width:6px;height:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 10px var(--glow); }
h1 { font-size:clamp(43px,5.6vw,70px); line-height:1.02; letter-spacing:-.065em; margin:0; max-width:640px; font-weight:850; }
h1 span { color:var(--accent); }
.description { color:#c0c8d6; font-size:15px; line-height:1.8; max-width:480px; margin:24px 0 27px; }
.feature-grid { display:flex; flex-wrap:wrap; gap:12px; }
.feature { display:flex; align-items:center; gap:10px; min-width:178px; padding:12px 14px; background:rgba(28,40,59,.72); border:1px solid rgba(255,255,255,.045); border-radius:12px; transition:transform .22s ease,border-color .22s ease,background .22s ease; }
.feature:hover { transform:translateY(-3px); border-color:rgba(237,23,31,.35); background:#202c40; }
.feature-icon { display:grid;place-items:center;width:30px;height:30px;border-radius:9px;font-weight:800; }
.feature-icon.red { background:rgba(237,23,31,.15);color:#ff646b; }.feature-icon.blue{background:rgba(53,104,172,.22);color:#7db4ff}
.feature b,.feature small { display:block; }.feature b { font-size:11px; }.feature small { color:#8f9cb0;font-size:9px;margin-top:3px; }
.access-card { padding:29px; border:1px solid var(--surface-border); border-radius:19px; background:linear-gradient(145deg,rgba(31,44,64,.98),rgba(18,27,44,.98)); box-shadow:0 24px 80px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.04); animation:rise-in .75s cubic-bezier(.2,.8,.2,1) both; }
.card-top { display:flex;align-items:center;gap:8px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.07);color:#a6b1c3;font-size:9px;font-weight:800;letter-spacing:.12em; }
.lock-icon { margin-left:auto;color:#77869c;font-size:17px; }
.card-icon { width:49px;height:49px;display:grid;place-items:center;border-radius:13px;background:rgba(237,23,31,.13);color:#ff646b;margin:23px 0 20px; }
.card-icon svg { width:29px;height:29px; }
.card-kicker { color:#ff6269;font-size:9px;font-weight:800;letter-spacing:.16em;margin:0 0 9px; }
h2 { margin:0;font-size:24px;letter-spacing:-.04em; }
.card-description { margin:11px 0 21px;color:var(--muted);font-size:12px;line-height:1.7; }
.captcha-wrap { padding:11px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(4,10,20,.32);overflow:hidden; }
.g-recaptcha { min-height:78px; }
.captcha-help { color:#8492a7;font-size:9px;line-height:1.5;margin:8px 0 0; }
.cta-button { width:100%;display:flex;justify-content:center;align-items:center;gap:12px;padding:16px 17px;margin-top:16px;border:0;border-radius:9px;background:var(--accent);color:var(--accent-ink);font:inherit;font-size:12px;font-weight:800;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;box-shadow:0 9px 25px var(--glow); }
.cta-button svg { width:18px;height:18px;transition:transform .2s ease; }.cta-button:hover{transform:translateY(-3px);background:#ff2932;box-shadow:0 14px 32px var(--glow)}.cta-button:hover svg{transform:translateX(4px)}.cta-button:active{transform:translateY(-1px)}.cta-button:focus-visible{outline:3px solid white;outline-offset:4px}
.form-message { min-height:16px;color:#ffb9bd;font-size:11px;margin:8px 0 0; }
.card-foot { display:flex;align-items:center;gap:8px;color:#7f8da2;font-size:9px;margin-top:11px; }.mini-lock{color:#27c99a;font-size:8px}
.steps { display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 65px;padding:17px;border:1px solid rgba(255,255,255,.05);border-radius:14px;background:rgba(25,36,54,.68); }
.steps>div { display:grid;grid-template-columns:35px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:4px 10px; }
.step-number { grid-row:span 2;display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:rgba(237,23,31,.13);color:#ff666d;font-size:10px;font-weight:800; }
.steps b { font-size:11px; }.steps small { color:#8d9aaf;font-size:9px;margin-top:3px; }
.footer { display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.08);padding:21px 0 27px;color:#748198;font-size:10px; }
@keyframes rise-in { from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)} }
@keyframes drift { from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-25px,20px,0) scale(1.08)} }
@keyframes ticker { from{transform:translateX(0)}to{transform:translateX(-50%)} }
@media(max-width:820px){.hero{grid-template-columns:1fr;gap:38px;padding:60px 0 55px}.hero-copy{max-width:620px}.access-card{max-width:550px;width:100%}.steps{margin-bottom:45px}}
@media(max-width:520px){.page-shell{width:min(100% - 30px,1120px)}.topbar{padding:19px 0}.brand-name{font-size:13px}.secure-label{font-size:8px}.access-card{padding:22px 17px}.feature{flex:1;min-width:145px}.steps{grid-template-columns:1fr;gap:12px}.steps>div{padding:5px 4px}.footer{flex-direction:column;gap:8px}.g-recaptcha{transform:scale(.87);transform-origin:left top;margin-bottom:-9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Minimal access page: preserves the existing palette, typography and CTA styling. */
.minimal-access-page { min-height: 100vh; }
.minimal-access { min-height: 100vh; width: 100%; display: flex; align-items: center; justify-content: center; padding: 24px; }
.minimal-access .cta-button { width: auto; min-width: 220px; margin-top: 0; text-decoration: none; }
.site-loader { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; padding: 28px; background: var(--bg-deep); opacity: 1; visibility: visible; transition: opacity .42s ease, visibility .42s ease; }
.site-loader.is-finished { opacity: 0; visibility: hidden; pointer-events: none; }
.loader-inner { width: min(280px, 78vw); }
.loader-caption { display: flex; justify-content: space-between; gap: 18px; margin-bottom: 12px; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .14em; }
#loaderPercent { color: var(--text); font-variant-numeric: tabular-nums; }
.loader-track { width: 100%; height: 3px; overflow: hidden; background: rgba(255,255,255,.12); }
.loader-track span { display: block; width: 0; height: 100%; background: var(--accent); box-shadow: 0 0 14px var(--glow); transition: width .08s linear; }
@media (prefers-reduced-motion: reduce) { .site-loader, .loader-track span { transition: none; } }
