/* JS handles page travel, including when OS-level motion reduction is enabled. */
html{scroll-behavior:auto}
dialog{opacity:0;transform:translateY(20px) scale(.975);transition:opacity .24s ease,transform .3s cubic-bezier(.2,.7,.2,1),display .3s allow-discrete,overlay .3s allow-discrete}
dialog[open]{opacity:1;transform:translateY(0) scale(1)}
dialog::backdrop{opacity:0;transition:opacity .24s ease,display .3s allow-discrete,overlay .3s allow-discrete}
dialog[open]::backdrop{opacity:1}
@starting-style{dialog[open]{opacity:0;transform:translateY(20px) scale(.975)}dialog[open]::backdrop{opacity:0}}
#map-options:not([hidden]){animation:menu-arrive .2s ease-out}
@keyframes menu-arrive{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){dialog,dialog::backdrop{transition-duration:.12s!important}dialog{transform:none!important}#map-options:not([hidden]){animation:none}}
main{animation:page-arrive .5s cubic-bezier(.2,.7,.2,1);transition:opacity .2s ease,transform .22s ease}
.page-leaving main{opacity:0;transform:translateY(-16px)}
@keyframes page-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.hero h1{font-size:clamp(36px,4.6vw,72px);letter-spacing:-3px}
@media(max-width:700px){.hero h1{font-size:35px;letter-spacing:-1.7px}.hero-content{padding-top:55px}}
@media(prefers-reduced-motion:reduce){main{animation-duration:.2s;transition:opacity .18s ease!important}.page-leaving main{transform:none}@keyframes page-arrive{from{opacity:0}to{opacity:1}}}
