@layer evolution {
  /* One coordinate model for the room. Frame height is constrained by viewport height. */
  .living-room { height:100svh; min-height:0; background:#c1b788; }
  .story-stage { --gallery-top:clamp(85px,11svh,120px); --frame-w:min(28vw,calc((48svh - 50px)*1.4634)); --wall-bottom:67%; inset:0; background:#c1b788; }
  .story-wall { position:absolute; inset:0 0 auto; height:var(--wall-bottom); background:#40747b; overflow:hidden; }
  .wall-lines,.floor-light { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
  .wall-panelling { position:absolute; bottom:0; width:100%; height:20%; }
  .room-window { position:absolute; right:-1%; top:0; width:18%; height:80%; }
  .window-drawing { width:100%; height:100%; }
  .curtain-left,.curtain-right { transform-origin:top; }
  .story-gallery { position:absolute; inset:0; }
  .story-gallery .cartoon-picture { position:absolute; top:var(--gallery-top); width:var(--frame-w); }
  .story-gallery .picture-youtube { left:calc(48% - var(--frame-w) - 16px); }
  .story-gallery .picture-driplips { left:calc(48% + 16px); }
  .story-gallery .frame-motion,.story-gallery .wood-frame { animation:none; }
  .story-gallery .cartoon-caption { font-size:12px; padding:10px 13px; }
  .boris-portrait { position:absolute; left:3%; top:calc(var(--gallery-top) + 4svh); width:clamp(92px,11vw,170px); overflow:visible; }
  .room-header { padding:20px 24px; gap:16px; }
  .home-brand img { width:clamp(130px,14vw,210px); }
  .room-header nav { gap:22px; font-size:12px; }
  .room-welcome { position:absolute; top:26px; left:46%; translate:-50% 0; text-align:center; color:#f8f1dc; rotate:-1deg; }
  .room-welcome strong { display:block; font-size:clamp(23px,2.5vw,36px); font-weight:850; letter-spacing:-.06em; }
  .room-welcome span { font-size:11px; }
  .story-actors { --actor-h:min(36svh,25vw); position:absolute; left:50%; translate:-50% 0; bottom:54px; width:calc(var(--actor-h)*1.42); height:var(--actor-h); }
  .actor-girl { position:absolute; left:0; bottom:0; width:calc(var(--actor-h)*.784); height:100%; z-index:2; transform-origin:center bottom; }
  .girl-puppet { display:block; width:100%; height:100%; overflow:visible; }
  .actor-tv { position:absolute; left:calc(var(--actor-h)*.5); bottom:0; width:calc(var(--actor-h)*.915); height:100%; transform-origin:center bottom; }
  .television-puppet { display:block; width:100%; height:100%; overflow:visible; }
  .girl-head { transform-box:fill-box; transform-origin:50% 95%; }
  .girl-arm { transform-box:fill-box; transform-origin:0 50%; }
  .girl-talk,.girl-blink { opacity:0; }
  .girl-mouth,.tv-mouth { transform-box:fill-box; transform-origin:center; }
  .tv-rig { transform-box:fill-box; transform-origin:50% 90%; }
  .tv-aerial { transform-box:fill-box; transform-origin:45% 100%; }
  .tv-tear { opacity:0; transform-box:fill-box; transform-origin:center top; }
  .tv-mouth { opacity:0; }
  .is-crying .tv-mouth,.has-cried .tv-mouth { opacity:1; }
  .is-crying .tv-sad-mouth,.has-cried .tv-sad-mouth { opacity:0; }
  .actor-shadow { position:absolute; bottom:0; display:block; height:8px; border-radius:50%; background:#4b422d20; filter:blur(2px); }
  .girl-shadow { left:14%; width:36%; }
  .television-shadow { left:49%; width:45%; }
  .actor-dialog { position:absolute; top:2%; left:47%; translate:-50% -100%; width:max-content; margin:0; padding:10px 18px; border:2px solid #171512; background:#fff8e3; color:#191a16; box-shadow:3px 3px 0 #171512; font-size:clamp(13px,1.5vw,21px); font-weight:850; rotate:-3deg; opacity:0; pointer-events:none; }
  .actor-dialog::after { content:''; position:absolute; width:12px; height:12px; background:inherit; bottom:-8px; left:50%; border-right:2px solid #171512; border-bottom:2px solid #171512; rotate:45deg; }
  .actor-dialog.is-visible { opacity:1; }
  .tv-dialog { display:none; }
  .actor-girl.is-speaking .girl-talk { opacity:1; }
  .room-brand-sign { position:absolute; bottom:18%; right:4%; background:#ef2137; color:#090909; font-size:clamp(16px,2.3vw,34px); letter-spacing:-.07em; font-weight:900; text-decoration:none; padding:5px 10px; rotate:-7deg; border:2px solid #171512; box-shadow:3px 4px 0 #171512; }
  .store-ticket { display:flex; align-items:center; gap:10px; padding:9px 14px 10px 11px; color:#171512; background:#fcf3d4; border:3px solid #171512; box-shadow:4px 4px 0 #171512; rotate:2deg; transition:rotate .25s,translate .25s; }
  .store-ticket svg { width:25px; height:28px; flex-shrink:0; }
  .store-ticket b { display:block; font-size:15px; font-weight:850; letter-spacing:-.05em; }
  .store-ticket small { display:block; margin-top:3px; font-size:9px; font-weight:500; }
  .store-ticket:hover { rotate:-1deg; translate:0 -2px; }
  .store-ticket:active { translate:2px 2px; }
  .room-footer { z-index:4; min-height:44px; height:44px; padding:0 24px 3px; grid-template-columns:1fr auto 1fr; gap:14px; background:transparent; color:#29342b; }
  .room-footer nav { gap:16px; font-size:10px; }
  .room-footer nav a { display:inline-flex; align-items:center; min-height:40px; }
  .room-footer > p { font-size:9px; line-height:1.3; }
  .scene-replay { color:inherit; background:transparent; border:0; border-bottom:1px solid #64715a; font-size:11px; padding:6px 12px; min-height:40px; }
  .scene-replay:hover { background:#f7efd422; }
  .room-title { top:auto; bottom:65px; left:24px; font-size:11px; color:#29342b; width:auto; height:auto; clip-path:none; overflow:visible; }
  .room-title span { font-size:10px; }
  .room-note { display:none; }
  @media (max-aspect-ratio:1/1) {
    .story-stage { --gallery-top:clamp(196px,28svh,255px); --frame-w:46vw; --wall-bottom:calc(var(--gallery-top) + 32vw + 52px); }
    .room-header { padding:16px; }
    .home-brand img { width:clamp(112px,30vw,160px); }
    .room-header nav { max-width:53%; gap:10px 16px; font-size:10px; }
    .store-ticket { border-width:2px; padding:6px 10px; gap:7px; box-shadow:3px 3px 0 #171512; }
    .store-ticket svg { width:20px; height:23px; }
    .store-ticket b { font-size:12px; }
    .store-ticket small { display:none; }
    .boris-portrait { width:clamp(86px,25vw,140px); left:4%; top:82px; }
    .room-welcome { left:65%; top:122px; width:60%; }
    .room-welcome strong { font-size:clamp(24px,6vw,33px); }
    .room-welcome span { display:block; max-width:160px; margin:5px auto 0; font-size:10px; line-height:1.4; }
    .story-gallery .picture-youtube { left:2%; }
    .story-gallery .picture-driplips { left:52%; }
    .story-gallery .cartoon-caption { font-size:9px; padding:7px; }
    .room-window { display:none; }
    .wall-panelling { height:45px; }
    .floor-light { opacity:.4; }
    .story-actors { --actor-h:min(38svh,calc((100vw - 20px)/1.42),calc(100svh - var(--gallery-top) - 32vw - 82px)); bottom:70px; }
    .actor-dialog { font-size:15px; padding:8px 12px; }
    .room-brand-sign { right:5%; bottom:48px; font-size:14px; border-width:1px; padding:3px 6px; box-shadow:2px 2px 0 #171512; }
    .room-title { bottom:49px; left:15px; font-size:9px; }
    .room-title span { display:none; }
    .room-footer { height:40px; min-height:40px; padding:0 13px; grid-template-columns:1fr auto; gap:5px; }
    .room-footer nav { gap:12px; font-size:10px; }
    .scene-replay { font-size:10px; min-height:38px; padding:5px 8px; }
    .room-footer > p { display:none; }
  }
  @media (min-aspect-ratio:1/1) and (max-height:560px) {
    /* Side-by-side composition: characters cannot intersect the paintings. */
    .story-stage { --gallery-top:60px; --frame-w:min(24vw,calc((48svh - 30px)*1.4634)); --wall-bottom:69%; }
    .room-header { padding:10px 16px; }
    .home-brand img { width:118px; }
    .room-header nav { gap:16px; font-size:10px; }
    .store-ticket { border-width:2px; padding:4px 9px; gap:6px; box-shadow:2px 2px 0 #171512; }
    .store-ticket svg { width:17px; height:20px; }
    .store-ticket b { font-size:11px; }
    .store-ticket small { display:none; }
    .room-welcome { top:17px; left:39%; }
    .room-welcome strong { font-size:20px; }
    .room-welcome span { display:none; }
    .story-gallery .picture-youtube { left:calc(69% - var(--frame-w) - 7px); }
    .story-gallery .picture-driplips { left:calc(69% + 7px); }
    .boris-portrait { left:3%; top:62px; width:min(13vw,27svh); }
    .story-actors { --actor-h:43svh; left:27%; bottom:35px; }
    .room-window { width:12%; height:70%; opacity:.6; }
    .wall-panelling { height:17%; }
    .actor-dialog { top:4%; left:57%; font-size:12px; padding:6px 11px; }
    .room-brand-sign { right:6%; bottom:18%; font-size:18px; }
    .room-footer { height:32px; min-height:32px; padding:0 16px; gap:10px; }
    .room-footer nav { font-size:9px; gap:14px; }
    .room-footer nav a,.scene-replay { min-height:32px; }
    .scene-replay { font-size:9px; }
    .room-footer > p { font-size:8px; }
    .room-title { bottom:42px; font-size:9px; left:auto; right:6%; }
    .room-title span { display:inline; font-size:8px; }
  }
  @media (max-height:340px) and (min-aspect-ratio:1/1) {
    .story-stage { --gallery-top:52px; }
    .boris-portrait { top:51px; width:23svh; }
    .room-brand-sign { font-size:14px; bottom:16%; }
    .room-title { display:none; }
  }
  /* Campaign: cream paper, black ink and lipstick red. */
  .campaign { --paper:#f5eddb; --ink:#201c19; --red:#bb1838; --muted:#6e635b; background:var(--paper); color:var(--ink); overflow-x:clip; }
  .campaign h1,.campaign h2,.campaign h3,.campaign p,.campaign figure { margin:0; }
  .campaign h2 { font-size:clamp(42px,5.5vw,78px); line-height:1; font-weight:850; letter-spacing:-.07em; }
  .campaign h2 em,.campaign h1 em { font-family:Georgia,serif; font-weight:400; letter-spacing:-.065em; }
  .campaign .eyebrow { font-size:10px; line-height:1.6; font-weight:750; letter-spacing:.18em; margin:0 0 20px; }
  .campaign .eyebrow > span { display:inline-flex; margin-right:13px; color:var(--red); }
  .campaign .hand-note { font:italic 19px/1.3 Georgia,serif; color:var(--red); display:block; rotate:-4deg; }
  .campaign .chapter-pad { padding:90px max(6vw,24px); }
  .film-masthead { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:21px max(4vw,20px); background:#fffcf5; border-bottom:1px solid #30292118; }
  .campaign-brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
  .campaign-brand img { display:block; width:112px; }
  .campaign-brand span { font-size:9px; letter-spacing:.18em; font-weight:800; color:var(--red); border-left:1px solid #c4b7a4; padding:10px 0 10px 12px; }
  .film-masthead nav { display:flex; align-items:center; gap:30px; }
  .film-masthead nav a { display:flex; align-items:center; min-height:44px; text-decoration:none; font-size:12px; font-weight:650; }
  .film-masthead nav a[aria-current] { text-decoration:underline; text-decoration-color:var(--red); text-decoration-thickness:2px; text-underline-offset:7px; }
  .film-masthead .masthead-store { padding:0 16px; gap:12px; border:1px solid #201c1933; }
  .film-masthead nav a:hover { color:var(--red); }
  .film-opening,.people-opening { position:relative; padding:110px max(6vw,24px) 35px; overflow:hidden; }
  .campaign .milk-edge { height:95px; }
  .campaign .milk-texture { background-size:500px auto; }
  .film-hero-grid { max-width:1320px; margin:auto; display:grid; grid-template-columns:1.1fr 1fr; gap:6vw; align-items:center; }
  .hero-copy { min-width:0; }
  .found-you { font:italic clamp(20px,2vw,27px)/1.4 Georgia,serif; color:var(--red); }
  .hero-copy h1 { margin:15px 0 0; }
  .hero-copy h1 img { display:block; width:100%; max-width:600px; filter:drop-shadow(0 1px 0 #fff8); }
  .hero-copy > .hand-note { text-align:right; margin:-8px 5% 26px 0; }
  .hero-pitch { font-size:clamp(30px,3.3vw,47px); font-weight:800; line-height:1.03; letter-spacing:-.06em; }
  .hero-deck { max-width:390px; font-size:15px; line-height:1.75; color:var(--muted); margin-top:18px!important; }
  .campaign-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-top:28px; }
  .action-red,.action-dark { display:inline-flex; gap:12px; align-items:center; justify-content:center; min-height:50px; padding:15px 23px; background:var(--red); color:#fff9ed; font-size:13px; font-weight:700; text-decoration:none; border:1px solid transparent; transition:translate .25s,box-shadow .25s; }
  .action-dark { background:var(--ink); }
  .action-red:hover,.action-dark:hover { translate:0 -3px; box-shadow:4px 4px 0 #a98e7250; }
  .action-text { display:inline-flex; align-items:center; min-height:44px; font-size:12px; font-weight:650; text-underline-offset:5px; }
  .hero-poster { position:relative; rotate:3deg; margin:0 5px 20px!important; background:#fffbf2; padding:12px; box-shadow:15px 18px 0 #3d302410; transition:rotate .7s; }
  .hero-poster > img { width:100%; display:block; aspect-ratio:1920/1476; object-fit:contain; background:#efc0a7; }
  .hero-poster figcaption { padding:18px 7px 8px; display:flex; align-items:center; justify-content:space-between; gap:15px; }
  .hero-poster figcaption span { font-size:8px; font-weight:750; letter-spacing:.15em; max-width:105px; line-height:1.7; }
  .hero-poster figcaption b { text-align:right; font:italic 19px/1.1 Georgia,serif; }
  .poster-stamp { position:absolute; bottom:115px; right:-25px; border:2px solid var(--red); color:var(--red); background:#faf0d7; rotate:-14deg; font-size:12px; font-weight:850; line-height:1.1; text-align:center; padding:12px 15px; }
  .hero-poster:hover { rotate:1deg; }
  .scroll-invite { display:flex; align-items:center; justify-content:space-between; width:180px; margin:42px auto 0; min-height:40px; font-size:10px; text-decoration:none; border-bottom:1px solid #b3a58d; }
  .scroll-invite span { font-size:22px; }
  .chapter-heading { display:grid; grid-template-columns:1fr 1.6fr 1fr; align-items:end; gap:35px; margin-bottom:38px; }
  .chapter-heading .eyebrow { align-self:start; margin-top:6px; }
  .chapter-heading > p:last-child { font-size:13px; line-height:1.7; color:var(--muted); }
  .trailer-chapter { background:#eee2ca; }
  .cinema { background:#191715; color:#fff5df; min-width:0; position:relative; border:1px solid #191713; }
  .cinema--trailer { max-width:1200px; margin:auto; box-shadow:12px 14px 0 #38291a13; }
  .cinema-stage { position:relative; aspect-ratio:16/9; min-height:200px; background:#000; overflow:hidden; }
  .cinema-launch { position:absolute; inset:0; display:block; text-decoration:none; overflow:hidden; background:#ebc0a8; }
  .cinema-trailer-art { position:absolute; inset:0; background:radial-gradient(ellipse at 20% 10%,#f8eed0,transparent 55%),#e8b199; }
  .cinema-title-art { position:absolute; z-index:2; top:20%; left:5%; width:47%; rotate:-2deg; }
  .cinema-poster-art { position:absolute; right:-1%; top:0; height:260%; width:60%; object-fit:cover; object-position:50% 0; mask-image:linear-gradient(90deg,transparent,#000 40%); }
  .cinema-kicker { position:absolute; z-index:2; top:7%; left:5%; font-size:10px; font-weight:800; letter-spacing:.2em; color:#281815; }
  .cinema-play { display:flex; align-items:center; gap:14px; position:absolute; z-index:3; bottom:13%; left:5%; color:#fff9e8; padding:10px 20px 10px 10px; background:#201b18; border:1px solid #fff2; transition:translate .3s,box-shadow .3s; }
  .cinema-play > span { display:grid; place-items:center; width:44px; height:44px; border:1px solid #f9e6b6; border-radius:50%; padding-left:3px; font-size:17px; }
  .cinema-play b { font-size:15px; letter-spacing:-.04em; }
  .cinema-play small { font-size:11px; color:#d0c2a9; padding-left:10px; }
  .cinema-launch:hover .cinema-play { translate:0 -3px; box-shadow:5px 5px 0 #b9213e; }
  .cinema-consent { position:absolute; z-index:3; left:5%; bottom:4%; font-size:9px; color:#3f2621; }
  .cinema-mount { position:absolute; inset:0; }
  .cinema-mount iframe { display:block; width:100%; height:100%; border:0; }
  .cinema-controls { display:flex; align-items:center; gap:9px; padding:10px 14px; background:#191715; color:#f8edcc; }
  .cinema-controls button { display:grid; place-items:center; border:1px solid #6b6252; border-radius:0; width:44px; height:44px; background:transparent; color:inherit; font-size:20px; flex-shrink:0; }
  .cinema-controls button:hover { background:#3d3527; }
  .film-clock { font-size:11px; font-variant-numeric:tabular-nums; min-width:74px; white-space:nowrap; }
  .film-seek { flex:1; min-width:35px; accent-color:#ddacaf; height:32px; cursor:pointer; }
  .cinema-meta { display:flex; justify-content:space-between; gap:18px; align-items:center; padding:13px 20px; border-top:1px solid #ffffff17; }
  .cinema-meta p { margin:0; font-size:11px; line-height:1.4; }
  .cinema-meta a { color:#d8cbb0; font-size:10px; white-space:nowrap; }
  .cinema-cover { width:100%; height:100%; object-fit:cover; opacity:.35; }
  .cinema--snippet .cinema-launch { background:#281620; }
  .cinema--snippet:nth-child(2) .cinema-launch { background:#183733; }
  .cinema--snippet .cinema-kicker { color:#f2d8a2; }
  .cinema-headline { position:absolute; top:23%; left:5%; font-size:clamp(27px,3vw,43px); line-height:1.02; letter-spacing:-.06em; color:#fff4dd; font-weight:800; }
  .cinema--snippet .cinema-play { bottom:14%; padding:7px 14px 7px 9px; gap:10px; }
  .cinema--snippet .cinema-play > span { width:34px; height:34px; font-size:13px; }
  .cinema--snippet .cinema-play b { font-size:12px; }
  .cinema--snippet .cinema-consent { color:#d4c9b2; }
  .sound-bars { display:flex; gap:4px; align-items:center; position:absolute; right:7%; bottom:22%; height:34px; opacity:.7; }
  .sound-bars i { width:3px; height:18px; background:#e4c583; }
  .sound-bars i:nth-child(3n) { height:30px; }
  .sound-bars i:nth-child(2n) { height:10px; }
  .cinema:fullscreen { display:flex; flex-direction:column; background:#000; border:0; width:100%; height:100%; }
  .cinema:fullscreen .cinema-stage { flex:1; aspect-ratio:auto; }
  .cinema:fullscreen .cinema-meta { display:none; }
  .banter-ribbon { display:flex; justify-content:space-around; gap:35px; padding:21px 24px; background:var(--red); color:#fff6e1; white-space:nowrap; overflow:hidden; font-size:15px; font-weight:800; letter-spacing:-.04em; }
  .banter-ribbon b { font-weight:400; font-family:Georgia,serif; font-style:italic; }
  .story-layout { display:grid; grid-template-columns:1fr 1fr; gap:9vw; align-items:start; }
  .section-heading .hand-note { margin-top:26px; }
  .story-prose { font-size:17px; line-height:1.85; color:#4f453e; }
  .story-prose p + p { margin-top:25px; }
  .story-prose .story-lead { font-size:23px; line-height:1.6; letter-spacing:-.035em; color:var(--ink); }
  .campaign mark { background:#e6c5b3; }
  .small-banter { font:italic 22px/1.45 Georgia,serif; color:var(--red); }
  .nanny-interlude { display:grid; grid-template-columns:240px 1fr; align-items:center; max-width:850px; margin:95px auto 0!important; gap:60px; }
  .nanny-photo { position:relative; rotate:-5deg; background:#dfc8aa; padding:10px 10px 30px; box-shadow:8px 9px 0 #30211a10; }
  .nanny-photo img { display:block; width:100%; height:260px; object-fit:cover; object-position:50% 40%; }
  .nanny-interlude blockquote { margin:0; }
  .nanny-interlude blockquote > p { font-size:clamp(35px,4.6vw,65px); line-height:1.05; font-weight:800; letter-spacing:-.055em; }
  .nanny-interlude blockquote em { font-family:Georgia,serif; font-weight:400; color:var(--red); }
  .nanny-interlude cite { display:block; font-size:13px; font-style:normal; font-weight:650; margin-top:23px; }
  .nanny-interlude small { display:block; font-size:10px; color:var(--muted); margin-top:8px; }
  .sound-chapter { background:#201c19; color:#fff3db; }
  .sound-chapter .chapter-heading > p:last-child { color:#c8bcaa; }
  .sound-chapter .eyebrow > span { color:#ee9b9c; }
  .sound-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
  .why-chapter { display:grid; grid-template-columns:1fr 1.2fr; gap:8vw; align-items:center; }
  .why-copy > p:not(.eyebrow) { font-size:18px; line-height:1.75; max-width:390px; margin-top:30px; }
  .why-copy > p.small-banter { font:italic 23px/1.4 Georgia,serif; }
  .reaction-shot { background:#fffcf3; padding:12px 12px 18px; rotate:3deg; box-shadow:10px 12px 0 #44311e13; }
  .reaction-shot img { display:block; width:100%; }
  .reaction-shot figcaption { padding:12px 5px 0; font:italic 30px/1 Georgia,serif; color:var(--red); }
  .sketch-chapter { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:7vw; padding-top:20px!important; }
  .sketch-chapter img { width:100%; display:block; }
  .sketch-chapter figcaption { font-size:10px; line-height:1.6; color:var(--muted); margin-top:12px; }
  .sketch-chapter p:not(.eyebrow) { margin-top:25px; font-size:17px; line-height:1.75; }
  .sketch-chapter .action-text { margin-top:16px; }
  .caution-chapter { background:#bb1838; color:#fff2de; position:relative; }
  .caution-chapter h2 { max-width:1050px; font-size:clamp(40px,6.7vw,94px); }
  .caution-copy { display:grid; grid-template-columns:1fr 1fr; max-width:900px; gap:70px; margin-top:40px; font-size:16px; line-height:1.8; }
  .warning-stamp { display:inline-block; border:1px solid #ffedce80; rotate:-2deg; padding:10px 17px; margin-top:35px!important; font-size:11px; font-weight:750; letter-spacing:.06em; }
  .release-chapter { display:grid; grid-template-columns:1fr 1fr; gap:9vw; align-items:center; }
  .release-status { max-width:340px; display:flex; align-items:flex-start; gap:12px; padding:17px 0; margin-top:28px!important; border-block:1px solid #8e886444; color:#444c2a; font-size:10px; letter-spacing:.07em; line-height:1.7; font-weight:750; }
  .release-status span { width:8px; height:8px; flex-shrink:0; margin-top:4px; background:#697447; border-radius:50%; }
  .release-follow h3 { font-size:28px; line-height:1.1; font-weight:800; letter-spacing:-.045em; }
  .release-follow > p { font-size:15px; line-height:1.8; margin:22px 0 25px; max-width:410px; color:var(--muted); }
  .campaign .banter-art { max-width:410px; margin:25px 0 0; gap:25px; grid-template-columns:1.9fr 1fr; }
  .campaign .banter-art img { max-height:110px; object-fit:contain; }
  .merch-chapter { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:8vw; padding-top:15px!important; }
  .campaign .merch-art { margin:0; rotate:-2deg; }
  .merch-chapter p:not(.eyebrow) { margin:25px 0; max-width:400px; font-size:16px; line-height:1.8; color:var(--muted); }
  .people-teaser { background:#e9dcc3; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:8vw; }
  .teaser-faces { display:flex; align-items:center; padding:20px; }
  .teaser-faces img { width:40%; aspect-ratio:1; object-fit:cover; border-radius:50%; border:8px solid #f7efdc; margin-left:-7%; rotate:-8deg; }
  .teaser-faces img:nth-child(2) { translate:0 -25px; rotate:8deg; }
  .people-teaser .action-dark { margin-top:26px; }
  .campaign-footer { padding:65px max(6vw,24px) 24px; background:#201c19; color:#f8ead2; }
  .footer-lead { display:grid; grid-template-columns:1.3fr 1fr; align-items:center; gap:8vw; padding-bottom:55px; border-bottom:1px solid #f9e5c52b; }
  .footer-brand { font-size:clamp(35px,5vw,72px); font-weight:900; letter-spacing:-.07em; line-height:.98; text-decoration:none; }
  .footer-brand em { color:#da8a8e; font-family:Georgia,serif; font-weight:400; }
  .footer-lead p { font-size:13px; line-height:1.9; color:#d5c6b3; max-width:440px; }
  .footer-lead p span { display:block; margin-top:12px; }
  .footer-directory { display:grid; grid-template-columns:1fr 1fr 1.3fr; gap:45px; padding:45px 0; }
  .footer-directory .eyebrow { color:#ad9d89; font-size:8px; display:block; margin-bottom:18px; }
  .footer-directory nav { display:flex; flex-direction:column; align-items:flex-start; }
  .footer-directory nav a { display:inline-flex; align-items:center; min-height:34px; color:#f8ead2; font-size:12px; text-decoration:none; }
  .footer-directory h2 { font-size:25px; letter-spacing:-.04em; margin-bottom:15px; }
  .footer-directory section p { font-size:12px; line-height:1.9; color:#c6b7a3; }
  .footer-email { display:inline-flex; align-items:center; min-height:44px; margin-top:12px; font-size:12px; }
  .footer-extras { display:flex; justify-content:space-between; align-items:flex-start; gap:40px; padding:25px 0; border-block:1px solid #f9e5c52b; }
  .campaign-footer .banter-menu { border:0; padding:0; margin:0; max-width:320px; }
  .campaign-footer .banter-menu summary { font:italic 18px/1.5 Georgia,serif; }
  .campaign-footer .banter-menu h3 { font-size:13px; margin-top:20px; }
  .campaign-footer .banter-menu ul { font-size:12px; color:#c6b7a3; }
  .footer-tools { display:flex; flex-wrap:wrap; gap:15px; justify-content:flex-end; }
  .footer-tools button,.footer-tools a { display:inline-flex; align-items:center; min-height:36px; border:0; background:none; padding:0; color:#b8aa96; text-decoration:underline; font-size:10px; }
  .campaign-colophon { display:flex; flex-wrap:wrap; justify-content:space-between; gap:15px; color:#b8aa96; font-size:9px; padding-top:25px; }
  .campaign-footer a:hover,.campaign-footer button:hover { color:#fff; }
  /* Team: an editorial cast list instead of a WordPress card grid. */
  .people-opening { text-align:center; padding-top:125px; padding-bottom:65px; }
  .people-opening h1 { font-size:clamp(55px,8vw,108px); line-height:.97; letter-spacing:-.07em; font-weight:850; }
  .people-opening h1 em { color:var(--red); }
  .people-opening > p:not(.eyebrow) { font-size:15px; line-height:1.7; color:var(--muted); margin-top:24px; }
  .team-jump { display:flex; justify-content:center; flex-wrap:wrap; gap:25px; margin-top:30px; }
  .team-jump a { display:flex; align-items:center; min-height:44px; padding:8px 0; font-size:11px; text-decoration:none; border-bottom:1px solid #aca089; }
  .people-profiles { padding-top:20px!important; padding-bottom:20px!important; max-width:1400px; margin:auto; }
  .person-profile { display:grid; grid-template-columns:1fr 1.2fr; gap:8vw; align-items:center; padding:60px 0 80px; border-top:1px solid #beb19a; scroll-margin-top:25px; }
  .person-profile:nth-child(2) .person-art { order:2; }
  .person-profile:nth-child(2) .person-copy { order:1; }
  .person-art { position:relative; min-width:0; text-align:center; padding:15px 10px; }
  .person-number { position:absolute; top:0; left:0; color:#e0d4bd; font-size:clamp(140px,17vw,240px); font-weight:850; letter-spacing:-.09em; line-height:1; }
  .person-art .portrait-swing { position:relative; margin:0 auto; width:74%; max-width:320px; rotate:-4deg; }
  .person-profile:nth-child(2) .portrait-swing { rotate:5deg; }
  .person-profile .team-portrait { display:block; border:0; border-radius:42% 42% 38% 38%; width:100%; height:auto; box-shadow:8px 10px 0 #84725818; }
  .hair-caption,.portrait-note { position:relative; font:italic 17px/1.4 Georgia,serif; color:var(--red); margin-top:21px!important; rotate:-4deg; }
  .portrait-note { color:var(--muted); font-size:13px; }
  .person-copy h2 { font-size:clamp(38px,4.5vw,66px); }
  .person-copy h2 span { display:block; font:italic 1em/1 Georgia,serif; color:var(--red); letter-spacing:-.065em; }
  .person-copy .team-job { font-size:9px; text-transform:uppercase; font-weight:750; letter-spacing:.17em; color:var(--muted); margin-top:17px; }
  .person-intro { font-size:15px; line-height:1.8; margin-top:23px!important; max-width:480px; }
  .team-skills { display:flex; flex-wrap:wrap; list-style:none; padding:0; margin:25px 0; gap:7px; }
  .team-skills li { font-size:10px; border:1px solid #cabb9e; padding:7px 10px; line-height:1.5; }
  .person-copy .profile-socials { justify-content:flex-start; gap:25px; margin:18px 0 0; font-size:11px; }
  .person-copy .profile-socials a { display:flex; align-items:center; min-height:44px; gap:7px; }
  .people-join { background:#d4a1a1; text-align:center; }
  .people-join > p:not(.eyebrow) { max-width:510px; margin:30px auto; font-size:16px; line-height:1.8; }
  .people-join .hand-note { margin-top:25px; color:#702234; }
  .people-share { padding-block:35px!important; }
  .people-share .share-area { padding:0; max-width:none; margin:0; display:flex; gap:20px; align-items:center; justify-content:space-between; flex-wrap:wrap; text-align:left; }
  .people-share .share-area h2 { font-size:20px; letter-spacing:-.04em; }
  .people-share .share-platforms { margin:0; gap:8px; }
  .people-share .share-platforms a { background:transparent; border:0; border-bottom:1px solid #b6a98e; font-size:10px; padding:8px 2px; }
  .people-share .button { padding:10px 15px; min-height:44px; font-size:12px; }
  .people-share .share-status { display:block; width:100%; font-size:11px; }
  @media (prefers-reduced-motion:no-preference) {
    .is-crying .tv-tear { animation:local-tear .8s ease-in infinite; }
    .is-crying .tear-two { animation-delay:.15s; }
    .is-crying .tear-three { animation-delay:.4s; }
    .is-crying .tear-four { animation-delay:.55s; }
    .film-opening .hero-copy { animation:campaign-arrive .8s ease-out both; }
    .film-opening .hero-poster { animation:poster-arrive 1s .12s ease-out both; }
    .cinema-launch:hover .sound-bars i { animation:wave-banter .5s ease-in-out infinite alternate; }
    .cinema-launch:hover .sound-bars i:nth-child(2n) { animation-delay:-.3s; }
  }
  @keyframes local-tear { 0%{opacity:0;transform:translateY(0)}15%{opacity:.9}80%{opacity:.8}100%{opacity:0;transform:translateY(39px)} }
  @keyframes campaign-arrive { from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0} }
  @keyframes poster-arrive { from{opacity:0;translate:10px 20px;rotate:6deg}to{opacity:1;translate:0 0;rotate:3deg} }
  @keyframes wave-banter { to{transform:scaleY(.45)} }
  @media(max-width:1000px) {
    .film-hero-grid { gap:4vw; }
    .hero-poster figcaption b { font-size:15px; }
    .campaign .chapter-pad { padding-block:70px; }
    .chapter-heading { grid-template-columns:.8fr 1.4fr 1fr; gap:20px; }
    .chapter-heading h2 { font-size:49px; }
    .film-masthead nav { gap:23px; }
    .campaign-brand span { display:none; }
    .campaign-actions { gap:15px; }
    .cinema-headline { font-size:30px; }
    .sound-grid { gap:20px; }
    .footer-directory { gap:30px; }
  }
  @media(max-width:700px) {
    .campaign .chapter-pad { padding:55px 22px; }
    .campaign h2 { font-size:47px; }
    .campaign .eyebrow { font-size:8px; margin-bottom:17px; }
    .film-masthead { padding:12px 16px; gap:15px; }
    .campaign-brand img { width:88px; }
    .film-masthead nav { gap:18px; }
    .film-masthead nav a { font-size:10px; }
    .film-masthead .masthead-store { padding:0; border:0; gap:5px; }
    .film-opening { padding:90px 22px 25px; }
    .film-hero-grid { grid-template-columns:1fr; gap:45px; }
    .hero-copy { max-width:480px; margin:auto; }
    .found-you { font-size:22px; }
    .hero-copy h1 { margin-top:10px; }
    .hero-copy > .hand-note { font-size:16px; margin-top:-3px; margin-bottom:25px; }
    .hero-pitch { font-size:39px; }
    .hero-deck { font-size:14px; line-height:1.8; max-width:350px; }
    .hero-poster { display:none; }
    .hero-poster > img { aspect-ratio:4/3.6; }
    .hero-poster figcaption { padding:14px 3px 7px; }
    .hero-poster figcaption span { font-size:7px; }
    .hero-poster figcaption b { font-size:15px; }
    .poster-stamp { font-size:10px; right:-16px; bottom:90px; padding:10px; }
    .scroll-invite { margin-top:35px; }
    .chapter-heading { grid-template-columns:1fr; gap:14px; margin-bottom:25px; }
    .chapter-heading .eyebrow { margin:0; }
    .chapter-heading h2 { font-size:43px; }
    .chapter-heading > p:last-child { font-size:12px; }
    .chapter-heading > p:last-child br { display:none; }
    .cinema-stage { aspect-ratio:16/10; }
    .cinema-title-art { top:20%; width:56%; }
    .cinema-poster-art { width:65%; right:-8%; opacity:.7; }
    .cinema-kicker { font-size:8px; letter-spacing:.15em; }
    .cinema-play { bottom:16%; padding:7px 13px 7px 8px; gap:10px; }
    .cinema-play > span { height:34px; width:34px; font-size:14px; }
    .cinema-play b { font-size:12px; }
    .cinema-play small { font-size:9px; padding-left:4px; }
    .cinema-consent { font-size:8px; bottom:5%; }
    .cinema-controls { gap:5px; padding:7px; flex-wrap:wrap; }
    .cinema-controls button { width:38px; height:44px; font-size:17px; }
    .film-clock { min-width:66px; font-size:10px; }
    .film-seek { min-width:35px; }
    .cinema-meta { display:block; padding:11px; }
    .cinema-meta p { margin-bottom:8px; font-size:10px; }
    .cinema-meta a { font-size:9px; }
    .banter-ribbon { justify-content:flex-start; gap:25px; font-size:12px; padding:17px 22px; }
    .story-layout { grid-template-columns:1fr; gap:35px; }
    .section-heading .hand-note { margin-top:20px; font-size:17px; }
    .story-prose .story-lead { font-size:22px; }
    .story-prose { font-size:15px; line-height:1.8; }
    .small-banter { font-size:21px; }
    .nanny-interlude { grid-template-columns:110px 1fr; gap:24px; margin-top:60px!important; }
    .nanny-photo { padding:6px 6px 17px; }
    .nanny-photo img { height:150px; }
    .nanny-interlude blockquote > p { font-size:30px; }
    .nanny-interlude .eyebrow { font-size:7px; }
    .nanny-interlude cite { font-size:10px; margin-top:15px; }
    .nanny-interlude small { font-size:8px; line-height:1.6; }
    .sound-grid { grid-template-columns:1fr; gap:25px; }
    .cinema-headline { font-size:34px; }
    .why-chapter,.sketch-chapter,.release-chapter,.merch-chapter,.people-teaser { grid-template-columns:1fr; gap:40px; }
    .why-copy > p:not(.eyebrow) { font-size:16px; margin-top:23px; }
    .why-copy > p.small-banter { font-size:22px; }
    .reaction-shot { margin-inline:10px!important; }
    .sketch-chapter { padding-top:0!important; }
    .sketch-chapter > div { order:-1; }
    .sketch-chapter p:not(.eyebrow) { font-size:16px; }
    .caution-copy { grid-template-columns:1fr; gap:20px; margin-top:25px; font-size:15px; }
    .warning-stamp { font-size:9px; padding:10px; line-height:1.5; margin-top:28px!important; }
    .release-follow h3 { font-size:28px; }
    .release-follow > p { font-size:14px; }
    .campaign .banter-art { margin-top:28px; max-width:350px; }
    .merch-chapter { padding-top:10px!important; }
    .merch-chapter > div { order:-1; }
    .campaign .merch-art { margin-inline:5px; }
    .merch-chapter p:not(.eyebrow) { font-size:15px; }
    .people-teaser { gap:25px; }
    .teaser-faces { max-width:350px; margin:0 auto; padding:30px 30px 5px; }
    .campaign-footer { padding:50px 22px 20px; }
    .footer-lead { grid-template-columns:1fr; gap:28px; padding-bottom:35px; }
    .footer-brand { font-size:44px; }
    .footer-lead p { font-size:12px; }
    .footer-directory { grid-template-columns:1fr 1fr; gap:30px 25px; padding-block:35px; }
    .footer-directory > section { grid-column:1/-1; }
    .footer-directory section p { max-width:420px; }
    .footer-extras { flex-direction:column; gap:15px; }
    .footer-tools { gap:17px; justify-content:flex-start; }
    .campaign-colophon { font-size:8px; gap:15px; line-height:1.6; }
    .campaign-colophon > span:last-child { display:none; }
    .people-opening { padding:110px 22px 45px; }
    .people-opening h1 { font-size:67px; }
    .people-opening > p:not(.eyebrow) { font-size:13px; margin-top:25px; }
    .team-jump { gap:15px; margin-top:25px; }
    .team-jump a { font-size:10px; }
    .person-profile { grid-template-columns:1fr; gap:30px; padding:40px 0 50px; }
    .person-profile:nth-child(2) .person-art,.person-profile:nth-child(2) .person-copy { order:initial; }
    .person-art { max-width:350px; width:100%; margin:auto; }
    .person-art .portrait-swing { width:65%; }
    .person-number { font-size:160px; }
    .person-copy h2 { font-size:44px; }
    .hair-caption { font-size:16px; }
    .person-intro { font-size:14px; }
    .team-skills { gap:6px; margin-block:23px; }
    .team-skills li { font-size:9px; padding:6px 9px; }
    .people-join > p:not(.eyebrow) { font-size:15px; margin-block:25px; }
    .people-share .share-area { display:block; }
    .people-share .button { margin-top:20px; }
    .people-share .share-platforms { margin-top:20px; gap:12px; }
  }
  @media(max-width:360px) {
    .film-masthead { padding-inline:12px; gap:12px; }
    .film-masthead nav { gap:13px; }
    .campaign-brand img { width:75px; }
    .film-masthead nav a { font-size:9px; }
    .film-masthead .masthead-store span { display:none; }
    .campaign .chapter-pad { padding-inline:18px; }
    .hero-pitch { font-size:35px; }
    .campaign-actions { gap:7px 16px; }
    .action-red,.action-dark { font-size:12px; padding-inline:18px; }
    .people-opening h1 { font-size:59px; }
    .nanny-interlude { gap:18px; grid-template-columns:90px 1fr; }
    .nanny-photo img { height:135px; }
    .nanny-interlude blockquote > p { font-size:26px; }
    .cinema-controls .film-seek { order:5; flex-basis:100%; }
  }
  @media(prefers-reduced-motion:reduce) {
    .actor-dialog { transition:none; }
    .girl-talk,.girl-blink,.tv-tear { opacity:0; }
    .is-crying .tv-tear { animation:none; }
  }
}

@layer evolution {
  .story-actors > .girl-dialog { top:0; left:34%; translate:-50% -100%; }
  .story-stage[data-scene="speaking"] .room-welcome { opacity:0; }
  @media(max-aspect-ratio:1/1) {
    .story-actors > .girl-dialog { top:22%; left:61%; font-size:14px; }
    .girl-dialog::after { left:12%; }
  }
  @media(min-aspect-ratio:1/1) and (max-height:560px) {
    .story-actors > .girl-dialog { font-size:12px; }
  }
}
@layer evolution {
  .cinema-stage { width:100%; min-width:0; }
  .store-ticket b { white-space:nowrap; }
  @media(max-aspect-ratio:1/1) {
    .room-header { gap:8px; }
    .home-brand img { width:clamp(100px,28vw,160px); }
    .room-header nav { max-width:calc(100% - 112px); column-gap:12px; font-size:9.5px; }
  }
  @media(min-aspect-ratio:1/1) and (max-height:560px) { .room-window { display:none; } }
  @media(max-height:340px) and (min-aspect-ratio:1/1) { .boris-portrait { width:26svh; } }
  @media(max-width:700px) { .people-opening h1 { font-size:clamp(44px,14vw,62px); } }
}

@layer evolution {
  .campaign-footer :focus-visible { outline-color:#f8ead2; }
  @media(max-aspect-ratio:1/1) { .room-header nav { flex-wrap:wrap; } }
}

@layer evolution {
  /* Keep the original cast pixels and their original relative proportions. */
  .story-actors { width:calc(var(--actor-h)*1.2213); }
  .original-cast { display:block; width:100%; height:100%; overflow:visible; }
  .girl-performance.is-speaking[data-mouth] .girl-talk { opacity:1; }
  .is-crying .tv-dry-face,.has-cried .tv-dry-face { opacity:0; }
  .room-welcome { top:12px; width:240px; }
  .room-welcome strong { display:block; font-size:14px; line-height:1.2; }
  .room-welcome span { display:block; font-size:11px; line-height:1.4; margin-top:3px; }
  .room-welcome b { display:block; font-size:26px; font-weight:850; line-height:1.1; letter-spacing:-.06em; margin-top:4px; }
  @media(max-aspect-ratio:1/1) {
    .room-welcome { top:108px; left:66%; width:60%; }
    .room-welcome strong { font-size:14px; }
    .room-welcome span { max-width:170px; font-size:11px; margin:5px auto 0; }
    .room-welcome b { font-size:25px; margin-top:6px; }
  }
  @media(min-aspect-ratio:1/1) and (max-height:560px) {
    .room-welcome { top:4px; left:36%; width:165px; }
    .room-welcome strong { font-size:10px; }
    .room-welcome span { display:block; font-size:9px; line-height:1.2; margin-top:2px; }
    .room-welcome b { font-size:19px; margin-top:3px; }
  }
  /* A complete drip tile, including its longest tails and the gentle sway. */
  .campaign { --drip-tile:clamp(260px,28vw,400px); --drip-height:calc(var(--drip-tile)*384/997); }
  .campaign .milk-edge { height:calc(var(--drip-height)*1.06 + 12px); overflow:visible; }
  .campaign .milk-texture { inset:0; background-size:var(--drip-tile) auto; }
  .campaign .film-opening,.campaign .people-opening { padding-top:calc(var(--drip-height)*1.06 + 30px); }
  /* Original covers are never cropped, tinted or covered with replacement text. */
  .cinema--original .cinema-stage { aspect-ratio:16/9; min-height:0; }
  .cinema--original .cinema-stage:has(.cinema-launch[hidden]) { min-height:200px; }
  .cinema-original-cover { display:block; width:100%; height:100%; object-fit:contain; opacity:1; filter:none; }
  .cinema-cover-caption { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:10px 15px; border-top:1px solid #fff2; }
  .cinema-cover-caption > div { min-width:0; }
  .cinema-cover-caption b { display:block; font-size:12px; line-height:1.45; font-weight:650; }
  .cinema-cover-caption small { display:block; margin-top:4px; font-size:9px; line-height:1.5; color:#cabfac; }
  .cover-play { display:inline-flex; align-items:center; gap:9px; min-height:44px; padding:9px 15px; color:#fff4e2; background:#b51b36; font-size:11px; font-weight:700; text-decoration:none; white-space:nowrap; flex-shrink:0; }
  .cover-play:hover { background:#8e142b; }
  .cinema--original:has(.cinema-launch[hidden]) .cover-play { display:none; }
  @media(max-width:500px) {
    .cinema-cover-caption { padding:9px 11px; gap:10px; flex-wrap:wrap; }
    .cinema-cover-caption b { font-size:11px; }
    .cinema-cover-caption small { font-size:8px; }
    .cover-play { min-height:44px; padding:8px 12px; }
  }
}

@layer evolution {
  .mouth-pose { opacity:0; }
  .girl-performance[data-mouth="bad"] .mouth-pose-bad,
  .girl-performance[data-mouth="telly"] .mouth-pose-telly { opacity:1; }
}
