.hero-scroll{height:240svh;min-height:1850px;position:relative}.hero .hero-stage{position:sticky;top:0;height:100svh;min-height:720px;max-width:none;padding:0!important;overflow:hidden}.hero-first{position:absolute;top:14%;left:6%;right:6%;z-index:2;opacity:var(--hero-first,1);transform:translateY(var(--hero-title-y,0px))}.hero-first .eyebrow{margin-bottom:14px}.hero .hero-first h1{font-size:clamp(36px,4.8vw,70px);line-height:1.3}.hero .hero-device{position:absolute;top:37%;left:50%;height:43svh;max-height:none;width:auto;max-width:90%;margin:0;object-fit:contain;transform:translateX(calc(-50% + var(--hero-x,0vw))) translateY(var(--hero-image-y,0px)) scale(var(--hero-scale,.86));transform-origin:50% 65%;will-change:transform}.hero-second{position:absolute;z-index:2;top:15%;left:7%;right:7%;opacity:var(--hero-second,0);transform:translateY(var(--hero-sub-y,28px))}.hero .hero-sub{font-size:clamp(27px,3.8vw,49px);line-height:1.4;margin-bottom:16px}.hero .hero-stage .cta-pair{position:absolute;z-index:3;left:0;right:0;bottom:6%;margin:0;gap:10px;opacity:var(--hero-cta,0);transform:translateY(calc((1 - var(--hero-cta,0))*20px))}.hero-stage>.note-ref{position:absolute;bottom:2%;left:calc(50% - 8px);margin:0;opacity:var(--hero-cta,0)}
@media(max-width:600px){.hero-scroll{height:225svh;min-height:1650px}.hero .hero-stage{min-height:650px}.hero-first{top:15%;left:5%;right:5%}.hero .hero-first h1{font-size:33px}.hero .hero-device{top:39%;height:39svh;max-width:100%}.hero-second{top:16%;left:6%;right:6%}.hero .hero-sub{font-size:27px}.hero .hero-second .lead{font-size:13px;max-width:300px}.hero .hero-stage .cta-pair{bottom:7%;gap:8px}.hero-stage>.note-ref{bottom:2%}}
body.no-motion .hero-scroll{height:auto;min-height:0}body.no-motion .hero .hero-stage{height:auto;min-height:0;position:relative;padding:110px 24px 70px!important;overflow:visible}body.no-motion .hero-first,body.no-motion .hero-second,body.no-motion .hero .hero-device,body.no-motion .hero .hero-stage .cta-pair,body.no-motion .hero-stage>.note-ref{position:relative;inset:auto;opacity:1!important;transform:none!important}body.no-motion .hero .hero-device{height:35svh;width:auto;max-width:100%;margin:25px auto}body.no-motion .hero .hero-stage .cta-pair{margin:25px auto 15px}
@media(max-width:600px){.hero .hero-device{top:32%;height:46svh;max-width:132%}}

.hero .cta-pair .text-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
/* Draft intro only: original header, device geometry, secondary copy and CTA retained. */
.hero-scroll{height:340svh;min-height:calc(1850px + 100svh)}
.hero-logo-lockup{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;opacity:var(--intro-logo-opacity,1);transform:translateY(var(--intro-logo-y,0px)) scale(var(--intro-logo-scale,1));pointer-events:none}
.hero-logo-lockup img{object-fit:contain;filter:brightness(0)}.hero-logo-lockup .intro-symbol{width:44px;height:44px}.hero-logo-lockup .intro-wordmark{width:190px;height:auto}
.hero-first{inset:0;display:flex;align-items:center;justify-content:center;padding:40px 6%;opacity:var(--hero-first,0)}.hero-first .eyebrow{display:none}.hero .hero-device{opacity:var(--hero-device-visible,0)}
@media(max-width:600px){.hero-scroll{height:325svh;min-height:calc(1650px + 100svh)}.hero-logo-lockup{gap:17px}.hero-logo-lockup .intro-symbol{width:36px;height:36px}.hero-logo-lockup .intro-wordmark{width:164px}.hero-first{inset:0;padding:30px 5%}}
body.no-motion .hero-logo-lockup{position:relative;inset:auto;opacity:1!important;transform:none!important;margin:20px auto 65px}body.no-motion .hero-first{display:block;padding:0}body.no-motion .hero .hero-device{opacity:1!important}

/* Voice follow-up: dramatic image-based silver-surface pull-back, then full-device hold. */
.hero-scroll{height:calc(100svh + 350svh);min-height:3400px}.hero .hero-device{transform-origin:32.552083% 42.96875%}
@media(max-width:600px){.hero-scroll{height:450svh;min-height:3200px}}

/* Prevent the old raw hero copy/device flashing before the new intro is initialized. */
#hero[data-intro-pending]{visibility:hidden}

/* Optical lockup spacing: account for whitespace inside the original logo files. */
.hero-logo-lockup{gap:0}.hero-logo-lockup .intro-wordmark{margin-top:-8px}

/* v27 voice review draft: mark only +~5%; original wordmark/spacing retained. */
.hero-logo-lockup .intro-symbol{width:48px;height:48px}
@media(max-width:600px){.hero-logo-lockup .intro-symbol{width:40px;height:40px}}

/* Voice polish: equal visual weight for both hero choices, without changing their meaning. */
.hero .hero-stage .cta-pair>a{box-sizing:border-box;width:min(300px,calc(100vw - 64px));min-height:52px;padding:14px 24px;display:inline-flex;align-items:center;justify-content:center;line-height:1.45;text-align:center}
@media(max-width:600px){.hero .hero-stage .cta-pair>a{width:min(310px,calc(100vw - 64px));min-height:50px;padding:13px 20px}}
/* Keep the approved two-line subheading intact on narrow phones, not a stranded final syllable. */
@media(max-width:600px){#hero .hero-sub{font-size:clamp(22px,5.8vw,25px)!important;max-width:calc(100vw - 44px)!important;width:calc(100vw - 44px);line-height:1.5;text-wrap:balance}}
/* Voice v53 optical draft: modest CTA size, equal choices and >=44px touch targets.
   Device-to-button clearance must be judged in each desktop/mobile key-state before approval. */
#hero .hero-stage .cta-pair>a{width:min(286px,calc(100vw - 64px));min-height:48px;padding:11px 20px}
@media(max-width:600px){#hero .hero-stage .cta-pair>a{width:min(286px,calc(100vw - 64px));min-height:46px;padding:10px 18px}}

/* v60: measured viewport and restrained narrative hierarchy. */
@media(max-width:600px){#hero .hero-sub{width:100%;max-width:100%!important;margin-inline:auto;box-sizing:border-box}}
