/* Homepage v7.11.0 — animation layer */
.sao-home-js .sao-home-section {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1);
}
.sao-home-js .sao-home-section.is-visible { opacity: 1; transform: none; }
.sao-home-js .sao-home-section.is-visible .sao-home-section-title,
.sao-home-js .sao-home-section.is-visible .sao-home-section-head h2,
.sao-home-js .sao-home-section.is-visible .sao-home-section-head p { animation: saoChildIn .6s cubic-bezier(.22,1,.36,1) backwards; }
.sao-home-js .sao-home-section.is-visible [data-stagger] > * { animation: saoChildIn .65s cubic-bezier(.22,1,.36,1) backwards; animation-delay: calc(.1s * var(--sao-stagger, 0)); }
.sao-home-js .sao-home-timeline-item,
.sao-home-js .sao-home-portal-card,
.sao-home-js .sao-home-stat-card,
.sao-home-js .sao-home-mini-card,
.sao-home-js .sao-home-behind-grid article { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; transition-delay: calc(.05s * var(--sao-stagger, 0)); }
.sao-home-js .sao-home-timeline-item.is-visible,
.sao-home-js .sao-home-portal-card.is-visible,
.sao-home-js .sao-home-stat-card.is-visible,
.sao-home-js .sao-home-mini-card.is-visible,
.sao-home-js .sao-home-behind-grid article.is-visible { opacity: 1; transform: none; }
@keyframes saoKenBurns { 0%{opacity:0;transform:scale(1.02)} 4%{opacity:1} 20%{opacity:1;transform:scale(1.15)} 24%{opacity:0} 100%{opacity:0;transform:scale(1.02)} }
@keyframes saoHeroLineIn { to { opacity:1; transform:translateY(0); } }
@keyframes saoCtaIn { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
@keyframes saoPlumbobFloat { 0%,100% { transform: translateY(-50%) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); } 50% { transform: translateY(calc(-50% - 20px)) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); } }
@keyframes saoPlumbobRotate { to { transform: rotate(360deg); } }
@keyframes saoPlumbobPulse { 0%,100%{opacity:.58; transform:scale(1)} 50%{opacity:1; transform:scale(1.1)} }
@keyframes saoScrollPulse { 0%,100%{opacity:.4} 50%{opacity:1} }
@keyframes saoScrollBounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(6px)} }
@keyframes saoScrollCueIn { from { opacity:0; transform:translateX(-50%) translateY(20px); } to { opacity:1; transform:translateX(-50%) translateY(0); } }
@keyframes saoChildIn { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
@media (max-width: 1100px) {
    .sao-home-timeline-list,
    .sao-home-stats-grid,
    .sao-home-behind-grid,
    .sao-home-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .sao-home-portal-grid { grid-template-columns: 1fr; }
    .sao-home-latest-rail { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .sao-home-recent-layout,
    .sao-home-editorial-card,
    .sao-home-footer-callout,
    .sao-home-section-head-split { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .sao-home-hero-living { min-height: 92svh; padding-top: 9rem; place-items: start; }
    .sao-hero-plumbob-wrapper { top: 5.5rem; right: 1.25rem; width: 160px; opacity: .75; }
    .sao-hero-title { font-size: clamp(2.65rem, 14vw, 4.8rem); }
    .sao-hero-title-line[data-line="2"] { margin-left: 0; }
    .sao-home-timeline-list,
    .sao-home-stats-grid,
    .sao-home-behind-grid,
    .sao-home-footer-grid,
    .sao-home-latest-rail { grid-template-columns: 1fr; }
    .sao-home-section { padding-block: 4rem; }
}
@media (max-width: 480px) {
    .sao-hero-ctas { flex-direction: column; align-items: stretch; }
    .sao-button-xl { width: 100%; justify-content: center; }
    .sao-home-newsletter { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .sao-hero-bg-images img { animation: none !important; opacity: 1; transform: none; }
    .sao-hero-bg-images img:not(:first-child) { display: none; }
    .sao-hero-plumbob,
    .sao-hero-plumbob-wrapper,
    .sao-hero-plumbob-glow { animation: none !important; }
    .sao-hero-title-line,
    .sao-hero-subtitle,
    .sao-home-js .sao-home-section,
    .sao-home-js .sao-home-timeline-item,
    .sao-home-js .sao-home-portal-card,
    .sao-home-js .sao-home-stat-card,
    .sao-home-js .sao-home-mini-card,
    .sao-home-js .sao-home-behind-grid article { opacity: 1; transform: none; }
}
