:root{
  --motion-ease:cubic-bezier(.16,1,.3,1);
  --motion-soft:cubic-bezier(.22,.61,.36,1);
  --motion-fast:320ms;
  --motion-medium:680ms;
  --glass-blur:16px;
}

html.motion-enabled body{opacity:0;filter:blur(7px);transform:scale(1.004);transition:opacity 620ms var(--motion-ease),filter 760ms var(--motion-ease),transform 760ms var(--motion-ease)}
html.motion-enabled body.is-ready{opacity:1;filter:none;transform:none}
html.motion-enabled body.is-leaving{opacity:0;filter:blur(9px);transform:scale(.997);pointer-events:none;transition-duration:360ms}

.site-header{transition:height 600ms var(--motion-ease),background-color 600ms var(--motion-ease),background 600ms var(--motion-ease),box-shadow 600ms var(--motion-ease),color 450ms ease,backdrop-filter 600ms var(--motion-ease)}
.site-header.compact{backdrop-filter:blur(18px) saturate(1.12);-webkit-backdrop-filter:blur(18px) saturate(1.12)}
.brand img,.site-header .main-nav,.header-tools{transition:filter 520ms var(--motion-ease),width 520ms var(--motion-ease),height 520ms var(--motion-ease),transform 420ms var(--motion-ease),opacity 420ms ease}
.main-nav a,.main-nav button,.header-tools button{transition:color 280ms ease,opacity 280ms ease,transform 420ms var(--motion-ease),background-color 280ms ease}
.main-nav a:hover,.main-nav button:hover{opacity:.72;transform:none}
.header-tools button:hover{transform:scale(1.07)}

.welcome{background-image:none!important;isolation:isolate}
.welcome::before{content:"";position:absolute;inset:-2%;z-index:0;background:url('assets/chula-homepage-bg-scaled.webp') center 48%/cover no-repeat;transform:scale(1.045);filter:saturate(.92);transition:transform 2.2s var(--motion-ease),filter 1.4s ease}
.welcome::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.08),transparent 38%);opacity:0;transition:opacity 1.4s ease}
html.motion-enabled body.is-ready .welcome::before{transform:scale(1);filter:saturate(1)}
html.motion-enabled body.is-ready .welcome::after{opacity:1}
.welcome-shade{z-index:1;transition:background 1.2s ease}
.hero-statement,.audience-panel{z-index:2}
html.motion-enabled .site-header{opacity:0;transform:translateY(-14px);filter:blur(5px)}
html.motion-enabled .hero-statement span,html.motion-enabled .hero-statement strong,html.motion-enabled .audience-panel h1,html.motion-enabled .quick-links a{opacity:0;filter:blur(9px);transform:translateY(24px)}
html.motion-enabled body.is-ready .site-header{opacity:1;filter:none;transform:none;transition-delay:80ms}
html.motion-enabled body.is-ready .hero-statement span,html.motion-enabled body.is-ready .hero-statement strong,html.motion-enabled body.is-ready .audience-panel h1,html.motion-enabled body.is-ready .quick-links a{opacity:1;filter:none;transform:none;transition:opacity 850ms var(--motion-ease),filter 1s var(--motion-ease),transform 1s var(--motion-ease)}
html.motion-enabled body.is-ready .hero-statement span{transition-delay:140ms}
html.motion-enabled body.is-ready .hero-statement strong{transition-delay:230ms}
html.motion-enabled body.is-ready .audience-panel h1{transition-delay:390ms}
html.motion-enabled body.is-ready .quick-links a:nth-child(1){transition-delay:470ms}
html.motion-enabled body.is-ready .quick-links a:nth-child(2){transition-delay:520ms}
html.motion-enabled body.is-ready .quick-links a:nth-child(3){transition-delay:570ms}
html.motion-enabled body.is-ready .quick-links a:nth-child(4){transition-delay:620ms}
html.motion-enabled body.is-ready .quick-links a:nth-child(5){transition-delay:670ms}
html.motion-enabled body.is-ready .quick-links a:nth-child(6){transition-delay:720ms}
html.motion-enabled body.is-ready .quick-links a:nth-child(7){transition-delay:770ms}

.quick-links a{position:relative;overflow:hidden;backdrop-filter:blur(var(--glass-blur)) saturate(.9);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(.9);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 12px 30px rgba(0,0,0,.1);transition:background-color 480ms var(--motion-ease),transform 520ms var(--motion-ease),box-shadow 520ms var(--motion-ease),backdrop-filter 520ms ease!important}
.quick-links a::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(150px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.2),transparent 55%);opacity:0;transition:opacity 400ms ease}
.quick-links a:hover{transform:none!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.34),inset 0 0 0 2px rgba(168,209,255,.34)}
.quick-links a:hover::after{opacity:1}
.quick-links a b,.quick-links a span{position:relative;z-index:1;transition:transform 500ms var(--motion-ease)}
.quick-links a:hover b{transform:scale(1.04)}

