@keyframes marquee {
    0% { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(-100%, 0, 0); }
}

body {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    font-kerning: normal;
    text-rendering: optimizeLegibility;
}

.font-serif {
    font-family: 'DM Serif Display', Georgia, serif !important;
    font-weight: 400;
    letter-spacing: 0;
}

input,
select,
textarea,
button {
    font: inherit;
}

small,
label,
button,
nav,
[class*="text-[9px]"],
[class*="text-[10px]"],
[class*="text-xs"] {
    line-height: 1.35;
}

.animate-marquee {
    animation: marquee 25s linear infinite;
    will-change: transform;
}

.animate-marquee:hover {
    animation-play-state: paused;
}

.flash-info-bar {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.flash-info-label {
    position: relative;
    z-index: 2;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: .5rem;
    padding: .45rem .75rem;
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: 999px;
    background: rgba(127, 29, 29, .22);
    box-shadow: 0 4px 14px rgba(124, 45, 18, .16);
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .16em;
    line-height: 1;
    text-transform: uppercase;
}

.flash-info-label::before {
    width: .4rem;
    height: .4rem;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 0 0 0 4px rgba(255, 255, 255, .15);
    content: '';
}

.flash-info-track {
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
}

.flash-info-message {
    display: inline-block;
    min-width: max-content;
    padding-left: 100%;
}

@media (max-width: 640px) {
    .flash-info-bar {
        gap: .5rem;
    }

    .flash-info-label {
        padding: .4rem .55rem;
        font-size: .58rem;
        letter-spacing: .1em;
    }
}

@keyframes float {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    33% { transform: translate3d(30px, -50px, 0) scale(1.05); }
    66% { transform: translate3d(-20px, 20px, 0) scale(0.95); }
}

.animate-float {
    animation: float 15s ease-in-out infinite;
    will-change: transform;
}

@keyframes editorial-drift {
    0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
    50% { transform: translate3d(0, -10px, 0) rotate(1deg); }
}

.editorial-drift {
    animation: editorial-drift 7s ease-in-out infinite;
    will-change: transform;
}

.editorial-glow {
    background: radial-gradient(circle at 20% 20%, rgba(45, 212, 191, .24), transparent 36%),
        radial-gradient(circle at 80% 0%, rgba(96, 165, 250, .25), transparent 34%),
        linear-gradient(135deg, #e7fff4 0%, #eff9ff 52%, #f8fafc 100%);
}

.editorial-link {
    transition: color .35s ease, transform .35s ease;
}

.editorial-link:hover {
    transform: translateX(4px);
}

.premium-card,
.premium-button {
    transform: translateZ(0);
    will-change: transform;
}

.home-program-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 31rem;
    border: 1px solid rgba(226, 232, 240, .9);
    border-radius: 2rem;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 16px 45px rgba(15, 23, 42, .08), inset 0 1px 0 rgba(255, 255, 255, .9);
    transition: transform .5s ease, box-shadow .5s ease, border-color .5s ease;
}

.home-program-card::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 5px;
    background: var(--program-accent, #2563eb);
}

.home-program-card::after {
    content: '';
    position: absolute;
    width: 13rem;
    height: 13rem;
    right: -5rem;
    top: -5rem;
    border-radius: 999px;
    background: var(--program-wash, rgba(37, 99, 235, .12));
    filter: blur(2px);
    z-index: -1;
}

.home-program-card:hover {
    transform: translateY(-10px);
    border-color: rgba(255, 255, 255, 1);
    box-shadow: 0 28px 60px rgba(15, 23, 42, .14);
}

.home-program-card--featured {
    transform: translateY(-12px);
    box-shadow: 0 24px 60px rgba(37, 99, 235, .16);
}

.home-program-card--featured:hover {
    transform: translateY(-18px);
}

.home-program-card__number {
    font-variant-numeric: tabular-nums;
    letter-spacing: -.08em;
}

.home-program-card__link {
    transition: gap .35s ease, background-color .35s ease, color .35s ease;
}

.home-program-card__link:hover {
    gap: 1rem;
}

@media (max-width: 767px) {
    .home-program-card,
    .home-program-card--featured,
    .home-program-card--featured:hover {
        min-height: 0;
        transform: none;
    }
}

.public-image-float {
    object-fit: contain !important;
    object-position: center;
    animation: editorial-drift 7s ease-in-out infinite !important;
    will-change: transform;
}

.public-image-frame {
    background: linear-gradient(135deg, rgba(226, 232, 240, .72), rgba(255, 255, 255, .92));
}

.public-image-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: #e2e8f0;
}

.public-image-card__backdrop {
    position: absolute;
    inset: -1.5rem;
    z-index: -1;
    background-position: center;
    background-size: cover;
    filter: blur(24px) saturate(.82);
    opacity: .68;
    transform: scale(1.08);
    transition: transform .7s ease, opacity .7s ease;
}

.public-image-card::after {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(15, 23, 42, .02), rgba(15, 23, 42, .14));
    content: '';
    pointer-events: none;
}

.public-image-card > img {
    position: relative;
    z-index: 2;
    display: block;
    object-fit: contain !important;
    object-position: center;
    padding: .5rem;
    filter: drop-shadow(0 12px 18px rgba(15, 23, 42, .2));
    transition: transform .7s cubic-bezier(.22, 1, .36, 1), filter .7s ease;
}

.public-image-card:hover .public-image-card__backdrop {
    opacity: .82;
    transform: scale(1.14);
}

.public-image-card:hover > img {
    filter: drop-shadow(0 18px 24px rgba(15, 23, 42, .28));
    transform: scale(1.035);
}

.public-nav-group > summary {
    list-style: none;
    cursor: pointer;
}

.public-nav-group > summary::-webkit-details-marker {
    display: none;
}

.public-nav-chevron {
    transition: transform .3s ease;
}

.public-nav-group[open] .public-nav-chevron {
    transform: rotate(180deg);
}

.public-nav-panel {
    transform-origin: top;
    animation: nav-panel-in .25s ease-out both;
}

@keyframes nav-panel-in {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.logo-container img {
    aspect-ratio: auto 40 / 40;
}

.scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.scrollbar-hide::-webkit-scrollbar {
    display: none;
}

.nav-link {
    position: relative;
}

.nav-link::after {
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: -4px;
    left: 0;
    background-color: #2563eb;
    transition: width 0.3s ease;
    border-radius: 2px;
}

.nav-link:hover::after {
    width: 100%;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}
