/* Each chapter budgets one viewport for its copy, media and controls. */
html:has(> .home-page) { scroll-padding-top:0; scroll-snap-type:y mandatory }
body.home-page .site-footer { scroll-snap-align:end }
body.home-page { --frame-top:calc(var(--header-height) + clamp(18px,3dvh,32px)); --frame-bottom:clamp(20px,4dvh,44px) }
body.home-page .screen-frame { box-sizing:border-box; height:100dvh; min-height:0; width:100%; margin:0; scroll-snap-align:start; scroll-margin:0 }
body.home-page .screen-frame [hidden] { display:none!important }
body.home-page .hero { padding:var(--frame-top) var(--page-pad) clamp(116px,16dvh,164px); align-items:flex-end }
body.home-page .hero h1 { font-size:clamp(40px,min(4.5vw,8dvh),64px) }
body.home-page .hero-copy .chapter-kicker { margin-bottom:clamp(12px,2dvh,24px) }
body.home-page .hero-lead { margin:clamp(16px,3dvh,28px) 0 14px }

body.home-page .first-week { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(36px,8vw,128px); align-items:center; padding:var(--frame-top) var(--page-pad) var(--frame-bottom); background:#e9e8df; color:#202824 }
body.home-page .first-week-copy { max-width:540px; min-width:0 }
body.home-page .first-week .chapter-kicker { margin:0 0 clamp(16px,3dvh,28px); color:#626b62 }
body.home-page .first-week h2 { max-width:7em; margin:0; font-size:clamp(32px,min(3.5vw,6dvh),48px); line-height:1.15; letter-spacing:-.025em; font-weight:500 }
body.home-page .first-week-copy>p:not(.chapter-kicker) { margin:clamp(14px,2.5dvh,24px) 0 0; max-width:43ch; font-size:clamp(14px,1.2vw,17px); line-height:1.7; color:#586159 }
body.home-page .first-week-copy .quiet-link { display:inline-flex; align-items:center; min-height:44px; margin-top:18px; color:#202824 }
body.home-page .first-week-dialogue { min-width:0; border-left:1px solid #bec4b8; padding:12px 0 12px clamp(24px,4vw,64px) }
body.home-page .dialogue-label { margin:0 0 clamp(24px,4dvh,42px); color:#626b62; font-size:10px; letter-spacing:.12em; text-transform:uppercase; line-height:1.5 }
body.home-page .dialogue-turn { margin:0 0 clamp(20px,4dvh,40px) }
body.home-page .dialogue-turn>span { display:block; margin-bottom:10px; color:#747c70; font-size:9px; letter-spacing:.16em; text-transform:uppercase }
body.home-page .dialogue-turn>p { margin:0; max-width:24ch; font-size:clamp(20px,1.7vw,24px); line-height:1.35; letter-spacing:-.025em }
body.home-page .dialogue-you>p { color:#697d57 }
body.home-page .dialogue-caption { margin:0; color:#626b62; font-size:11px; line-height:1.6 }

@media(max-aspect-ratio:1/1) {
  body.home-page .first-week { grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto; align-content:center; gap:clamp(20px,3dvh,32px) }
  body.home-page .first-week h2 { max-width:none; font-size:clamp(28px,min(7.5vw,5dvh),40px) }
  body.home-page .first-week-copy>p:not(.chapter-kicker) { margin-top:12px; font-size:13px; line-height:1.6 }
  body.home-page .first-week .chapter-kicker { margin-bottom:14px }
  body.home-page .first-week-copy .quiet-link { margin-top:6px; font-size:12px }
  body.home-page .first-week-dialogue { padding:0 0 0 20px }
  body.home-page .dialogue-label { margin-bottom:18px; font-size:8px }
  body.home-page .dialogue-turn { margin-bottom:18px }
  body.home-page .dialogue-turn>span { margin-bottom:5px; font-size:8px }
  body.home-page .dialogue-turn>p { font-size:clamp(18px,4.7vw,26px); max-width:29ch }
  body.home-page .dialogue-caption { font-size:9px }
}
@media(max-height:650px) and (min-aspect-ratio:1/1) {
  body.home-page .first-week { gap:36px }
  body.home-page .first-week .chapter-kicker { margin-bottom:10px; font-size:9px }
  body.home-page .first-week h2 { font-size:clamp(28px,7dvh,36px) }
  body.home-page .first-week-copy>p:not(.chapter-kicker) { margin-top:10px; font-size:11px; line-height:1.5 }
  body.home-page .first-week-copy .quiet-link { min-height:32px; margin-top:8px; font-size:10px }
  body.home-page .first-week-dialogue { padding:0 0 0 24px }
  body.home-page .dialogue-label { margin-bottom:16px; font-size:8px }
  body.home-page .dialogue-turn { margin-bottom:16px }
  body.home-page .dialogue-turn>span { margin-bottom:5px; font-size:8px }
  body.home-page .dialogue-turn>p { font-size:18px }
  body.home-page .dialogue-caption { font-size:9px }
}
@media(max-height:700px) and (max-aspect-ratio:1/1) {
  body.home-page .first-week { --frame-top:calc(var(--header-height) + 14px); --frame-bottom:16px; gap:16px }
  body.home-page .first-week .chapter-kicker { margin-bottom:10px; font-size:8px }
  body.home-page .first-week h2 { font-size:30px }
  body.home-page .first-week-copy>p:not(.chapter-kicker) { margin-top:8px; font-size:11px; line-height:1.5 }
  body.home-page .first-week-copy .quiet-link { min-height:32px; margin-top:4px; font-size:10px }
  body.home-page .dialogue-label { margin-bottom:12px; font-size:7px }
  body.home-page .dialogue-turn { margin-bottom:12px }
  body.home-page .dialogue-turn>span { margin-bottom:4px; font-size:7px }
  body.home-page .dialogue-turn>p { font-size:16px; line-height:1.3 }
  body.home-page .dialogue-caption { font-size:8px }
}

/* The complete first-week explanation remains a MEMGO chapter. */
body.home-page .memgo-beginning { position:relative; isolation:isolate; display:flex; align-items:center; overflow:hidden; padding:var(--frame-top) var(--page-pad) var(--frame-bottom); background:#111314; color:#edece6; }
body.home-page .memgo-beginning::after { position:absolute; z-index:0; inset:0; content:""; pointer-events:none; background:linear-gradient(90deg,rgba(8,10,11,.2),rgba(8,10,11,.62) 44%,rgba(8,10,11,.88) 72%); }
body.home-page .beginning-principles { position:relative; z-index:1; display:grid; gap:clamp(18px,2.8dvh,30px); width:53%; min-width:0; margin-left:auto; }
body.home-page .beginning-principle { margin:0; padding:0; min-width:0; }
body.home-page .beginning-principle + .beginning-principle { padding-top:clamp(18px,2.8dvh,30px); border-top:1px solid rgba(237,236,230,.18); }
body.home-page .beginning-principle .chapter-kicker { margin:0 0 8px; color:#aaa; font-size:9px; line-height:1.5; }
html body.home-page .memgo-beginning .beginning-principle h2 { margin:0; font-size:24px; font-weight:400; line-height:1.25; letter-spacing:-.02em; }
body.home-page .beginning-principle > p:not(.chapter-kicker) { max-width:60ch; margin:10px 0 0; color:#c2c3c1; font-size:13px; line-height:1.65; }
body.home-page .beginning-scene { position:absolute; z-index:-1; inset:0; width:100%; max-width:none; height:100%; min-height:0; margin:0; }
body.home-page .beginning-scene img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
@media(max-width:900px), (max-aspect-ratio:1/1) {
  body.home-page .memgo-beginning::after { background:rgba(8,10,11,.76); }
  body.home-page .beginning-principles { width:100%; gap:18px; }
  body.home-page .beginning-principle + .beginning-principle { padding-top:18px; }
  html body.home-page .memgo-beginning .beginning-principle h2 { font-size:20px; }
  body.home-page .beginning-principle .chapter-kicker { margin-bottom:5px; font-size:8px; }
  body.home-page .beginning-principle > p:not(.chapter-kicker) { max-width:none; margin-top:8px; font-size:12px; line-height:1.6; }
}
@media(max-height:650px) and (min-aspect-ratio:1/1) {
  body.home-page .memgo-beginning::after { background:rgba(8,10,11,.76); }
  body.home-page .beginning-principles { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:start; width:100%; margin:0; }
  body.home-page .beginning-principle + .beginning-principle { padding:0; padding-inline-start:20px; border-top:0; border-inline-start:1px solid rgba(237,236,230,.18); }
  html body.home-page .memgo-beginning .beginning-principle h2 { font-size:20px; }
  body.home-page .beginning-principle .chapter-kicker { margin-bottom:6px; font-size:8px; }
  body.home-page .beginning-principle > p:not(.chapter-kicker) { margin-top:8px; font-size:12px; line-height:1.6; }
}
/* Continue the opening scenes with a full-width human conversation. */
body.home-page #belief { position:relative; isolation:isolate; display:flex; align-items:flex-start; overflow:hidden; padding:var(--frame-top) var(--page-pad) var(--frame-bottom); background:#111314; color:#edece6; }
body.home-page #belief .belief-layout { position:relative; z-index:1; display:block; width:40%; max-width:440px; height:auto; min-height:0; margin:clamp(32px,10dvh,100px) 0 0; }
body.home-page #belief .belief-statement { width:100%; min-width:0; text-align:start; }
body.home-page #belief .chapter-kicker { margin:0 0 20px; color:#c3c7c4; font-size:10px; line-height:1.6; letter-spacing:.12em; }
html body.home-page #belief h2 { max-width:12ch; margin:0; color:#edece6; font-size:40px; font-weight:500; line-height:1.15; letter-spacing:-.025em; text-wrap:balance; }
body.home-page #belief .belief-statement>p:not(.chapter-kicker) { max-width:34ch; margin:22px 0 0; color:#d0d3d0; font-size:15px; line-height:1.7; text-wrap:pretty; }
body.home-page #belief .belief-next { display:inline-flex; align-items:center; justify-content:space-between; min-height:50px; max-width:100%; margin:28px 0 0; padding:14px 22px; gap:32px; border:1px solid #ffffff9c; border-radius:0; color:#edece6; font-size:11px; line-height:1.6; text-transform:uppercase; }
body.home-page #belief .belief-next:hover { background:#fff; color:#080a0c; text-decoration:none; }
body.home-page #belief .belief-next:focus-visible { outline:2px solid #edece6; outline-offset:5px; }
body.home-page #belief .belief-scene { position:absolute; z-index:0; inset:0; width:100%; height:100%; max-width:none; margin:0; }
body.home-page #belief .belief-scene img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
body.home-page #belief .belief-scene::after { position:absolute; inset:0; content:""; pointer-events:none; background:linear-gradient(90deg,#070b0ccc,rgba(7,11,12,.3) 38%,transparent 64%),linear-gradient(180deg,#070b0c33,transparent 22%,transparent 75%,#11131488); }
body.home-page #belief .belief-scene figcaption { position:absolute; z-index:1; right:var(--page-pad); bottom:28px; margin:0; color:#b9beb9; font-size:9px; line-height:1.5; }
@media(min-aspect-ratio:2/1) {
  body.home-page #belief .belief-scene img { width:76%; height:calc(100% - var(--header-height)); margin-top:var(--header-height); margin-left:auto; }
  body.home-page #belief .belief-scene::after { background:linear-gradient(90deg,#111314 20%,#111314dd 28%,#11131433 43%,transparent 60%),linear-gradient(0deg,#11131455,transparent 30%); }
}
@media(max-aspect-ratio:1/1) {
  body.home-page #belief { --belief-scene-height:min(64dvh,122vw); align-items:flex-end; padding-bottom:clamp(64px,9dvh,88px); }
  body.home-page #belief .belief-layout { width:100%; max-width:480px; margin:0; }
  body.home-page #belief .chapter-kicker { margin-bottom:16px; font-size:9px; }
  html body.home-page #belief h2 { max-width:16ch; font-size:32px; }
  body.home-page #belief .belief-statement>p:not(.chapter-kicker) { max-width:34ch; margin-top:18px; font-size:14px; line-height:1.65; }
  body.home-page #belief .belief-next { margin-top:24px; }
  body.home-page #belief .belief-scene img { height:var(--belief-scene-height); }
  body.home-page #belief .belief-scene::after { bottom:auto; height:calc(var(--belief-scene-height) + 1px); background:linear-gradient(180deg,#11131422,transparent 25%,transparent 70%,#111314); }
  body.home-page #belief .belief-scene figcaption { bottom:24px; font-size:8px; }
}
@media(max-height:700px) and (max-aspect-ratio:1/1) {
  body.home-page #belief { --belief-scene-height:58dvh; padding-bottom:52px; }
  body.home-page #belief .chapter-kicker { margin-bottom:10px; font-size:8px; }
  html body.home-page #belief h2 { font-size:28px; }
  body.home-page #belief .belief-statement>p:not(.chapter-kicker) { margin-top:12px; font-size:12px; line-height:1.6; }
  body.home-page #belief .belief-next { min-height:44px; margin-top:18px; padding:11px 18px; font-size:10px; }
  body.home-page #belief .belief-scene figcaption { bottom:18px; }
}
@media(max-height:650px) and (min-aspect-ratio:1/1) {
  body.home-page #belief .belief-layout { width:38%; max-width:330px; margin:12px 0 0; }
  body.home-page #belief .chapter-kicker { margin-bottom:12px; font-size:8px; }
  html body.home-page #belief h2 { font-size:30px; }
  body.home-page #belief .belief-statement>p:not(.chapter-kicker) { margin-top:14px; font-size:12px; line-height:1.6; }
  body.home-page #belief .belief-next { min-height:40px; margin-top:20px; padding:10px 16px; font-size:10px; }
  body.home-page #belief .belief-scene figcaption { bottom:14px; font-size:8px; }
}

body.home-page #embodiment { display:grid; grid-template-columns:minmax(0,.42fr) minmax(0,.58fr); grid-template-rows:auto auto; align-content:center; gap:clamp(18px,3dvh,32px) 0; padding:var(--frame-top) var(--page-pad) var(--frame-bottom); isolation:isolate }
body.home-page #embodiment .companion-heading { grid-column:1; position:relative; z-index:1; padding:0; min-width:0 }
body.home-page .companion-heading .chapter-kicker { margin-bottom:clamp(12px,2dvh,22px) }
body.home-page .companion-heading h2 { max-width:9em; font-size:clamp(32px,min(3.5vw,6dvh),48px); line-height:1.15; text-wrap:balance }
body.home-page .companion-heading>p:last-child { max-width:30ch; margin-top:clamp(14px,2.5dvh,24px); font-size:clamp(14px,1.1vw,17px); line-height:1.6 }
body.home-page .companion-portrait { position:absolute; inset:0 0 0 43%; width:auto; height:100%; z-index:0; transform:none }
body.home-page .companion-portrait img { width:100%; height:100%; object-fit:cover; object-position:85% center; aspect-ratio:auto; mask-image:linear-gradient(90deg,transparent,#000 20%) }
body.home-page .companion-portrait figcaption { bottom:22px; right:var(--page-pad); color:#666; text-shadow:none; font-size:8px }
body.home-page .companion-details { grid-column:1; position:relative; z-index:1; padding:0; min-width:0; max-width:430px }
body.home-page .companion-intro { margin:0; color:#646965; font-size:12px; line-height:1.5; letter-spacing:0 }
body.home-page .companion-choices { display:flex; flex-wrap:wrap; gap:clamp(16px,2vw,28px); margin-top:15px; border-bottom:1px solid #c9cbc5 }
body.home-page .companion-choices button { min-height:44px; padding:8px 0; border:0; border-bottom:1px solid transparent; border-radius:0; background:none; color:#747976; font-size:12px }
body.home-page .companion-choices button[aria-selected=true] { color:#111314; border-bottom-color:#111314 }
body.home-page .companion-panel { min-height:5.1em; margin-top:16px; max-width:35ch; font-size:14px; line-height:1.7; color:#555c58 }
body.home-page .companion-panel p { margin:0 }
body.home-page .companion-details .quiet-link { margin-top:12px; min-height:44px; font-size:12px }


body.home-page .home-invitation { display:flex; align-items:center; padding:var(--frame-top) 0 var(--frame-bottom) }
body.home-page .home-invitation h2 { font-size:clamp(32px,3.5vw,48px) }
body.home-page .home-invitation .chapter-kicker { margin-bottom:clamp(14px,3dvh,30px) }
body.home-page .home-invitation p:not(.chapter-kicker) { margin-top:clamp(14px,3dvh,28px) }
body.home-page .home-invitation .button-primary { margin-top:clamp(18px,3dvh,28px) }

@media(max-aspect-ratio:1/1) {
  body.home-page #embodiment { grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(0,1fr) auto; gap:14px; padding:var(--frame-top) 0 20px }
  body.home-page #embodiment .companion-heading { grid-column:1; padding:0 var(--page-pad) }
  body.home-page .companion-heading h2 { max-width:15em; font-size:clamp(28px,min(7.5vw,5dvh),40px) }
  body.home-page .companion-heading>p:last-child { max-width:none; margin-top:12px; font-size:14px }
  body.home-page .companion-portrait { position:relative; inset:auto; grid-row:2; width:100%; height:100%; min-height:0 }
  body.home-page .companion-portrait img { mask-image:none; object-fit:cover; object-position:85% 65% }
  body.home-page .companion-portrait figcaption { bottom:10px; font-size:7px }
  body.home-page .companion-details { grid-column:1; grid-row:3; width:100%; max-width:none; padding:0 var(--page-pad) }
  body.home-page .companion-intro { font-size:11px }
  body.home-page .companion-choices { margin-top:4px; gap:24px }
  body.home-page .companion-panel { min-height:3.4em; max-width:60ch; margin-top:10px; font-size:13px; line-height:1.7 }
  body.home-page .companion-details .quiet-link { margin-top:4px }
}
@media(max-width:380px) and (min-aspect-ratio:1/2) {
  body.home-page .hero h1 { font-size:36px }
}
@media(max-height:650px) and (min-aspect-ratio:1/1) {
  body.home-page { --frame-top:calc(var(--header-height) + 12px); --frame-bottom:16px }
  body.home-page .hero { padding-bottom:90px }
  body.home-page .hero h1 { font-size:clamp(32px,8dvh,40px) }
  body.home-page .hero-lead { font-size:13px; line-height:1.5; margin:10px 0 }
  body.home-page .hero-footer { bottom:10px }
  body.home-page #embodiment { grid-template-columns:44% 56%; gap:8px 0 }
  body.home-page .companion-heading h2 { font-size:clamp(28px,7dvh,36px); max-width:12em }
  body.home-page .companion-heading .chapter-kicker { margin-bottom:8px }
  body.home-page .companion-heading>p:last-child { margin-top:8px; font-size:12px; line-height:1.5 }
  body.home-page .companion-intro { font-size:10px }
  body.home-page .companion-choices { margin-top:2px; gap:18px }
  body.home-page .companion-choices button { font-size:11px; min-height:36px }
  body.home-page .companion-panel { margin-top:8px; font-size:12px; min-height:3.2em; line-height:1.6 }
  body.home-page .companion-details .quiet-link { margin-top:2px; min-height:34px; font-size:11px }
}

/* One gallery keeps the three life-stage films together. */
body.home-page .film-gallery { position:relative; display:grid; place-items:center; padding:var(--frame-top) var(--page-pad) var(--frame-bottom); background:#111314; }
body.home-page .film-gallery > .anchor-alias { position:absolute; inset-block-start:0; inset-inline-start:0; width:0; height:0; min-height:0; margin:0; padding:0; }
body.home-page .film-gallery-inner { display:grid; gap:16px; width:min(760px,100%,max(240px,calc((100dvh - var(--header-height) - 450px) * 320 / 137))); min-width:0; }
body.home-page .gallery-heading { text-align:center; }
body.home-page .gallery-heading .chapter-kicker { margin:0 0 8px; font-size:9px; line-height:1.5; color:#919891; }
html body.home-page .gallery-heading h2 { margin:0; font-size:28px; font-weight:400; line-height:1.3; letter-spacing:-.02em; text-wrap:balance; }
body.home-page .film-choices { display:flex; justify-content:center; gap:28px; min-width:0; }
body.home-page .film-choices button { min-height:40px; padding:6px 0; border:0; border-bottom:1px solid transparent; border-radius:0; background:none; color:#919891; font:inherit; font-size:12px; white-space:nowrap; }
body.home-page .film-choices button[aria-selected=true] { color:#edece6; border-bottom-color:#edece6; }
body.home-page .film-choices button:hover { color:#edece6; }
body.home-page .film-choices button:focus-visible { outline:1px solid #edece6; outline-offset:4px; }
body.home-page .film-gallery-stage, body.home-page .gallery-panel { min-width:0; width:100%; }
body.home-page .film-gallery-stage { position:relative; }
body.home-page .gallery-navigation { position:absolute; z-index:5; inset:0 0 auto; display:flex; align-items:center; justify-content:space-between; aspect-ratio:320/137; pointer-events:none; direction:ltr; }
body.home-page .gallery-arrow { display:grid; place-items:center; flex-shrink:0; width:48px; min-width:48px; height:64px; min-height:44px; margin:0; padding:0; border:0; border-radius:0; background:transparent; color:#eeece7; cursor:pointer; opacity:0; pointer-events:none; transition:opacity .18s ease; }
body.home-page .gallery-arrow svg { filter:drop-shadow(0 1px 5px #000b); }
body.home-page .film-gallery-stage:is([data-arrows-visible],:has(:focus-visible)) .gallery-arrow { opacity:.85; pointer-events:auto; }
body.home-page .gallery-arrow:focus-visible { opacity:1; outline:1px solid #eeece7; outline-offset:-5px; background:#11131455; }
@media(hover:hover) {
  body.home-page .film-gallery-stage:hover .gallery-arrow { opacity:.75; pointer-events:auto; }
  body.home-page .film-gallery-stage .gallery-arrow:hover { opacity:1; background:#11131433; }
}
@media(prefers-reduced-motion:reduce) { body.home-page .gallery-arrow { transition:none; } }
body.home-page .film-gallery .motion-film { position:relative; display:block; width:100%; max-width:none; margin:0; padding:0; }
body.home-page .film-gallery .film-player { display:grid; grid-template-rows:auto 40px; gap:0; width:100%; margin:0; padding:0; }
body.home-page .film-gallery video { display:block; width:100%; height:auto; aspect-ratio:320/137; object-fit:contain; border:0; border-radius:0; background:#111314; }
body.home-page .film-gallery .film-player .film-controls { position:relative; inset:auto; display:flex; justify-content:flex-end; flex-wrap:nowrap; gap:0; width:100%; max-width:none; height:40px; margin:0; padding:0; background:transparent; }
body.home-page .film-gallery .film-controls :is(.film-sound,.film-subtitles) { display:none; }
body.home-page .film-gallery .film-controls .film-watch { min-height:40px; padding:0; border:0; border-radius:0; background:transparent; color:#aeb2ae; font-size:10px; font-weight:400; }
body.home-page .film-gallery .film-watch::after { content:"↗"; margin-inline-start:8px; }
body.home-page .film-gallery .film-controls .film-toggle { position:absolute; inset-inline-end:10px; bottom:calc(100% + 10px); display:grid; place-items:center; width:32px; min-width:32px; height:32px; min-height:32px; padding:0; border:0; background:#11131466; font-size:0; opacity:0; }
body.home-page .film-gallery .film-toggle::before { content:""; width:0; height:0; border-block:5px solid transparent; border-inline-start:8px solid #edece6; }
body.home-page .film-gallery .is-playing .film-toggle::before { box-sizing:content-box; width:4px; height:10px; border-block:0; border-inline:2px solid #edece6; }
body.home-page .film-gallery .film-player:is(:hover,:focus-within) .film-toggle { opacity:1; }
body.home-page .film-gallery .film-player.is-watching :is(.film-watch,.film-toggle) { display:none; }
body.home-page .film-gallery .film-player.is-watching .film-subtitles { display:flex; align-items:center; gap:8px; color:#aeb2ae; font-size:10px; }
body.home-page .film-gallery .film-subtitles select { max-width:130px; min-height:32px; padding:4px; border:0; border-radius:0; background:#111314; color:inherit; font-size:10px; }
body.home-page .film-gallery .motion-caption { position:absolute; inset-inline-start:0; bottom:13px; display:block; width:auto; max-width:65%; margin:0; padding:0; pointer-events:none; }
body.home-page .film-gallery .motion-caption p { margin:0; color:#919891; font-size:9px; line-height:1.5; }
body.home-page .gallery-caption { box-sizing:border-box; min-height:90px; padding-top:12px; text-align:center; }
html body.home-page .gallery-caption h3 { margin:0; font-size:20px; font-weight:400; line-height:1.3; letter-spacing:-.02em; text-wrap:balance; }
body.home-page .gallery-caption p { margin:8px 0 0; color:#aeb2ae; font-size:13px; line-height:1.6; text-wrap:pretty; }
body.home-page .gallery-next { justify-self:center; min-height:40px; margin:0; font-size:11px; }
@media(hover:none) { body.home-page .film-gallery .film-controls .film-toggle { opacity:1; } }
@media(max-width:600px) {
  body.home-page .film-gallery-inner { width:100%; gap:14px; }
  html body.home-page .gallery-heading h2 { font-size:24px; }
  html body.home-page .gallery-caption h3 { font-size:18px; }
  body.home-page .gallery-caption p { font-size:12px; }
}
@media(max-height:650px) and (min-aspect-ratio:1/1) {
  body.home-page .film-gallery-inner { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); grid-template-rows:auto auto auto; gap:16px 32px; align-items:center; width:min(960px,100%); }
  body.home-page .gallery-heading { grid-column:1; grid-row:1; align-self:end; text-align:start; }
  html body.home-page .gallery-heading h2 { font-size:24px; }
  body.home-page .film-choices { grid-column:1; grid-row:2; justify-content:flex-start; gap:20px; }
  body.home-page .film-choices button { font-size:11px; }
  body.home-page .film-gallery-stage { grid-column:2; grid-row:1 / 4; width:min(100%,calc((100dvh - var(--frame-top) - var(--frame-bottom) - 116px) * 320 / 137)); justify-self:center; }
  body.home-page .gallery-caption { min-height:76px; padding-top:8px; text-align:start; }
  html body.home-page .gallery-caption h3 { font-size:18px; }
  body.home-page .gallery-caption p { margin-top:6px; font-size:11px; line-height:1.5; }
  body.home-page .gallery-next { grid-column:1; grid-row:3; justify-self:start; align-self:start; min-height:32px; font-size:10px; }
}
