/* Page compositions reuse the existing go-device, go-screen and image inspection system. */
body[data-page=charging] .charge-story{padding:0 var(--page-gutter);max-width:100%}
.charge-story .go-section{min-width:0;padding-block:40px}
.charge-story .charge-overview{padding-top:24px}
.charge-overview h1{font-size:clamp(2.75rem,4.8vw,5rem);line-height:1.06;letter-spacing:-.055em;margin:24px 0 32px;max-width:20ch}
.charge-introduction{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:start}
.charge-introduction .go-statement{max-width:24ch;font-weight:500}
.charge-introduction>div{color:var(--text-secondary)}
.charge-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}
.charge-overview .go-meta dd{font-size:1.09375rem;font-weight:700}
.charge-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.charge-hero-devices{padding:0 24px 8px;gap:16px}
.charge-screen .go-device-canvas{display:grid;place-items:center;max-width:460px;border:0;border-radius:0;background:transparent;box-shadow:none;cursor:zoom-in;line-height:0;transition:transform 550ms cubic-bezier(.77,0,.18,1)}
.charge-screen .go-device{display:block}
.charge-screen .ivi-caption{display:block;max-width:30ch;font-size:1.125rem;line-height:1.5;margin:12px auto 0;min-height:3em}
.charge-screen:focus-within{z-index:3}
.charge-screen .go-device-canvas:focus-visible{outline:3px solid var(--focus-visible);outline-offset:4px;border-radius:8px}
.charge-story .go-reading{max-width:72ch}
.charge-story .go-reading>p{color:var(--text-secondary)}
.charge-story .go-reading blockquote{max-width:36ch;margin-top:32px}
.charge-considerations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:32px}
.charge-considerations>div{border-top:1px solid var(--border-subtle);padding-top:16px}
.charge-considerations h3{font-size:1.0625rem;margin-bottom:8px;font-weight:600}
.charge-considerations p{font-size:.9375rem;color:var(--text-secondary)}
.charge-story .go-principles{margin-top:32px}
.charge-experience>h2.eyebrow{font-size:.75rem;color:var(--text-secondary);letter-spacing:.1em}
.charge-narrative{margin-top:36px}
.charge-narrative+.charge-narrative{margin-top:56px;border-top:1px solid var(--border-subtle);padding-top:40px}
.charge-narrative-heading{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:28px}
.charge-narrative-heading .eyebrow{font-size:.75rem;color:var(--text-secondary)}
.charge-narrative-heading h3,.charge-recovery h3{font-size:clamp(1.75rem,3vw,3rem);line-height:1.15;letter-spacing:-.04em;margin:16px 0 0;max-width:22ch}
.charge-narrative-heading>div:last-child{color:var(--text-secondary)}
.charge-active-pair{display:grid;grid-template-columns:1fr .82fr;gap:64px;max-width:950px;margin:0 auto;align-items:center}
.charge-active-pair .charge-screen:last-child{padding-top:32px}
.charge-recovery{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:64px;max-width:1000px;margin:64px auto 0;padding-top:40px;border-top:1px solid var(--border-subtle)}
.charge-recovery>div>p:last-child{color:var(--text-secondary);margin-top:24px;max-width:50ch}
.charge-recovery .go-device-canvas{max-width:320px}
.charge-related .work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.charge-related .project-title-row h3{font-size:1.375rem}
.charge-story>.project-disclosure{padding-inline:0}
body[data-page=charging] .ivi-image-viewport img{width:auto;max-width:100%;max-height:calc(94dvh - 170px);height:auto;margin:auto}
body[data-page=charging] .ivi-image-viewport.is-zoomed img{width:946px;max-width:none;max-height:none}
body[data-page=charging] .ivi-image-viewport{touch-action:pan-x pan-y pinch-zoom}
@media(max-width:1100px){.charge-story .go-section{padding-block:28px}.charge-introduction{gap:32px}.charge-hero-devices{padding-inline:0}.charge-three{gap:16px}.charge-active-pair{gap:32px}.charge-screen .ivi-caption{font-size:1rem}.charge-related .work-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.charge-story .go-section,body[data-page=charging] #experience{scroll-margin-top:220px}.charge-narrative-heading,.charge-introduction{grid-template-columns:1fr;gap:24px}.charge-narrative-heading h3{max-width:28ch}.charge-active-pair{gap:24px}.charge-recovery{gap:32px}.charge-overview .go-meta{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.charge-overview h1{margin-bottom:24px}.charge-overview .go-meta{grid-template-columns:1fr;gap:16px}.charge-overview .go-meta>div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px}.charge-overview .go-meta dt{padding-top:3px}.charge-three,.charge-active-pair,.charge-considerations,.charge-recovery,.charge-related .work-grid{grid-template-columns:1fr}.charge-screen .go-device-canvas{max-width:400px}.charge-three{gap:28px}.charge-hero-devices{gap:20px}.charge-screen .ivi-caption{max-width:32ch;min-height:0;margin-top:0}.charge-active-pair .charge-screen:last-child{padding-top:0}.charge-considerations{gap:20px}.charge-recovery{gap:24px;margin-top:40px;padding-top:28px}.charge-recovery .charge-screen{max-width:320px;justify-self:center}.charge-narrative+.charge-narrative{margin-top:40px;padding-top:28px}.charge-story .go-section{padding-block:28px}body[data-page=charging] .ivi-image-viewport img{max-height:calc(96dvh - 240px)}}
@media print{.charge-screen .go-device-canvas{transform:none!important}.charge-narrative{break-inside:avoid}.charge-story .go-section{break-inside:auto}}
/* Prioritize one clear product visual in the mobile introduction. */
@media(max-width:650px){
 .charge-overview{display:flex;flex-direction:column}
 .charge-overview>.eyebrow{order:0}
 .charge-overview>h1{order:1}
 .charge-introduction{display:contents}
 .charge-introduction>.go-statement{order:2;margin-bottom:24px}
 .charge-hero-devices{order:3;width:100%;margin-bottom:16px}
 .charge-hero-devices>.charge-screen:first-child,.charge-hero-devices>.charge-screen:last-child{display:none}
 .charge-overview>.go-meta{order:4}
 .charge-introduction>div{order:5}
}
@media(min-width:651px) and (max-width:1000px){.charge-three{grid-template-columns:repeat(2,minmax(0,1fr))}.charge-three>.charge-screen:last-child{grid-column:1/-1;max-width:440px;width:100%;justify-self:center}}

/* Scale the complete device within its existing padded canvas to avoid page overflow. */
.charge-screen .go-device{transition:transform 550ms cubic-bezier(.77,0,.18,1)}
@media(hover:hover) and (pointer:fine){body[data-page=charging] .charge-screen:hover>.go-device-canvas{transform:none}.charge-screen:hover .go-device{transform:scale(1.25)}}
@media(prefers-reduced-motion:reduce){.charge-screen .go-device{transition:none}}
