html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
.skip-link { position: fixed; left: 1rem; top: -4rem; z-index: 100; border-radius: .5rem; background: #08183a; color: #fff; padding: .75rem 1rem; }
.skip-link:focus { top: 1rem; }
.icon-button { display: inline-grid; min-height: 44px; min-width: 44px; place-items: center; border-radius: 9999px; color: #08183a; transition: background-color .2s ease; }
.icon-button:hover { background: #eef3ff; }
.icon-button:focus-visible, a:focus-visible, button:focus-visible, .form-input:focus-visible { outline: 2px solid #256bff; outline-offset: 3px; }
.language-menu { position: absolute; right: 0; top: calc(100% + .5rem); width: 11.5rem; max-height: min(70vh, 31rem); overflow-y: auto; border: 1px solid #dbe5f7; border-radius: .75rem; background: #fff; box-shadow: 0 12px 30px rgba(8,24,58,.14); }
.language-option { display: block; width: 100%; padding: .7rem 1rem; text-align: left; font-size: .875rem; color: #08183a; }.language-option:hover, .language-option[aria-current="true"] { background: #f5f7fc; }.language-option[aria-current="true"] { color: #256bff; font-weight: 600; }
.mobile-language-select { min-height: 44px; width: 100%; border: 1px solid #dbe5f7; border-radius: .75rem; background: #fff; padding: 0 .75rem; color: #08183a; }
.mobile-menu a { display: block; min-height: 44px; padding: .7rem 0; color: #334155; }
.form-input { width: 100%; min-height: 44px; border: 1px solid rgba(255,255,255,.24); border-radius: .75rem; background: rgba(255,255,255,.07); padding: .75rem .9rem; color: #fff; }.form-input:focus { border-color: #93c5fd; outline: 0; }
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s ease; }.reveal.is-visible { opacity: 1; transform: translateY(0); }[data-reveal-delay="1"] { transition-delay: .12s; }
.art-dark { mix-blend-mode: screen; filter: saturate(1.08) contrast(1.04); }
.art-light { mix-blend-mode: multiply; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } .reveal { opacity: 1; transform: none; } }
