:root {
    --pointer-x: 50%;
    --pointer-y: 30%;
    --motion-ease-soft: cubic-bezier(0.22, 0.61, 0.36, 1);
    --motion-ease-snap: cubic-bezier(0.16, 1, 0.3, 1);
    --motion-ease-lux: cubic-bezier(0.19, 1, 0.22, 1);
    --motion-dur-xs: 180ms;
    --motion-dur-sm: 280ms;
    --motion-dur-md: 420ms;
    --motion-dur-lg: 680ms;
    --motion-dur-xl: 920ms;
    --page-transition-curtain-ms: 340ms;
    --page-transition-curtain-fade-ms: 190ms;
    --page-transition-shell-ms: 300ms;
    --page-transition-shell-fade-ms: 220ms;
    --page-transition-curtain-light:
        linear-gradient(126deg, rgba(216, 227, 238, 0.94), rgba(186, 203, 221, 0.92)),
        radial-gradient(54vw 34vw at 22% 16%, rgba(118, 153, 186, 0.26), transparent 70%);
    --page-transition-curtain-dark:
        linear-gradient(126deg, rgba(18, 27, 37, 0.95), rgba(12, 19, 29, 0.95)),
        radial-gradient(54vw 34vw at 22% 16%, rgba(111, 151, 189, 0.24), transparent 70%);
}

@view-transition {
    navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
    animation-duration: 180ms;
    animation-timing-function: var(--motion-ease-soft);
}

body.motion-rich {
    position: relative;
}

body.motion-rich::after {
    content: "";
    position: fixed;
    inset: -22vmax;
    pointer-events: none;
    z-index: 0;
    opacity: 0.32;
    background:
        radial-gradient(40vmax 30vmax at var(--pointer-x) var(--pointer-y), rgba(126, 158, 190, 0.22), transparent 62%),
        radial-gradient(30vmax 22vmax at calc(100% - var(--pointer-x)) calc(100% - var(--pointer-y)), rgba(181, 199, 219, 0.16), transparent 68%);
    mix-blend-mode: screen;
    animation: motionAmbientDrift 22s ease-in-out infinite alternate;
}

body.motion-rich .site-shell {
    transform-style: preserve-3d;
    animation: motionShellFloat 14s ease-in-out infinite;
    animation-delay: 900ms;
}

body.motion-rich .site-shell::before {
    background:
        linear-gradient(156deg, rgba(255, 255, 255, 0.8), transparent 24%),
        linear-gradient(100deg, transparent 0%, rgba(170, 195, 218, 0.18) 50%, transparent 100%);
    background-size: auto, 220% 220%;
    animation: motionShellSheen 18s ease-in-out infinite;
}

body.motion-rich .hero-banner {
    transform:
        translate3d(0, calc(var(--scroll-progress, 0) * -6px), 0)
        perspective(1200px)
        rotateX(var(--hero-tilt-x, 0deg))
        rotateY(var(--hero-tilt-y, 0deg));
    will-change: transform;
    transition:
        transform var(--motion-dur-md) var(--motion-ease-soft),
        box-shadow var(--motion-dur-md) var(--motion-ease-soft),
        border-color var(--motion-dur-sm) var(--motion-ease-soft);
}

body.motion-rich .hero-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(108deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.34) 46%, rgba(255, 255, 255, 0) 100%);
    background-size: 180% 180%;
    mix-blend-mode: screen;
    opacity: 0.44;
    animation: motionHeroSweep 9s linear infinite;
}

body.motion-rich .hero-content > * {
    opacity: 0;
    transform: translate3d(0, 22px, 0);
    animation: motionHeroEnter 620ms var(--motion-ease-snap) both;
    animation-delay: calc(120ms + var(--hero-row, 0) * 90ms);
}

body.motion-rich .hero-content > *:nth-child(1) {
    --hero-row: 0;
}

body.motion-rich .hero-content > *:nth-child(2) {
    --hero-row: 1;
}

body.motion-rich .hero-content > *:nth-child(3) {
    --hero-row: 2;
}

body.motion-rich .hero-content > *:nth-child(4) {
    --hero-row: 3;
}

body.motion-rich .reveal {
    opacity: 0;
    transform: translate3d(0, 24px, 0) scale(0.992);
    will-change: transform, opacity;
    transition:
        opacity var(--motion-dur-lg) var(--motion-ease-soft),
        transform var(--motion-dur-xl) var(--motion-ease-lux);
}

body.motion-rich .reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}

body.motion-rich .article-image img,
body.motion-rich .home-gallery-image,
body.motion-rich .achievement-image img,
body.motion-rich .odisha-glance-spotlight-media img {
    --media-pan-x: 0px;
    --media-pan-y: 0px;
    --media-scale: 1;
    transform: translate3d(var(--media-pan-x), var(--media-pan-y), 0) scale(var(--media-scale));
    will-change: transform, filter;
    transition:
        transform var(--motion-dur-xl) var(--motion-ease-lux),
        filter var(--motion-dur-md) var(--motion-ease-soft);
}

