/* Campaign compositions retain the shared go-device and native image inspection. */
body[data-page=campaigns] .campaign-story{padding:0 var(--page-gutter);max-width:100%}
.campaign-story .go-section{min-width:0;padding-block:40px}
.campaign-story .campaign-overview{padding-top:24px}
.campaign-overview h1{font-size:clamp(2.75rem,4.8vw,5rem);line-height:1.06;letter-spacing:-.055em;margin:24px 0 32px;max-width:23ch}
.campaign-introduction{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:start}
.campaign-introduction .go-statement{max-width:22ch;font-weight:500}
.campaign-introduction>div{color:var(--text-secondary)}
.campaign-overview .go-meta{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:24px;border-top:1px solid var(--border-subtle);padding-top:24px;margin:32px 0}
.campaign-overview .go-meta dd{font-size:1.09375rem;font-weight:700}
.campaign-screen .go-device-canvas{display:grid;place-items:center;max-width:500px;border:0;border-radius:0;background:transparent;box-shadow:none;cursor:zoom-in;line-height:0}
.campaign-screen .go-device{display:block;transition:transform 550ms cubic-bezier(.77,0,.18,1)}
.campaign-screen .ivi-caption{display:block;max-width:30ch;font-size:1.0625rem;line-height:1.5;margin:12px auto 0;min-height:3em}
.campaign-screen:focus-within{z-index:3}
.campaign-screen .go-device-canvas:focus-visible{outline:3px solid var(--focus-visible);outline-offset:4px;border-radius:8px}
.campaign-hero-devices{position:relative;isolation:isolate;display:grid;grid-template-columns:1.45fr .8fr .65fr;align-items:start;gap:16px;padding:24px 0 12px}
.campaign-hero-devices::before{content:'';position:absolute;inset:18% 0 12%;border-radius:32px;background:var(--surface-subtle);z-index:-1}
.campaign-hero-devices>.campaign-screen:nth-child(2){padding-top:80px}
.campaign-hero-devices>.campaign-screen:nth-child(3){padding-top:110px}
.campaign-hero-devices .ivi-caption{font-size:.9375rem;max-width:26ch}
.campaign-story .go-reading{max-width:72ch}
.campaign-story .go-reading>p{color:var(--text-secondary)}
.campaign-story .go-reading blockquote{max-width:36ch;margin-top:32px}
.campaign-challenge-split{display:grid;grid-template-columns:1.2fr .8fr;gap:64px;align-items:start}
.campaign-considerations>div{border-top:1px solid var(--border-subtle);padding-top:16px;margin-bottom:24px}
.campaign-considerations h3{font-size:1.0625rem;margin-bottom:8px;font-weight:600}
.campaign-considerations p{font-size:.9375rem;color:var(--text-secondary)}
.campaign-story .go-principles{margin-top:32px}
.campaign-experience>h2.eyebrow{font-size:.75rem;color:var(--text-secondary);letter-spacing:.1em}
.campaign-narrative{margin-top:36px}
.campaign-narrative+.campaign-narrative{margin-top:56px;border-top:1px solid var(--border-subtle);padding-top:40px}
.campaign-narrative-heading{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:28px}
.campaign-narrative-heading .eyebrow{font-size:.75rem;color:var(--text-secondary)}
.campaign-narrative-heading h3{font-size:clamp(1.75rem,3vw,3rem);line-height:1.15;letter-spacing:-.04em;margin:16px 0 0;max-width:22ch}
.campaign-narrative-heading>div:last-child{color:var(--text-secondary)}
.campaign-discover-stage,.campaign-refine-stage{display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:48px;max-width:1000px;margin:0 auto}
.campaign-discover-stage .go-device-canvas{max-width:540px}
.campaign-map-notes,.campaign-filter-notes{max-width:40ch}
.campaign-map-notes>div,.campaign-filter-notes>div{border-top:1px solid var(--border-subtle);padding-top:20px;margin-top:28px}
.campaign-map-notes h4,.campaign-filter-notes h4{font-size:1.25rem;line-height:1.35;margin:12px 0}
.campaign-map-notes p,.campaign-filter-notes p{font-size:1rem;line-height:1.65;color:var(--text-secondary)}
.campaign-refine-stage{grid-template-columns:.8fr 1.2fr}
.campaign-refine-stage .go-device-canvas{max-width:520px}
.campaign-explore-stage{position:relative;isolation:isolate;display:grid;grid-template-columns:.78fr 1.22fr;gap:56px;align-items:center;max-width:900px;margin:0 auto;padding:24px 0}
.campaign-explore-stage::before{content:'';position:absolute;inset:10% -12px 12%;border-radius:32px;background:var(--surface-subtle);z-index:-1}
.campaign-explore-stage>.campaign-screen:first-child{max-width:320px;width:100%;justify-self:center}
.campaign-explore-stage>.campaign-screen:last-child{max-width:420px;width:100%;justify-self:center}
.campaign-context-note{font-size:.9375rem;line-height:1.65;color:var(--text-secondary);max-width:66ch;margin:28px auto 0;text-align:center}
.campaign-related .work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.campaign-related .project-title-row h3{font-size:1.375rem}
.campaign-story>.project-disclosure{padding-inline:0}
body[data-page=campaigns] .ivi-image-viewport img{width:auto;max-width:100%;max-height:calc(94dvh - 170px);height:auto;margin:auto}
body[data-page=campaigns] .ivi-image-viewport.is-zoomed img{width:var(--campaign-native-width,946px);max-width:none;max-height:none}
body[data-page=campaigns] .ivi-image-viewport{touch-action:pan-x pan-y pinch-zoom}
@media(hover:hover) and (pointer:fine){body[data-page=campaigns] .campaign-screen:hover>.go-device-canvas{transform:none}.campaign-screen:hover .go-device{transform:scale(1.25)}}
@media(max-width:1100px){.campaign-story .go-section{padding-block:28px}.campaign-introduction{gap:32px}.campaign-challenge-split{gap:32px}.campaign-hero-devices{grid-template-columns:1.25fr .75fr;gap:12px}.campaign-hero-devices>.campaign-screen:nth-child(3){display:none}.campaign-hero-devices>.campaign-screen:nth-child(2){padding-top:64px}.campaign-discover-stage,.campaign-refine-stage{gap:24px}.campaign-related .work-grid{grid-template-columns:1fr 1fr}.campaign-explore-stage{gap:24px}}
@media(max-width:900px){.campaign-story .go-section,body[data-page=campaigns] #experience{scroll-margin-top:220px}.campaign-narrative-heading,.campaign-introduction,.campaign-challenge-split{grid-template-columns:1fr;gap:24px}.campaign-narrative-heading h3{max-width:28ch}.campaign-overview .go-meta{grid-template-columns:1fr 1fr}.campaign-considerations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.campaign-considerations>div{margin-bottom:0}}
@media(max-width:650px){.campaign-overview h1{font-size:clamp(2.25rem,9vw,3.5rem);margin-bottom:24px;overflow-wrap:normal}.campaign-overview .go-meta{grid-template-columns:1fr;gap:16px}.campaign-overview .go-meta>div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px}.campaign-overview .go-meta dt{padding-top:3px}.campaign-hero-devices,.campaign-discover-stage,.campaign-refine-stage,.campaign-considerations,.campaign-explore-stage,.campaign-related .work-grid{grid-template-columns:1fr}.campaign-screen .go-device-canvas{max-width:400px}.campaign-screen .ivi-caption{min-height:0;margin-top:0;font-size:1rem;max-width:32ch}.campaign-hero-devices{padding-top:0}.campaign-hero-devices::before{inset:14% 0 12%}.campaign-hero-devices>.campaign-screen:nth-child(2){display:none}.campaign-considerations{gap:20px}.campaign-map-notes,.campaign-filter-notes{max-width:none}.campaign-map-notes{display:grid;grid-template-columns:1fr;gap:20px}.campaign-map-notes>div,.campaign-filter-notes>div{margin-top:0;padding-top:16px}.campaign-filter-notes{order:2}.campaign-refine-stage>.campaign-screen{order:1}.campaign-filter-notes>div+div{margin-top:24px}.campaign-explore-stage{padding-block:0;gap:32px}.campaign-explore-stage::before{inset:3% 0}.campaign-explore-stage>.campaign-screen:first-child{max-width:260px}.campaign-explore-stage>.campaign-screen:last-child{max-width:330px}.campaign-context-note{text-align:left}.campaign-narrative+.campaign-narrative{margin-top:40px;padding-top:28px}body[data-page=campaigns] .ivi-image-viewport img{max-height:calc(96dvh - 240px)}
 .campaign-overview{display:flex;flex-direction:column}.campaign-overview>.eyebrow{order:0}.campaign-overview>h1{order:1}.campaign-introduction{display:contents}.campaign-introduction>.go-statement{order:2;margin-bottom:24px}.campaign-hero-devices{order:3;width:100%;margin-bottom:16px}.campaign-overview>.go-meta{order:4}.campaign-introduction>div{order:5}.campaign-overview>.campaign-context-note{order:6}
}
@media(prefers-reduced-motion:reduce){.campaign-screen .go-device{transition:none}}
@media print{.campaign-screen .go-device{transform:none!important}.campaign-hero-devices{display:grid;grid-template-columns:1fr 1fr}.campaign-narrative{break-inside:avoid}}
