/* Two bounded reflection windows keep separate highlights on the material. */
.hero-art .hero-image{position:relative}
.hero-motion{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none;--reflection-halo:#2d83ff;--reflection-rim:#c9efff;--reflection-core:#fff;--lower-sweep-start:660px;--lower-sweep-end:1110px}
.hero-material-reflection,.hero-signature-reveal{opacity:0;transition:opacity .6s}
.hero-motion.is-running :is(.hero-material-reflection,.hero-signature-reveal){opacity:1}
.hero-edge-route>use{fill:none;stroke-linecap:butt;stroke-linejoin:round}
.hero-reflection-aura{stroke:var(--reflection-halo);stroke-width:28;opacity:.24;filter:url(#hero-reflection-aura)}
.hero-reflection-diffusion{stroke:var(--reflection-halo);stroke-width:18;opacity:.65;filter:url(#hero-reflection-soft)}
.hero-reflection-rim{stroke:var(--reflection-rim);stroke-width:4;opacity:.55;filter:url(#hero-reflection-satin)}
.hero-reflection-core{stroke:var(--reflection-core);stroke-width:2.5;opacity:.95;filter:url(#hero-reflection-satin)}
/* A shallow engraved signature: a dark cut and its lower, light-catching lip. */
.hero-signature use{fill:none;stroke-linecap:round;stroke-linejoin:round}
.hero-signature-recess{stroke:#09131c;stroke-width:3.2;opacity:.24}
.hero-signature-cut{stroke:#111d29;stroke-width:1.5;opacity:.42}
.hero-signature-lip{stroke:#eaf5ff;stroke-width:1.1;opacity:.22}
.hero-signature-bloom{stroke:#659fff;stroke-width:5;opacity:.32;filter:url(#hero-signature-soft)}
.hero-signature-lit-lip{stroke:#c2e2ff;stroke-width:1.65;opacity:.72}
.hero-signature-glint{stroke:#f2faff;stroke-width:.75;opacity:.88}
/* The local signature catches light immediately, independently of the edge sweeps. */
.hero-signature-reveal{transition:opacity .25s}
/* Same travel distance at 70% speed: 2.6s / .7, alternating without a reset jump. */
.hero-signature-sweep{transform-origin:0 0;animation:hero-signature-pass 3.7143s linear -.25s infinite alternate;animation-play-state:paused}
.hero-motion.is-running .hero-signature-sweep{animation-play-state:running}
@keyframes hero-signature-pass{from{transform:translateX(770px)}to{transform:translateX(1060px)}}
.hero-reflection-sweep{transform-origin:0 0;animation-duration:8.6s;animation-timing-function:ease-in-out;animation-direction:alternate;animation-iteration-count:infinite;animation-delay:-2.1s;animation-play-state:paused}
.hero-reflection-sweep--upper{animation-name:hero-material-upper}
.hero-reflection-sweep--lower{animation-name:hero-material-lower;animation-duration:7.4s;animation-delay:-5.2s}
.hero-motion.is-running .hero-reflection-sweep{animation-play-state:running}
html[data-theme="light"] .hero-motion{--reflection-halo:#286ff0;--reflection-rim:#e4f4ff;--reflection-core:#fff}
html[data-theme="light"] .hero-reflection-diffusion{opacity:.5}
html[data-theme="light"] .hero-reflection-aura{opacity:.18}
@keyframes hero-material-upper{from{transform:translateX(330px) rotate(-14deg)}to{transform:translateX(900px) rotate(-14deg)}}
@keyframes hero-material-lower{from{transform:translateX(var(--lower-sweep-start)) rotate(-14deg)}to{transform:translateX(var(--lower-sweep-end)) rotate(-14deg)}}
@media(min-width:701px) and (max-width:1599px){.hero-motion{--lower-sweep-start:620px;--lower-sweep-end:820px}}
@media(max-width:700px){.hero-reflection-aura{stroke-width:32}.hero-reflection-diffusion{stroke-width:22}.hero-reflection-rim{stroke-width:5}.hero-reflection-core{stroke-width:3.5}}
@media(prefers-reduced-motion:reduce){.hero-motion :is(.hero-material-reflection,.hero-signature-reveal){display:none!important;transition:none}.hero-motion *{animation:none!important}}