body.motion-rich .article-card:hover .article-image img,
body.motion-rich .home-gallery-item:hover .home-gallery-image,
body.motion-rich .achievement-card:hover .achievement-image img,
body.motion-rich .odisha-glance-spotlight:hover .odisha-glance-spotlight-media img {
    --media-scale: 1.045;
}

body.motion-rich .article-card,
body.motion-rich .widget,
body.motion-rich .archive-pdf-item,
body.motion-rich .archive-article-item,
body.motion-rich .stat-card,
body.motion-rich .stat-box,
body.motion-rich .live-widget-card,
body.motion-rich .heritage-card,
body.motion-rich .editorial-pill,
body.motion-rich .ppv-shell {
    position: relative;
    overflow: hidden;
}

body.motion-rich .article-card::before,
body.motion-rich .widget::before,
body.motion-rich .archive-pdf-item::before,
body.motion-rich .archive-article-item::before,
body.motion-rich .live-widget-card::before,
body.motion-rich .heritage-card::before,
body.motion-rich .ppv-shell::before {
    content: "";
    position: absolute;
    inset: -20%;
    pointer-events: none;
    opacity: 0;
    transform: translate3d(-10%, 0, 0) rotate(6deg);
    background: linear-gradient(110deg, transparent 0%, rgba(153, 179, 204, 0.24) 45%, transparent 100%);
    transition: opacity 280ms ease, transform 420ms var(--motion-ease-soft);
}

body.motion-rich .article-card:hover::before,
body.motion-rich .widget:hover::before,
body.motion-rich .archive-pdf-item:hover::before,
body.motion-rich .archive-article-item:hover::before,
body.motion-rich .live-widget-card:hover::before,
body.motion-rich .heritage-card:hover::before,
body.motion-rich .ppv-shell:hover::before {
    opacity: 1;
    transform: translate3d(18%, 0, 0) rotate(6deg);
}

body.motion-rich .home-gallery-item,
body.motion-rich .heritage-card,
body.motion-rich .editorial-pill,
body.motion-rich .live-widget-card {
    animation: motionFloatByIndex 9.6s ease-in-out infinite;
    animation-delay: calc(var(--motion-index, 0) * 140ms);
}

