/**
 * Ap Astra — motion pass (Phase 3.2).
 *
 * Everything here is PORTED from the demo (https://ap-astra.myshopify.com/), not designed:
 *   §1  the demo's AOS stylesheet   ← theme-extractor/extracted/astra-aos.css (239 rules, verbatim)
 *   §2  the theme's [reveal] start states   ← ap-theme.css
 *   §3  the slider-arrow and underline hover keyframes   ← ap-theme.css
 * Driven by assets/js/sections/00-motion.js (AOS + the theme's reveal custom elements).
 *
 * The one deliberate change — the `js` gate:
 *   The demo ships <html class="no-js"> and swaps it for "js" in <head>, so its start states only
 *   hide content when JavaScript runs. This theme's <html> carries no class, so every rule that
 *   HIDES something (or blocks pointer events) is prefixed with `html.js`, and 00-motion.js adds
 *   `js` to <html> before it reveals anything. JavaScript off, or the script not loaded yet →
 *   nothing is hidden. The demo's own `html:not(.no-js)` / `.no-js` selectors are kept as written.
 *
 * Reduced motion: the demo's CSS has no prefers-reduced-motion rule for any of this (its only
 * `reduce` blocks are Bootstrap's, for components this page doesn't use). Its policy lives in JS
 * (MediaFeatures.prefersReducedMotion) and is ported in 00-motion.js; AOS itself ignores it.
 *
 * Already ported by the band builders, in their own partials (not repeated here):
 *   loop-anim-left/right (bands 16/17, 25s from .textscroll-item), playButtonRipple + spinnerRotate
 *   (band 14), the hero slide/text transitions (band 01).
 *
 * @package uttaco
 */

