/* A continuous photo story, with progressive enhancement for motion. */
html { scroll-padding-top: 88px; }
.reading-progress { position: fixed; top: 0; left: 0; z-index: 30; width: 100%; height: 3px; background: var(--acid); transform: scaleX(var(--reading-progress,0)); transform-origin: left; pointer-events: none; }
.navigation { position: fixed; z-index: 20; transition: height .3s ease, background .3s ease, border-color .3s ease; }
.is-scrolled .navigation { height: 64px; background: #0e1114e8; backdrop-filter: blur(14px); border-bottom-color: #A8DFFF20; }
.current-chapter { font-size: 12px; letter-spacing: .09em; line-height: 1.3; text-align: right; color: #c9d0d4; }
.hero-image { transform: translateY(var(--hero-drift,0px)) scale(1.06); }
.hero-date { display: block; margin-top: 8px; font-size: 14px; color: var(--ink); }
.scroll-cue { display: flex; align-items: center; gap: 12px; margin-top: 34px; color: #a9b8c0; font-size: 11px; letter-spacing: .12em; }
.scroll-cue>span { display: block; position: relative; width: 1px; height: 30px; background: #475a64; overflow: hidden; }
.scroll-cue>span::after { content: ''; position: absolute; width: 1px; height: 13px; background: var(--acid); animation: follow-line 2.3s ease-in-out infinite; }
@keyframes follow-line { 0%,100% { transform: translateY(-14px); } 70% { transform: translateY(31px); } }
.section-pad { padding-top: 84px; padding-bottom: 84px; }
.section-label { margin-bottom: 38px; letter-spacing: .1em; }
.section-label>span:first-child { flex-shrink: 0; }
.small-rule { transform-origin: left; }
.project-summary { font-size: 18px; line-height: 1.65; color: var(--muted); max-width: 43ch; margin-top: 28px; padding-left: 20px; border-left: 2px solid var(--acid); }
.opening-grid { grid-template-columns: 1.15fr 1fr; gap: 6vw; }
.opening-photo { max-width: 470px; width: 100%; margin: 0; }
.opening-photos .opening-photo { max-width: none; }
.opening-photos { display: grid; grid-template-columns: 1.45fr 1fr; grid-template-rows: minmax(0,1fr); gap: 14px; align-items: stretch; aspect-ratio: 4/3; overflow: hidden; }
.opening-photos .opening-photo { min-height: 0; }
.opening-photos .opening-photo img { aspect-ratio: auto; height: 100%; object-position: 50% 45%; }
.opening-photo .photo-window { height: 100%; }
.opening-photo .photo-window img { transform: none; }
.opening-insets { display: grid; grid-template-columns: 1fr; grid-template-rows: repeat(2,minmax(0,1fr)); gap: 14px; min-height: 0; }
.opening-insets figure { min-height: 0; height: auto; overflow: hidden; }
.opening-insets .photo-window { height: 100%; }
.opening-insets figure:first-child img { object-position: 50% 53%; }
.opening-insets figure:last-child img { object-position: 50% 67%; }
.opening-copy { max-width: 47ch; }
.opening-copy .eyebrow { color: var(--ink); margin-bottom: 18px; }
:is(.opening-copy,.filmmaker-copy) h2 { font-size: clamp(40px,4.2vw,62px); line-height: 1.06; color: var(--ink); }
.opening-copy h2 span { color: var(--acid); }
.title-line { display: block; overflow: hidden; padding-bottom: .09em; margin-bottom: -.09em; }
.title-line>span { display: block; }
.opening-copy h2 .title-line { color: var(--ink); }
.opening-copy h2 .title-accent, .story-heading .title-accent, .effort-copy h3 .title-accent { color: var(--acid); }
.opening-copy h2 .title-line>span { color: inherit; }
.opening-copy .opening-lead, .filmmaker-copy>.large-copy { font-family: var(--body); font-size: 24px; line-height: 1.45; font-weight: 400; letter-spacing: -.02em; color: var(--ink); margin-top: 26px; }
.opening-copy .opening-bio, .filmmaker-copy>p:not(.eyebrow):not(.large-copy) { font-family: var(--body); font-size: 18px; line-height: 1.65; font-weight: 400; color: #c9d0d4; max-width: 45ch; margin-top: 20px; }
.statement span { color: #c4cdd1; }
/* Shared profile typography and restrained ice-blue details. */
.eyebrow { display: flex; align-items: center; gap: 12px; }
.eyebrow::before { content: ''; width: 14px; height: 2px; flex: 0 0 14px; background: var(--acid); }
.story-copy .eyebrow, .effort-copy .eyebrow, .filmmaker-copy .eyebrow, .filmmaker-project .eyebrow { color: var(--ink); }
.opening-copy .opening-future { color: var(--ink); }
.effort-copy>p:not(.eyebrow) { color: #c9d0d4; font-size: 18px; line-height: 1.65; margin-top: 20px; }
.summit-proof { margin-top: 24px; }
.summit-proof h3 { font: 400 22px/1.45 var(--body); letter-spacing: -.02em; margin: 0; color: var(--ink); }
.summit-proof h3>span { color: #c9d0d4; }
.summit-stats { display: grid; grid-template-columns: .8fr .85fr 1.1fr; gap: 20px; margin-top: 18px; }
.summit-stats>div { min-width: 0; }
.summit-stats strong { display: block; font: clamp(30px,3.2vw,46px)/1.05 var(--display); letter-spacing: -.02em; color: var(--ink); white-space: nowrap; }
.story-heading .counter-number { color: var(--acid); }
.summit-stats p { font-size: 13px; line-height: 1.4; color: var(--muted); margin-top: 8px; }
.partnership-block h3::before { content: ''; display: inline-block; vertical-align: middle; width: 14px; height: 2px; background: var(--acid); margin-right: 12px; }
.story { padding-top: 22px; }
.story-grid { gap: 8vw; }
.summit-photo img { object-position: 50% 55%; }
.story-copy .story-heading { font-size: clamp(52px,5.8vw,84px); line-height: 1; }
.story-copy>p.story-intro { margin-top: 24px; max-width: 42ch; font-size: 18px; line-height: 1.65; }
.effort-grid { gap: 8vw; margin-top: 80px; }
.photo-window { display: block; position: relative; overflow: hidden; isolation: isolate; background: #20282e; }
.photo-window img { transform: translateY(var(--photo-y,0px)) scale(var(--photo-scale,1.09)); transition: scale .6s ease, filter .6s ease; }
.rebuild-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: 26px 8vw; align-items: start; }
.rebuild-title { grid-column: 1; grid-row: 1; align-self: end; }
.rebuild-title h2 { font-size: clamp(50px,5vw,72px); }
.rebuild-copy { grid-column: 1; grid-row: 2; max-width: 43ch; }
.rebuild-copy .large-copy { font-size: 23px; }
.rebuild-photo { display: block; grid-column: 2; grid-row: 1 / 3; width: 100%; align-self: center; }
.rebuild-photo img { aspect-ratio: 1 / 1; height: auto; object-position: center 64%; }
.route-heading { align-items: end; margin-bottom: 44px; }
.journey::after { content: ''; position: absolute; left: 4px; top: 17px; bottom: 28px; width: 1px; background: var(--acid); transform: scaleY(var(--route-progress,0)); transform-origin: top; }
.route-dot { z-index: 1; }
.map-photo .image-frame { display: block; }
.map-photo img { border: 1px solid #6a785840; }
.map-photo img { aspect-ratio: 4/3; width: 100%; height: auto; object-fit: contain; border: 0; }
.map-photo figcaption { max-width: 61ch; color: var(--muted); }
.purpose { border-block: 1px solid #30383d70; }
/* A single audience story with aligned source excerpts and reel stills. */
.audience-overview { display: grid; grid-template-columns: 1fr 1.1fr; column-gap: 6vw; row-gap: 20px; align-items: center; }
.audience-intro { display: block; min-width: 0; }
.audience-overview .audience-heading { display: block; margin: 0; padding-top: 7px; }
.audience-overview .audience-heading h2 { font-size: clamp(34px,3.7vw,54px); }
.audience-overview .audience-heading p { max-width: 32ch; font-size: 18px; line-height: 1.6; margin-top: 18px; }
.audience-overview .audience-proof { margin: 28px 0 0; padding: 24px 0 0; border-top: 1px solid var(--line); }
.audience-overview .audience-metrics { gap: 24px; }
.audience-overview .audience-metrics>div { padding: 0; border: 0; }
.audience-overview .audience-metrics>div+div { padding-left: 0; border-left: 0; }
.audience-overview .audience-metrics strong, .audience-overview .audience-metrics>div+div strong { font-size: clamp(42px,4vw,60px); line-height: 1; }
.audience-overview .audience-metrics span { font-size: 14px; margin-top: 10px; }
.audience-overview .profile-proof { width: 100%; max-width: 100%; margin-top: 26px; padding-top: 22px; border: 0; border-top: 1px solid var(--line); }
.profile-proof svg { display: block; width: 100%; height: auto; aspect-ratio: 1490/470; }
.audience-overview .reel-proof { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin: 0; padding: 0; border: 0; width: 100%; max-width: 720px; justify-self: end; }
.reel-image { position: relative; aspect-ratio: 390/512; overflow: hidden; background: #090b0e; }
.reel-image::after { content: ""; position: absolute; inset: 0; border: 1px solid #ffffff20; pointer-events: none; }
.reel-image svg { display: block; width: 100%; height: 100%; overflow: hidden; }
.audience-overview .reel-proof figcaption { margin-top: 12px; font-size: 15px; font-weight: 500; line-height: 1.4; color: var(--ink); letter-spacing: 0; }
#audience-date { grid-column: 1 / -1; margin-top: 0; font-size: 12px; line-height: 1.7; display: flex; flex-wrap: wrap; gap: 4px 20px; }
.filmmaker-project { border-top: 0; border-left: 2px solid var(--acid); margin-top: 30px; padding: 2px 0 2px 20px; }
.filmmaker-project .eyebrow { font-size: 11px; color: var(--muted); margin-bottom: 12px; }
.filmmaker-project .eyebrow::before { display: none; }
.filmmaker-project .film-commitment { font: 400 clamp(23px,2.1vw,29px)/1.35 var(--body); letter-spacing: -.025em; color: var(--ink); margin: 0; max-width: 27ch; }
.film-commitment strong { display: block; font-weight: 500; color: var(--acid); }
.filmmaker-project>p.film-route { font-size: 16px; line-height: 1.5; color: #c9d0d4; margin-top: 12px; }
.filmmaker-insets .photo-window { height: 100%; }
.filmmaker-main .photo-window img { height: auto; }
.filmmaker-link { transition: color .2s, border-color .2s; }
.closing-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 7vw; align-items: start; }
.partnerships { padding-block: 94px; }
.partnerships h2 { font-size: clamp(48px,5.5vw,80px); line-height: 1.05; }
.partnerships h2 span { color: var(--acid); }
.closing-copy { max-width: 47ch; }
.closing-intro { max-width: 49ch; }
.closing-intro>.large-copy { margin-top: 26px; max-width: 33ch; color: #c4cdd1; font-size: 21px; line-height: 1.55; }
.partnership-block h3 { font: 600 12px/1.5 var(--body); letter-spacing: .08em; color: var(--ink); }
.partnership-block ul { list-style: none; margin: 18px 0 0; padding: 0; }
.partnership-block li { font-size: 18px; line-height: 1.55; color: #c9d0d4; padding-left: 18px; position: relative; }
.partnership-block li+li { margin-top: 10px; }
.partnership-block li::before { content: ''; width: 4px; height: 4px; border-radius: 50%; background: var(--acid); position: absolute; left: 0; top: .67em; }
.partnership-block+.partnership-block { border-top: 1px solid var(--line); padding-top: 26px; margin-top: 28px; }
.partnership-note { font-size: 15px; line-height: 1.55; color: var(--muted); margin-top: 18px; max-width: 43ch; }
.closing-copy>p:not(.large-copy) { color: #c4cdd1; font-size: 18px; margin-top: 20px; }
.contact-action { margin-top: 28px; }
.contact-button { display: inline-flex; align-items: center; gap: 24px; min-height: 52px; font-weight: 600; white-space: normal; line-height: 1.4; transition: background .25s, transform .25s; }
.contact-button::after { content: '\2197'; font-size: 20px; }
.contact-button:hover { background: var(--accent-hover); transform: translateY(-2px); }
.contact-instagram { display: block; width: fit-content; margin-top: 16px; color: #c9d0d4; font-size: 14px; line-height: 1.5; text-underline-offset: 4px; }
.contact-instagram:hover { color: var(--acid); text-decoration: underline; }
.contact-note { margin-top: 16px; font-size: 11px; letter-spacing: .08em; color: var(--muted); }
footer { padding-top: 44px; }
.footer-brand { color: #49616c; transition: color .3s; }
.footer-brand:hover { color: var(--acid); }
.cinema-motion [data-motion] { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s cubic-bezier(.22,1,.36,1); }
.cinema-motion [data-motion].is-revealed { opacity: 1; transform: none; }
.cinema-motion [data-motion] .title-line>span { transform: translateY(112%); transition: transform 1s cubic-bezier(.22,1,.36,1); }
.cinema-motion [data-motion] .title-line:nth-child(2)>span { transition-delay: .15s; }
.cinema-motion [data-motion].is-revealed .title-line>span { transform: none; }
.cinema-motion .photo-window[data-photo-reveal] { clip-path: inset(0 0 100% 0); transition: clip-path 1.15s cubic-bezier(.22,1,.36,1); transition-delay: var(--motion-delay,0ms); }
.cinema-motion .photo-window[data-photo-reveal].is-revealed { clip-path: inset(0); }
.counter-number { position: relative; display: inline-block; font: inherit !important; }
.counter-number.is-counting { color: transparent; }
.counter-overlay { position: absolute; inset: 0 auto auto 0; font: inherit !important; pointer-events: none; }
.cinema-motion .section-label .small-rule { transform: scaleX(0); transition: transform 1.1s cubic-bezier(.22,1,.36,1); }
.cinema-motion .section-label.is-revealed .small-rule { transform: scaleX(1); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.editing [data-motion] { opacity: 1; transform: none; }
@media (min-width:641px) and (max-width:1000px) {
  .section-pad { padding-block: 64px; }
  .opening-grid { gap: 5vw; }
  .opening-copy .opening-lead, .filmmaker-copy>.large-copy { font-size: 22px; }
  .opening-copy .opening-bio, .filmmaker-copy>p:not(.eyebrow):not(.large-copy) { font-size: 17px; }
  .opening-insets figure { height: auto; }
  .rebuild-grid { gap: 24px 5vw; }
  .rebuild-photo img { aspect-ratio: 4/5; }
  .closing-grid { grid-template-columns: 1fr 1fr; gap: 5vw; }
  .partnerships h2 { font-size: 48px; }
}
@media (max-width:640px) {
  .navigation { height: 72px; }
  .navigation .wordmark { font-size: 22px; }
  .current-chapter { max-width: 120px; font-size: 10px; letter-spacing: .045em; }
  .is-scrolled .navigation { height: 60px; }
  .hero-kicker { font-size: 12px; letter-spacing: .04em; }
  .hero .hero-route { font-size: 16px; }
  .hero-baseline { font-size: 12px; letter-spacing: .035em; }
  .scroll-cue { font-size: 10px; margin-top: 26px; letter-spacing: .07em; }
  .section-pad { padding: 54px 24px; }
  .section-label { margin-bottom: 28px; font-size: 11px; letter-spacing: .07em; }
  .opening-grid { grid-template-columns: 1fr; gap: 28px; }
  .opening-copy { grid-row: 1; }
  :is(.opening-copy,.filmmaker-copy) h2 { font-size: 44px; }
  .opening-photos { gap: 10px; }
  .opening-insets { gap: 10px; }
  .opening-insets figure { height: auto; }
  .opening-copy .opening-lead, .filmmaker-copy>.large-copy { font-size: 22px; margin-top: 22px; }
  .opening-copy .opening-bio, .filmmaker-copy>p:not(.eyebrow):not(.large-copy) { font-size: 17px; line-height: 1.6; margin-top: 16px; }
  .effort-copy>p:not(.eyebrow) { font-size: 17px; margin-top: 18px; }
  .summit-stats { gap: 10px; }
  .summit-stats strong { font-size: clamp(30px,8.2vw,42px); }
  .summit-stats p { font-size: 12px; }
  .project-summary { font-size: 17px; margin-top: 24px; }
  .opening-photo { max-width: none; width: 100%; margin: 0; }
  .opening-photo img { aspect-ratio: 5/4; object-position: 50% 45%; }
  .story { padding-top: 8px; }
  .story-grid { gap: 28px; }
  .summit-photo img { object-position: 50% 43%; }
  .story-copy .story-heading { font-size: clamp(48px,15vw,64px); }
  .story-copy>p.story-intro { font-size: 17px; margin-top: 20px; }
  .summit-proof { margin-top: 20px; }
  .summit-proof h3 { font-size: 20px; }
  .summit-stats { margin-top: 18px; }
  .effort-grid { gap: 26px; margin-top: 54px; }
  .rebuild-grid { grid-template-columns: 1fr; gap: 25px; }
  .rebuild-title, .rebuild-copy, .rebuild-photo { grid-column: auto; grid-row: auto; }
  .rebuild-title h2 { font-size: 54px; }
  .rebuild-photo img { aspect-ratio: 5/4; height: auto; object-position: center 67%; }
  .route-heading { margin-bottom: 32px; }
  .audience-overview { grid-template-columns: 1fr; gap: 24px; }
  .audience-overview .audience-heading { padding-top: 0; }
  .audience-overview .audience-heading p { font-size: 17px; margin-top: 12px; }
  .audience-overview .audience-metrics { gap: 16px; }
  .audience-overview .audience-metrics span { font-size: 13px; }
  .audience-overview .reel-proof { gap: 14px; margin: 0; padding: 0; max-width: 440px; justify-self: center; }
  .audience-overview .reel-proof figcaption { font-size: 13px; margin-top: 9px; }
  .filmmaker-project { margin-top: 26px; padding-left: 16px; }
  .filmmaker-project .film-commitment { font-size: 23px; }
  .filmmaker-project>p.film-route { font-size: 15px; }
  .closing-grid { grid-template-columns: 1fr; gap: 28px; }
  .closing-intro { display: contents; }
  .closing-intro h2 { grid-row: 1; }
  .closing-intro>.large-copy { grid-row: 2; }
  .partnership-details { grid-row: 3; }
  .closing-intro .contact-action { grid-row: 4; margin-top: 0; }
  .partnerships h2 { font-size: clamp(42px,12vw,65px); }
  .closing-copy>p:not(.large-copy) { font-size: 17px; }
  .closing-intro>.large-copy { font-size: 19px; margin-top: 0; }
  .partnership-block li { font-size: 17px; }
  .contact-note { font-size: 10px; letter-spacing: .035em; }
  .contact-button { padding: 15px 19px; gap: 16px; }
}
@media (max-width:360px) {
  .section-pad { padding-left: 20px; padding-right: 20px; }
  .navigation .wordmark { font-size: 20px; }
  .current-chapter { max-width: 100px; font-size: 9px; }
  .hero-kicker { font-size: 11px; }
}
@media (max-width:419px) {
  .current-chapter { display: none; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation: none !important; transition: none !important; }
  .cinema-motion [data-motion] { opacity: 1; transform: none; }
  .hero-image,.photo-window img { transform: none; scale: 1; }
  .cinema-motion .section-label .small-rule { transform: none; }
  .cinema-motion [data-motion] .title-line>span { transform: none; }
  .cinema-motion .photo-window[data-photo-reveal] { clip-path: none; }
}
