html{font-size:16px}body{min-height:100vh;font-family:Inter,ui-sans-serif,system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,video{max-width:100%;height:auto;display:block;object-fit:cover;overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font-family:inherit}:focus{outline:none}*:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(69,102,240,0.18);border-radius:0.375rem}button:disabled,button[aria-disabled='true']{opacity:.6;cursor:not-allowed;transform:none}.container{max-width:1200px;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}@media(min-width:640px){.container{padding-left:1.5rem;padding-right:1.5rem}}@media(min-width:1024px){.container{padding-left:2.5rem;padding-right:2.5rem}}/*************** UI HELPERS ***************/.rounded-2xl{border-radius:1rem}.rounded-xl{border-radius:.75rem}.shadow-md{box-shadow:0 6px 18px rgba(2,6,23,0.6)}.shadow-lg{box-shadow:0 12px 40px rgba(2,6,23,0.7)}.card-hover{transition:transform .28s cubic-bezier(.2,.9,.3,1),box-shadow .28s;will-change:transform}.card-hover:hover{transform:translateY(-6px)}.gradient-subtle{background-image:linear-gradient(180deg, rgba(15,23,48,0.6), rgba(2,6,23,0.4))}kbd{background:rgba(148,163,184,0.08);border:1px solid rgba(148,163,184,0.08);padding:.15rem .45rem;border-radius:.35rem;font-weight:600}/* Mobile menu and overlay helpers */.mobile-menu-overlay{transition:opacity .28s ease,transform .35s ease;opacity:0;pointer-events:none}.mobile-menu-open .mobile-menu-overlay{opacity:1;pointer-events:auto}.mobile-panel{transform:translateY(12px);opacity:0;transition:transform .32s cubic-bezier(.2,.9,.3,1),opacity .32s}.mobile-menu-open .mobile-panel{transform:none;opacity:1}.scroll-lock{overflow:hidden;height:100vh}/* Cookie modal small animation */#cookieModal{transition:transform .28s cubic-bezier(.2,.9,.3,1),opacity .28s;transform:translateY(8px);opacity:1}#cookieModal[data-hidden='true']{transform:translateY(18px);opacity:0;pointer-events:none}/* Focus ring alternatives for interactive elements */a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{box-shadow:0 0 0 4px rgba(99,102,241,0.18)}/* Accessibility: ensure minimum tap target */button,input[type='button'],input[type='submit'],a{min-height:40px}h1,h2,h3,h4,h5{line-height:1.05}h1{font-family:Merriweather,serif;font-size:2rem}@media(min-width:768px){h1{font-size:2.75rem}}h2{font-family:Merriweather,serif;font-size:1.5rem}p,li,label,button,input,textarea{font-size:1rem}/* Small utility for visually-hidden status live region when not active */.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}/* Ensure footer links and legal text have sufficient contrast */footer a{color:rgba(203,213,225,0.95)}footer a:hover{color:#fff}input[type='text'],input[type='email'],input[type='tel'],textarea{background-color:rgba(15,23,48,0.6);border:1px solid rgba(148,163,184,0.07)}/***** Tiny animation keyframes fallback for non-Tailwind environments *****/@keyframes fade-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.animate-fade-in-slow{animation:fade-in .9s ease both}