/* ═══════════════════════════════════════════════════════════════
   AISHITERU · the front · 20 September 2026
   The entrance she used to have, lifted whole. Under it, her eleven
   screens in her own words — one still page at a time, a magazine,
   never a wall. Her red at full strength, her pale pink for words
   on it, white paper under everything else. Nothing drawn, nothing
   across the writing, nothing shouting.
   ═══════════════════════════════════════════════════════════════ */
:root{
  --ai-red:#BD0006; --ai-red-lit:#D8121B; --ai-red-deep:#8E0007;
  --ai-pale:#FAE1F5; --ai-paper:#FEF5FC; --ai-white:#FFFFFF;
  --ai-ink:#B0070F; --ai-rose:rgba(189,0,6,.66); --ai-blush:#FDEAF7;
  --ai-display:"Bodoni Moda",Didot,"Bodoni 72","Cormorant Garamond","Iowan Old Style",Palatino,Georgia,serif;
  --ai-serif:"Cormorant Garamond","Iowan Old Style",Palatino,Georgia,serif;
  --ai-sans:Jost,"Helvetica Neue",Arial,sans-serif;
  --ai-jp:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","Songti SC",serif;
  --ai-script:"Savoye LET","Allura",cursive;
}
body.home{background:var(--ai-white)!important;color:var(--ai-ink);
 --body:var(--ai-ink);--body-soft:var(--ai-rose)}
html.ai-holding,html.ai-holding body{height:100%;overflow:hidden;overscroll-behavior:none}
body.home .ai{min-height:100vh} /* the world's own ink is maroon; hers, 13 September: never maroon text */
body.home .foot{display:none}
body.home .breath,body.home .grain,body.home .pageghost{display:none}
body.home .top{position:fixed;top:0;left:0;right:0;z-index:70;background:transparent}
body.home .top a.mark{color:var(--ai-red);transition:color .8s ease}
body.home[data-ground=red] .top a.mark{color:var(--ai-pale)}
body.home .top .shinagaki .bars i{background:var(--ai-red);transition:background .8s ease}
body.home[data-ground=red] .top .shinagaki .bars i{background:var(--ai-pale)}
body.home .top .shinagaki .jpword{color:var(--ai-red);transition:color .8s ease}
body.home[data-ground=red] .top .shinagaki .jpword{color:var(--ai-pale)}
body.home.menu-open .top a.mark{color:var(--ai-red)}
body.home.menu-open .top .shinagaki .bars i{background:var(--ai-red)}
body.home.menu-open .top .shinagaki .jpword{color:var(--ai-rose)}
body.home.menu-open .top{position:fixed;z-index:50}

/* ── THE ENTRANCE ── a magazine plate on paper that is alive ── */
.ent{position:fixed;top:0;left:0;width:100%;height:100%;z-index:60;overflow:hidden;
 background:var(--ai-paper);transition:opacity 1.5s ease}
.ent[hidden]{display:none}
.ent.leaving{opacity:0;pointer-events:none}
.ent,.ent *{color:var(--ai-red)}
.ent-bloom{position:absolute;left:50%;top:50%;width:200vmax;height:200vmax;border-radius:50%;
 transform:translate(-50%,-50%) scale(.10);opacity:0;will-change:transform;
 background:radial-gradient(closest-side,rgba(255,255,255,.98) 0%,rgba(255,250,253,.80) 22%,
   rgba(253,236,247,.46) 48%,rgba(250,225,245,0) 100%);
 transition:transform 6.4s cubic-bezier(.32,0,.18,1),opacity 2.4s ease}
.ent.lit .ent-bloom{opacity:1;transform:translate(-50%,-50%) scale(.40)}
.ent.dawned .ent-bloom{opacity:1;transform:translate(-50%,-50%) scale(1.35)}
.ent-bloom2{position:absolute;left:24%;top:70%;width:150vmax;height:150vmax;border-radius:50%;
 transform:translate(-50%,-50%) scale(.2);opacity:0;
 background:radial-gradient(closest-side,rgba(255,247,252,.70) 0%,rgba(251,232,246,.34) 44%,
   rgba(250,225,245,0) 100%);
 transition:transform 11s cubic-bezier(.3,0,.3,1),opacity 3.4s ease}
.ent.lit .ent-bloom2{opacity:1;transform:translate(-50%,-50%) scale(.85)}
.ent-wash{position:absolute;inset:-14%;z-index:0;pointer-events:none;opacity:.5;
 background:
  radial-gradient(38% 30% at 22% 24%,rgba(245,206,232,.55),transparent 70%),
  radial-gradient(34% 26% at 78% 30%,rgba(255,240,249,.65),transparent 72%),
  radial-gradient(46% 34% at 62% 82%,rgba(246,212,235,.45),transparent 74%);
 filter:blur(28px);animation:aishiteru-wash 34s ease-in-out infinite alternate}
@keyframes aishiteru-wash{
  0%{transform:scale(1) translate3d(0,0,0)}
  50%{transform:scale(1.09) translate3d(-1.6%,1.2%,0)}
  100%{transform:scale(1.04) translate3d(1.4%,-1%,0)}}
.ent-light{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;
 opacity:0;transition:opacity 3.4s ease}
.ent.lit .ent-light{opacity:1}
.ent-grain{position:absolute;inset:0;opacity:.05;pointer-events:none;
 background-image:repeating-linear-gradient(0deg,rgba(189,0,6,.09) 0 1px,transparent 1px 3px),
  repeating-linear-gradient(90deg,rgba(189,0,6,.07) 0 1px,transparent 1px 3px)}
.ent-stage{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:0;
 transform:scale(1);transition:transform 15s linear}
.ent.lit .ent-stage{transform:scale(1.035)}
.ent .beat{grid-area:1/1;position:relative;z-index:2;pointer-events:none;width:100%;
 opacity:0;filter:blur(13px);transform:scale(1.06) translateY(10px);
 transition:opacity 1.15s cubic-bezier(.3,0,.2,1),filter 1.35s cubic-bezier(.3,0,.2,1),
   transform 1.7s cubic-bezier(.22,.8,.28,1)}
.ent .beat.on{opacity:1;filter:blur(0);transform:none}
.ent .beat.gone{opacity:0;filter:blur(8px);transform:scale(.985) translateY(-8px);
 transition:opacity .95s ease,filter .95s ease,transform 1.2s ease}
:is(.ent,.plates) .plate{margin:0;max-width:none;display:block;padding:0 clamp(26px,7vw,90px);
 font-family:var(--ai-display)}
:is(.ent,.plates) .eyebrow{display:block;font-family:var(--ai-serif);
 font-size:clamp(9.5px,2.2vw,12.5px);letter-spacing:.74em;text-transform:uppercase;
 line-height:2.1;padding-left:.74em}
:is(.ent,.plates) .rule{display:block;width:1px;height:clamp(58px,11vh,120px);
 background:linear-gradient(var(--ai-red),rgba(189,0,6,0));opacity:.5;
 margin:clamp(38px,6.5vh,74px) auto clamp(26px,4.5vh,50px)}
:is(.ent,.plates) .aside{display:block;font-family:var(--ai-serif);font-style:italic;
 font-size:clamp(15px,3.4vw,26px);letter-spacing:.22em;line-height:1;
 margin:0 0 clamp(22px,4vh,44px)}
