/* Motion is an enhancement: with JavaScript off, every element stays visible. */
@media (prefers-reduced-motion: no-preference) {
  .motion-enabled .motion-pending { opacity: 0; }
  .motion-enabled .ruled-title.motion-shown::before { animation: rule-draw 1s cubic-bezier(.22,1,.36,1) both; transform-origin: left; }
  .motion-enabled :is(.bookshelf-button,.try-button,.cta>:is(button,.access-link),.contact-button,.more,.social-copy button,.send-button,.dialog-close,.place-dialog-close) { transition: translate .35s cubic-bezier(.22,1,.36,1),scale .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s,filter .25s; }
  .motion-enabled :is(.cta>:is(button,.access-link),.more,.contact-button,.send-button) img { transition: translate .35s cubic-bezier(.22,1,.36,1),rotate .35s; }
  .motion-enabled :is(.bookshelf-button,.try-button,.cta>:is(button,.access-link),.contact-button,.more,.social-copy button,.send-button):active { scale: .97; }
  .motion-enabled nav a { position: relative; }
  .motion-enabled nav a::after { content: ''; position: absolute; height: 2px; background: var(--blue); bottom: -6px; left: 0; right: 0; scale: 0 1; transform-origin: left; transition: scale .3s ease; }
  .motion-enabled nav a:focus-visible::after { scale: 1 1; }
  .motion-enabled dialog[open] { animation: dialog-appear .3s cubic-bezier(.22,1,.36,1); }
  .motion-enabled dialog[open]::backdrop { animation: veil-appear .3s ease; }
  @media (hover:hover) and (pointer:fine) {
    .motion-enabled :is(.bookshelf-button,.try-button,.cta>:is(button,.access-link),.contact-button,.more,.social-copy button,.send-button):hover { translate: 0 -4px; scale: 1.025; filter: none; }
    .motion-enabled :is(.cta>:is(button,.access-link),.more):hover img { translate: 5px 0; }
    .motion-enabled .send-button:hover img { translate: 4px -3px; }
    .motion-enabled .contact-button:hover img { rotate: -8deg; }
    .motion-enabled nav a:hover::after { scale: 1 1; }
  }
  @media (max-width:1023px) { .motion-enabled nav.open { animation: menu-appear .3s cubic-bezier(.22,1,.36,1); } }
}
@keyframes rule-draw { from { scale: 0 1; } to { scale: 1 1; } }
@keyframes dialog-appear { from { opacity: 0; scale: .97; translate: 0 12px; } to { opacity: 1; scale: 1; translate: 0 0; } }
@keyframes veil-appear { from { opacity: 0; } to { opacity: 1; } }
@keyframes copy-appear { from { opacity: 0; translate: 0 22px; } to { opacity: 1; translate: 0 0; } }
@keyframes menu-appear { from { opacity: 0; translate: 0 -8px; } to { opacity: 1; translate: 0 0; } }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .motion-pending { opacity:1!important; }
}
@media print { .motion-pending { opacity:1!important; } }
/* Larger choreography, while the final Figma geometry is unchanged. */
.motion-toggle{position:fixed;right:16px;bottom:16px;z-index:30;border:1px solid #0c69af33;border-radius:999px;background:#fffffff2;color:var(--blue);font-size:13px;font-weight:700;padding:10px 16px;box-shadow:0 2px 12px #0002;min-height:40px;backdrop-filter:blur(8px)}
.motion-toggle:disabled{opacity:.65;cursor:default}
span.step-arrow{display:block;isolation:isolate}
.arrow-chevron{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;clip-path:inset(calc(var(--chevron)*33.333%) 0 calc((2 - var(--chevron))*33.333%) 0)}
@media(prefers-reduced-motion:no-preference){
 .motion-enabled :is(.bookshelf-button,.try-button,.cta>:is(button,.access-link),.contact-button,.more,.social-copy button,.send-button):hover{scale:1.07}
 .motion-enabled .ruled-title.motion-shown::before{animation-duration:1.25s}
 .motion-enabled :is(.place-placeholder,.detail-cover,.detail-gallery>div){transition:scale .65s cubic-bezier(.16,1,.3,1)}
 .motion-enabled .place:hover .place-placeholder{scale:1.035}
 .motion-enabled .place:hover .more img{translate:6px 0}
 .motion-enabled .place-dialog-body>*{animation:copy-appear .7s cubic-bezier(.16,1,.3,1) backwards}
 .motion-enabled .place-dialog-body>:nth-child(2){animation-delay:.1s}
 .motion-enabled .place-dialog-body>:nth-child(3){animation-delay:.2s}
 .motion-enabled dialog[open]{animation-duration:.45s}
}
@media(max-width:1023px){.motion-toggle{right:10px;bottom:10px;font-size:12px;padding:9px 12px}}
@media print{.motion-toggle{display:none}}
span.step-arrow{width:128px;height:104px}
@media(max-width:1023px){span.step-arrow{width:80px;height:65px}}
