/* Content is visible before JavaScript enhances scrolling and previews. */
.reveal{opacity:1;transform:none}
.motion-ready .reveal{opacity:0;transform:translateY(28px)}
.motion-ready .reveal.is-visible{opacity:1;transform:none}
.site-intro{display:none}
.intro-ready .site-intro{display:grid;animation:introSafety 0s 4s forwards}
.intro-ready .site-intro.is-done{opacity:0;visibility:hidden;pointer-events:none}
@keyframes introSafety{to{opacity:0;visibility:hidden;pointer-events:none}}

/* Keep the brand orange while making button labels readable. */
.btn-primary{color:var(--navy)}
.btn-primary:hover{color:var(--navy);background:#f4a04c}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #125a83;outline-offset:4px}
.pilotage :where(a,button):focus-visible,.terrain :where(a,button):focus-visible,.site-footer :where(a,button):focus-visible{outline-color:#ffd19e}
.sound-toggle:disabled{opacity:.7;cursor:default}

/* Dialog fallback retains a visible overlay in older embedded browsers. */
.modal[data-fallback-open]{position:fixed;inset:5vh 0 auto;margin:auto;z-index:1100;display:block;box-shadow:0 0 0 100vmax rgba(3,15,26,.78),0 40px 120px rgba(0,0,0,.35)}

@media(max-width:1050px){
  html:not(.menu-ready) .mobile-nav{display:grid}
  html:not(.menu-ready) .menu-toggle{display:none}
}
@media(max-width:700px){.menu-toggle{margin-left:auto}}

@media(prefers-reduced-motion:reduce){
  .motion-ready .reveal{opacity:1;transform:none}
  .intro-ready .site-intro{display:none}
}
