/* Shared rendering budget: native scroll, bounded compositor motion, no live blur. */
html{scroll-behavior:auto!important}
html *,html *::before,html *::after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;will-change:auto!important}
html::before,html::after,body::before,body::after,main::after,.footer::after,.cosmic-backdrop::before,.cosmic-backdrop::after{content:none!important;display:none!important}
html .cosmic-backdrop>:is(.cosmic-nebula,.cosmic-dust,.cosmic-glints){inset:0;animation:none!important;filter:none!important;transform:none!important;mix-blend-mode:normal!important}
html .cosmic-glints{display:none}
html .cosmic-nebula{opacity:.7}
html .cosmic-dust{background-image:url('/assets/cosmos.webp')!important;opacity:.35}
html body{animation:none!important}
html .motion-cursor{display:none!important}
/* Fixed background colors avoid full-viewport blur under sticky navigation. */
html .site-header{background:var(--canvas)!important;transition:none!important;animation:none!important}
html dialog::backdrop{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
html .header-inner{transition:none!important}
html .menu-backdrop{background:color-mix(in srgb,var(--canvas) 78%,transparent)}
html .site-header .mobile-nav{transform:translate3d(0,-10px,0)!important;transition:opacity 240ms ease,transform 300ms cubic-bezier(.22,1,.36,1)!important}
html .site-header .mobile-nav.is-open{transform:none!important}
html .site-header .mobile-nav :is(a,summary){opacity:1!important;transform:none!important;transition:color 120ms ease,background-color 120ms ease!important;transition-delay:0s!important}
/* Cards stay in their layout while scrolling; never fold and re-open on every pass. */
html :is(.home-stage,.deck-heading,.program-card,.news-card,.council-activity-card,.interior-card,.motion-pending,.motion-enter,.card-reveal-target,.card-reveal-visible){opacity:1;transform:none;translate:none!important;scale:none!important;clip-path:none!important;filter:none!important;animation:none!important;transition:background-color 120ms ease,color 120ms ease!important}
html :is(.program-card,.news-card,.resource-tile,.resource-group,.document-link,.document-row,.search-result,.page-sidebar,.sidebar-help,.contact-details>div,.steps>div,.library-book,.library-event,.library-document,.schedule-lesson,.schedule-week td){box-shadow:none!important}
html :is(.program-card,.news-card,.resource-tile,.resource-group,.document-link,.document-row,.search-result,.steps>div,.library-event,.schedule-lesson,.schedule-week td)::before{content:none!important}
html :is(.hero-copy>* , .hero-visual,.page-heading h1,.page-heading .page-lead,.schedule-heading,.schedule-sidebar,.schedule-main,#schedule-table){animation:none!important}
html .hero-photo{transform:none!important;transition:none!important}
html .navigation-detail-animated>*{animation:none!important}
/* motion.js animates one disclosure surface; height is laid out once by native details. */
html .navigation-detail-animated,html details[open]>.navigation-children,html details[open]>div{animation:none!important}
html details{transition:none!important}
html :is(.button,.icon-button,.resource-tile,.document-link,.document-row,.quick-links>a,.student-resources>a,.section-explorer>a){translate:none!important;scale:none!important;transition:transform 280ms cubic-bezier(.22,1,.36,1),background-color 180ms ease,color 180ms ease!important}
html :is(.button,.text-link,.program-bottom,.document-link,.quick-links>a,.resource-tile,.student-resources>a) .icon{transition:transform 280ms cubic-bezier(.22,1,.36,1)!important}
/* CSS clamps replace the ResizeObserver/line-height feedback loop on news cards. */
html .news-excerpt{flex:none;min-height:0;height:auto}
html .news-excerpt>span{position:static;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}
html .home-page .news-excerpt>span{-webkit-line-clamp:2}
html.theme-changing,html.theme-changing :is(body,.site-header,.mobile-nav,.button,.icon-button){transition:background-color 220ms ease,color 220ms ease!important}
html .typed-echo{display:none!important}
html .has-typed-text input{color:var(--ink)!important;-webkit-text-fill-color:var(--ink)!important}
html .hero-word,html .display-number,html .facts strong{filter:none!important}
/* Native content skipping renders below-the-fold sections only when needed. */
@supports(content-visibility:auto){
  .home-page main>.section,.home-page main>.news-section,.home-page main>.future-invitation{content-visibility:auto;contain-intrinsic-size:auto 640px}
}
::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}

/* Hover feedback stays local, and gallery arrows retain a fixed click target. */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  html :is(.button,.resource-tile):hover{transform:translate3d(0,-3px,0)}
  html :is(.text-link,.document-link,.quick-links>a,.student-resources>a):hover .nav-chevron{transform:translate3d(4px,0,0)}
}
@media(prefers-reduced-motion:no-preference){html :is(.button,.icon-button):active{transform:scale(.97)}}
@media(prefers-reduced-motion:reduce){
  html .site-header .mobile-nav{transform:none!important;transition:none!important}
  html :is(.button,.icon-button,.resource-tile,.document-link,.document-row,.quick-links>a,.student-resources>a,.section-explorer>a){transition:none!important}
}
