/* Keep the square reserved during playback, fallbacks and the final CTA. */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);align-items:center;gap:32px;padding:24px 0 40px}
.hero h1{font-size:clamp(40px,5vw,60px)}
.hero-media{position:relative;width:100%;aspect-ratio:1;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;isolation:isolate}
.hero-media [hidden]{display:none!important}
.hero-poster,.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.hero-poster{opacity:.25}
.hero-finale{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px}
.hero-call{width:100%;padding:32px 20px;text-align:center;font-size:clamp(26px,3.2vw,40px);line-height:1.15;border:2px solid var(--amber);box-shadow:0 8px 0 #000}
.hero-controls{position:absolute;bottom:12px;left:10px;right:10px;display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.hero-controls button{background:var(--bg);color:var(--ink);border:1px solid var(--amber);border-radius:6px;padding:9px 10px;font:600 12px/1.2 ui-monospace,monospace;cursor:pointer}
.hero-call:focus-visible,.hero-controls button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
@media(max-width:800px){.hero{grid-template-columns:1fr;gap:28px}.hero-media{grid-row:1;max-width:440px;justify-self:center}.hero h1{font-size:clamp(40px,7vw,60px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
