.editorial-shadow { box-shadow: 0 10px 40px rgba(0,0,0,0.06); }

/* ===== HERO ===== */
.carousel-slide { transition: opacity 1.2s ease-in-out; opacity: 0; position: absolute; inset: 0; }
.carousel-slide.active { opacity: 1; z-index: 10; }

@keyframes ken-burns { from { transform:scale(1); } to { transform:scale(1.08); } }
.carousel-slide.active .slide-zoom { animation: ken-burns 8s ease-out forwards; }
.slide-zoom { transform:scale(1); }

.carousel-slide.active .slide-badge    { animation: hero-in 0.6s ease forwards 0.1s; }
.carousel-slide.active .slide-headline { animation: hero-in 0.7s cubic-bezier(0.22,1,0.36,1) forwards 0.25s; }
.carousel-slide.active .slide-sub      { animation: hero-in 0.7s ease forwards 0.45s; }
.carousel-slide.active .slide-btn      { animation: hero-in 0.6s ease forwards 0.6s; }
@keyframes hero-in { to { opacity:1; transform:none; } }

@keyframes scroll-drop {
    0%   { height:0;    top:0;    opacity:1; }
    60%  { height:100%; top:0;    opacity:1; }
    100% { height:0;    top:100%; opacity:0; }
}
.scroll-line { animation: scroll-drop 1.8s ease-in-out infinite; }

#hero-progress { transition: width linear; }

.value-hotspot:hover .value-tooltip {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) translateX(-50%) !important;
}
.value-tooltip {
    transform: translateY(4px) translateX(-50%);
    transition: opacity .2s, transform .2s, visibility .2s;
}

/* ===== PURPOSE ===== */
@keyframes pulse-slow {
    0%, 100% { opacity: 0.6; transform: scale(1); }
    50%       { opacity: 1;   transform: scale(1.08); }
}
.animate-pulse-slow { animation: pulse-slow 6s ease-in-out infinite; }

.mission-item, .vision-item { transition: opacity 0.5s ease, transform 0.5s ease; }
.mission-item.visible, .vision-item.visible { opacity: 1 !important; transform: translateX(0) !important; }
.mission-bar.expanded { width: 100% !important; }
.vision-bar.expanded  { width: 100% !important; }

/* ===== CORE VALUES ===== */
@keyframes leaf-fall {
    0%   { transform: translateY(-40px) rotate(0deg);   opacity: 0; }
    10%  { opacity: 0.7; }
    90%  { opacity: 0.4; }
    100% { transform: translateY(110vh) rotate(720deg); opacity: 0; }
}
.leaf-particle {
    position: absolute;
    top: -40px;
    font-size: 18px;
    animation: leaf-fall linear infinite;
    pointer-events: none;
    user-select: none;
}

.cv-header.visible, .cv-grid.visible, .cv-tree.visible { opacity: 1 !important; transform: none !important; }
.value-badge.visible {
    opacity: 1 !important;
    transform: scale(1) !important;
    transition: opacity 0.4s ease, transform 0.4s ease, background-color 0.3s, box-shadow 0.3s, translate 0.3s;
}

@keyframes draw-trunk  { to { stroke-dashoffset: 0; } }
@keyframes draw-branch { to { stroke-dashoffset: 0; } }
.tree-path-trunk.draw        { animation: draw-trunk  1.2s ease forwards; }
.tree-path-trunk-light.draw  { animation: draw-trunk  1.2s ease forwards; }
.tree-path-branch.draw-1     { animation: draw-branch 0.8s ease 1.1s forwards; }
.tree-path-branch.draw-2     { animation: draw-branch 0.8s ease 1.3s forwards; }
.tree-path-branch.draw-3     { animation: draw-branch 0.8s ease 1.5s forwards; }

#canopy { will-change: transform, opacity; }

@keyframes tree-sway {
    0%,100% { transform: rotate(0deg);   }
    25%      { transform: rotate(1.5deg); }
    75%      { transform: rotate(-1.5deg); }
}
#tree-svg.sway { animation: tree-sway 6s ease-in-out infinite; transform-origin: 250px 500px; }

/* ===== ACCREDITATIONS ===== */
.accred-card {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s ease, transform 0.6s ease, background-color 0.4s, border-color 0.4s, box-shadow 0.4s, translate 0.3s;
}
.accred-card.visible { opacity: 1; transform: translateY(0); }

/* ===== DIRECTOR ===== */
.dir-photo.visible, .dir-text.visible { opacity:1 !important; transform:none !important; }
.dir-label.visible, .dir-quote.visible, .dir-para.visible, .dir-sig.visible { opacity:1 !important; transform:none !important; }
.dir-sig-line.expanded { width:6rem !important; }

@keyframes dir-glow-pulse {
    0%,100% { opacity:0.5; transform:scale(1); }
    50%      { opacity:1;   transform:scale(1.15); }
}
.dir-photo.visible .dir-glow { animation: dir-glow-pulse 4s ease-in-out infinite; }

@keyframes spin-border { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
.dir-spin-border { animation: spin-border 12s linear infinite; }

/* ===== CTA ===== */
@keyframes cta-bg-shift {
    0%,100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}
.cta-bg {
    background: linear-gradient(135deg, rgba(0,90,156,0.06), rgba(177,12,25,0.05), rgba(0,90,156,0.08));
    background-size: 300% 300%;
    animation: cta-bg-shift 8s ease-in-out infinite;
}
@keyframes blob-drift-1 {
    0%,100% { transform:translate(0,0) scale(1); }
    50%      { transform:translate(-40px,30px) scale(1.1); }
}
@keyframes blob-drift-2 {
    0%,100% { transform:translate(0,0) scale(1); }
    50%      { transform:translate(40px,-30px) scale(1.1); }
}
.cta-blob-1 { animation: blob-drift-1 10s ease-in-out infinite; }
.cta-blob-2 { animation: blob-drift-2 12s ease-in-out infinite; }

@keyframes particle-float {
    0%,100% { transform:translateY(0) scale(1);       opacity:0.4; }
    50%      { transform:translateY(-18px) scale(1.3); opacity:0.9; }
}
.cta-particle {
    position:absolute; font-size:12px; color:#005a9c;
    opacity:0.4; animation: particle-float 4s ease-in-out infinite; pointer-events:none;
}

.cta-shimmer {
    position:absolute; inset:0;
    background:linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.35) 50%, transparent 60%);
    transform:translateX(-100%); transition:none;
}
.cta-btn-primary:hover .cta-shimmer { animation: shimmer-sweep 0.6s ease forwards; }
@keyframes shimmer-sweep { from { transform:translateX(-100%); } to { transform:translateX(100%); } }
.cta-item.visible { opacity:1 !important; transform:none !important; }

/* ===== TEAM ===== */
.team-header.visible { opacity:1 !important; transform:none !important; }
.team-card.visible   { opacity:1 !important; transform:none !important; }

/* ===== EDUCATORS CAROUSEL ===== */
.edu-header.visible { opacity:1 !important; transform:none !important; }
.edu-dot {
    width: 8px; height: 8px; border-radius: 9999px;
    background: #c1c7d3; transition: width 0.3s ease, background-color 0.3s ease; cursor: pointer;
}
.edu-dot.active { width: 24px; background: #005a9c; }

/* ===== HIGH ACHIEVERS ===== */
.ach-header.visible { opacity:1 !important; transform:none !important; }
.ach-card.visible   { opacity:1 !important; transform:none !important; }

@keyframes ring-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.ach-ring-spin { animation: ring-spin 12s linear infinite; transform-origin: center; }