/* ═══ §1 AOS (demo: vendor.js + inline <style>) ════════════════════════════════════════════ */
[data-aos][data-aos][data-aos-duration="50"], body[data-aos-duration="50"] [data-aos] { transition-duration: 50ms; }
[data-aos][data-aos][data-aos-delay="50"], body[data-aos-delay="50"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="50"].aos-animate, body[data-aos-delay="50"] [data-aos].aos-animate { transition-delay: 50ms; }
[data-aos][data-aos][data-aos-duration="100"], body[data-aos-duration="100"] [data-aos] { transition-duration: 0.1s; }
[data-aos][data-aos][data-aos-delay="100"], body[data-aos-delay="100"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="100"].aos-animate, body[data-aos-delay="100"] [data-aos].aos-animate { transition-delay: 0.1s; }
[data-aos][data-aos][data-aos-duration="150"], body[data-aos-duration="150"] [data-aos] { transition-duration: 0.15s; }
[data-aos][data-aos][data-aos-delay="150"], body[data-aos-delay="150"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="150"].aos-animate, body[data-aos-delay="150"] [data-aos].aos-animate { transition-delay: 0.15s; }
[data-aos][data-aos][data-aos-duration="200"], body[data-aos-duration="200"] [data-aos] { transition-duration: 0.2s; }
[data-aos][data-aos][data-aos-delay="200"], body[data-aos-delay="200"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="200"].aos-animate, body[data-aos-delay="200"] [data-aos].aos-animate { transition-delay: 0.2s; }
[data-aos][data-aos][data-aos-duration="250"], body[data-aos-duration="250"] [data-aos] { transition-duration: 0.25s; }
[data-aos][data-aos][data-aos-delay="250"], body[data-aos-delay="250"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="250"].aos-animate, body[data-aos-delay="250"] [data-aos].aos-animate { transition-delay: 0.25s; }
[data-aos][data-aos][data-aos-duration="300"], body[data-aos-duration="300"] [data-aos] { transition-duration: 0.3s; }
[data-aos][data-aos][data-aos-delay="300"], body[data-aos-delay="300"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="300"].aos-animate, body[data-aos-delay="300"] [data-aos].aos-animate { transition-delay: 0.3s; }
[data-aos][data-aos][data-aos-duration="350"], body[data-aos-duration="350"] [data-aos] { transition-duration: 0.35s; }
[data-aos][data-aos][data-aos-delay="350"], body[data-aos-delay="350"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="350"].aos-animate, body[data-aos-delay="350"] [data-aos].aos-animate { transition-delay: 0.35s; }
[data-aos][data-aos][data-aos-duration="400"], body[data-aos-duration="400"] [data-aos] { transition-duration: 0.4s; }
[data-aos][data-aos][data-aos-delay="400"], body[data-aos-delay="400"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="400"].aos-animate, body[data-aos-delay="400"] [data-aos].aos-animate { transition-delay: 0.4s; }
[data-aos][data-aos][data-aos-duration="450"], body[data-aos-duration="450"] [data-aos] { transition-duration: 0.45s; }
[data-aos][data-aos][data-aos-delay="450"], body[data-aos-delay="450"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="450"].aos-animate, body[data-aos-delay="450"] [data-aos].aos-animate { transition-delay: 0.45s; }
[data-aos][data-aos][data-aos-duration="500"], body[data-aos-duration="500"] [data-aos] { transition-duration: 0.5s; }
[data-aos][data-aos][data-aos-delay="500"], body[data-aos-delay="500"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="500"].aos-animate, body[data-aos-delay="500"] [data-aos].aos-animate { transition-delay: 0.5s; }
[data-aos][data-aos][data-aos-duration="550"], body[data-aos-duration="550"] [data-aos] { transition-duration: 0.55s; }
[data-aos][data-aos][data-aos-delay="550"], body[data-aos-delay="550"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="550"].aos-animate, body[data-aos-delay="550"] [data-aos].aos-animate { transition-delay: 0.55s; }
[data-aos][data-aos][data-aos-duration="600"], body[data-aos-duration="600"] [data-aos] { transition-duration: 0.6s; }
[data-aos][data-aos][data-aos-delay="600"], body[data-aos-delay="600"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="600"].aos-animate, body[data-aos-delay="600"] [data-aos].aos-animate { transition-delay: 0.6s; }
[data-aos][data-aos][data-aos-duration="650"], body[data-aos-duration="650"] [data-aos] { transition-duration: 0.65s; }
[data-aos][data-aos][data-aos-delay="650"], body[data-aos-delay="650"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="650"].aos-animate, body[data-aos-delay="650"] [data-aos].aos-animate { transition-delay: 0.65s; }
[data-aos][data-aos][data-aos-duration="700"], body[data-aos-duration="700"] [data-aos] { transition-duration: 0.7s; }
[data-aos][data-aos][data-aos-delay="700"], body[data-aos-delay="700"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="700"].aos-animate, body[data-aos-delay="700"] [data-aos].aos-animate { transition-delay: 0.7s; }
[data-aos][data-aos][data-aos-duration="750"], body[data-aos-duration="750"] [data-aos] { transition-duration: 0.75s; }
[data-aos][data-aos][data-aos-delay="750"], body[data-aos-delay="750"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="750"].aos-animate, body[data-aos-delay="750"] [data-aos].aos-animate { transition-delay: 0.75s; }
[data-aos][data-aos][data-aos-duration="800"], body[data-aos-duration="800"] [data-aos] { transition-duration: 0.8s; }
[data-aos][data-aos][data-aos-delay="800"], body[data-aos-delay="800"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="800"].aos-animate, body[data-aos-delay="800"] [data-aos].aos-animate { transition-delay: 0.8s; }
[data-aos][data-aos][data-aos-duration="850"], body[data-aos-duration="850"] [data-aos] { transition-duration: 0.85s; }
[data-aos][data-aos][data-aos-delay="850"], body[data-aos-delay="850"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="850"].aos-animate, body[data-aos-delay="850"] [data-aos].aos-animate { transition-delay: 0.85s; }
[data-aos][data-aos][data-aos-duration="900"], body[data-aos-duration="900"] [data-aos] { transition-duration: 0.9s; }
[data-aos][data-aos][data-aos-delay="900"], body[data-aos-delay="900"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="900"].aos-animate, body[data-aos-delay="900"] [data-aos].aos-animate { transition-delay: 0.9s; }
[data-aos][data-aos][data-aos-duration="950"], body[data-aos-duration="950"] [data-aos] { transition-duration: 0.95s; }
[data-aos][data-aos][data-aos-delay="950"], body[data-aos-delay="950"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="950"].aos-animate, body[data-aos-delay="950"] [data-aos].aos-animate { transition-delay: 0.95s; }
[data-aos][data-aos][data-aos-duration="1000"], body[data-aos-duration="1000"] [data-aos] { transition-duration: 1s; }
[data-aos][data-aos][data-aos-delay="1000"], body[data-aos-delay="1000"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1000"].aos-animate, body[data-aos-delay="1000"] [data-aos].aos-animate { transition-delay: 1s; }
[data-aos][data-aos][data-aos-duration="1050"], body[data-aos-duration="1050"] [data-aos] { transition-duration: 1.05s; }
[data-aos][data-aos][data-aos-delay="1050"], body[data-aos-delay="1050"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1050"].aos-animate, body[data-aos-delay="1050"] [data-aos].aos-animate { transition-delay: 1.05s; }
[data-aos][data-aos][data-aos-duration="1100"], body[data-aos-duration="1100"] [data-aos] { transition-duration: 1.1s; }
[data-aos][data-aos][data-aos-delay="1100"], body[data-aos-delay="1100"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1100"].aos-animate, body[data-aos-delay="1100"] [data-aos].aos-animate { transition-delay: 1.1s; }
[data-aos][data-aos][data-aos-duration="1150"], body[data-aos-duration="1150"] [data-aos] { transition-duration: 1.15s; }
[data-aos][data-aos][data-aos-delay="1150"], body[data-aos-delay="1150"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1150"].aos-animate, body[data-aos-delay="1150"] [data-aos].aos-animate { transition-delay: 1.15s; }
[data-aos][data-aos][data-aos-duration="1200"], body[data-aos-duration="1200"] [data-aos] { transition-duration: 1.2s; }
[data-aos][data-aos][data-aos-delay="1200"], body[data-aos-delay="1200"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1200"].aos-animate, body[data-aos-delay="1200"] [data-aos].aos-animate { transition-delay: 1.2s; }
[data-aos][data-aos][data-aos-duration="1250"], body[data-aos-duration="1250"] [data-aos] { transition-duration: 1.25s; }
[data-aos][data-aos][data-aos-delay="1250"], body[data-aos-delay="1250"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1250"].aos-animate, body[data-aos-delay="1250"] [data-aos].aos-animate { transition-delay: 1.25s; }
[data-aos][data-aos][data-aos-duration="1300"], body[data-aos-duration="1300"] [data-aos] { transition-duration: 1.3s; }
[data-aos][data-aos][data-aos-delay="1300"], body[data-aos-delay="1300"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1300"].aos-animate, body[data-aos-delay="1300"] [data-aos].aos-animate { transition-delay: 1.3s; }
[data-aos][data-aos][data-aos-duration="1350"], body[data-aos-duration="1350"] [data-aos] { transition-duration: 1.35s; }
[data-aos][data-aos][data-aos-delay="1350"], body[data-aos-delay="1350"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1350"].aos-animate, body[data-aos-delay="1350"] [data-aos].aos-animate { transition-delay: 1.35s; }
[data-aos][data-aos][data-aos-duration="1400"], body[data-aos-duration="1400"] [data-aos] { transition-duration: 1.4s; }
[data-aos][data-aos][data-aos-delay="1400"], body[data-aos-delay="1400"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1400"].aos-animate, body[data-aos-delay="1400"] [data-aos].aos-animate { transition-delay: 1.4s; }
[data-aos][data-aos][data-aos-duration="1450"], body[data-aos-duration="1450"] [data-aos] { transition-duration: 1.45s; }
[data-aos][data-aos][data-aos-delay="1450"], body[data-aos-delay="1450"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1450"].aos-animate, body[data-aos-delay="1450"] [data-aos].aos-animate { transition-delay: 1.45s; }
[data-aos][data-aos][data-aos-duration="1500"], body[data-aos-duration="1500"] [data-aos] { transition-duration: 1.5s; }
[data-aos][data-aos][data-aos-delay="1500"], body[data-aos-delay="1500"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1500"].aos-animate, body[data-aos-delay="1500"] [data-aos].aos-animate { transition-delay: 1.5s; }
[data-aos][data-aos][data-aos-duration="1550"], body[data-aos-duration="1550"] [data-aos] { transition-duration: 1.55s; }
[data-aos][data-aos][data-aos-delay="1550"], body[data-aos-delay="1550"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1550"].aos-animate, body[data-aos-delay="1550"] [data-aos].aos-animate { transition-delay: 1.55s; }
[data-aos][data-aos][data-aos-duration="1600"], body[data-aos-duration="1600"] [data-aos] { transition-duration: 1.6s; }
[data-aos][data-aos][data-aos-delay="1600"], body[data-aos-delay="1600"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1600"].aos-animate, body[data-aos-delay="1600"] [data-aos].aos-animate { transition-delay: 1.6s; }
[data-aos][data-aos][data-aos-duration="1650"], body[data-aos-duration="1650"] [data-aos] { transition-duration: 1.65s; }
[data-aos][data-aos][data-aos-delay="1650"], body[data-aos-delay="1650"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1650"].aos-animate, body[data-aos-delay="1650"] [data-aos].aos-animate { transition-delay: 1.65s; }
[data-aos][data-aos][data-aos-duration="1700"], body[data-aos-duration="1700"] [data-aos] { transition-duration: 1.7s; }
[data-aos][data-aos][data-aos-delay="1700"], body[data-aos-delay="1700"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1700"].aos-animate, body[data-aos-delay="1700"] [data-aos].aos-animate { transition-delay: 1.7s; }
[data-aos][data-aos][data-aos-duration="1750"], body[data-aos-duration="1750"] [data-aos] { transition-duration: 1.75s; }
[data-aos][data-aos][data-aos-delay="1750"], body[data-aos-delay="1750"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1750"].aos-animate, body[data-aos-delay="1750"] [data-aos].aos-animate { transition-delay: 1.75s; }
[data-aos][data-aos][data-aos-duration="1800"], body[data-aos-duration="1800"] [data-aos] { transition-duration: 1.8s; }
[data-aos][data-aos][data-aos-delay="1800"], body[data-aos-delay="1800"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1800"].aos-animate, body[data-aos-delay="1800"] [data-aos].aos-animate { transition-delay: 1.8s; }
[data-aos][data-aos][data-aos-duration="1850"], body[data-aos-duration="1850"] [data-aos] { transition-duration: 1.85s; }
[data-aos][data-aos][data-aos-delay="1850"], body[data-aos-delay="1850"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1850"].aos-animate, body[data-aos-delay="1850"] [data-aos].aos-animate { transition-delay: 1.85s; }
[data-aos][data-aos][data-aos-duration="1900"], body[data-aos-duration="1900"] [data-aos] { transition-duration: 1.9s; }
[data-aos][data-aos][data-aos-delay="1900"], body[data-aos-delay="1900"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1900"].aos-animate, body[data-aos-delay="1900"] [data-aos].aos-animate { transition-delay: 1.9s; }
[data-aos][data-aos][data-aos-duration="1950"], body[data-aos-duration="1950"] [data-aos] { transition-duration: 1.95s; }
[data-aos][data-aos][data-aos-delay="1950"], body[data-aos-delay="1950"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="1950"].aos-animate, body[data-aos-delay="1950"] [data-aos].aos-animate { transition-delay: 1.95s; }
[data-aos][data-aos][data-aos-duration="2000"], body[data-aos-duration="2000"] [data-aos] { transition-duration: 2s; }
[data-aos][data-aos][data-aos-delay="2000"], body[data-aos-delay="2000"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2000"].aos-animate, body[data-aos-delay="2000"] [data-aos].aos-animate { transition-delay: 2s; }
[data-aos][data-aos][data-aos-duration="2050"], body[data-aos-duration="2050"] [data-aos] { transition-duration: 2.05s; }
[data-aos][data-aos][data-aos-delay="2050"], body[data-aos-delay="2050"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2050"].aos-animate, body[data-aos-delay="2050"] [data-aos].aos-animate { transition-delay: 2.05s; }
[data-aos][data-aos][data-aos-duration="2100"], body[data-aos-duration="2100"] [data-aos] { transition-duration: 2.1s; }
[data-aos][data-aos][data-aos-delay="2100"], body[data-aos-delay="2100"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2100"].aos-animate, body[data-aos-delay="2100"] [data-aos].aos-animate { transition-delay: 2.1s; }
[data-aos][data-aos][data-aos-duration="2150"], body[data-aos-duration="2150"] [data-aos] { transition-duration: 2.15s; }
[data-aos][data-aos][data-aos-delay="2150"], body[data-aos-delay="2150"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2150"].aos-animate, body[data-aos-delay="2150"] [data-aos].aos-animate { transition-delay: 2.15s; }
[data-aos][data-aos][data-aos-duration="2200"], body[data-aos-duration="2200"] [data-aos] { transition-duration: 2.2s; }
[data-aos][data-aos][data-aos-delay="2200"], body[data-aos-delay="2200"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2200"].aos-animate, body[data-aos-delay="2200"] [data-aos].aos-animate { transition-delay: 2.2s; }
[data-aos][data-aos][data-aos-duration="2250"], body[data-aos-duration="2250"] [data-aos] { transition-duration: 2.25s; }
[data-aos][data-aos][data-aos-delay="2250"], body[data-aos-delay="2250"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2250"].aos-animate, body[data-aos-delay="2250"] [data-aos].aos-animate { transition-delay: 2.25s; }
[data-aos][data-aos][data-aos-duration="2300"], body[data-aos-duration="2300"] [data-aos] { transition-duration: 2.3s; }
[data-aos][data-aos][data-aos-delay="2300"], body[data-aos-delay="2300"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2300"].aos-animate, body[data-aos-delay="2300"] [data-aos].aos-animate { transition-delay: 2.3s; }
[data-aos][data-aos][data-aos-duration="2350"], body[data-aos-duration="2350"] [data-aos] { transition-duration: 2.35s; }
[data-aos][data-aos][data-aos-delay="2350"], body[data-aos-delay="2350"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2350"].aos-animate, body[data-aos-delay="2350"] [data-aos].aos-animate { transition-delay: 2.35s; }
[data-aos][data-aos][data-aos-duration="2400"], body[data-aos-duration="2400"] [data-aos] { transition-duration: 2.4s; }
[data-aos][data-aos][data-aos-delay="2400"], body[data-aos-delay="2400"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2400"].aos-animate, body[data-aos-delay="2400"] [data-aos].aos-animate { transition-delay: 2.4s; }
[data-aos][data-aos][data-aos-duration="2450"], body[data-aos-duration="2450"] [data-aos] { transition-duration: 2.45s; }
[data-aos][data-aos][data-aos-delay="2450"], body[data-aos-delay="2450"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2450"].aos-animate, body[data-aos-delay="2450"] [data-aos].aos-animate { transition-delay: 2.45s; }
[data-aos][data-aos][data-aos-duration="2500"], body[data-aos-duration="2500"] [data-aos] { transition-duration: 2.5s; }
[data-aos][data-aos][data-aos-delay="2500"], body[data-aos-delay="2500"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2500"].aos-animate, body[data-aos-delay="2500"] [data-aos].aos-animate { transition-delay: 2.5s; }
[data-aos][data-aos][data-aos-duration="2550"], body[data-aos-duration="2550"] [data-aos] { transition-duration: 2.55s; }
[data-aos][data-aos][data-aos-delay="2550"], body[data-aos-delay="2550"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2550"].aos-animate, body[data-aos-delay="2550"] [data-aos].aos-animate { transition-delay: 2.55s; }
[data-aos][data-aos][data-aos-duration="2600"], body[data-aos-duration="2600"] [data-aos] { transition-duration: 2.6s; }
[data-aos][data-aos][data-aos-delay="2600"], body[data-aos-delay="2600"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2600"].aos-animate, body[data-aos-delay="2600"] [data-aos].aos-animate { transition-delay: 2.6s; }
[data-aos][data-aos][data-aos-duration="2650"], body[data-aos-duration="2650"] [data-aos] { transition-duration: 2.65s; }
[data-aos][data-aos][data-aos-delay="2650"], body[data-aos-delay="2650"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2650"].aos-animate, body[data-aos-delay="2650"] [data-aos].aos-animate { transition-delay: 2.65s; }
[data-aos][data-aos][data-aos-duration="2700"], body[data-aos-duration="2700"] [data-aos] { transition-duration: 2.7s; }
[data-aos][data-aos][data-aos-delay="2700"], body[data-aos-delay="2700"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2700"].aos-animate, body[data-aos-delay="2700"] [data-aos].aos-animate { transition-delay: 2.7s; }
[data-aos][data-aos][data-aos-duration="2750"], body[data-aos-duration="2750"] [data-aos] { transition-duration: 2.75s; }
[data-aos][data-aos][data-aos-delay="2750"], body[data-aos-delay="2750"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2750"].aos-animate, body[data-aos-delay="2750"] [data-aos].aos-animate { transition-delay: 2.75s; }
[data-aos][data-aos][data-aos-duration="2800"], body[data-aos-duration="2800"] [data-aos] { transition-duration: 2.8s; }
[data-aos][data-aos][data-aos-delay="2800"], body[data-aos-delay="2800"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2800"].aos-animate, body[data-aos-delay="2800"] [data-aos].aos-animate { transition-delay: 2.8s; }
[data-aos][data-aos][data-aos-duration="2850"], body[data-aos-duration="2850"] [data-aos] { transition-duration: 2.85s; }
[data-aos][data-aos][data-aos-delay="2850"], body[data-aos-delay="2850"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2850"].aos-animate, body[data-aos-delay="2850"] [data-aos].aos-animate { transition-delay: 2.85s; }
[data-aos][data-aos][data-aos-duration="2900"], body[data-aos-duration="2900"] [data-aos] { transition-duration: 2.9s; }
[data-aos][data-aos][data-aos-delay="2900"], body[data-aos-delay="2900"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2900"].aos-animate, body[data-aos-delay="2900"] [data-aos].aos-animate { transition-delay: 2.9s; }
[data-aos][data-aos][data-aos-duration="2950"], body[data-aos-duration="2950"] [data-aos] { transition-duration: 2.95s; }
[data-aos][data-aos][data-aos-delay="2950"], body[data-aos-delay="2950"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="2950"].aos-animate, body[data-aos-delay="2950"] [data-aos].aos-animate { transition-delay: 2.95s; }
[data-aos][data-aos][data-aos-duration="3000"], body[data-aos-duration="3000"] [data-aos] { transition-duration: 3s; }
[data-aos][data-aos][data-aos-delay="3000"], body[data-aos-delay="3000"] [data-aos] { transition-delay: 0s; }
[data-aos][data-aos][data-aos-delay="3000"].aos-animate, body[data-aos-delay="3000"] [data-aos].aos-animate { transition-delay: 3s; }
html.js [data-aos] { pointer-events: none; }
html.js [data-aos].aos-animate { pointer-events: auto; }
[data-aos][data-aos][data-aos-easing="linear"], body[data-aos-easing="linear"] [data-aos] { transition-timing-function: cubic-bezier(0.25, 0.25, 0.75, 0.75); }
[data-aos][data-aos][data-aos-easing="ease"], body[data-aos-easing="ease"] [data-aos] { transition-timing-function: ease; }
[data-aos][data-aos][data-aos-easing="ease-in"], body[data-aos-easing="ease-in"] [data-aos] { transition-timing-function: ease-in; }
[data-aos][data-aos][data-aos-easing="ease-out"], body[data-aos-easing="ease-out"] [data-aos] { transition-timing-function: ease-out; }
[data-aos][data-aos][data-aos-easing="ease-in-out"], body[data-aos-easing="ease-in-out"] [data-aos] { transition-timing-function: ease-in-out; }
[data-aos][data-aos][data-aos-easing="ease-in-back"], body[data-aos-easing="ease-in-back"] [data-aos] { transition-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045); }
[data-aos][data-aos][data-aos-easing="ease-out-back"], body[data-aos-easing="ease-out-back"] [data-aos] { transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275); }
[data-aos][data-aos][data-aos-easing="ease-in-out-back"], body[data-aos-easing="ease-in-out-back"] [data-aos] { transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55); }
[data-aos][data-aos][data-aos-easing="ease-in-sine"], body[data-aos-easing="ease-in-sine"] [data-aos] { transition-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715); }
[data-aos][data-aos][data-aos-easing="ease-out-sine"], body[data-aos-easing="ease-out-sine"] [data-aos] { transition-timing-function: cubic-bezier(0.39, 0.575, 0.565, 1); }
[data-aos][data-aos][data-aos-easing="ease-in-out-sine"], body[data-aos-easing="ease-in-out-sine"] [data-aos] { transition-timing-function: cubic-bezier(0.445, 0.05, 0.55, 0.95); }
[data-aos][data-aos][data-aos-easing="ease-in-quad"], body[data-aos-easing="ease-in-quad"] [data-aos] { transition-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); }
[data-aos][data-aos][data-aos-easing="ease-out-quad"], body[data-aos-easing="ease-out-quad"] [data-aos] { transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); }
[data-aos][data-aos][data-aos-easing="ease-in-out-quad"], body[data-aos-easing="ease-in-out-quad"] [data-aos] { transition-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); }
[data-aos][data-aos][data-aos-easing="ease-in-cubic"], body[data-aos-easing="ease-in-cubic"] [data-aos] { transition-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); }
[data-aos][data-aos][data-aos-easing="ease-out-cubic"], body[data-aos-easing="ease-out-cubic"] [data-aos] { transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); }
[data-aos][data-aos][data-aos-easing="ease-in-out-cubic"], body[data-aos-easing="ease-in-out-cubic"] [data-aos] { transition-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); }
[data-aos][data-aos][data-aos-easing="ease-in-quart"], body[data-aos-easing="ease-in-quart"] [data-aos] { transition-timing-function: cubic-bezier(0.55, 0.085, 0.68, 0.53); }
[data-aos][data-aos][data-aos-easing="ease-out-quart"], body[data-aos-easing="ease-out-quart"] [data-aos] { transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94); }
[data-aos][data-aos][data-aos-easing="ease-in-out-quart"], body[data-aos-easing="ease-in-out-quart"] [data-aos] { transition-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955); }
@media screen {
html.js:not(.no-js) [data-aos^="fade"][data-aos^="fade"] { opacity: 0; transition-property: opacity, transform, -webkit-transform; }
html.js:not(.no-js) [data-aos^="fade"][data-aos^="fade"].aos-animate { opacity: 1; transform: none; }
html.js:not(.no-js) [data-aos="fade-up"] { transform: translate3d(0px, 30px, 0px); }
html.js:not(.no-js) [data-aos="fade-down"] { transform: translate3d(0px, -100px, 0px); }
html.js:not(.no-js) [data-aos="fade-right"] { transform: translate3d(-100px, 0px, 0px); }
html.js:not(.no-js) [data-aos="fade-left"] { transform: translate3d(100px, 0px, 0px); }
html.js:not(.no-js) [data-aos="fade-up-right"] { transform: translate3d(-100px, 100px, 0px); }
html.js:not(.no-js) [data-aos="fade-up-left"] { transform: translate3d(100px, 100px, 0px); }
html.js:not(.no-js) [data-aos="fade-down-right"] { transform: translate3d(-100px, -100px, 0px); }
html.js:not(.no-js) [data-aos="fade-down-left"] { transform: translate3d(100px, -100px, 0px); }
html.js:not(.no-js) [data-aos^="zoom"][data-aos^="zoom"] { opacity: 0; transition-property: opacity, transform, -webkit-transform; }
html.js:not(.no-js) [data-aos^="zoom"][data-aos^="zoom"].aos-animate { opacity: 1; transform: translateZ(0px) scale(1); }
html.js:not(.no-js) [data-aos="zoom-in"] { transform: scale(0.6); }
html.js:not(.no-js) [data-aos="zoom-in-up"] { transform: translate3d(0px, 100px, 0px) scale(0.6); }
html.js:not(.no-js) [data-aos="zoom-in-down"] { transform: translate3d(0px, -100px, 0px) scale(0.6); }
html.js:not(.no-js) [data-aos="zoom-in-right"] { transform: translate3d(-100px, 0px, 0px) scale(0.6); }
html.js:not(.no-js) [data-aos="zoom-in-left"] { transform: translate3d(100px, 0px, 0px) scale(0.6); }
html.js:not(.no-js) [data-aos="zoom-out"] { transform: scale(1.2); }
html.js:not(.no-js) [data-aos="zoom-out-up"] { transform: translate3d(0px, 100px, 0px) scale(1.2); }
html.js:not(.no-js) [data-aos="zoom-out-down"] { transform: translate3d(0px, -100px, 0px) scale(1.2); }
html.js:not(.no-js) [data-aos="zoom-out-right"] { transform: translate3d(-100px, 0px, 0px) scale(1.2); }
html.js:not(.no-js) [data-aos="zoom-out-left"] { transform: translate3d(100px, 0px, 0px) scale(1.2); }
html.js:not(.no-js) [data-aos^="slide"][data-aos^="slide"] { transition-property: transform, -webkit-transform; visibility: hidden; }
html.js:not(.no-js) [data-aos^="slide"][data-aos^="slide"].aos-animate { visibility: visible; transform: translateZ(0px); }
html.js:not(.no-js) [data-aos="slide-up"] { transform: translate3d(0px, 100%, 0px); }
html.js:not(.no-js) [data-aos="slide-down"] { transform: translate3d(0px, -100%, 0px); }
html.js:not(.no-js) [data-aos="slide-right"] { transform: translate3d(-100%, 0px, 0px); }
html.js:not(.no-js) [data-aos="slide-left"] { transform: translate3d(100%, 0px, 0px); }
html.js:not(.no-js) [data-aos^="flip"][data-aos^="flip"] { backface-visibility: hidden; transition-property: transform, -webkit-transform; }
html.js:not(.no-js) [data-aos="flip-left"] { transform: perspective(2500px) rotateY(-100deg); }
html.js:not(.no-js) [data-aos="flip-left"].aos-animate { transform: perspective(2500px) rotateY(0deg); }
html.js:not(.no-js) [data-aos="flip-right"] { transform: perspective(2500px) rotateY(100deg); }
html.js:not(.no-js) [data-aos="flip-right"].aos-animate { transform: perspective(2500px) rotateY(0deg); }
html.js:not(.no-js) [data-aos="flip-up"] { transform: perspective(2500px) rotateX(-100deg); }
html.js:not(.no-js) [data-aos="flip-up"].aos-animate { transform: perspective(2500px) rotateX(0deg); }
html.js:not(.no-js) [data-aos="flip-down"] { transform: perspective(2500px) rotateX(100deg); }
html.js:not(.no-js) [data-aos="flip-down"].aos-animate { transform: perspective(2500px) rotateX(0deg); }
}

/* ═══ §2 Theme reveal start states (ap-theme.css) ══════════════════════════════════════════
 * Demo, verbatim:
 *   .js .animated-element, [ap-revealvisibility] { visibility: hidden; }
 *   [reveal] { opacity: 0; }
 *   .no-js [reveal] { opacity: 1; }
 *   .no-js [ap-revealvisibility] { visibility: visible; }
 * The reveal itself is a Web Animation (00-motion.js) that leaves an inline opacity / visibility
 * behind when it finishes, exactly as the theme's ApEffectOfCustomKeyframe does. */
html.js [reveal] { opacity: 0; }
html.js [ap-revealvisibility] { visibility: hidden; }
.no-js [reveal] { opacity: 1; }
.no-js [ap-revealvisibility] { visibility: visible; }

/* ═══ §3 Hover keyframes (ap-theme.css) ════════════════════════════════════════════════════ */
:root {
    /* demo :root, dir="ltr" */
    --transform-logical-flip: 1;
    --transform-origin-start: left;
    --transform-origin-end: right;
}
/* demo :root, dir="rtl" — the theme's own RTL values */
[dir="rtl"] {
    --transform-logical-flip: -1;
    --transform-origin-start: right;
    --transform-origin-end: left;
}
[dir="rtl"] .icon--direction-aware { transform: scaleX(-1); }

@keyframes prevNextButtonKeyframe {
    0%, 100% { transform: translate(0) scaleX(var(--transform-logical-flip)); }
    50% { transform: translate(calc(50% + 10px)) scaleX(var(--transform-logical-flip)); }
    51% { transform: translate(calc(-50% - 10px)) scaleX(var(--transform-logical-flip)); }
}

@media (any-hover: hover) {
    @keyframes textUnderlinedAnimatedKeyframes {
        0% { transform: scaleX(1); transform-origin: var(--transform-origin-end); }
        50% { transform: scaleX(0); transform-origin: var(--transform-origin-end); }
        51% { transform-origin: var(--transform-origin-start); }
        100% { transform: scaleX(1); }
    }
    .text--underlined.link--animated:hover::after { animation: 0.6s ease 0s 1 normal none running textUnderlinedAnimatedKeyframes; }
    .ap-nextap-buttonprev--prev:hover :is(svg, i) { animation: 0.3s ease-in-out 0s 1 reverse forwards running prevNextButtonKeyframe; }
    .ap-nextap-buttonprev--next:hover :is(svg, i) { animation: 0.3s ease-in-out 0s 1 normal forwards running prevNextButtonKeyframe; }
}

/* The hero's arrows are the only .ap-nextap-buttonprev on the page, and the demo's section CSS
 * pins them with `.ap-nextap-buttonprev svg { transform: rotate(90deg) !important }` — an
 * !important declaration outranks the animation, so the keyframe never moves them there.
 * Here the 90° comes from Tailwind's `rotate` property, so the pin is `transform: none`. */
.ap-hero .ap-nextap-buttonprev svg { transform: none !important; }

/* ═══ §4 Inner-page banner, <ap-textoverlayimage reveal-on-scroll parallax> ═══════════════════
 * Driven by 00-motion.js (ApTextOverlayImage). Two things the demo's rendered markup carries that
 * the reveal depends on:
 *   - The live server HTML is `<ap-splitlines reveal style="opacity: 1;"><span>Title</span>` — the
 *     inline opacity beats [reveal]'s 0, so the title shows from the first paint and only the inner
 *     span runs the line reveal (the span is an element child, so the theme never re-splits it).
 *     This stands in for that inline style.
 *   - `img, video { transition: .4s }` (theme base CSS; measured live on .image-overlay__image):
 *     the parallax transform the scroll handler writes is eased by it. */
html.js ap-textoverlayimage ap-splitlines[reveal] { opacity: 1; }
.image-overlay__image { transition: 0.4s; }

/* ═══ §5 Service page hero (template-parts/services/hero.php) ═════════════════════════════════
 * One entrance, played on load: the photograph is uncovered from below and settles out of a slight
 * zoom (the gesture the homepage uses to unveil a piece), the words come into focus in reading
 * order, and the rail's hairline is drawn from the start edge. Pure CSS with fill-mode both, so it
 * needs no script and there is no html.js gate: the first paint is already the first frame.
 * Order comes from --i on each [data-hero-rise]. Reduced motion: a short fade, nothing travels. */
@keyframes svcUnveil { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes svcSettle { from { scale: 1.14; } to { scale: 1; } }
@keyframes svcRise { from { opacity: 0; translate: 0 28px; } to { opacity: 1; translate: 0 0; } }
@keyframes svcFocus { from { opacity: 0; translate: 0 28px; filter: blur(10px); } to { opacity: 1; translate: 0 0; filter: blur(0); } }
@keyframes svcDraw { from { scale: 0 1; } to { scale: 1 1; } }
@keyframes svcFade { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: no-preference) {
    [data-section="service-hero"] [data-hero-room] { animation: svcUnveil 1.1s cubic-bezier(0.76, 0, 0.24, 1) both; }
    [data-section="service-hero"] [data-hero-room] img { animation: svcSettle 1.8s cubic-bezier(0.16, 1, 0.3, 1) both; }
    [data-section="service-hero"] [data-hero-rise] { animation: svcRise 0.9s cubic-bezier(0.16, 1, 0.3, 1) both; animation-delay: calc(260ms + var(--i, 0) * 90ms); }
    [data-section="service-hero"] [data-hero-rise="focus"] { animation-name: svcFocus; }
    [data-section="service-hero"] [data-hero-rule] { animation: svcDraw 1.1s cubic-bezier(0.65, 0, 0.35, 1) 700ms both; }
}
@media (prefers-reduced-motion: reduce) {
    [data-section="service-hero"] :is([data-hero-room], [data-hero-rise]) { animation: svcFade 0.42s ease-out both; }
}
