/* Ecarvin chapters are driven by ecarvin-layout.json; assets retain their native proportions. */
body[data-page=ecarvin] .ec-story{padding:0 var(--page-gutter);max-width:100%}
.ec-story .go-section{padding-block:48px;min-width:0}
.ec-story .ec-overview{padding-top:24px}
.ec-hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px;align-items:center}
.ec-overview h1{font-size:clamp(4rem,7vw,7rem);letter-spacing:-.065em;line-height:1;margin:28px 0}
.ec-overview h1>span{color:var(--action-primary)}
.ec-hero .go-statement{font-size:clamp(1.5rem,2.4vw,2.375rem);max-width:20ch}
.ec-platform{font-size:.75rem;color:var(--text-secondary);margin-top:24px}
.ec-hero .ec-lead{font-size:.9375rem;color:var(--text-secondary);margin-top:24px;max-width:44ch}
.ec-hero-visuals{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:0;position:relative;isolation:isolate}
.ec-hero-visuals:before{content:'';position:absolute;inset:16% 0 13%;z-index:-1;border-radius:24px;background:var(--surface-subtle)}
.ec-hero-visuals .ec-supporting{padding-top:64px}
.ec-hero-visuals .ec-screen figcaption{font-size:.75rem}
.ec-introduction,.ec-challenge-split{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:32px}
.ec-introduction p,.ec-challenge-split p{color:var(--text-secondary);margin-top:0}
.ec-overview .go-meta{display:grid;grid-template-columns:1.2fr 1fr .6fr 1.2fr;gap:24px;border-top:1px solid var(--border-subtle);padding-top:24px;margin:32px 0 0}
.ec-overview .go-meta dd{font-size:.9375rem;font-weight:600;line-height:1.6}
.ec-story .ec-context{font-size:.8125rem;color:var(--text-secondary);margin-top:20px;max-width:80ch}
.ec-challenge-split .ec-challenge-lead{font-size:clamp(1.125rem,1.6vw,1.5rem);max-width:31ch;color:var(--text-primary)}
.ec-challenge-split:has(>.ec-research){grid-template-columns:.9fr 1.1fr}
.ec-challenge-split>.ec-research{grid-column:2;grid-row:1/3}
.ec-story .ec-section-intro{max-width:74ch;color:var(--text-secondary);margin-top:24px}
.ec-stage{margin-top:64px;min-width:0}
.ec-stage+.ec-stage{border-top:1px solid var(--border-subtle);padding-top:48px}
.ec-stage-heading{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start;margin-bottom:32px}
.ec-stage-heading h3,.ec-chapter h3{font-size:clamp(1.75rem,2.7vw,2.5rem);letter-spacing:-.035em;line-height:1.2;max-width:25ch;margin:20px 0 0}
.ec-stage-heading>p{font-size:.9375rem;color:var(--text-secondary);margin-top:0}
.ec-number{font-weight:700;color:var(--action-primary)}
.ec-stage .eyebrow,.ec-chapter .eyebrow{color:var(--text-secondary)}
.ec-story .ec-scope{font-size:.8125rem;line-height:1.6;max-width:82ch;color:var(--text-secondary);margin-top:24px}
.ec-notes{display:grid;grid-template-columns:repeat(var(--ec-columns,3),minmax(0,1fr));gap:32px;margin-top:32px}
.ec-notes>div{border-top:1px solid var(--border-subtle);padding-top:16px;min-width:0}
.ec-notes .eyebrow{font-size:.6875rem;color:var(--text-secondary)}
.ec-notes :is(h3,h4){font-size:1.0625rem;line-height:1.45;font-weight:600;margin:12px 0}
.ec-notes p{font-size:.875rem;color:var(--text-secondary)}
.ec-research{margin:0;min-width:0}
.ec-research .ivi-image-trigger{width:100%;display:block;padding:16px;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-subtle);cursor:zoom-in;transition:border-color 180ms ease,box-shadow 180ms ease}
.ec-research img{width:100%;height:auto;display:block;object-fit:contain;border-radius:0}
.ec-research .ivi-image-trigger:hover{border-color:var(--action-primary);box-shadow:0 8px 24px rgb(0 0 0 / .06)}
.ec-research figcaption{display:flex;justify-content:space-between;gap:16px;font-size:.8125rem;color:var(--text-secondary);line-height:1.5;margin-top:12px}
.ec-enlarge{flex-shrink:0;color:var(--action-primary)}
.ec-story .ec-insight{font-size:clamp(1rem,1.5vw,1.25rem);font-weight:500;line-height:1.65;max-width:66ch;margin-top:32px;border-left:2px solid var(--action-primary);padding-left:24px}
.ec-persona-context{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-bottom:32px}
.ec-persona-context>div{border-top:1px solid var(--border-subtle);padding-top:20px}
.ec-persona-context h4{font-size:1.25rem;line-height:1.4;margin-bottom:8px}
.ec-persona-context p{font-size:.9375rem;color:var(--text-secondary)}
.ec-persona-context .ec-persona-role{font-size:.8125rem;margin:0 0 16px}
.ec-journey-wrap{margin-top:32px}
.ec-journey-wrap>.eyebrow{font-size:.6875rem}
.ec-journey{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0}
.ec-journey li{border-top:1px solid var(--border-subtle);padding:16px 20px 0 0;position:relative}
.ec-journey li+li{padding-left:20px}
.ec-journey li+li:before{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:var(--action-primary);top:-3px;left:0}
.ec-journey .ec-number{font-size:.6875rem}
.ec-journey h4{font-size:1rem;margin:12px 0;line-height:1.4}
.ec-journey p{font-size:.8125rem;color:var(--text-secondary)}
.ec-more{margin-top:32px;border-top:1px solid var(--border-subtle);padding-top:16px}
.ec-more summary{cursor:pointer;color:var(--action-primary);font-size:.9375rem;font-weight:500;min-height:44px;padding:10px 0;line-height:1.5}
.ec-more summary:focus-visible{outline:3px solid var(--focus-visible);outline-offset:4px;border-radius:4px}
.ec-more-content{padding-top:24px;min-width:0}
.ec-design-split{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:start}
.ec-design-split>.ec-notes{display:grid;grid-template-columns:1fr;margin-top:0;gap:32px}
.ec-media-group{display:grid;grid-template-columns:repeat(var(--ec-columns,2),minmax(0,1fr));gap:24px;align-items:center;min-width:0;isolation:isolate}
.ec-media-group:has(>.ec-research:only-child){grid-template-columns:1fr}
.ec-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)}
.ec-screen .go-device{display:block}
.ec-screen figcaption{font-size:.875rem;line-height:1.5;max-width:32ch;min-height:3em;margin-top:12px}
.ec-screen:focus-within{z-index:3}
.ec-screen .go-device-canvas:focus-visible,.ec-research .ivi-image-trigger:focus-visible{outline:3px solid var(--focus-visible);outline-offset:4px;border-radius:8px}
.ec-chapter{margin-top:48px;display:grid;grid-template-columns:1fr 1fr;gap:24px 48px;align-items:center;min-width:0}
.ec-chapter+.ec-chapter{margin-top:48px;padding-top:40px;border-top:1px solid var(--border-subtle)}
.ec-chapter-copy>p:not(.eyebrow){color:var(--text-secondary);font-size:.9375rem;margin-top:24px}
.ec-chapter-copy>.ec-scope{font-size:.8125rem!important}
.ec-chapter>.ec-notes,.ec-chapter>.ec-more{grid-column:1/-1;width:100%;margin-top:8px}
.ec-layout-reverse>.ec-media-group{grid-column:1;grid-row:1}
.ec-layout-reverse>.ec-chapter-copy{grid-column:2;grid-row:1}
.ec-layout-paired>.ec-chapter-copy{grid-column:1/-1;display:grid;grid-template-columns:.9fr 1.1fr;gap:0 48px;align-items:start}
.ec-layout-paired>.ec-chapter-copy>.eyebrow{grid-column:1;grid-row:1}
.ec-layout-paired>.ec-chapter-copy>h3{grid-column:1;grid-row:2}
.ec-layout-paired>.ec-chapter-copy>p:not(.eyebrow){grid-column:2;grid-row:1/3;margin-top:0}
.ec-layout-paired>.ec-media-group{grid-column:1/-1;background:var(--surface-subtle);padding:16px 32px;border-radius:24px}
.ec-layout-paired>.ec-media-group>.ec-screen{max-width:420px;width:100%;margin-inline:auto}
.ec-next-steps{font-weight:600;color:var(--text-primary)!important}
.ec-story .go-reading{max-width:74ch}
.ec-story .go-reading p{color:var(--text-secondary)}
.ec-story .go-reading blockquote{max-width:38ch;margin-top:32px}
.ec-related .work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ec-related .project{grid-column:auto}
.ec-related .project-link{display:flex;flex-direction:column;height:100%}
.ec-related .project-caption{display:flex;flex-direction:column;flex:1}
.ec-related .project-action{margin-top:auto;align-self:start}
.ec-related .project-visual{flex:none;margin-top:auto}
.ec-related .media-frame{aspect-ratio:3/2}
.ec-related .project-title-row h3{font-size:1.25rem}
.ec-story>.project-disclosure{padding-inline:0}
body[data-page=ecarvin] .ivi-image-viewport img{width:auto;max-width:100%;max-height:calc(94dvh - 170px);height:auto;margin:auto}
body[data-page=ecarvin] .ivi-image-viewport.is-zoomed img{width:var(--ec-native-width);max-width:none;max-height:none}
body[data-page=ecarvin] .ivi-image-viewport{touch-action:pan-x pan-y pinch-zoom}
@media(max-width:1100px){.ec-story .go-section{padding-block:32px}.ec-hero{grid-template-columns:.85fr 1.15fr;gap:16px}.ec-overview h1{font-size:clamp(3.5rem,6.5vw,6rem)}.ec-overview .go-meta{grid-template-columns:1fr 1fr}.ec-stage-heading,.ec-introduction,.ec-challenge-split,.ec-persona-context{gap:24px}.ec-notes{gap:24px}.ec-design-split{gap:24px}.ec-chapter{gap:24px}.ec-layout-paired>.ec-chapter-copy{gap:0 24px}.ec-layout-paired>.ec-media-group{padding-inline:16px}.ec-related .work-grid{gap:16px}}
@media(max-width:900px){.ec-story .go-section,body[data-page=ecarvin] #experience,.ec-story .ec-stage,.ec-story .ec-chapter{scroll-margin-top:220px}.ec-journey{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 0}.ec-journey li:nth-child(4){padding-left:0}.ec-journey li:nth-child(4):before{display:none}.ec-related .work-grid{grid-template-columns:1fr 1fr}.ec-notes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.ec-hero,.ec-introduction,.ec-challenge-split,.ec-stage-heading,.ec-persona-context,.ec-design-split,.ec-chapter,.ec-layout-paired>.ec-chapter-copy,.ec-related .work-grid{grid-template-columns:1fr}.ec-overview h1{font-size:clamp(3.75rem,17vw,5rem);margin:24px 0}.ec-hero .go-statement{font-size:1.5rem;max-width:23ch}.ec-platform{margin-top:16px}.ec-hero-visuals{max-width:460px;margin:auto;width:100%}.ec-hero-visuals .ec-supporting{padding-top:40px}.ec-hero-visuals .ec-screen figcaption{min-height:3em;font-size:.6875rem}.ec-overview .go-meta{grid-template-columns:1fr;gap:16px}.ec-overview .go-meta>div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px}.ec-introduction{gap:20px;margin-top:24px}.ec-challenge-split{gap:24px}.ec-challenge-split:has(>.ec-research){grid-template-columns:1fr}.ec-challenge-split>.ec-research{grid-column:auto;grid-row:auto}.ec-notes{grid-template-columns:1fr;gap:20px}.ec-notes>div{display:grid;grid-template-columns:24px minmax(0,1fr);gap:0 12px}.ec-notes :is(h3,h4){margin:0 0 8px}.ec-notes p{grid-column:2}.ec-notes>div:not(:has(.ec-number)){display:block}.ec-stage{margin-top:40px}.ec-stage+.ec-stage{padding-top:32px}.ec-stage-heading{gap:20px;margin-bottom:24px}.ec-stage-heading h3,.ec-chapter h3{font-size:1.75rem}.ec-research .ivi-image-trigger{padding:6px;border-radius:8px}.ec-research figcaption{display:block}.ec-enlarge{display:block;margin-top:8px}.ec-persona-context{gap:24px}.ec-journey{grid-template-columns:1fr;gap:0}.ec-journey li,.ec-journey li+li{padding:16px 0 16px 28px;border-top:0;border-left:1px solid var(--border-subtle)}.ec-journey li:before,.ec-journey li+li:before{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:var(--action-primary);left:-3px;top:24px;display:block!important}.ec-journey h4{margin:8px 0}.ec-journey p{margin:0}.ec-story .ec-insight{padding-left:16px;font-size:1rem}.ec-chapter{gap:16px;margin-top:40px}.ec-chapter+.ec-chapter{margin-top:32px;padding-top:32px}.ec-layout-reverse>.ec-media-group,.ec-layout-reverse>.ec-chapter-copy{grid-column:auto;grid-row:auto}.ec-layout-paired>.ec-chapter-copy>*{grid-column:auto!important;grid-row:auto!important}.ec-layout-paired>.ec-chapter-copy>p:not(.eyebrow){margin-top:24px}.ec-layout-paired>.ec-media-group{padding:16px 0;grid-template-columns:1fr;gap:24px}.ec-layout-paired>.ec-media-group>.ec-screen{max-width:340px}.ec-chapter>.ec-media-group:has(>.ec-screen:only-child){max-width:360px;width:100%;margin:auto}.ec-screen figcaption{font-size:.875rem;min-height:0}.ec-more .ec-media-group{grid-template-columns:1fr;gap:32px}.ec-more .ec-screen{max-width:330px;margin:auto;width:100%}.ec-chapter .ec-more{margin-top:16px}.ec-design-split>.ec-notes{gap:20px}.ec-related .work-grid{gap:24px}body[data-page=ecarvin] .ivi-image-viewport img{max-height:calc(96dvh - 240px)}}
@media(prefers-reduced-motion:reduce){.ec-screen .go-device-canvas,.ec-research .ivi-image-trigger{transition:none}}
@media print{.ec-story .go-section{break-inside:auto}.ec-stage-heading{break-after:avoid}.ec-research{break-inside:avoid}.ec-screen .go-device-canvas{transform:none!important}.ec-more>div{display:block!important}}

/* Keep the padded canvas stable while enlarging the complete device and its screen. */
.ec-screen .go-device{transition:transform 550ms cubic-bezier(.77,0,.18,1)}
@media(hover:hover) and (pointer:fine){body[data-page=ecarvin] .ec-screen:hover>.go-device-canvas{transform:none}.ec-screen:hover .go-device{transform:scale(1.25)}}
@media(prefers-reduced-motion:reduce){.ec-screen .go-device{transition:none}}

/* Original montage, visible account flow, and inspectable evidence can grow independently. */
.ec-hero:has(.ec-hero-art){grid-template-columns:.8fr 1.2fr}
.ec-hero-art{display:block;min-width:0}
.ec-hero-art:before{display:none}
.ec-asset-r1 .ivi-image-trigger{padding:0;border:0;background:transparent;box-shadow:none;border-radius:0}
.ec-asset-r1 .ivi-image-trigger:hover{box-shadow:none}
.ec-closing-visual{padding-block:8px 40px;width:min(75%,825px);margin-inline:auto}
.ec-supporting-screens{grid-column:1/-1;border-top:1px solid var(--border-subtle);padding-top:32px;margin-top:16px;min-width:0}
.ec-supporting-screens h4{font-size:1.375rem;letter-spacing:-.025em;margin:0 0 12px}
.ec-supporting-screens>p{max-width:70ch;color:var(--text-secondary);font-size:.9375rem;margin-bottom:32px}
.ec-research-card{margin:40px 0;min-width:0}
.ec-research-card>button{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:center;width:100%;padding:24px;border:1px solid var(--border-subtle);border-radius:16px;background:var(--surface-subtle);color:var(--text-primary);text-align:left;font:inherit;cursor:zoom-in;transition:border-color 180ms ease}
.ec-research-card>button:hover{border-color:var(--action-primary)}
.ec-research-card img{display:block;width:100%;height:auto;object-fit:contain}
.ec-research-card-copy{display:grid;gap:16px;min-width:0}
.ec-card-title{font-size:1.375rem;font-weight:600;line-height:1.3;letter-spacing:-.025em}
.ec-card-body{font-size:.9375rem;color:var(--text-secondary);line-height:1.65}
.ec-card-action{font-size:.875rem;font-weight:600;color:var(--action-primary)}
#interaction-direction>.ec-asset-mvp{margin-top:40px}
.ec-film-section{padding:16px 0 48px}
.ec-film{margin:0}
.ec-film-preview{position:relative;overflow:hidden;border-radius:16px;background:#0c152c;aspect-ratio:16/9;isolation:isolate}
.ec-film-preview>video{display:block;width:100%;height:100%;object-fit:contain}
.ec-preview-toggle{position:absolute;bottom:16px;right:16px;z-index:2;min-height:44px;padding:10px 16px;border:1px solid rgb(255 255 255 / .5);border-radius:100px;background:rgb(6 15 30 / .88);color:white;font:inherit;font-size:.8125rem;cursor:pointer}
.ec-film figcaption{display:grid;grid-template-columns:.8fr 1.2fr;gap:32px;padding-top:24px}
.ec-film figcaption h2{font-size:1.5rem;letter-spacing:-.025em;margin:0;line-height:1.3}
.ec-film figcaption p{margin:0;font-size:.9375rem;color:var(--text-secondary);max-width:70ch}
.ec-video-dialog{padding:20px;width:min(1100px,94vw);max-width:94vw;max-height:94dvh;overflow:auto;border:1px solid var(--border-subtle);border-radius:16px;background:var(--surface-page);color:var(--text-primary)}
.ec-video-dialog::backdrop{background:rgb(0 0 0 / .8)}
.ec-video-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.ec-video-dialog h2{font-size:1.25rem;margin:0;line-height:1.4}
.ec-video-player{display:block;width:100%;max-height:calc(94dvh - 110px);background:#000;aspect-ratio:16/9}
.ec-research-card>button:focus-visible,.ec-film-preview>video:focus-visible,.ec-preview-toggle:focus-visible{outline:3px solid var(--focus-visible);outline-offset:4px}
@media(max-width:650px){.ec-hero:has(.ec-hero-art){grid-template-columns:1fr}.ec-hero-art{max-width:none}.ec-research-card>button{grid-template-columns:1fr;gap:24px;padding:16px}.ec-supporting-screens>.ec-media-group{grid-template-columns:1fr;gap:32px}.ec-supporting-screens .ec-screen{max-width:330px;margin:auto;width:100%}.ec-film-section{padding-block:8px 32px}.ec-film-preview{border-radius:10px}.ec-film figcaption{grid-template-columns:1fr;gap:12px;padding-top:20px}.ec-preview-toggle{bottom:8px;right:8px;padding:8px 12px;font-size:.75rem}.ec-video-dialog{padding:12px}.ec-video-dialog h2{font-size:1rem}.ec-closing-visual{padding-block:0 24px}}
@media(prefers-reduced-motion:reduce){.ec-research-card>button{transition:none}}
@media print{.ec-film-preview{display:none}.ec-film-section{padding:0}.ec-video-dialog{display:none}}

/* The montage captions stay centered; the film itself opens the player without an overlay. */
.ec-asset-r1 figcaption{display:block;text-align:center}
.ec-film-preview>video{cursor:pointer}
.ec-film-preview>video:focus-visible{outline:3px solid var(--focus-visible);outline-offset:-5px}
