.film-section { padding-block:80px 40px; }
.film-introduction { display:grid; grid-template-columns:1fr 1fr; gap:24px 80px; align-items:end; margin-bottom:48px; }
.film-introduction .eyebrow { grid-column:1/-1; margin-bottom:0; }
.film-introduction>p:last-child { max-width:430px; color:var(--muted); font-size:17px; }
.film-stage { background:var(--navy); color:#fff; }
.film-preparation { aspect-ratio:16/9; padding:64px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.film-title { font:400 clamp(40px,5.2vw,72px)/1.03 var(--display); text-transform:uppercase; }
.film-preparation>p:not(.film-title) { font-size:13px; margin-top:32px; }
.film-subtitle { font-size:var(--caption-size); margin-top:12px; opacity:.8; }
#acip-film { width:100%; aspect-ratio:16/9; display:block; background:var(--navy); }
.film-status { font-size:var(--caption-size); color:var(--muted); margin-top:16px; }
.framework-section { padding-block:48px 80px; }
.framework-heading { display:flex; justify-content:space-between; gap:64px; align-items:end; margin-bottom:40px; }
.framework-heading>p { max-width:340px; font-size:14px; color:var(--muted); }
.framework { margin:0; }
.framework-visual { position:relative; }
.spectrum-arrow-mobile { display:none; }
.framework-panels { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.framework-panel { display:flex; flex-direction:column; align-items:flex-start; text-align:left; padding:32px 28px 24px; color:var(--navy); background:var(--surface); border:0; box-shadow:inset 0 -4px transparent; cursor:pointer; min-width:0; }
.framework-centre { background:var(--navy); color:#fff; }
.framework-abbreviation { font:400 clamp(36px,4.6vw,64px)/1 var(--display); letter-spacing:normal; }
.framework-name { display:block; margin-top:24px; font:400 25px/1.15 var(--display); }
.framework-description { display:block; margin-top:24px; font-size:12px; line-height:1.65; flex:1; }
.framework-state { display:block; margin-top:32px; font-size:10px; font-weight:600; letter-spacing:.05em; }
.framework-panel[aria-pressed=true] { box-shadow:inset 0 -4px var(--accent); }
.framework-panel[aria-pressed=true] .framework-state::before { content:"●"; color:var(--accent); margin-right:8px; }
.framework-panel:focus-visible { outline:2px solid var(--accent); outline-offset:-5px; }
.framework-panel:hover .framework-state { text-decoration:underline; text-underline-offset:4px; }
.spectrum-arrow { display:block; width:100%; height:16px; margin:20px 0; color:var(--navy); }
.framework figcaption { color:var(--muted); font-size:var(--caption-size); line-height:1.6; }
.framework-detail { margin-top:32px; padding-top:24px; border-top:1px solid var(--line); min-height:150px; max-width:850px; }
.framework-detail .eyebrow { margin-bottom:12px; }
.framework-detail>p:last-child { font-size:15px; }
.framework-context { max-width:850px; font-size:var(--caption-size); color:var(--muted); margin-top:24px; }
.reflection { padding-block:64px; max-width:850px; }
.reflection p:not(.eyebrow) { font-size:18px; line-height:1.75; color:var(--navy); }
@media(max-width:850px) {
  .film-introduction { gap:24px 40px; }
  .framework-panel { padding:24px 20px; }
  .framework-name { font-size:22px; }
}
@media(max-width:620px) {
  .film-section { padding-block:48px 24px; }
  .film-introduction { grid-template-columns:1fr; gap:24px; margin-bottom:32px; }
  .film-introduction>p:last-child { font-size:15px; }
  .film-preparation { aspect-ratio:4/3; padding:28px; }
  .film-title { font-size:38px; }
  .film-preparation .accent-rule { margin-bottom:16px; }
  .film-preparation>p:not(.film-title) { margin-top:24px; }
  .framework-section { padding-block:32px 48px; }
  .framework-heading { display:block; margin-bottom:28px; }
  .framework-heading>p { margin-top:24px; }
  .framework-visual { padding-left:24px; margin-bottom:24px; }
  .framework-panels { grid-template-columns:1fr; }
  .framework-panel { padding:24px 20px; display:grid; grid-template-columns:64px minmax(0,1fr); gap:16px; }
  .framework-abbreviation { font-size:30px; }
  .framework-name { font-size:22px; margin:0; }
  .framework-description { grid-column:1/-1; font-size:12px; line-height:1.6; margin:0; }
  .framework-state { grid-column:1/-1; font-size:10px; margin:0; }
  .spectrum-arrow { display:none; }
  .spectrum-arrow-mobile { display:block; position:absolute; left:0; top:0; height:100%; width:12px; color:var(--navy); }
  .framework-detail { min-height:205px; }
  .reflection { padding-block:40px; }
  .reflection p:not(.eyebrow) { font-size:16px; }
}
@media(max-width:360px) {
  .photography-hero .hero h1 { font-size:40px; }
  .framework-panel { padding:20px 16px; grid-template-columns:50px minmax(0,1fr); gap:14px; }
  .framework-abbreviation { font-size:26px; }
  .framework-name { font-size:20px; }
}
@media print { .film-preparation { aspect-ratio:auto; min-height:240px; } .framework-panel { break-inside:avoid; } }
