:root { --motion-ease: cubic-bezier(.22, 1, .36, 1); }
@keyframes reveal-content { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes reveal-photo { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes reveal-detail { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.reveal-pending { opacity: 0; }
.is-revealed { animation: reveal-content .7s var(--motion-ease) var(--entry-delay, 0ms) backwards; }
.reveal-photo.is-revealed { animation-name: reveal-photo; animation-duration: .85s; }
.quick-help .help-option.is-revealed .help-option-link { animation: reveal-content .7s var(--motion-ease) var(--entry-delay, 0ms) backwards; }
.btn, .header-cta { transition: transform .25s var(--motion-ease), box-shadow .25s ease, background-color .25s ease; }
.text-link { transition: color .25s ease, border-color .25s ease; text-underline-offset: 5px; }
.main-nav a { position: relative; }
.main-nav a::after { content: ""; position: absolute; bottom: 0; left: 10px; right: 10px; height: 2px; background: var(--green); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--motion-ease); }
.main-nav a[aria-current="page"]::after { display: none; }
.portfolio-icon, .admission-art { transition: transform .35s var(--motion-ease); }
.about-profile-photo { transition: box-shadow .3s ease, border-color .3s ease; }
.gallery-open { transition: box-shadow .3s ease, outline-color .3s ease; outline: 2px solid transparent; outline-offset: -2px; }
.portfolio-team-grid article, .portfolio-steps li, .portfolio-dimensions article { transition: border-color .3s ease; }
.faq-list summary { transition: color .25s ease; }
.gallery-dialog[open] { animation: reveal-content .25s var(--motion-ease); }
.btn:focus-visible, .header-cta:focus-visible { box-shadow: 0 0 0 5px #d5a63824; }
.text-link:focus-visible { color: #9b6c12; }
.main-nav a:focus-visible::after { transform: scaleX(1); }
.hero-slide.is-active .hero-copy { animation: none; }
.hero-slide.is-active .hero-copy > * { animation: reveal-content .65s var(--motion-ease) backwards; }
.hero-slide.is-active .hero-copy > :nth-child(2) { animation-delay: 70ms; }
.hero-slide.is-active .hero-copy > :nth-child(3) { animation-delay: 140ms; }
.hero-slide.is-active .hero-copy > :nth-child(4) { animation-delay: 210ms; }
.hero-actions { animation: reveal-detail .6s var(--motion-ease) .25s backwards; }
.journey-panel:not([hidden]), .admission-detail[open] > p, .faq-list details[open] > p,
.events-carousel figure.is-current figcaption { animation: reveal-detail .35s var(--motion-ease) backwards; }
.admission-detail summary, .journey-tabs button, .facility-filters button,
.event-navigation button, .gallery-toolbar button, .slider-arrow { transition: background-color .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s var(--motion-ease); }
.admission-detail .portfolio-number { transition: background-color .25s ease, color .25s ease; }
.admission-detail[open] .portfolio-number { background: var(--brand-lagoon); color: #fff; }
.gallery-open:focus-visible { outline-color: var(--brand-lagoon); }
.footer-grid a { text-underline-offset: 5px; transition: color .25s ease, text-decoration-color .25s ease; }
.footer-grid a:hover, .footer-grid a:focus-visible { text-decoration: underline; }
.contact-form label { transition: color .25s ease; }
.contact-form label:focus-within { color: var(--brand-lagoon); }
@media (hover: hover) and (pointer: fine) {
    .main-nav a:hover::after, .main-nav a:focus-visible::after { transform: scaleX(1); }
    .about-profile-photo:hover { border-color: #8caf9d; box-shadow: 0 20px 40px #214d3620; }
    .portfolio-team-grid article:hover, .portfolio-steps li:hover, .portfolio-dimensions article:hover { border-color: var(--green); }
    .faq-list summary:hover { color: var(--green); }
    .text-link:hover { border-color: #9b6c12; }
    .gallery-open:hover { outline-color: var(--brand-lagoon); box-shadow: 0 8px 24px #193e471c; }
    .admission-detail summary:hover .portfolio-number { background: var(--brand-lagoon); color: #fff; }
    .contact-form input:hover, .contact-form select:hover, .contact-form textarea:hover { border-color: var(--brand-lagoon); }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    .btn:hover, .header-cta:hover { transform: translateY(-3px); box-shadow: 0 8px 18px #17312c1f; }
    .btn:active, .header-cta:active { transform: translateY(-1px); }
    .portfolio-service:hover .portfolio-icon, .admission-cards li:hover .admission-art { transform: translateY(-2px) scale(1.05); }
    .event-navigation button:hover, .gallery-toolbar button:hover, .slider-arrow:hover { transform: translateY(-2px); }
    .event-navigation button:active, .gallery-toolbar button:active, .slider-arrow:active { transform: none; }
    .quick-help article.help-option:hover { transform: translateY(-5px); }
    .help-option:hover .help-icon { transform: scale(1.05); }
}
@media (prefers-reduced-motion: reduce) {
    .reveal-pending { opacity: 1; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .btn, .header-cta, .feature-card, .service-card, .timeline article, .gallery-grid figure, .gallery-open img, .portfolio-service, .admission-cards li, .spaces-collage-frame, .portfolio-icon, .admission-art, .event-navigation button, .gallery-toolbar button, .slider-arrow { transform: none !important; }
}
@media print { .reveal-pending { opacity: 1; } }
