/* Campaign-led opening: a moving atmosphere with stationary, readable copy. */
body.main-home .campaign-hero{position:relative;isolation:isolate;display:block;overflow:hidden;background:#0b211a;color:#fffdf7;padding:0;max-width:none}
.campaign-hero::before,.campaign-hero::after{content:none;animation:none}
.campaign-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(30px,5vw,72px);align-items:center;padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(40px,5vw,72px)}
.campaign-copy{min-width:0;max-width:650px}
body.main-home .campaign-hero h1{font-size:clamp(44px,6vw,82px);line-height:1.03;letter-spacing:-.045em;margin:24px 0;color:#fffdf7;text-shadow:none;text-wrap:balance}
.campaign-word{color:#ffd56a}
.campaign-hero .lead{font-size:clamp(23px,2.2vw,29px);line-height:1.35;max-width:30ch;color:#fffdf7}
.campaign-intro{font-size:20px;line-height:1.55;max-width:44ch;color:#e5ece5}
.campaign-hero .actions{gap:18px 24px;margin:30px 0 20px}
.campaign-hero .button{background:#ffd56a;color:#0b211a}
.campaign-hero .actions>a:not(.button){color:#fffdf7;line-height:1.5}
body.main-home .campaign-hero figure.campaign-art{width:100%;max-width:340px;justify-self:end;overflow:visible}
body.main-home .campaign-hero figure img.hero-good-boy{display:block;width:100%!important;max-width:100%!important;height:auto!important;max-height:none!important;animation:none!important;transform:none!important;border:0;box-shadow:0 16px 42px rgba(0,0,0,.2);object-fit:contain!important}
.campaign-art>a{display:block}
.campaign-hero .campaign-art figcaption{color:#e5ece5;font-size:11px;line-height:1.8;letter-spacing:.08em;margin-top:16px}
.campaign-art figcaption a{color:#ffd56a;font-size:13px;letter-spacing:0;text-underline-offset:4px}

.campaign-hero :is(a,button):focus-visible{outline:3px solid #ffd56a;outline-offset:5px}
body.main-home .campaign-hero figure.campaign-storyboard{max-width:500px;margin:0;justify-self:end}
.campaign-storyboard-stage{position:relative;width:min(100%,230px);aspect-ratio:230/154;overflow:hidden;background:#0b211a;transition:width .45s ease,height .45s ease}
body.main-home .campaign-hero .storyboard-frame{position:absolute;inset:0;display:block;width:100%!important;max-width:100%!important;height:100%!important;max-height:100%!important;margin:0!important;object-fit:contain!important;object-position:center;opacity:0;transition:opacity .45s ease;animation:none;transform:none}
body.main-home .campaign-hero .storyboard-frame.is-current{opacity:1}
.storyboard-control{display:block;margin-top:10px;padding:4px 0;border:0;background:none;color:#e5ece5;font:12px/1.5 Helvetica,Arial,sans-serif;cursor:pointer;text-decoration:underline;text-underline-offset:4px;min-height:36px}
.storyboard-control[hidden]{display:none}
@media(max-width:760px){
 .campaign-hero-inner{grid-template-columns:minmax(0,1fr);gap:24px;padding-top:36px;padding-bottom:36px}
 body.main-home .campaign-hero h1{font-size:clamp(42px,10.6vw,68px);margin:20px 0}
 .campaign-hero .eyebrow{font-size:10px;line-height:1.7;letter-spacing:.12em}
 .campaign-intro{font-size:19px}
 body.main-home .campaign-hero figure.campaign-storyboard{max-width:430px;justify-self:center}
}
@media(prefers-reduced-motion:reduce){body.main-home .campaign-hero .storyboard-frame{transition:none}.campaign-storyboard-stage{transition:none}}

/* Each stage fits the original frame; narrative begins immediately below it. */
.storyboard-story{padding:10px 0 0;min-height:0;box-sizing:border-box}
.storyboard-step{display:block;color:#ffd56a;font:700 11px/1.5 Helvetica,Arial,sans-serif;letter-spacing:.12em;margin-bottom:10px}
.storyboard-line{display:block;color:#ffd56a;font:700 clamp(22px,2.2vw,28px)/1.2 Helvetica,Arial,sans-serif;text-wrap:balance}
.campaign-hero .storyboard-narrative{color:#fffdf7;font:18px/1.5 Helvetica,Arial,sans-serif;margin:10px 0 0;max-width:42ch;letter-spacing:0}
.storyboard-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.storyboard-controls[hidden]{display:none}
.storyboard-controls button{min-height:44px;padding:5px 0;margin:0;border:0;background:none;color:#e5ece5;font:13px/1.4 Helvetica,Arial,sans-serif;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.storyboard-controls button:disabled{opacity:.4;cursor:default}
@media(max-width:400px){.storyboard-story{min-height:0}.campaign-hero .storyboard-narrative{font-size:17px}.storyboard-controls{gap:8px}}

/* Full vertical finale with its explanation beside it, within the small hero. */
body.main-home .campaign-hero figure.campaign-storyboard.is-finale{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 14px;align-items:start}
.campaign-storyboard.is-finale .campaign-storyboard-stage{aspect-ratio:auto;transition:none}
.campaign-storyboard.is-finale .storyboard-story{padding:0}
.campaign-storyboard.is-finale .storyboard-step{font-size:10px;letter-spacing:.06em;margin-bottom:8px}
.campaign-storyboard.is-finale .storyboard-line{font-size:clamp(18px,2vw,22px);line-height:1.2}
.campaign-hero .campaign-storyboard.is-finale .storyboard-narrative{font-size:14px;line-height:1.4;margin-top:8px;text-wrap:pretty}
.campaign-storyboard.is-finale figcaption{grid-column:1/-1}

/* Introduce the sequence before its first image, including in the compact finale. */
.storyboard-heading{color:#ffd56a;font:700 11px/1.5 Helvetica,Arial,sans-serif;letter-spacing:.1em;margin:0 0 12px}
.campaign-storyboard.is-finale .storyboard-heading{grid-column:1/-1}

/* GS-215: hide the source storyboard's bottom white scan edge. */
body.main-home .campaign-hero .campaign-storyboard:not(.is-finale) .storyboard-frame{height:calc(100% + 3px)!important;max-height:none!important;object-fit:fill!important;object-position:top}