:is(.ent,.plates) .display{display:block;font-family:var(--ai-display);
 font-size:clamp(54px,15vw,190px);line-height:.9;letter-spacing:-.004em}
:is(.ent,.plates) .lede{display:block;font-family:var(--ai-display);
 font-size:clamp(21px,5vw,46px);line-height:1.3;letter-spacing:.008em;
 margin-bottom:clamp(26px,5vh,58px)}
:is(.ent,.plates) .script{display:block;font-family:var(--ai-script);
 font-size:clamp(112px,34vw,340px);line-height:.92;letter-spacing:.012em;margin:0;padding-bottom:.06em}
@media(min-width:900px){
  :is(.ent,.plates) .eyebrow{letter-spacing:.88em}
  :is(.ent,.plates) .display{font-size:clamp(120px,11.5vw,200px)}
  :is(.ent,.plates) .lede{font-size:clamp(30px,2.6vw,48px)}
  :is(.ent,.plates) .aside{font-size:clamp(20px,1.8vw,30px)}
  :is(.ent,.plates) .script{font-size:clamp(180px,17vw,320px)}}
.entskip{position:absolute;right:clamp(22px,4vw,46px);bottom:clamp(22px,4vw,46px);
 z-index:4;font-family:var(--ai-serif);font-size:10px;letter-spacing:.42em;
 text-transform:uppercase;color:var(--ai-red);background:none;border:0;
 border-bottom:1px solid rgba(189,0,6,.4);padding:0 0 6px;cursor:pointer;opacity:.5}
.entskip:hover{opacity:1}
@media(prefers-reduced-motion:reduce){
  .ent-wash{animation:none} .ent-bloom,.ent-bloom2,.ent-light{display:none}
  .ent-stage{transform:none;transition:none;display:block;align-content:center;overflow-y:auto;
   padding:clamp(30px,8vw,70px) 0}
  .ent .beat{position:static;opacity:1;filter:none;transform:none;transition:none}
  .ent .beat.b3{margin-bottom:clamp(34px,7vw,60px)}
  :is(.ent,.plates) .rule{height:44px;margin:26px auto}
  :is(.ent,.plates) .script{font-size:clamp(96px,26vw,200px)}}


/* ── THE PLATES ── every screen wears the entrance's own type. Hers, 20 September:
   "use the type font to be beautiful… everything a gentle, beautiful, elegant
   moment, like a beautiful reveal." Nothing else is on a screen. */