body.motion-rich .site-header::after {
    height: 3px;
    background: linear-gradient(90deg, #5b85aa, #2f516a, #8ab2d6);
}

body.motion-rich .nav-menu.active > li {
    opacity: 0;
    transform: translate3d(0, 10px, 0);
    animation: motionMenuIn 420ms var(--motion-ease-snap) both;
    animation-delay: calc(var(--motion-index, 0) * 32ms);
}

body.motion-rich .is-magnetic {
    --mag-x: 0px;
    --mag-y: 0px;
    --mag-lift: 0px;
    transform: translate3d(var(--mag-x), var(--mag-y), 0) translateY(var(--mag-lift));
    transition:
        transform var(--motion-dur-sm) var(--motion-ease-soft),
        box-shadow var(--motion-dur-sm) var(--motion-ease-soft),
        border-color var(--motion-dur-sm) var(--motion-ease-soft);
}

body.motion-rich .is-magnetic:hover {
    --mag-lift: -2px;
}

body.motion-rich .is-magnetic.is-pressing {
    --mag-lift: 0px;
    transform: translate3d(calc(var(--mag-x) * 0.5), calc(var(--mag-y) * 0.5), 0) scale(0.975);
}

body.motion-rich .newspaper-share-buttons .share-btn,
body.motion-rich .social-links a {
    transition:
        transform var(--motion-dur-sm) var(--motion-ease-soft),
        border-color var(--motion-dur-sm) var(--motion-ease-soft),
        background-color var(--motion-dur-sm) var(--motion-ease-soft),
        color var(--motion-dur-sm) var(--motion-ease-soft);
}

body.motion-rich .newspaper-share-buttons .share-btn:hover,
body.motion-rich .social-links a:hover {
    transform: translateY(-2px);
}

body.motion-rich .premium-pdf-modal:not([hidden]) .premium-pdf-modal-backdrop {
    animation: motionBackdropIn 280ms ease both;
}

body.motion-rich .premium-pdf-modal:not([hidden]) .premium-pdf-modal-dialog {
    transform-origin: 50% 92%;
    animation: motionModalIn 380ms var(--motion-ease-snap) both;
}

body.motion-rich .ppv-progress-bar {
    background-size: 220% 100%;
    background-image: linear-gradient(90deg, #2f516a, #7ea2c4, #2f516a);
    animation: motionProgressShine 2.4s linear infinite;
}

body.motion-rich .ppv-thumb.is-active {
    animation: motionThumbActive 220ms var(--motion-ease-snap) both;
}

body.page-transition-ready .page-transition-curtain {
    opacity: 0;
}

body.page-transition-lite.page-transition-ready .page-transition-curtain {
    opacity: 0;
}

body .page-transition-curtain {
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    z-index: 9999;
    transform: none;
    will-change: opacity;
    backface-visibility: hidden;
    contain: paint;
    background:
        linear-gradient(160deg, rgba(214, 226, 238, 0.52), rgba(188, 206, 224, 0.48)),
        radial-gradient(52vw 34vw at 22% 16%, rgba(120, 156, 190, 0.14), transparent 70%);
    transition: opacity 170ms var(--motion-ease-soft);
}

body .page-transition-curtain::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0;
    transform: none;
    background:
        radial-gradient(64vw 38vw at 50% 112%, rgba(244, 249, 255, 0.42), transparent 66%),
        linear-gradient(100deg, transparent 0%, rgba(255, 255, 255, 0.12) 48%, transparent 100%);
    transition: opacity 260ms var(--motion-ease-soft);
}

body.dark-mode .page-transition-curtain {
    background:
        linear-gradient(160deg, rgba(17, 26, 36, 0.66), rgba(11, 19, 28, 0.64)),
        radial-gradient(52vw 34vw at 22% 16%, rgba(111, 150, 188, 0.2), transparent 70%);
}

body.page-leaving .page-transition-curtain {
    opacity: 1;
}

body.page-transition-lite .page-transition-curtain {
    transition: opacity 140ms ease;
}

body.page-transition-lite .page-transition-curtain::before {
    transition: opacity 180ms ease;
}

body.page-transition-lite.page-leaving .page-transition-curtain {
    opacity: 1;
}

body.page-leaving .page-transition-curtain::before {
    opacity: 0.78;
}

body.page-leaving.motion-rich .site-shell,
body.page-leaving.motion-rich .site-shell::before {
    animation: none !important;
}

body.page-leaving .site-shell {
    opacity: 0.975;
    transform: translate3d(0, 1px, 0) scale(0.999);
    filter: none;
    will-change: transform, opacity;
    backface-visibility: hidden;
    transition:
        transform 180ms var(--motion-ease-soft),
        opacity 170ms ease;
}

body.page-transition-lite.page-leaving .site-shell {
    opacity: 0.985;
    transform: translate3d(0, 0, 0) scale(1);
    filter: none;
}

body.page-transition-ultra-lite .page-transition-curtain {
    transition-duration: 120ms;
}

body.page-transition-ultra-lite.page-leaving .site-shell {
    transform: none !important;
    opacity: 0.99;
}

body.dark-mode.motion-rich::after {
    opacity: 0.24;
    background:
        radial-gradient(40vmax 30vmax at var(--pointer-x) var(--pointer-y), rgba(120, 161, 197, 0.22), transparent 66%),
        radial-gradient(28vmax 20vmax at calc(100% - var(--pointer-x)) calc(100% - var(--pointer-y)), rgba(75, 118, 154, 0.16), transparent 70%);
}

body.dark-mode.motion-rich .hero-banner::before {
    opacity: 0.36;
}

body.dark-mode.motion-rich .article-card::before,
body.dark-mode.motion-rich .widget::before,
body.dark-mode.motion-rich .archive-pdf-item::before,
body.dark-mode.motion-rich .archive-article-item::before,
body.dark-mode.motion-rich .live-widget-card::before,
body.dark-mode.motion-rich .heritage-card::before,
body.dark-mode.motion-rich .ppv-shell::before {
    background: linear-gradient(110deg, transparent 0%, rgba(130, 164, 197, 0.2) 45%, transparent 100%);
}

@keyframes motionAmbientDrift {
    0% {
        transform: translate3d(-2%, -1%, 0) scale(1);
    }
    100% {
        transform: translate3d(2%, 1%, 0) scale(1.08);
    }
}

@keyframes motionShellFloat {
    0%,
    100% {
        transform: translate3d(0, 0, 0);
    }
    50% {
        transform: translate3d(0, -2px, 0);
    }
}

@keyframes motionShellSheen {
    0% {
        background-position: 0 0, 0% 40%;
    }
    100% {
        background-position: 0 0, 100% 60%;
    }
}

@keyframes motionHeroSweep {
    0% {
        background-position: 0% 50%;
    }
    100% {
        background-position: 140% 50%;
    }
}

@keyframes motionHeroEnter {
    from {
        opacity: 0;
        transform: translate3d(0, 22px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes motionFloatByIndex {
    0%,
    100% {
        transform: translate3d(0, 0, 0);
    }
    50% {
        transform: translate3d(0, -4px, 0);
    }
}

@keyframes motionMenuIn {
    from {
        opacity: 0;
        transform: translate3d(0, 10px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes motionBackdropIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes motionModalIn {
    from {
        opacity: 0;
        transform: translate3d(0, 26px, 0) scale(0.975);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
    }
}

@keyframes motionProgressShine {
    from {
        background-position: 0% 50%;
    }
    to {
        background-position: 220% 50%;
    }
}

@keyframes motionThumbActive {
    from {
        transform: translate3d(0, 2px, 0) scale(0.98);
    }
    to {
        transform: translate3d(0, 0, 0) scale(1);
    }
}

@media (max-width: 1120px), (pointer: coarse) {
    body.motion-rich::after,
    body.motion-rich .site-shell,
    body.motion-rich .site-shell::before,
    body.motion-rich .hero-banner::before,
    body.motion-rich .home-gallery-item,
    body.motion-rich .heritage-card,
    body.motion-rich .editorial-pill,
    body.motion-rich .live-widget-card,
    body.motion-rich .hero-content > *,
    body.motion-rich .ppv-progress-bar,
    body.motion-rich .ppv-thumb.is-active,
    body.motion-rich .nav-menu.active > li {
        animation: none !important;
    }

    body.motion-rich .hero-banner,
    body.motion-rich .is-magnetic,
    body.motion-rich .reveal,
    body.motion-rich .article-card::before,
    body.motion-rich .widget::before,
    body.motion-rich .archive-pdf-item::before,
    body.motion-rich .archive-article-item::before,
    body.motion-rich .live-widget-card::before,
    body.motion-rich .heritage-card::before,
    body.motion-rich .ppv-shell::before {
        transition: none !important;
        transform: none !important;
        filter: none !important;
    }
}

@media (max-width: 780px) {
    body.motion-rich .site-shell {
        animation: none;
    }

    body.motion-rich .reveal {
        transform: translate3d(0, 14px, 0) scale(0.996);
    }

    body.motion-rich .hero-banner {
        transform: translate3d(0, calc(var(--scroll-progress, 0) * -2px), 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    body.motion-rich::after,
    body.motion-rich .site-shell,
    body.motion-rich .site-shell::before,
    body.motion-rich .hero-banner::before,
    body.motion-rich .home-gallery-item,
    body.motion-rich .heritage-card,
    body.motion-rich .editorial-pill,
    body.motion-rich .live-widget-card,
    body.motion-rich .premium-pdf-modal:not([hidden]) .premium-pdf-modal-backdrop,
    body.motion-rich .premium-pdf-modal:not([hidden]) .premium-pdf-modal-dialog,
    body.motion-rich .ppv-progress-bar,
    body.motion-rich .ppv-thumb.is-active,
    body.motion-rich .hero-content > *,
    body.motion-rich .nav-menu.active > li {
        animation: none !important;
    }

    body.motion-rich .is-magnetic,
    body.motion-rich .reveal,
    body.motion-rich .hero-banner,
    body.motion-rich .article-card::before,
    body.motion-rich .widget::before,
    body.motion-rich .archive-pdf-item::before,
    body.motion-rich .archive-article-item::before,
    body.motion-rich .live-widget-card::before,
    body.motion-rich .heritage-card::before,
    body.motion-rich .ppv-shell::before,
    body.page-transition-ready .page-transition-curtain,
    body.page-leaving .site-shell {
        transition: none !important;
        transform: none !important;
        filter: none !important;
    }
}

body.perf-lite::after,
body.perf-lite .site-shell,
body.perf-lite .site-shell::before,
body.perf-lite .hero-banner::before,
body.perf-lite .home-gallery-item,
body.perf-lite .heritage-card,
body.perf-lite .editorial-pill,
body.perf-lite .live-widget-card,
body.perf-lite .premium-pdf-modal:not([hidden]) .premium-pdf-modal-backdrop,
body.perf-lite .premium-pdf-modal:not([hidden]) .premium-pdf-modal-dialog,
body.perf-lite .ppv-progress-bar,
body.perf-lite .ppv-thumb.is-active,
body.perf-lite .hero-content > *,
body.perf-lite .nav-menu.active > li {
    animation: none !important;
}

body.perf-lite .is-magnetic,
body.perf-lite .reveal,
body.perf-lite .hero-banner,
body.perf-lite .article-card::before,
body.perf-lite .widget::before,
body.perf-lite .archive-pdf-item::before,
body.perf-lite .archive-article-item::before,
body.perf-lite .live-widget-card::before,
body.perf-lite .heritage-card::before,
body.perf-lite .ppv-shell::before {
    transition: none !important;
    transform: none !important;
    filter: none !important;
}
