/* RC motion: persistent navigation, soft depth, decisive but unhurried easing. */
:root { --rc-ease:cubic-bezier(.22,1,.36,1); --rc-ease-in:cubic-bezier(.55,0,.8,.4); }
/* Cross-document API support does not guarantee an actual transition in
   embedded browsers. Use the same explicit choreography everywhere. */
@view-transition { navigation:none; }
.rc-page-pending main,.rc-page-pending footer { opacity:0; }
.rc-page-entering main { animation:rc-document-in .86s cubic-bezier(.22,.61,.36,1) both; }
.rc-page-entering footer { animation:rc-document-fade .7s .12s ease both; }
@keyframes rc-document-in {
  0% { opacity:0; transform:translateY(38px) scale(.99); filter:blur(6px); }
  70% { opacity:1; filter:blur(0); }
  100% { opacity:1; transform:none; filter:blur(0); }
}
@keyframes rc-document-fade { from { opacity:0; } to { opacity:1; } }
.rc-motion-enabled { scroll-behavior:auto; }
.rc-motion-enabled main { transition:opacity .24s ease,transform .26s ease,filter .24s ease; transform-origin:50% 15vh; }
.rc-fallback-leaving main { opacity:0; transform:translateY(-18px) scale(.994); filter:blur(4px); pointer-events:none; }
.rc-fallback-leaving footer { opacity:0; transition:opacity .22s ease; }
/* This line is reserved for real navigation/asset work, not a timed percentage. */
html.rc-navigating::after,html.rc-assets-loading::after {
  content:""; position:fixed; z-index:110; inset:0 0 auto; height:3px;
  background:#f5c400; transform-origin:left; pointer-events:none;
}
html.rc-navigating::after { transform:scaleX(.25); animation:rc-navigation-pulse 1.1s ease-in-out infinite alternate; }
html.rc-assets-loading::after { transform:scaleX(var(--rc-load-progress,0)); transition:transform .3s var(--rc-ease); }
@keyframes rc-navigation-pulse { from { opacity:.4; } to { opacity:1; } }
.theme-light :is(.rc-button,.guide-filters button) {
  transition:background-color .3s ease,border-color .3s ease,color .3s ease,filter .2s ease;
}
.theme-light .rc-button:active { filter:brightness(.96); }
.theme-light :is(.rc-destination-card,.related-links>a,.guide-card,.school-founder,.rest-story-pair>a,.home-path) {
  transition:transform .6s var(--rc-ease),box-shadow .6s var(--rc-ease),background-color .35s ease,border-color .35s ease;
}
.theme-light :is(.rc-card-media img,.rc-story-media img,.rc-photo-card>img,.story-feature-image>img) {
  transition:transform .85s var(--rc-ease),filter .6s ease;
}
.theme-light :is(.contact-form-box input,.contact-form-box textarea) { transition:border-color .3s ease,background-color .3s ease; }
.knowledge-faq summary { -webkit-tap-highlight-color:transparent; }
.theme-light.page-knowledge .knowledge-faq summary::after { transition:transform .4s var(--rc-ease),background-color .3s ease; }
.theme-light.page-knowledge .knowledge-faq details[data-rc-opening="true"] summary::after { transform:rotate(45deg); }
.theme-light.page-knowledge .knowledge-faq details[data-rc-opening="false"] summary::after { transform:rotate(0); }
@media(max-width:760px) {
  .has-site-ui .theme-light .mobile-menu {
    background:radial-gradient(ellipse at 100% 95%,#f5c40022,transparent 65%),#fffffffa;
    backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
    transform:translateY(-12px); clip-path:inset(0 0 100% 0);
    transition:clip-path .62s var(--rc-ease),transform .62s var(--rc-ease),opacity .4s ease,visibility 0s .62s;
  }
  .has-site-ui .theme-light .mobile-menu.is-open {
    transform:none; clip-path:inset(0); transition-delay:0s;
  }
  .has-site-ui .theme-light .mobile-menu a {
    opacity:0; transform:translateY(22px);
    transition:opacity .22s ease,transform .4s var(--rc-ease),background-color .25s ease;
  }
  .has-site-ui .theme-light .mobile-menu.is-open a {
    opacity:1; transform:none; transition-duration:.5s,.65s,.25s;
    transition-delay:calc(65ms + var(--rc-menu-order,0)*45ms);
  }
  .rc-nav .menu-toggle span { transition:top .22s var(--rc-ease),transform .45s var(--rc-ease); }
}
@media(prefers-reduced-motion:reduce) {
  .rc-page-pending main,.rc-page-pending footer { opacity:1; }
  .rc-page-entering main,.rc-page-entering footer { animation:none; }
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*) { animation:none !important; }
  .rc-motion-enabled main,.theme-light :is(a,button,img,input,textarea,summary)::after,
  .theme-light :is(a,button,img,input,textarea,summary),.has-site-ui .theme-light .mobile-menu,.has-site-ui .theme-light .mobile-menu a { transition:none !important; }
  html.rc-navigating::after { animation:none; }
}
