html { font-size: 16px; }
body { min-height: 100vh; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img, picture, video { max-width: 100%; height: auto; display: block; object-fit: cover; }
input, button, textarea, select { font-family: inherit; }
:focus { outline: none; }
:focus-visible { box-shadow: 0 0 0 4px rgba(20, 184, 166, 0.18); border-radius: 0.5rem; }
button:disabled, [aria-disabled="true"] { opacity: 0.6; pointer-events: none; }
#mobileMenu { transition: opacity 260ms ease, transform 260ms ease; }
#mobileMenu.hidden { opacity: 0; pointer-events: none; }
#mobileMenu[aria-hidden="false"] { opacity: 1; pointer-events: auto; }
.no-scroll { overflow: hidden; }
.iconify { display: inline-block; line-height: 0; }
.container { max-width: 1280px; }
header a:focus, footer a:focus, nav a:focus { outline: none; }
button:focus-visible, a:focus-visible, input:focus-visible { box-shadow: 0 0 0 4px rgba(20, 184, 166, 0.14); border-radius: 0.5rem; }
#cookieBanner { transition: transform 220ms ease, opacity 220ms ease; }
#cookieBanner.hidden { transform: translateY(18px); opacity: 0; pointer-events: none; }
.modal, .overlay { position: fixed; inset: 0; }
.card-hover:hover { transform: translateY(-6px); transition: transform 220ms cubic-bezier(.22,.9,.18,1); }
.kbd { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, 'Roboto Mono', 'Segoe UI Mono'; font-size: 0.85em; background: rgba(15,23,42,0.04); padding: 0.125rem 0.35rem; border-radius: 6px; }
@media (max-width: 768px) {
  .container { padding-left: 1rem; padding-right: 1rem; }
}
