:root{--brand-50:#f5fbff;--brand-100:#e6f6ff;--brand-200:#bfeaff;--brand-300:#99ddff;--brand-400:#4dc2ff;--brand-500:#0198ff;--brand-600:#0077d9;--brand-700:#0059a6;--brand-800:#003a73;--brand-900:#002046}
html{font-size:16px}
body{min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,picture,video,svg{max-width:100%;height:auto;display:block;object-fit:cover}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font-family:inherit;font-size:16px}
button:disabled,[disabled]{opacity:.6;cursor:not-allowed}
:focus{outline:none}
:focus-visible{outline:transparent}
:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:0 0 0 4px rgba(1,152,255,.12),0 0 0 1px rgba(1,152,255,.16);border-radius:.5rem}
.container{max-width:1200px;margin-left:auto;margin-right:auto}
.shadow-md{box-shadow:0 6px 18px rgba(16,24,40,.06)}
.shadow-lg{box-shadow:0 10px 30px rgba(16,24,40,.08)}
.rounded-2xl{border-radius:1rem}
.rounded-xl{border-radius:.75rem}
.rounded-lg{border-radius:.5rem}
.card-hover{transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s}
.card-hover:hover{transform:translateY(-6px)}
.header-sticky{position:sticky;top:0;z-index:40}
.mobile-overlay{transition:opacity .28s ease,transform .32s ease}
#mobileMenu{backface-visibility:hidden}
.no-scroll{overflow:hidden}
.iconify{display:inline-block;vertical-align:middle}
.grid-card{display:grid;gap:1rem}
.kbd-focus{box-shadow:0 0 0 4px rgba(1,152,255,.12);border-radius:.5rem}
.cookie-fade{transition:opacity .32s ease,transform .28s ease}
#cookieBanner{min-width:18rem;max-width:24rem}
@media (max-width:640px){#cookieBanner{right:1rem;left:1rem;width:auto;max-width:none}}
.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:1rem}
.modal-backdrop{position:fixed;inset:0;background:rgba(2,6,23,.48);backdrop-filter:blur(6px)}
.modal-panel{background:white;border-radius:1rem;box-shadow:0 20px 50px rgba(2,6,23,.2);max-width:42rem;width:100%;padding:1.25rem}
.input,textarea,select{border:1px solid rgba(15,23,42,.06);padding:.6rem .75rem;border-radius:.5rem}
.input:focus,textarea:focus,select:focus{box-shadow:0 0 0 4px rgba(1,152,255,.08);border-color:var(--brand-500)}
.form-error{color:#b91c1c;font-size:.95rem;margin-top:.4rem}
.form-success{color:#065f46;font-size:.95rem;margin-top:.4rem}
.icon-button{display:inline-flex;align-items:center;justify-content:center;padding:.4rem;border-radius:.5rem}
.icon-button:focus-visible{box-shadow:0 0 0 4px rgba(1,152,255,.12)}
.hero-gradient{background-image:linear-gradient(120deg,rgba(1,152,255,.06) 0%, rgba(77,194,255,.04) 50%, rgba(1,152,255,.02) 100%)}
.bg-soft{background:linear-gradient(90deg,var(--brand-50),#ffffff)}
.anim-beam{animation:beam 6s ease-in-out infinite}
@keyframes beam{0%,100%{transform:translateX(-10%);opacity:.6}50%{transform:translateX(10%);opacity:1}}
@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}}
@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}100%{opacity:1;transform:translateY(0)}}
.animate-fade-in{animation:fade-in .6s cubic-bezier(.2,.8,.2,1) both}
.animate-slide-up{animation:slide-up .5s cubic-bezier(.2,.8,.2,1) both}
.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.footer-link:focus-visible{box-shadow:0 0 0 4px rgba(1,152,255,.08);border-radius:.375rem}
.card-media{overflow:hidden;border-top-left-radius:.75rem;border-top-right-radius:.75rem}
@media (min-width:1024px){.hero-two-col{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem}.hero-left{grid-column:span 7}.hero-right{grid-column:span 5}}
