html { font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body { min-height: 100vh; line-height: 1.5; }
.iconify { display: inline-flex; vertical-align: middle; line-height: 0; }
a, button { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: none; box-shadow: 0 0 0 4px rgba(0,168,107,0.14); border-radius: 0.5rem; }
button:disabled, .button-disabled { opacity: 0.6; cursor: not-allowed; pointer-events: none; }
#mobile-menu { transition: opacity 360ms ease, transform 360ms ease; }
#mobile-menu.hidden { opacity: 0; pointer-events: none; transform: translateY(-6px); }
#mobile-menu:not(.hidden) { opacity: 1; pointer-events: auto; transform: translateY(0); }
#mobile-backdrop { transition: opacity 260ms ease; }
#mobile-backdrop.hidden { opacity: 0; pointer-events: none; }
#cookie { transition: opacity 300ms ease, transform 300ms ease; max-width: 20rem; }
#cookie.hidden { opacity: 0; transform: translateY(12px); pointer-events: none; }
canvas { max-width: 100%; height: auto !important; display: block; object-fit: contain; }
img { max-width: 100%; height: auto; display: block; object-fit: cover; }
.container { box-sizing: border-box; }
.rounded-2xl { border-radius: 1rem; }
.shadow-md { box-shadow: 0 6px 18px rgba(15,23,42,0.06); }
.shadow-lg { box-shadow: 0 20px 30px rgba(15,23,42,0.08); }
.bg-gradient-soft { background-image: linear-gradient(90deg, rgba(0,168,107,0.04), rgba(15,23,42,0.02)); }
.visually-hidden { position: absolute !important; height: 1px; width: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { * { animation-duration: 1ms !important; transition-duration: 1ms !important; }
}