.ent .beat{pointer-events:none}
.ent .beat.on{pointer-events:auto}
.ent-stage{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
.ent .beat{max-height:100%;overflow-y:auto;overflow-x:hidden;padding:clamp(60px,9vh,90px) 0 clamp(70px,10vh,100px);box-sizing:border-box}
:is(.ent,.plates) .plate{max-width:min(92vw,1100px);margin:0 auto;text-align:center}
:is(.ent,.plates) .plate > *{text-align:center}
:is(.ent,.plates) .display--small{font-size:clamp(34px,8.8vw,132px);line-height:.94}
:is(.ent,.plates) .aside--long{letter-spacing:.05em;line-height:1.35;font-size:clamp(17px,4vw,27px);max-width:30ch;margin-left:auto;margin-right:auto}
@media(min-width:900px){:is(.ent,.plates) .aside--long{font-size:clamp(22px,1.8vw,28px)}}
:is(.ent,.plates) .aside--after{margin:clamp(24px,4.5vh,50px) 0 0;letter-spacing:.06em;font-size:clamp(17px,4vw,27px);line-height:1.4;max-width:34ch;margin-left:auto;margin-right:auto}
:is(.ent,.plates) .beat:not(.beat--hers) .lede{max-width:22ch;margin-left:auto;margin-right:auto;margin-bottom:0}
:is(.ent,.plates) .lede + .script{margin-top:clamp(6px,1.5vh,14px)}
:is(.ent,.plates) .lede + .aside--after{margin-top:clamp(24px,4.5vh,50px)}
:is(.ent,.plates) .lines{display:block;font-family:var(--ai-serif);font-style:italic;font-size:clamp(18px,4.6vw,30px);line-height:1.5;letter-spacing:.01em;max-width:30ch;margin:0 auto}
:is(.ent,.plates) .aside + .lines{margin-top:clamp(6px,1vh,12px)}
:is(.ent,.plates) .line{display:block;opacity:0;transform:translateY(.5em);filter:blur(4px);
 transition:opacity 1s ease,transform 1.3s cubic-bezier(.2,.7,.2,1),filter 1s ease;
 transition-delay:calc(1.1s + var(--i,0) * .6s)}
:is(.ent,.plates) :is(.beat,.pl).on .line{opacity:1;transform:none;filter:blur(0)}
.ent .beat.gone .line{transition:none}
:is(.ent,.plates) .kanji{display:block;font-family:var(--ai-jp);font-weight:400;font-size:clamp(64px,17vw,180px);line-height:1;letter-spacing:.08em;margin:0 0 clamp(18px,3.5vh,40px);padding-left:.08em}
:is(.ent,.plates) .word{display:block;white-space:nowrap;font-family:var(--ai-display);font-size:clamp(40px,9.4vw,190px);line-height:.95;letter-spacing:.06em;padding-left:.06em;margin:0 0 clamp(14px,3vh,30px)}
:is(.ent,.plates) .word i{font-style:normal;display:inline-block;opacity:0;transform:translateY(.25em);filter:blur(10px);
 transition:opacity 1s ease,transform 1.5s cubic-bezier(.2,.7,.2,1),filter 1.1s ease;transition-delay:calc(.4s + var(--i,0) * .12s)}
:is(.ent,.plates) :is(.beat,.pl).on .word i{opacity:1;transform:none;filter:blur(0)}
:is(.ent,.plates) .beat--word .kanji{font-size:clamp(28px,6.5vw,70px);letter-spacing:.2em;padding-left:.2em;opacity:.85;transition:opacity 1s ease 1.7s}
:is(.ent,.plates) .beat--word .lines .line{transition-delay:calc(2s + var(--i,0) * .6s)}
:is(.ent,.plates) .beat--word .rule{margin-bottom:clamp(20px,3.5vh,40px)}
:is(.ent,.plates) .loves{display:block;font-family:var(--ai-display);font-size:clamp(20px,4.9vw,40px);line-height:1.18;text-align:left;width:max-content;max-width:92vw;margin:clamp(10px,2vh,22px) auto 0}
:is(.ent,.plates) .love{transition-delay:calc(1s + var(--i,0) * .42s)}
:is(.ent,.plates) .love small{font-family:var(--ai-serif);font-style:normal;font-size:.36em;letter-spacing:.34em;text-transform:uppercase;vertical-align:.85em;margin-right:.5em}
:is(.ent,.plates) .love em{font-style:italic}
:is(.ent,.plates) .love--day{font-size:1.35em;margin-top:.45em;font-style:italic}
:is(.ent,.plates) .beat--tall .rule{height:clamp(30px,5vh,56px);margin:clamp(18px,3vh,34px) auto clamp(14px,2.5vh,26px)}
:is(.ent,.plates) .beat--tall .aside{font-size:clamp(14px,3.4vw,22px);letter-spacing:.06em;line-height:1.35;max-width:30ch;margin:0 auto clamp(8px,1.5vh,16px)}
:is(.ent,.plates) .chosen{display:block;margin-top:clamp(28px,5vh,56px);font-family:var(--ai-serif);font-size:clamp(11px,2.6vw,14px);letter-spacing:.3em;text-transform:uppercase;line-height:2.1;max-width:40ch;margin-left:auto;margin-right:auto;opacity:.75}
:is(.ent,.plates) .chosen [lang=ja]{font-family:var(--ai-jp);letter-spacing:.06em;text-transform:none;font-size:1.4em;opacity:1}
/* the last plate stays, and carries the way in and the foot every world carries */
:is(.ent,.plates) .begin{display:inline-block;margin-top:clamp(30px,6vh,60px);font-family:var(--ai-display);font-size:clamp(22px,5vw,34px);letter-spacing:.02em;color:var(--ai-red);text-decoration:none;border-bottom:1px solid rgba(189,0,6,.45);padding-bottom:4px}
:is(.ent,.plates) .begin:hover{opacity:.7}
:is(.ent,.plates) .seal{display:block;width:clamp(76px,11vw,116px);height:auto;margin:clamp(30px,5vh,56px) auto 0;border-radius:50%;box-shadow:0 14px 44px rgba(189,0,6,.18)}
:is(.ent,.plates) .plate-foot{display:block;margin-top:clamp(24px,4vh,44px);font-family:var(--ai-serif);font-style:normal;font-size:12.5px;letter-spacing:.06em;line-height:1.7;opacity:.7}
:is(.ent,.plates) .plate-foot a{color:inherit;text-decoration:none}
:is(.ent,.plates) .beat--last .script{font-size:clamp(64px,19vw,200px);white-space:nowrap;line-height:1}
:is(.ent,.plates) .beat--last .rule{height:clamp(30px,5vh,56px);margin:clamp(16px,3vh,32px) auto clamp(14px,2.5vh,26px)}
:is(.ent,.plates) .beat--last .lede{font-size:clamp(18px,4.4vw,36px);max-width:26ch}
:is(.ent,.plates) .beat--last .eyebrow{margin-top:clamp(40px,8vh,80px)}
:is(.ent,.plates) .beat--last .begin{margin-top:clamp(16px,3vh,40px);font-size:clamp(19px,4.4vw,30px)}
:is(.ent,.plates) .beat--last .seal{width:clamp(60px,9vw,100px);margin-top:clamp(18px,3.5vh,40px)}
:is(.ent,.plates) .beat--last .plate-foot{font-size:11.5px;margin-top:clamp(14px,2.5vh,30px)}
:is(.ent,.plates) .beat--last .plate{padding-bottom:clamp(50px,8vh,80px)}
/* the quiet words at the foot: Back and Skip */
.entback{position:absolute;left:clamp(22px,4vw,46px);bottom:clamp(22px,4vw,46px);z-index:4;font-family:var(--ai-serif);font-size:10px;letter-spacing:.42em;text-transform:uppercase;color:var(--ai-red);background:none;border:0;border-bottom:1px solid rgba(189,0,6,.4);padding:0 0 6px;cursor:pointer;opacity:.5}
.entback:hover{opacity:1}
.entback[hidden],.entskip[hidden]{display:none}
@media(min-width:900px){
  :is(.ent,.plates) .display--small{font-size:clamp(84px,8vw,140px)}
  :is(.ent,.plates) .lines{font-size:clamp(24px,2.1vw,32px)}
  :is(.ent,.plates) .aside--long{letter-spacing:.05em;line-height:1.35;font-size:clamp(17px,4vw,27px);max-width:30ch;margin-left:auto;margin-right:auto}
@media(min-width:900px){:is(.ent,.plates) .aside--long{font-size:clamp(22px,1.8vw,28px)}}
:is(.ent,.plates) .aside--after{font-size:clamp(22px,1.8vw,28px)}
  :is(.ent,.plates) .loves{font-size:clamp(28px,2.6vw,40px)}
  :is(.ent,.plates) .kanji{font-size:clamp(120px,11vw,180px)}
  :is(.ent,.plates) .word{font-size:clamp(120px,11.5vw,190px)}}
@media(max-height:700px){
  :is(.ent,.plates) .rule{height:clamp(30px,6vh,60px);margin:clamp(20px,4vh,40px) auto clamp(16px,3vh,30px)}}
@media(prefers-reduced-motion:reduce){
  :is(.ent,.plates) .line,.ent .word i{opacity:1;transform:none;filter:none;transition:none}}


/* ── THE MAIN PART OF THE WEBSITE ── the plates continue beneath the entrance,
   one to a screen, each arriving as it is reached. Same paper, same type. */
body.home{background:var(--ai-paper)!important}
.plates{position:relative;z-index:1;background:var(--ai-paper);padding-top:clamp(40px,8vh,90px)}
.plates .pl{min-height:88vh;min-height:88svh;display:grid;place-items:center;text-align:center;
 padding:clamp(40px,7vh,80px) 0;font-family:var(--ai-display);color:var(--ai-red);
 opacity:0;filter:blur(10px);transform:translateY(16px);
 transition:opacity 1.3s cubic-bezier(.3,0,.2,1),filter 1.5s cubic-bezier(.3,0,.2,1),transform 1.7s cubic-bezier(.22,.8,.28,1)}
.plates .pl.on{opacity:1;filter:blur(0);transform:none}
.plates .pl.beat--last{min-height:100vh;min-height:100svh}
.plates .pl .rule{margin-top:clamp(24px,4.5vh,50px)}
.plates .plate{width:100%}
@media(prefers-reduced-motion:reduce){.plates .pl{opacity:1;filter:none;transform:none;transition:none}}

/* the page plates in the opening's own weight — hers, 20 September: "there's such a difference from the opening plates to everything else" */
.plates .lede{font-size:clamp(34px,8.6vw,116px);line-height:1;max-width:14ch}
.plates .lines{font-size:clamp(19px,5vw,32px)}
.plates .aside{font-size:clamp(17px,4.2vw,28px)}
.plates .aside--after{font-size:clamp(18px,4.4vw,28px)}
.plates .kanji{font-size:clamp(72px,19vw,190px)}
.plates .beat--last .lede{font-size:clamp(20px,5vw,44px);max-width:22ch}
.plates .pl .rule:first-child{margin-top:0}
@media(min-width:900px){
  .plates .lede{font-size:clamp(72px,6.4vw,116px)}
  .plates .lines{font-size:clamp(26px,2.3vw,34px)}
  .plates .kanji{font-size:clamp(150px,13vw,200px)}}

/* hers, 20 September: the second plate was cut off at the top — the plate was centred in the whole glass and its top
   sat under the fixed mark. The stage now centres beneath the mark, and nothing on a plate reaches it. */
.ent-stage{padding-top:calc(92px + env(safe-area-inset-top));padding-bottom:64px;box-sizing:border-box}
:is(.ent,.plates) .beat{padding-top:0;padding-bottom:0}
@media(max-height:760px){
  :is(.ent,.plates) .rule{height:clamp(30px,6vh,60px);margin:clamp(18px,3.4vh,36px) auto clamp(14px,2.6vh,26px)}
  :is(.ent,.plates) .script{font-size:clamp(100px,30vw,300px)}}
/* hers, 20 September: "the top part of the font needs to be a little bit more bold" — the eyebrow carries weight; and a tracked
   line is padded by its own tracking so it sits centred rather than a hair to the left */
:is(.ent,.plates) .eyebrow{font-weight:500;color:var(--ai-red)}
:is(.ent,.plates) .aside{padding-left:.22em}
:is(.ent,.plates) .aside--long,:is(.ent,.plates) .aside--after{padding-left:.05em}
:is(.ent,.plates) .chosen{padding-left:.3em}

/* hers, 13 September: "the two opening moments' type is too small at the top" — raised */
:is(.ent,.plates) .eyebrow{font-size:clamp(12.5px,3vw,16px);letter-spacing:.62em;padding-left:.62em;font-weight:500}
:is(.ent,.plates) .aside{font-size:clamp(18px,4.2vw,30px)}
:is(.ent,.plates) .display{font-size:clamp(62px,17vw,214px)}
:is(.ent,.plates) .lede{font-size:clamp(25px,6vw,54px)}
:is(.ent,.plates) .script{font-size:clamp(126px,37vw,372px)}
@media(min-width:900px){
  :is(.ent,.plates) .eyebrow{font-size:clamp(15px,1.25vw,18px);letter-spacing:.8em;padding-left:.8em}
  :is(.ent,.plates) .aside{font-size:clamp(24px,2.1vw,34px)}
  :is(.ent,.plates) .display{font-size:clamp(136px,13vw,228px)}
  :is(.ent,.plates) .lede{font-size:clamp(34px,3vw,54px)}
  :is(.ent,.plates) .script{font-size:clamp(200px,19vw,360px)}}

/* ── THE ROAD, IN PHOTOGRAPHS ── five real pictures behind her plates; the scroll walks through them. */
.plates{padding-top:0}
.plates .road{position:sticky;top:0;height:100vh;height:100svh;z-index:0;overflow:hidden;pointer-events:none;background:#FEF5FC}
.plates .rd{position:absolute;inset:0;margin:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;will-change:transform,opacity;transform:scale(1.06)}
.plates .rd-wash{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(255,255,255,.62) 0,rgba(254,245,252,.34) 45%,rgba(254,245,252,.42) 70%,rgba(255,255,255,.8) 100%)}
.plates .pl{position:relative;z-index:1}
.plates .pl:first-of-type{margin-top:-100vh;margin-top:-100svh}
.plates .plate{padding:clamp(40px,7vh,72px) clamp(22px,5vw,56px);background:rgba(255,255,255,.68);box-shadow:0 0 70px 56px rgba(255,255,255,.68);border-radius:2px;box-sizing:border-box}

/* ── every line arrives on its own, one face after another — hers, 20 September: separate them, different fonts ── */
.plates .pl .plate > *{opacity:0;transform:translateY(14px);filter:blur(6px);transition:opacity .9s ease,transform 1.1s cubic-bezier(.2,.7,.2,1),filter .9s ease}
.plates .pl .plate > :nth-child(2){transition-delay:.3s}.plates .pl .plate > :nth-child(3){transition-delay:.7s}.plates .pl .plate > :nth-child(4){transition-delay:1.1s}.plates .pl .plate > :nth-child(5){transition-delay:1.5s}.plates .pl .plate > :nth-child(6){transition-delay:1.9s}.plates .pl .plate > :nth-child(7){transition-delay:2.3s}
.plates .pl.on .plate > *{opacity:1;transform:none;filter:none}
:is(.ent,.plates) .script--line{font-size:clamp(58px,16vw,170px);line-height:1;padding-bottom:.12em}
/* the hearts line stands over their hands — the film is framed on them, the words in white, no breath */
.plates .rd:nth-child(4){object-position:28% 20%}
.plates .pl--hands{place-items:start center;padding-top:30svh}
.plates .pl--hands .plate,.plates .pl--hands .plate > *{background:none;box-shadow:none;color:#fff;text-shadow:0 2px 28px rgba(110,0,8,.55),0 0 2px rgba(110,0,8,.35)}
@media(prefers-reduced-motion:reduce){.plates .pl .plate > *{opacity:1;transform:none;filter:none;transition:none}}

/* ── THE FILM UNDER THE WORDS ── the home is one piece you watch. Hers, 20 September: no scrolling; pairs, one for portrait, one for landscape. */
.ent-film{position:absolute;inset:0;z-index:0;overflow:hidden;background:var(--ai-paper)}
.ent-film .fl{position:absolute;inset:0;opacity:0;transition:opacity 1.8s ease}
.ent-film .fl--on{opacity:1}
.ent-film video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.ent-film .fl-fill{display:none}
.ent-film .fl--carry .fl-fill{display:none}
.ent-film .fl--carry .fl-main{object-fit:cover}
.ent-film .fl-wash{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(255,255,255,.18) 0,rgba(254,245,252,.06) 35%,rgba(254,245,252,.08) 70%,rgba(255,255,255,.22) 100%)}
.ent.has-film{background:var(--ai-paper)}
.ent.has-film .ent-bloom,.ent.has-film .ent-bloom2,.ent.has-film .ent-light{display:none}
.ent.has-film .ent-wash{display:none}
.ent.has-film .ent-grain{display:none}
.ent.has-film .ent-stage{z-index:2}
/* every beat of the film: its lines arrive one after another, each in its own face */
.ent .beat .plate > *{opacity:0;transform:translateY(14px);filter:blur(6px);transition:opacity .9s ease,transform 1.1s cubic-bezier(.2,.7,.2,1),filter .9s ease}
.ent .beat .plate > :nth-child(2){transition-delay:.3s}.ent .beat .plate > :nth-child(3){transition-delay:.7s}.ent .beat .plate > :nth-child(4){transition-delay:1.1s}.ent .beat .plate > :nth-child(5){transition-delay:1.5s}.ent .beat .plate > :nth-child(6){transition-delay:1.9s}.ent .beat .plate > :nth-child(7){transition-delay:2.3s}
.ent .beat.on .plate > *{opacity:1;transform:none;filter:none}
.ent .beat.gone .plate > *{transition-delay:0s}
/* the hearts line stands over their hands, in white */
.ent .beat--hands{align-self:start;padding-top:26svh}
.ent .beat--hands .plate,.ent .beat--hands .plate > *{color:#fff;text-shadow:0 2px 28px rgba(110,0,8,.55),0 0 2px rgba(110,0,8,.35)}
.ent .beat--word .word,.ent .beat--word .kanji{color:var(--ai-red)}
@media(prefers-reduced-motion:reduce){.ent .beat .plate > *{opacity:1;transform:none;filter:none;transition:none}}

/* over the darker films — the dusk lights and the last light — the words are white, her own list: red, pink, orange or white */
.ent .beat[data-film="1"] .plate > *,.ent .beat[data-film="3"] .plate > *,.ent .beat[data-film="5"] .plate > *,.ent .beat[data-film="5"] .plate-foot a{color:#fff;text-shadow:0 2px 28px rgba(110,0,8,.5),0 0 2px rgba(110,0,8,.3)}
.ent .beat[data-film="5"] .begin{border-bottom-color:rgba(255,255,255,.6)}
.ent .beat[data-film="1"] .rule,.ent .beat[data-film="3"] .rule,.ent .beat[data-film="5"] .rule{background:linear-gradient(#fff,rgba(255,255,255,0))}
/* nothing steps outside a phone — every big word measured against the width it stands in */
.ent .beat .plate{padding-left:clamp(18px,5vw,90px);padding-right:clamp(18px,5vw,90px)}
.ent .display--small{font-size:clamp(30px,10.4vw,132px);letter-spacing:0}
.ent .script{font-size:clamp(88px,27vw,340px)}
.ent .script--line{font-size:clamp(52px,15vw,170px)}
.ent .word{font-size:clamp(34px,9vw,190px);letter-spacing:.04em}
.ent .plate > *{max-width:100%;overflow-wrap:anywhere}
.ent .loves{max-width:100%}
/* nothing on the film ever scrolls — every plate fits the screen it is on */
.ent-stage,.ent .beat{overflow:hidden}
.ent .beat{padding:clamp(56px,8vh,90px) 0 clamp(56px,8vh,90px)}
.ent .loves{font-size:clamp(16px,min(4.4vw,2.6vh),40px);line-height:1.16}
.ent .beat--tall .aside{margin-bottom:clamp(10px,2vh,30px)}
.ent .beat--last .seal{width:clamp(64px,10vh,120px);height:auto;margin-top:clamp(12px,2vh,24px)}
.ent .beat--last .plate-foot{margin-top:clamp(10px,2vh,30px);font-size:11.5px;line-height:1.5}
.ent .beat--last .begin{margin-top:clamp(14px,3vh,40px)}
.ent .beat .rule{height:clamp(28px,7vh,120px);margin:clamp(14px,3vh,60px) auto clamp(14px,3vh,40px)}
@media(max-height:700px){.ent .lede{font-size:clamp(19px,4.4vw,40px)} .ent .script{font-size:clamp(70px,22vw,300px)} .ent .kanji{font-size:clamp(48px,13vw,160px)}}

/* THE WASH — hers: a whitewash or a red wash, so the words always read. White over the pale films, her red over the red wall. A soft breath of it gathers behind every plate. */
.ent-film .fl-wash{background:linear-gradient(to bottom,rgba(255,255,255,.34) 0,rgba(254,245,252,.18) 35%,rgba(254,245,252,.2) 70%,rgba(255,255,255,.4) 100%)}
.ent .beat .plate{position:relative}
.ent .beat .plate::before{content:"";position:absolute;inset:-8% -6%;z-index:-1;background:radial-gradient(ellipse at center,rgba(255,255,255,.62) 0,rgba(255,255,255,.4) 45%,rgba(255,255,255,0) 75%);pointer-events:none}
.ent .beat[data-film="1"] .plate::before{background:radial-gradient(ellipse at center,rgba(142,0,7,.5) 0,rgba(142,0,7,.3) 45%,rgba(142,0,7,0) 75%)}
.ent .beat[data-film="5"] .plate::before,.ent .beat[data-film="3"] .plate::before{background:radial-gradient(ellipse at center,rgba(70,0,10,.42) 0,rgba(70,0,10,.24) 45%,rgba(70,0,10,0) 75%)}
/* the hearts line now sits on the white room's hands: red words, centred, not white on white */
.ent .beat--hands{align-self:center;padding-top:clamp(56px,8vh,90px)}
.ent .beat--hands .plate,.ent .beat--hands .plate > *{color:var(--ai-red);text-shadow:none}
/* readable on a phone, first — bigger words, a proper breath of white (or of her red) behind them */
.ent .beat .plate::before{inset:-14% -10%;background:radial-gradient(ellipse at center,rgba(255,255,255,.9) 0,rgba(255,255,255,.72) 40%,rgba(255,255,255,.3) 65%,rgba(255,255,255,0) 82%)}
.ent .beat[data-film="1"] .plate::before{background:radial-gradient(ellipse at center,rgba(120,0,8,.72) 0,rgba(120,0,8,.5) 40%,rgba(120,0,8,.2) 65%,rgba(120,0,8,0) 82%)}
.ent .beat[data-film="3"] .plate::before,.ent .beat[data-film="5"] .plate::before{background:radial-gradient(ellipse at center,rgba(60,0,12,.66) 0,rgba(60,0,12,.44) 40%,rgba(60,0,12,.18) 65%,rgba(60,0,12,0) 82%)}
.ent .aside{font-size:clamp(18px,4.2vw,28px);letter-spacing:.12em;line-height:1.25}
.ent .lede{font-size:clamp(27px,6.6vw,52px);line-height:1.22}
.ent .lines{font-size:clamp(20px,5vw,32px)}
.ent .loves{font-size:clamp(19px,min(5vw,2.9vh),40px)}
.ent .eyebrow{font-size:clamp(11px,2.8vw,13px);letter-spacing:.5em;padding-left:.5em}
.ent .plate-foot{font-size:12.5px}
.ent .beat[data-film="2"] .plate > *,.ent .beat[data-film="4"] .plate > *{color:var(--ai-red)}
/* never a dark or muddy breath — white breath and red words everywhere but the red wall, where the words are white on her own red */
.ent .beat[data-film="3"] .plate::before,.ent .beat[data-film="5"] .plate::before{background:radial-gradient(ellipse at center,rgba(255,255,255,.9) 0,rgba(255,255,255,.72) 40%,rgba(255,255,255,.3) 65%,rgba(255,255,255,0) 82%)}
.ent .beat[data-film="3"] .plate > *,.ent .beat[data-film="5"] .plate > *,.ent .beat[data-film="5"] .plate-foot a{color:var(--ai-red);text-shadow:none}
.ent .beat[data-film="3"] .rule,.ent .beat[data-film="5"] .rule{background:linear-gradient(var(--ai-red),rgba(189,0,6,0))}
.ent .beat[data-film="5"] .begin{border-bottom-color:rgba(189,0,6,.45)}
.ent .beat[data-film="1"] .plate::before{background:radial-gradient(ellipse at center,rgba(142,0,7,.8) 0,rgba(142,0,7,.6) 40%,rgba(142,0,7,.25) 65%,rgba(142,0,7,0) 82%)}
/* the loves, four plates, big enough to read on a phone */
.ent .loves{font-size:clamp(26px,7.2vw,52px);line-height:1.2;width:max-content;max-width:100%;margin-top:clamp(8px,1.6vh,20px)}
.ent .love small{font-size:.34em;letter-spacing:.3em}
.ent .love--day{margin-top:.5em}
.ent .beat--tall .aside{font-size:clamp(17px,4vw,26px);max-width:24ch;margin-left:auto;margin-right:auto;line-height:1.3}
/* one even veil over the whole film, edge to edge — nothing shaped behind the words. Hers, 20 September. */
.ent .beat .plate::before{display:none}
.ent-film .fl-wash{background:rgba(255,255,255,.5)}
.ent-film .fl{transition:opacity 2.4s ease}
/* the words: her red, everywhere, and larger — hers, 20 September: look at the size, look at the colour */
.ent .beat .plate > *,.ent .beat .plate .plate-foot a{color:var(--ai-red);text-shadow:none}
.ent .beat .rule{background:linear-gradient(var(--ai-red),rgba(189,0,6,0))}
.ent .eyebrow{font-size:clamp(13px,3.4vw,16px);letter-spacing:.42em;padding-left:.42em;font-weight:600}
.ent .aside{font-size:clamp(20px,5vw,32px);letter-spacing:.06em}
.ent .lede{font-size:clamp(30px,7.4vw,58px);line-height:1.18;letter-spacing:0}
.ent .display{font-size:clamp(58px,16.5vw,200px)}
.ent .lines{font-size:clamp(22px,5.6vw,34px);line-height:1.4}
.ent .loves{font-size:clamp(28px,7.8vw,54px)}
.ent .plate-foot{font-size:13.5px;opacity:.85}
.ent .begin{font-size:clamp(24px,6vw,36px)}

/* ═══ THE TYPE, ONE SYSTEM — hers, 20 September: uniformity. Every plate of the film is set from one scale, --s: 1 on a phone, up on a tablet, up again on a computer. Four faces, four jobs: Cormorant small capitals for the eyebrow, Cormorant italic for the aside, Bodoni for the line, Savoye for the one word in script. Nothing else. ═══ */
.ent{--s:1}
@media(min-width:600px){.ent{--s:1.25}}
@media(min-width:900px){.ent{--s:1.55}}
@media(min-width:1300px){.ent{--s:1.85}}
@media(max-height:700px){.ent{--s:.86}}
.ent .beat .plate{padding:0 clamp(20px,6vw,80px);max-width:min(100%,calc(720px * var(--s)));margin:0 auto}
.ent .beat .plate > *{margin:0}
.ent .beat .plate .eyebrow{font-family:var(--ai-serif);font-weight:600;font-size:calc(12.5px * var(--s));letter-spacing:.38em;padding-left:.38em;line-height:1.6;text-transform:uppercase}
.ent .beat .plate .rule{width:1px;height:calc(40px * var(--s));margin:calc(18px * var(--s)) auto calc(18px * var(--s));opacity:.55}
.ent .beat .plate .aside{font-family:var(--ai-serif);font-style:italic;font-weight:400;font-size:calc(22px * var(--s));letter-spacing:.02em;line-height:1.3;margin-bottom:calc(14px * var(--s));max-width:26ch;margin-left:auto;margin-right:auto}
.ent .beat .plate .aside--after{margin:calc(14px * var(--s)) auto 0}
.ent .beat .plate .lede{font-family:var(--ai-display);font-size:calc(34px * var(--s));line-height:1.15;letter-spacing:0;max-width:15ch;margin:0 auto}
.ent .beat .plate .display{font-family:var(--ai-display);font-size:calc(56px * var(--s));line-height:.98;letter-spacing:-.005em}
.ent .beat .plate .display--small{font-size:calc(40px * var(--s));letter-spacing:.02em}
.ent .beat .plate .script{font-family:var(--ai-script);font-size:calc(96px * var(--s));line-height:1;letter-spacing:.01em;padding:0 .1em .08em} /* exactly as she approved it on the phone, 20 September — every change to the script on 21 September was struck by her the same hour */
.ent .beat .plate .script--line{font-size:calc(64px * var(--s))} /* overridden below (58px) — measured 21 September: "Your Marriage." is 321px wide on a 390 phone at that size; any larger and Savoye runs off the screen */
.ent .beat .plate .word{font-family:var(--ai-display);font-size:calc(40px * var(--s));letter-spacing:.06em;padding-left:.06em;line-height:1;margin-bottom:calc(10px * var(--s));white-space:nowrap}
.ent .beat .plate .kanji{font-family:var(--ai-jp);font-size:calc(60px * var(--s));line-height:1;letter-spacing:.06em;margin-bottom:calc(16px * var(--s))}
.ent .beat .plate .lines{font-family:var(--ai-serif);font-style:italic;font-size:calc(22px * var(--s));line-height:1.45;max-width:28ch;margin:0 auto}
.ent .beat .plate .loves{font-family:var(--ai-display);font-size:calc(30px * var(--s));line-height:1.22;width:max-content;max-width:100%;margin:calc(8px * var(--s)) auto 0;text-align:left}
.ent .beat .plate .love small{font-family:var(--ai-serif);font-style:normal;font-weight:600;font-size:.36em;letter-spacing:.3em;text-transform:uppercase;vertical-align:.8em;margin-right:.5em}
.ent .beat .plate .love--day{margin-top:.5em;font-style:italic}
.ent .beat .plate .begin{font-family:var(--ai-display);font-size:calc(24px * var(--s));letter-spacing:.02em;margin-top:calc(22px * var(--s));display:inline-block;border-bottom:1px solid rgba(189,0,6,.45);padding-bottom:4px}
.ent .beat .plate .seal{width:calc(84px * var(--s));height:auto;display:block;margin:calc(18px * var(--s)) auto 0}
.ent .beat .plate .plate-foot{font-family:var(--ai-serif);font-style:normal;font-size:calc(12.5px * var(--s));line-height:1.6;letter-spacing:.04em;margin-top:calc(16px * var(--s));opacity:.8}
.ent .beat{padding:calc(64px * var(--s)) 0 calc(56px * var(--s))}
/* a short computer window scales down with its height, and the last plate is set a size smaller so it always fits with its foot */
@media(min-width:900px) and (max-height:820px){.ent{--s:1.3}}
@media(min-width:1300px) and (max-height:960px){.ent{--s:1.55}}
.ent .beat--last .plate .lede{font-size:calc(28px * var(--s));max-width:18ch}
.ent .beat--last .plate .script{font-size:calc(76px * var(--s))}
.ent .beat--last .plate .begin{margin-top:calc(14px * var(--s))}
.ent .beat--last .plate .seal{width:calc(64px * var(--s));margin-top:calc(14px * var(--s))}
.ent .beat--last .plate .plate-foot{font-size:calc(11.5px * var(--s));margin-top:calc(12px * var(--s));line-height:1.5}
/* the last plate carries the most — on a computer it takes a smaller scale so the seal and the foot always stand inside the screen */
@media(min-width:900px){.ent .beat--last .plate{--s:1.15}}
@media(min-width:1300px){.ent .beat--last .plate{--s:1.3}}
@media(min-width:1700px) and (min-height:1000px){.ent .beat--last .plate{--s:1.5}}
.ent .beat--last .plate .plate-foot br{display:none}
.ent .beat--last .plate .plate-foot{max-width:60ch;margin-left:auto;margin-right:auto}
@media(min-width:900px) and (max-height:820px){.ent .beat--last .plate{--s:1}}
/* one rhythm of arrival on every plate: the line, then each row of words a third of a second apart, top to bottom */
.ent .beat .plate > *{transition:opacity .8s ease,transform 1s cubic-bezier(.2,.7,.2,1),filter .8s ease}
.ent .beat .plate > :nth-child(1){transition-delay:0s}.ent .beat .plate > :nth-child(2){transition-delay:.3s}.ent .beat .plate > :nth-child(3){transition-delay:.6s}.ent .beat .plate > :nth-child(4){transition-delay:.9s}.ent .beat .plate > :nth-child(5){transition-delay:1.2s}.ent .beat .plate > :nth-child(6){transition-delay:1.5s}.ent .beat .plate > :nth-child(7){transition-delay:1.8s}
.ent .beat.gone .plate > *{transition-delay:0s;transition-duration:.6s}
/* hers, 20 September: the pattern of the first two plates carried all the way through — the fine capitals, bold so they can be seen, the little red line, then the words beneath */
.ent .beat .plate .eyebrow{font-weight:700;font-size:calc(13px * var(--s));letter-spacing:.4em;padding-left:.4em}
/* bigger on a phone — hers */
.ent{--s:1.08}
@media(min-height:780px) and (max-width:599px){.ent{--s:1.2}}
@media(max-height:700px){.ent{--s:.92}}
/* readable with her glasses on — bigger again on a phone, a heavier italic, a stronger veil */
.ent{--s:1.2}
@media(min-height:780px) and (max-width:599px){.ent{--s:1.34}}
@media(max-height:700px){.ent{--s:1.02}}
.ent-film .fl-wash{background:rgba(255,255,255,.6)}
.ent .beat .plate .aside,.ent .beat .plate .lines{font-weight:500}
.ent .beat .plate .eyebrow{font-weight:800}
@media(max-width:599px){.ent .beat--last .plate{--s:1}}
@media(max-width:599px) and (max-height:700px){.ent .beat--last .plate{--s:.86}}
/* gentler — hers: the words drift in slowly, leave slowly, and the next ones take their time */
.ent .beat .plate > *{transition:opacity 1.7s ease,transform 2.1s cubic-bezier(.2,.7,.2,1),filter 1.7s ease}
.ent .beat .plate > :nth-child(1){transition-delay:0s}.ent .beat .plate > :nth-child(2){transition-delay:.45s}.ent .beat .plate > :nth-child(3){transition-delay:.9s}.ent .beat .plate > :nth-child(4){transition-delay:1.35s}.ent .beat .plate > :nth-child(5){transition-delay:1.8s}.ent .beat .plate > :nth-child(6){transition-delay:2.25s}.ent .beat .plate > :nth-child(7){transition-delay:2.7s}
.ent .beat.gone .plate > *{transition-delay:0s;transition-duration:1.5s}
.ent .beat{transition:opacity 1.6s ease,filter 1.6s ease,transform 2s ease}
.ent .beat.gone{transition:opacity 1.6s ease,filter 1.6s ease,transform 2s ease}
/* ═══ HERS, 20 SEPTEMBER, THE LAW OF THE PLATE: the top line in fine capitals, readable — a gap — then the words; Savoye where it matters. Every plate. And the whole thing a little higher on the page, and bigger on a phone. ═══ */
.ent{--s:1.3}
@media(min-height:780px) and (max-width:599px){.ent{--s:1.42}}
@media(max-height:700px){.ent{--s:1.1}}
.ent .beat .plate .eyebrow{font-weight:800;font-size:calc(15px * var(--s));letter-spacing:.3em;padding-left:.3em;line-height:1.5;max-width:22ch;margin:0 auto}
.ent .beat .plate .rule{height:calc(34px * var(--s));margin:calc(22px * var(--s)) auto calc(26px * var(--s))}
.ent .beat .plate .loves{text-align:center}
.ent .beat .plate .love em{font-style:italic}
.ent .beat .plate .lines{font-weight:500}
.ent-stage{padding-bottom:10vh}
.ent .beat .plate .loves{font-size:calc(27px * var(--s))}
.ent .beat .plate .script{font-size:calc(86px * var(--s))}
.ent .beat .plate .rule{height:calc(30px * var(--s));margin:calc(20px * var(--s)) auto calc(22px * var(--s))}
.ent .beat .plate .script--line{font-size:calc(58px * var(--s));white-space:nowrap}
/* the words are ON the screen — quicker to arrive, longer to stay, gentle to go */
.ent .beat .plate > *{transition:opacity 1.1s ease,transform 1.4s cubic-bezier(.2,.7,.2,1),filter 1.1s ease}
.ent .beat .plate > :nth-child(2){transition-delay:.25s}.ent .beat .plate > :nth-child(3){transition-delay:.5s}.ent .beat .plate > :nth-child(4){transition-delay:.75s}.ent .beat .plate > :nth-child(5){transition-delay:1s}.ent .beat .plate > :nth-child(6){transition-delay:1.25s}.ent .beat .plate > :nth-child(7){transition-delay:1.5s}
.ent .beat.gone .plate > *{transition-delay:0s;transition-duration:1s}
.ent .beat,.ent .beat.gone{transition:opacity 1s ease,filter 1s ease,transform 1.3s ease}
/* the capitals: fine, and readable */
.ent .beat .plate .eyebrow{font-size:calc(13.5px * var(--s));font-weight:700;letter-spacing:.32em;padding-left:.32em;max-width:26ch}
/* between too small and stupidly large — hers */
.ent{--s:1.12}
@media(min-height:780px) and (max-width:599px){.ent{--s:1.2}}
@media(max-height:700px){.ent{--s:1}}
/* ═══ THE ARRIVING AND THE GOING — hers: beauty in it. Each line rises out of the film slowly and settles; when it goes, it lifts away like breath. No blur, no hurry. ═══ */
.ent .beat .plate > *{opacity:0;transform:translateY(22px);filter:none;transition:opacity 2.4s cubic-bezier(.25,.1,.25,1),transform 3s cubic-bezier(.16,.6,.2,1)}
.ent .beat .plate > :nth-child(1){transition-delay:0s}.ent .beat .plate > :nth-child(2){transition-delay:.55s}.ent .beat .plate > :nth-child(3){transition-delay:1.1s}.ent .beat .plate > :nth-child(4){transition-delay:1.65s}.ent .beat .plate > :nth-child(5){transition-delay:2.2s}.ent .beat .plate > :nth-child(6){transition-delay:2.75s}.ent .beat .plate > :nth-child(7){transition-delay:3.3s}
.ent .beat.on .plate > *{opacity:1;transform:none}
.ent .beat.gone .plate > *{opacity:0;transform:translateY(-14px);transition:opacity 1.6s ease,transform 2s ease;transition-delay:0s}
.ent .beat,.ent .beat.gone{filter:none;transition:opacity 1.6s ease,transform 2s ease}
.ent .beat.gone{transform:none}
.ent .beat.on{transform:none}
.ent .beat .plate .rule{transform-origin:top center}
.ent .beat .plate > .rule{transform:scaleY(0)}
.ent .beat.on .plate > .rule{transform:scaleY(1);transition:opacity 1.2s ease,transform 2.2s cubic-bezier(.16,.6,.2,1)}
@media(prefers-reduced-motion:reduce){.ent .beat .plate > *{opacity:1;transform:none;transition:none}}
/* the top line: as few lines as it can possibly be — one on a computer, never three on a phone. Hers, 20 September. */
.ent .beat .plate .eyebrow{max-width:100%;letter-spacing:.26em;padding-left:.26em;line-height:1.55;text-wrap:balance}
@media(min-width:600px){.ent .beat .plate .eyebrow{white-space:nowrap;max-width:none;font-size:min(calc(13px * var(--s)),1.5vw)}}
@media(min-width:600px){.ent .beat .plate{max-width:min(100%,calc(860px * var(--s)))}}
@media(max-width:599px){.ent .beat--last .plate .eyebrow{font-size:12.5px;letter-spacing:.2em;padding-left:.2em}}
/* on a phone every row takes the full width and no love wraps onto a second line */
@media(max-width:599px){
  .ent .beat .plate .lede,.ent .beat .plate .aside,.ent .beat .plate .lines{max-width:100%}
  .ent .beat .plate .loves{font-size:min(calc(27px * var(--s)),7.2vw)}
  .ent .beat .plate .love{white-space:nowrap}
}
/* the eyebrow line, bigger on a computer — hers */
@media(min-width:900px){.ent .beat .plate .eyebrow{font-size:min(calc(16px * var(--s)),1.9vw);letter-spacing:.3em;padding-left:.3em}}
/* the eyebrow line: strong — hers, 20 September, "they need to be bigger" */
.ent .beat .plate .eyebrow{font-size:calc(16px * var(--s));font-weight:800;letter-spacing:.28em;padding-left:.28em}
@media(min-width:900px){.ent .beat .plate .eyebrow{font-size:min(calc(18px * var(--s)),2.1vw)}}
@media(max-width:599px){.ent .beat--last .plate .eyebrow{font-size:14px;letter-spacing:.2em;padding-left:.2em}}
@media(max-width:599px){.ent .beat .plate .eyebrow{letter-spacing:.19em;padding-left:.19em}}
/* +3px on a phone — hers */
@media(max-width:599px){.ent .beat .plate .eyebrow{font-size:calc(16px * var(--s) + 3px)}.ent .beat--last .plate .eyebrow{font-size:17px}}
@media(max-width:599px){.ent .beat .plate .eyebrow--long{letter-spacing:.1em;padding-left:.1em}}
@media(max-width:599px){.ent .beat--last .plate .eyebrow{font-size:15px;letter-spacing:.08em;padding-left:.08em}}
/* the last three screens — hers: one for the marriage and the wedding, one for It Finally Is over the film, one to discover — no logo */
.ent .beat--last .plate .begin{margin-top:calc(6px * var(--s));font-size:calc(28px * var(--s))}
.ent .beat--last .plate .plate-foot{margin-top:calc(40px * var(--s))}
@media(max-width:599px){.ent .beat--last .plate .eyebrow{font-size:calc(16px * var(--s) + 3px);letter-spacing:.19em;padding-left:.19em}}
@media(max-width:599px){.ent .beat--last .plate .begin{font-size:min(calc(28px * var(--s)),7.4vw);white-space:nowrap}}
/* the door: Discover · AISHITERU */
.ent .beat--last .plate .begin{border-bottom:0;margin-top:0;font-size:calc(22px * var(--s))}
.ent .beat--last .plate .begin .display--small{display:inline;font-size:calc(40px * var(--s));letter-spacing:.04em;border-bottom:1px solid rgba(189,0,6,.45);padding-bottom:4px}
@media(max-width:599px){.ent .beat--last .plate .begin{font-size:20px;white-space:nowrap}.ent .beat--last .plate .begin .display--small{font-size:min(calc(40px * var(--s)),10.5vw)}}
/* breath between the loves — hers: each one arrives on its own, a full beat apart, and slowly */
.ent .beat .plate .line{transition:opacity 1.6s ease,transform 2s cubic-bezier(.16,.6,.2,1),filter 1.6s ease}
.ent .beat .plate .love{transition-delay:calc(1.4s + var(--i,0) * 1.1s)}
.ent .beat .plate .lines .line{transition-delay:calc(1.4s + var(--i,0) * .9s)}
.ent .beat.gone .plate .line{transition:opacity 1.2s ease,transform 1.4s ease;transition-delay:0s}
/* the eyebrow a little heavier still — Cormorant stops at 700, so a hair of stroke makes the weight */
.ent .beat .plate .eyebrow{-webkit-text-stroke:.45px currentColor;paint-order:stroke fill}
/* and a longer dissolve between films */
.ent-film .fl{transition:opacity 3s ease}
.ent .beat .plate .love{transition-delay:calc(1.2s + var(--i,0) * .85s)}
/* 21 September: Matri Pair's stroke and lacquer were tried on the script and struck by her ("too heavy… a colour behind it"); a hair of stroke was tried and struck ("it looks wrong there"). The script is exactly as it was: bare, red, untouched. */

/* ═══ 21 September, hers, on the computer ═══ */
/* "Their heart in your hands… it just looks bad where you don't have the right treatment on it" — on a wide screen the two-word script lines stood at two-thirds of the size of Life; here they stand at the same size. The phone keeps its own, approved. */
@media(min-width:900px){.ent .beat .plate .script--line{font-size:calc(96px * var(--s))}}
/* "The dress is not working — it's faded out and it's delayed. This is a key moment. Pause the text so the video plays a little more behind it." So while the dress plays the veil thins, and her words wait two and a half seconds before they begin to arrive. */
.ent-film .fl-wash{transition:background 1.8s ease}
.ent:has(.beat[data-brief].on) .fl-wash,.ent.ent--interlude .fl-wash{background:transparent} /* hers, 21 September: no veil over the white dress at all */
.ent .beat[data-brief] .plate{opacity:0;transition:opacity 1s ease 2.5s}
.ent .beat[data-brief].on .plate{opacity:1}
.ent .beat[data-brief].gone .plate{transition-delay:0s}

/* the dress on a computer — hers, 21 September: the words come in slower, and a little bigger */
@media(min-width:900px){
  .ent .beat[data-brief] .plate{transition-delay:3.2s}
  .ent .beat[data-brief] .plate .lines{font-size:calc(27px * var(--s));max-width:30ch}
  .ent .beat[data-brief] .plate .lines .line{transition-delay:calc(2.2s + var(--i,0) * 1.5s)}
  .ent .beat[data-brief].gone .plate,.ent .beat[data-brief].gone .plate .lines .line{transition-delay:0s}
}

/* the dress on a phone — hers, 21 September: "those three things float in, and they're a little bit bigger" */
@media(max-width:899px){
  .ent .beat[data-brief] .plate .lines{font-size:calc(26px * var(--s));max-width:26ch}
  .ent .beat[data-brief] .plate .lines .line{transition-delay:calc(2.8s + var(--i,0) * 1.3s)}
  .ent .beat[data-brief].gone .plate .lines .line{transition-delay:0s}
}

/* how it is said — hers, 21 September: "the pronunciation of Aishiteru, make sure you get that in there" */
:is(.ent,.plates) .beat--word .say{display:block;font-family:var(--ai-body,serif);font-style:italic;font-weight:300;font-size:clamp(15px,2.4vw,22px);letter-spacing:.14em;opacity:0;transform:translateY(8px);transition:opacity .9s ease 2.1s,transform .9s ease 2.1s;margin:0 0 clamp(14px,2.6vh,26px);color:var(--ai-red)}
:is(.ent,.plates) .beat.on .say,:is(.ent,.plates) .beat.is-on .say{opacity:.8;transform:none}
:is(.ent,.plates) .beat--word .lines .line{transition-delay:calc(2.8s + var(--i,0) * .6s)}

/* hers, 21 September: "the kanji way too big, and the pronunciation way too small" — the word carries the moment, the Japanese sits beneath it, the pronunciation is read */
.ent .beat--word .plate .kanji{font-size:min(calc(32px * var(--s)),4.4vw);letter-spacing:.18em;padding-left:.18em;margin-bottom:calc(10px * var(--s));transition:opacity 1s ease 1.2s}
@media(max-width:599px){.ent .beat--word .plate .kanji{font-size:calc(31px * var(--s))}}
.ent .beat--word .plate .say{font-size:calc(19px * var(--s));letter-spacing:.2em;padding-left:.2em;font-weight:400;margin:0 0 calc(14px * var(--s));transition:opacity .9s ease 1.7s,transform .9s ease 1.7s}
.ent .beat--word.on .plate .say{opacity:.95}
.ent .beat--word .plate .lines .line{transition-delay:calc(2.3s + var(--i,0) * .6s)}
/* hers, 21 September: "the flowers, the invitations, the rings need to be much bigger" */
.ent .beat[data-brief] .plate .lines{font-size:min(calc(36px * var(--s)),10.5vw);max-width:100%;line-height:1.35}
@media(min-width:900px){.ent .beat[data-brief] .plate .lines{font-size:min(calc(36px * var(--s)),3.8vw)}}