.news-menu{backdrop-filter:blur(20px) saturate(1.08);-webkit-backdrop-filter:blur(20px) saturate(1.08);transform-origin:top left;transition:opacity 560ms var(--motion-ease),transform 650ms var(--motion-ease),filter 650ms var(--motion-ease),box-shadow 500ms ease}
.news-menu:not(.open){display:block!important;opacity:0;transform:translateX(-24px) scale(.975);filter:blur(8px);visibility:hidden;transition-delay:0s}
.news-menu.open{opacity:1;transform:none;filter:none;visibility:visible}
.news-menu a{transition:color 260ms ease,transform 420ms var(--motion-ease)}
.news-menu a:hover{transform:translateX(4px)}

.feature-track{transition:transform 900ms var(--motion-ease)}
.feature-card img,.news-card img,.related-card img,.highlight-rail img{transition:transform 900ms var(--motion-ease),filter 600ms ease}
.feature-card:hover img,.news-card:hover img,.related-card:hover img{transform:scale(1.045);filter:saturate(1.06)}
.news-card,.rank-card>div,.related-card{transition:transform 620ms var(--motion-ease),box-shadow 620ms var(--motion-ease),border-color 300ms ease}
.news-card:hover,.rank-card:hover>div,.related-card:hover{transform:none;border-color:rgba(11,88,189,.38);box-shadow:inset 0 0 0 2px rgba(11,88,189,.18),0 3px 10px rgba(5,52,112,.14)}
.arrow-pair button,.gallery-stage>[data-gallery-prev],.gallery-stage>[data-gallery-next]{transition:color 300ms ease,background-color 300ms ease,transform 420ms var(--motion-ease),box-shadow 420ms ease}
.arrow-pair button:hover{transform:scale(1.06);box-shadow:0 8px 18px rgba(0,0,0,.14)}
.gallery-stage>[data-gallery-prev]:hover,.gallery-stage>[data-gallery-next]:hover{transform:translateY(-50%);box-shadow:0 8px 18px rgba(0,0,0,.14)}
.arrow-pair button:active{transform:scale(.94)}
.gallery-stage>[data-gallery-prev]:active,.gallery-stage>[data-gallery-next]:active{transform:translateY(-50%) scale(.96)}

.motion-reveal{opacity:0;filter:blur(5px);transform:translateY(26px);transition:opacity 850ms var(--motion-ease),filter 950ms var(--motion-ease),transform 950ms var(--motion-ease)}
.motion-reveal.is-revealed{opacity:1;filter:none;transform:none}
.rail-section .news-card:nth-child(2),.related-card:nth-child(2){transition-delay:55ms}
.rail-section .news-card:nth-child(3),.related-card:nth-child(3){transition-delay:110ms}
.rail-section .news-card:nth-child(4),.related-card:nth-child(4){transition-delay:165ms}
.rail-section .news-card:nth-child(5){transition-delay:220ms}

.article-sidebar{transition:opacity 650ms var(--motion-ease),transform 750ms var(--motion-ease),filter 750ms var(--motion-ease)}
html.motion-enabled .article-content>h1,html.motion-enabled .article-meta,html.motion-enabled .article-cover{opacity:0;filter:blur(7px);transform:translateY(22px)}
html.motion-enabled body.is-ready .article-content>h1,html.motion-enabled body.is-ready .article-meta,html.motion-enabled body.is-ready .article-cover{opacity:1;filter:none;transform:none;transition:opacity 850ms var(--motion-ease),filter 950ms var(--motion-ease),transform 950ms var(--motion-ease)}
html.motion-enabled body.is-ready .article-content>h1{transition-delay:100ms}
html.motion-enabled body.is-ready .article-meta{transition-delay:190ms}
html.motion-enabled body.is-ready .article-cover{transition-delay:280ms}
.article-cover{transition:transform 1s var(--motion-ease),filter 700ms ease,opacity 700ms ease}
.article-cover:hover{transform:scale(1.008);filter:saturate(1.03)}
.gallery-stage{background:#e7e7e7}
.gallery-stage img{opacity:1;filter:none;transform:scale(1);transition:opacity 360ms var(--motion-soft),filter 500ms var(--motion-ease),transform 650ms var(--motion-ease)}
.gallery-stage img.is-changing{opacity:.18;filter:blur(9px);transform:scale(1.018)}
.gallery-thumbs button{transition:opacity 320ms ease,border-color 320ms ease,transform 450ms var(--motion-ease)}
.gallery-thumbs button:hover{opacity:1;transform:none;border-color:#0b58bd;box-shadow:0 0 0 3px rgba(11,88,189,.12)}

@media(prefers-reduced-motion:reduce){html.motion-enabled body,html.motion-enabled body.is-ready,html.motion-enabled body.is-leaving,.motion-reveal,.motion-reveal.is-revealed,.site-header,.hero-statement span,.hero-statement strong,.audience-panel h1,.quick-links a,.gallery-stage img{opacity:1!important;filter:none!important;transform:none!important;transition:none!important}.welcome::before{transform:none!important;transition:none!important}}
