*{box-sizing:border-box}
:root{
  --u:min(1vw,1.35vh);
  --red:#ff4141;
  --yellow:#fff200;
  --dark:rgba(16,16,16,.88);
}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#050505;color:#fff;font-family:Impact,"Arial Black","Helvetica Neue Condensed Black",Arial,sans-serif}
body{touch-action:manipulation}
.deck,.slide{position:fixed;inset:0}.slide{opacity:0;pointer-events:none;transition:opacity .15s linear;background:#000;overflow:hidden}.slide.active{opacity:1;pointer-events:auto}.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}.slide>*:not(.bg){position:absolute;z-index:2}
.play-label{top:calc(var(--u)*2.7);left:calc(var(--u)*4.2);font-family:"Courier New",monospace;font-size:clamp(24px,calc(var(--u)*2.7),42px);letter-spacing:.08em;color:#fff}
.cover-logo{left:50%;top:49%;transform:translate(-50%,-50%);width:min(62vw,calc(var(--u)*62));height:auto;max-height:54vh;object-fit:contain}.final-logo{left:50%;top:47%;transform:translate(-50%,-50%);width:min(48vw,calc(var(--u)*50));height:auto;max-height:44vh;object-fit:contain}
.big-center{left:5vw;right:5vw;top:50%;transform:translateY(-50%);font-size:clamp(52px,calc(var(--u)*7.3),138px);line-height:.86;text-align:center;letter-spacing:.02em;text-shadow:0 0 8px rgba(0,0,0,.25);white-space:normal}.split-lines div{white-space:nowrap}
.stacked-title{left:8vw;top:50%;transform:translateY(-50%);font-weight:900;line-height:.78;letter-spacing:.015em;text-shadow:0 0 10px rgba(0,0,0,.15)}.stacked-title .small{font-size:clamp(62px,calc(var(--u)*6.8),128px)}.stacked-title .giant{font-size:clamp(96px,calc(var(--u)*10.6),205px)}.stacked-title .sub{font-size:clamp(34px,calc(var(--u)*3.7),72px);line-height:.9}
.black-title,.white-title,.huge-title,.yellow-title{margin:0;letter-spacing:.015em;line-height:.83}.black-title{color:#000}.white-title{color:#fff}.huge-title{top:calc(var(--u)*6.8);left:calc(var(--u)*7);color:#fff;font-size:clamp(88px,calc(var(--u)*10.6),205px)}
.body-copy{color:#fff;font-family:Impact,"Arial Black",Arial,sans-serif;line-height:1.08;letter-spacing:.035em;text-transform:uppercase;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.story-title{top:calc(var(--u)*5);left:calc(var(--u)*5);font-size:clamp(72px,calc(var(--u)*8.4),165px)}.story-copy{left:calc(var(--u)*7);top:calc(var(--u)*15.5);width:min(84vw,calc(var(--u)*98));font-size:clamp(38px,calc(var(--u)*4.0),76px);line-height:1.02}
.approach-title{top:calc(var(--u)*3);left:calc(var(--u)*6);font-size:clamp(72px,calc(var(--u)*8.4),160px)}.approach-copy{left:calc(var(--u)*6);right:calc(var(--u)*6);top:calc(var(--u)*13.5);bottom:clamp(190px,24vh,260px);font-size:clamp(30px,calc(var(--u)*3.0),56px);line-height:1.0;overflow:hidden}.approach-copy p{margin:.38em 0}.artist-row{left:calc(var(--u)*6);right:calc(var(--u)*6);bottom:calc(env(safe-area-inset-bottom) + clamp(72px,8.5vh,108px));height:clamp(116px,18vh,190px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,4vw,80px);align-items:end;justify-items:center;overflow:visible}.artist-row img{width:100%;height:100%;object-fit:contain;object-position:center bottom;background:#f6f6f6;border:3px solid #fff;display:block}
.text-box{background:var(--dark);padding:calc(var(--u)*1.5);font-family:Impact,"Arial Black",Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em;line-height:1.1}.red-text{color:#fb4b4b}.party-copy{left:22vw;right:7vw;bottom:calc(var(--u)*9.5);font-size:clamp(34px,calc(var(--u)*3.2),62px);line-height:1.0}.party-copy p{margin:0 0 .75em}.party-copy p:last-child{margin-bottom:0}
.ransom-lines{inset:0;display:flex;flex-direction:column;justify-content:space-around;align-items:flex-start;padding:calc(var(--u)*10) calc(var(--u)*6) calc(var(--u)*8)}.ransom-lines span{display:inline-block;background:#191919;color:#ff4a4a;font-size:clamp(54px,calc(var(--u)*6.3),130px);line-height:.88;padding:.14em .28em .18em;text-transform:uppercase;letter-spacing:.03em}.ransom-lines span:nth-child(2){align-self:center}.ransom-lines span:nth-child(3){margin-left:calc(var(--u)*6)}
.characters-title{top:calc(var(--u)*2.3);left:50%;transform:translateX(-50%);font-size:clamp(64px,calc(var(--u)*7.8),150px);white-space:nowrap}.character-grid{left:calc(var(--u)*3.5);right:calc(var(--u)*3.5);top:calc(var(--u)*14.3);bottom:calc(var(--u)*7.6);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:calc(var(--u)*3.3) calc(var(--u)*3.7)}.character-card{position:relative;display:grid;grid-template-columns:40% 60%;grid-template-rows:1fr auto;gap:0 calc(var(--u)*1.2);min-height:0}.character-card img{width:100%;height:100%;object-fit:cover;object-position:center;align-self:stretch;filter:saturate(1.05) contrast(1.04)}.character-card h2{grid-column:1;grid-row:2;margin:.16em 0 0;text-align:center;color:#000;font-size:clamp(24px,calc(var(--u)*2.55),54px);line-height:.9}.character-card ul{grid-column:2;grid-row:1 / span 2;align-self:start;margin:0;padding:calc(var(--u)*.95);list-style-position:inside;background:#fb283d;color:#000;font-family:Impact,"Arial Black",Arial,sans-serif;text-transform:uppercase;letter-spacing:.035em;font-size:clamp(25px,calc(var(--u)*2.15),46px);line-height:1.02;max-height:100%;overflow:hidden}.character-card li{margin:0 0 .42em}
.team-title{left:calc(var(--u)*4.5);top:calc(var(--u)*2.1);font-size:clamp(68px,calc(var(--u)*8.0),150px);white-space:nowrap}.team-copy{left:calc(var(--u)*5.2);right:calc(var(--u)*5.2);top:calc(var(--u)*12.6);max-height:calc(100vh - var(--u)*16.5);color:#fff;font-family:Impact,"Arial Black",Arial,sans-serif;letter-spacing:.02em;text-transform:none;font-size:clamp(24px,calc(var(--u)*2.35),44px);line-height:1.02;overflow:hidden}.team-copy h3{font-size:clamp(40px,calc(var(--u)*3.55),68px);line-height:.9;margin:.18em 0 .05em;text-transform:lowercase}.team-copy p{background:var(--dark);padding:.28em .42em;margin:0 0 .28em;max-width:100%;overflow-wrap:break-word}.team-copy strong{letter-spacing:.03em}
.end-era{top:calc(var(--u)*.3);left:0;font-size:clamp(92px,calc(var(--u)*10.2),200px);white-space:nowrap;line-height:.82;color:#fff200}
.arrow{position:fixed;z-index:20;bottom:calc(var(--u)*2.2);width:calc(var(--u)*5.8);height:calc(var(--u)*5.8);min-width:52px;min-height:52px;border:3px solid var(--yellow);background:#ff3b3b;color:var(--yellow);font-family:Impact,"Arial Black",Arial,sans-serif;font-size:clamp(44px,calc(var(--u)*4.9),90px);line-height:.7;display:grid;place-items:center;box-shadow:calc(var(--u)*.42) calc(var(--u)*.42) 0 #000;cursor:pointer;user-select:none}.arrow-prev{left:calc(var(--u)*1.5)}.arrow-next{right:calc(var(--u)*1.5)}.counter{position:fixed;z-index:20;left:50%;bottom:calc(var(--u)*2.9);transform:translateX(-50%);font-family:Impact,"Arial Black",Arial,sans-serif;color:var(--yellow);background:#111;padding:.25em .55em;border:2px solid var(--yellow);font-size:clamp(14px,calc(var(--u)*1.1),22px);letter-spacing:.08em}
@media (max-aspect-ratio:3/4){:root{--u:min(1vw,1.2vh)}.cover-logo{width:86vw;max-height:40vh}.final-logo{width:82vw;max-height:36vh}.play-label{top:3.5vh;left:5vw;font-size:clamp(24px,calc(var(--u)*5.2),40px)}.big-center{font-size:clamp(46px,calc(var(--u)*11.8),88px);left:5vw;right:5vw}.split-lines div{white-space:normal}.stacked-title{left:5vw;right:5vw;top:50%}.stacked-title .small{font-size:clamp(44px,calc(var(--u)*10.5),78px)}.stacked-title .giant{font-size:clamp(74px,calc(var(--u)*15),118px)}.stacked-title .sub{font-size:clamp(25px,calc(var(--u)*5.7),46px)}.huge-title{font-size:clamp(72px,calc(var(--u)*14),110px);top:7vh;left:5vw}.party-copy{left:5vw;right:5vw;bottom:16vh;font-size:clamp(30px,calc(var(--u)*7.4),54px);line-height:1.0}.story-title{font-size:clamp(56px,calc(var(--u)*12.5),96px);top:5vh;left:5vw}.story-copy{left:5vw;right:5vw;top:18vh;width:auto;font-size:clamp(28px,calc(var(--u)*6.2),46px);line-height:1.0}.approach-title{left:5vw;top:4vh;font-size:clamp(54px,calc(var(--u)*10.5),90px)}.approach-copy{left:5vw;right:5vw;top:13.5vh;bottom:clamp(170px,27vh,250px);font-size:clamp(21px,calc(var(--u)*4.3),36px);line-height:1.0;overflow:hidden}.artist-row{left:5vw;right:5vw;bottom:calc(env(safe-area-inset-bottom) + 72px);height:clamp(88px,17vh,150px);gap:2.5vw}.ransom-lines{padding:12vh 4vw 14vh}.ransom-lines span{font-size:clamp(46px,calc(var(--u)*11.5),88px)}.ransom-lines span:nth-child(2){align-self:flex-start}.ransom-lines span:nth-child(3){margin-left:0}.characters-title{top:3.5vh;font-size:clamp(46px,calc(var(--u)*10.2),78px)}.character-grid{left:4vw;right:4vw;top:13vh;bottom:11vh;grid-template-columns:1fr;grid-template-rows:repeat(4,1fr);gap:.9vh}.character-card{grid-template-columns:33% 67%;gap:0 2vw}.character-card h2{font-size:clamp(21px,calc(var(--u)*4.7),36px)}.character-card ul{font-size:clamp(18px,calc(var(--u)*3.25),28px);padding:.45em;line-height:.98}.character-card li{margin:0 0 .18em}.team-title{left:4vw;font-size:clamp(54px,calc(var(--u)*11),86px)}.team-copy{left:4vw;right:4vw;top:11vh;font-size:clamp(17px,calc(var(--u)*3.0),26px);line-height:1.0;max-height:80vh}.team-copy h3{font-size:clamp(28px,calc(var(--u)*4.4),40px);margin:.16em 0 .04em}.team-copy p{padding:.2em .28em;margin-bottom:.2em}.end-era{font-size:clamp(56px,calc(var(--u)*12),100px);white-space:normal;top:4vh;left:4vw;line-height:.86}.arrow{bottom:2vh;min-width:46px;min-height:46px}.counter{bottom:2.8vh}.arrow-prev{left:4vw}.arrow-next{right:4vw}}
@media (min-aspect-ratio:2/1){:root{--u:min(1vw,1.55vh)}.team-title{font-size:clamp(64px,calc(var(--u)*7.6),136px)}.team-copy{top:calc(var(--u)*12.5);font-size:clamp(24px,calc(var(--u)*2.15),42px);line-height:1.0}.team-copy h3{font-size:clamp(40px,calc(var(--u)*3.4),64px)}.characters-title{font-size:clamp(58px,calc(var(--u)*7.4),136px)}.character-grid{top:calc(var(--u)*13.5);bottom:calc(var(--u)*7.3)}.character-card ul{font-size:clamp(24px,calc(var(--u)*2.0),42px)}.approach-title{font-size:clamp(66px,calc(var(--u)*7.8),142px)}.approach-copy{font-size:clamp(28px,calc(var(--u)*2.55),50px);top:calc(var(--u)*12.5);bottom:clamp(170px,23vh,240px)}.artist-row{height:clamp(110px,18vh,180px);bottom:calc(env(safe-area-inset-bottom) + clamp(70px,8vh,100px))}.huge-title{font-size:clamp(86px,calc(var(--u)*10.0),190px)}.party-copy{font-size:clamp(34px,calc(var(--u)*2.8),56px)}.story-copy{font-size:clamp(38px,calc(var(--u)*3.6),68px)}}


/* v8 fixes: remove VHS PLAY label, keep page 7 artist photos fully visible */
.play-label{display:none!important}
.slide-07 .approach-title{
  top:clamp(24px,3.2vh,46px);
}
.slide-07 .approach-copy{
  top:clamp(150px,17vh,220px);
  bottom:clamp(230px,30vh,320px);
  font-size:clamp(26px,2.05vw,46px);
  line-height:1.03;
  overflow:hidden;
}
.slide-07 .artist-row{
  position:absolute!important;
  left:clamp(38px,5vw,90px)!important;
  right:clamp(38px,5vw,90px)!important;
  bottom:calc(env(safe-area-inset-bottom) + clamp(70px,8vh,100px))!important;
  height:clamp(96px,15vh,152px)!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:clamp(16px,3vw,64px)!important;
  align-items:end!important;
  justify-items:center!important;
  overflow:visible!important;
}
.slide-07 .artist-row img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  display:block!important;
  background:#f6f6f6!important;
  border:3px solid #fff!important;
  max-height:100%!important;
}

@media (min-aspect-ratio:2/1){
  .slide-07 .approach-title{top:clamp(18px,2.8vh,40px)}
  .slide-07 .approach-copy{
    top:clamp(130px,15.5vh,190px);
    bottom:clamp(210px,28vh,300px);
    font-size:clamp(24px,1.8vw,40px);
  }
  .slide-07 .artist-row{
    bottom:calc(env(safe-area-inset-bottom) + clamp(76px,8.5vh,110px))!important;
    height:clamp(86px,14vh,140px)!important;
  }
}

@media (max-aspect-ratio:3/4){
  .slide-07 .approach-title{
    top:3.2vh;
    font-size:clamp(50px,12vw,86px);
  }
  .slide-07 .approach-copy{
    top:13.5vh;
    bottom:calc(env(safe-area-inset-bottom) + clamp(190px,25vh,240px));
    font-size:clamp(18px,4.5vw,34px);
    line-height:1.0;
  }
  .slide-07 .artist-row{
    left:4vw!important;
    right:4vw!important;
    bottom:calc(env(safe-area-inset-bottom) + clamp(72px,9vh,100px))!important;
    height:clamp(76px,14vh,132px)!important;
    gap:2vw!important;
  }
  .slide-07 .artist-row img{border-width:2px!important}
}

/* v9 page 7: stack copy and photos together; reserve bottom space for controls */
.slide-07 .approach-layout{
  position:absolute!important;
  z-index:2!important;
  left:clamp(38px,5vw,92px)!important;
  right:clamp(38px,5vw,92px)!important;
  top:clamp(24px,4vh,52px)!important;
  bottom:calc(env(safe-area-inset-bottom) + clamp(92px,12vh,138px))!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  min-height:0!important;
  overflow:visible!important;
}
.slide-07 .approach-layout > *{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
}
.slide-07 .approach-title{
  margin:0 0 clamp(28px,4.2vh,58px)!important;
  font-size:clamp(66px,7.1vw,138px)!important;
  line-height:.82!important;
  flex:0 0 auto!important;
}
.slide-07 .approach-copy{
  width:100%!important;
  max-width:1580px!important;
  font-size:clamp(24px,1.9vw,42px)!important;
  line-height:1.04!important;
  overflow:visible!important;
  flex:0 1 auto!important;
}
.slide-07 .approach-copy p{
  margin:0 0 .72em!important;
}
.slide-07 .artist-row{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  width:100%!important;
  height:clamp(126px,18vh,220px)!important;
  margin-top:clamp(22px,3.2vh,48px)!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:clamp(18px,4vw,88px)!important;
  align-items:stretch!important;
  justify-items:stretch!important;
  overflow:visible!important;
  flex:0 0 auto!important;
}
.slide-07 .artist-row img{
  width:100%!important;
  height:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  display:block!important;
  background:#f6f6f6!important;
  border:3px solid #fff!important;
}
@media (min-aspect-ratio:2/1){
  .slide-07 .approach-layout{
    top:clamp(18px,3.6vh,40px)!important;
    bottom:calc(env(safe-area-inset-bottom) + clamp(78px,10.5vh,115px))!important;
  }
  .slide-07 .approach-title{
    margin-bottom:clamp(22px,3.2vh,42px)!important;
    font-size:clamp(62px,6.2vw,122px)!important;
  }
  .slide-07 .approach-copy{
    font-size:clamp(22px,1.7vw,36px)!important;
    line-height:1.0!important;
  }
  .slide-07 .artist-row{
    height:clamp(115px,17vh,180px)!important;
    margin-top:clamp(18px,2.6vh,34px)!important;
  }
}
@media (max-aspect-ratio:3/4){
  .slide-07 .approach-layout{
    left:5vw!important;
    right:5vw!important;
    top:3.5vh!important;
    bottom:calc(env(safe-area-inset-bottom) + 92px)!important;
  }
  .slide-07 .approach-title{
    font-size:clamp(46px,13vw,82px)!important;
    margin-bottom:2.2vh!important;
  }
  .slide-07 .approach-copy{
    font-size:clamp(16px,4.35vw,30px)!important;
    line-height:1.0!important;
  }
  .slide-07 .approach-copy p{margin-bottom:.65em!important}
  .slide-07 .artist-row{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    height:clamp(168px,27vh,260px)!important;
    gap:clamp(8px,2vw,16px)!important;
    margin-top:2vh!important;
  }
  .slide-07 .artist-row img{border-width:2px!important}
}
@media (max-height:640px){
  .slide-07 .approach-title{font-size:clamp(48px,5.2vw,92px)!important;margin-bottom:clamp(14px,2vh,24px)!important}
  .slide-07 .approach-copy{font-size:clamp(18px,1.45vw,30px)!important;line-height:.98!important}
  .slide-07 .artist-row{height:clamp(86px,15vh,120px)!important;margin-top:clamp(12px,2vh,22px)!important}
}

/* v10 refinements: safer scroll fallback, page 7 modest text bump, and bottom-safe spacing on text-heavy slides */
html, body{
  overflow:hidden;
}
.slide{
  overflow:hidden;
}
.slide.active{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
.slide.active::after{
  content:"";
  display:block;
  position:relative;
  z-index:1;
  height:calc(env(safe-area-inset-bottom) + clamp(110px,14vh,170px));
  pointer-events:none;
}

/* Keep navigation readable but reserve more room around it. */
.arrow,.counter{z-index:40}

/* Page 6: keep copy closer to the title and away from the bottom controls. */
.slide-06 .story-title{
  top:clamp(34px,6vh,78px)!important;
}
.slide-06 .story-copy{
  top:clamp(150px,20vh,230px)!important;
  bottom:calc(env(safe-area-inset-bottom) + clamp(125px,15vh,190px))!important;
  max-height:none!important;
  overflow:visible!important;
  font-size:clamp(34px,2.95vw,60px)!important;
  line-height:1.02!important;
}
.slide-06 .story-copy p{margin-bottom:0!important}

/* Page 7: slightly larger copy, while preserving the grouped layout + photo row. */
.slide-07 .approach-copy{
  font-size:clamp(26px,2.05vw,44px)!important;
  line-height:1.045!important;
}
.slide-07 .approach-layout{
  bottom:calc(env(safe-area-inset-bottom) + clamp(118px,14vh,170px))!important;
}
.slide-07 .artist-row{
  margin-top:clamp(20px,2.6vh,38px)!important;
  height:clamp(116px,16vh,190px)!important;
}

/* Page 9: back text down slightly from the too-large version, reserve bottom space, and move content upward. */
.slide-09 .team-title{
  top:clamp(20px,3.2vh,42px)!important;
}
.slide-09 .team-copy{
  top:clamp(138px,17vh,205px)!important;
  bottom:calc(env(safe-area-inset-bottom) + clamp(130px,16vh,200px))!important;
  max-height:none!important;
  overflow:visible!important;
  font-size:clamp(22px,1.72vw,34px)!important;
  line-height:1.04!important;
}
.slide-09 .team-copy h3{
  font-size:clamp(32px,2.75vw,54px)!important;
  line-height:.9!important;
  margin:.22em 0 .08em!important;
}
.slide-09 .team-copy p{
  margin:0 0 .36em!important;
  padding:.24em .4em!important;
}

@media (min-aspect-ratio:2/1){
  .slide.active::after{height:calc(env(safe-area-inset-bottom) + clamp(90px,12vh,140px));}
  .slide-06 .story-title{top:clamp(24px,4vh,56px)!important;}
  .slide-06 .story-copy{
    top:clamp(120px,16vh,180px)!important;
    bottom:calc(env(safe-area-inset-bottom) + clamp(105px,13vh,165px))!important;
    font-size:clamp(30px,2.45vw,52px)!important;
    line-height:1.0!important;
  }
  .slide-07 .approach-copy{
    font-size:clamp(24px,1.83vw,39px)!important;
    line-height:1.02!important;
  }
  .slide-07 .approach-layout{
    bottom:calc(env(safe-area-inset-bottom) + clamp(96px,12vh,140px))!important;
  }
  .slide-07 .artist-row{
    height:clamp(105px,15vh,165px)!important;
  }
  .slide-09 .team-copy{
    top:clamp(116px,15vh,170px)!important;
    bottom:calc(env(safe-area-inset-bottom) + clamp(105px,13vh,165px))!important;
    font-size:clamp(20px,1.45vw,31px)!important;
    line-height:1.02!important;
  }
  .slide-09 .team-copy h3{font-size:clamp(30px,2.35vw,48px)!important;}
  .slide-09 .team-copy p{margin-bottom:.26em!important;}
}

@media (max-aspect-ratio:3/4){
  .slide.active::after{height:calc(env(safe-area-inset-bottom) + 125px);}
  .slide-06 .story-title{
    top:4vh!important;
    font-size:clamp(50px,12vw,88px)!important;
  }
  .slide-06 .story-copy{
    top:13.8vh!important;
    bottom:calc(env(safe-area-inset-bottom) + 120px)!important;
    font-size:clamp(22px,5.25vw,40px)!important;
    line-height:1.0!important;
  }
  .slide-07 .approach-layout{
    top:3.2vh!important;
    bottom:calc(env(safe-area-inset-bottom) + 112px)!important;
  }
  .slide-07 .approach-copy{
    font-size:clamp(17px,4.65vw,32px)!important;
    line-height:1.0!important;
  }
  .slide-07 .artist-row{
    height:clamp(156px,25vh,238px)!important;
    margin-top:1.8vh!important;
  }
  .slide-09 .team-title{
    top:3.2vh!important;
    font-size:clamp(48px,12.5vw,84px)!important;
  }
  .slide-09 .team-copy{
    top:12vh!important;
    bottom:calc(env(safe-area-inset-bottom) + 118px)!important;
    font-size:clamp(15px,4.05vw,27px)!important;
    line-height:1.02!important;
  }
  .slide-09 .team-copy h3{
    font-size:clamp(24px,6vw,40px)!important;
    margin:.16em 0 .04em!important;
  }
  .slide-09 .team-copy p{
    margin-bottom:.22em!important;
    padding:.18em .28em!important;
  }
}

@media (max-height:640px){
  .slide-06 .story-copy{font-size:clamp(22px,2.25vw,38px)!important;}
  .slide-07 .approach-copy{font-size:clamp(19px,1.65vw,32px)!important;}
  .slide-07 .artist-row{height:clamp(80px,14vh,112px)!important;}
  .slide-09 .team-copy{font-size:clamp(17px,1.35vw,27px)!important;}
}

/* v11 mobile fixes: portrait layout is a real scrollable page, not a squeezed desktop slide */
@media (max-aspect-ratio: 3/4){
  html, body{height:100%; overflow:hidden!important;}
  .slide.active{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch;
    padding-bottom:calc(env(safe-area-inset-bottom) + 120px)!important;
  }
  .slide.active::after{
    height:calc(env(safe-area-inset-bottom) + 120px)!important;
  }
  .arrow{bottom:calc(env(safe-area-inset-bottom) + 18px)!important; z-index:100!important;}
  .counter{bottom:calc(env(safe-area-inset-bottom) + 28px)!important; z-index:101!important;}

  /* Page 4: switch characters to a true mobile document flow so it fits and scrolls. */
  .slide-04.characters{
    padding:24px 4.5vw calc(env(safe-area-inset-bottom) + 140px)!important;
  }
  .slide-04 .characters-title{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    transform:none!important;
    width:100%!important;
    margin:0 0 18px!important;
    text-align:center!important;
    white-space:nowrap!important;
    font-size:clamp(36px,10.4vw,56px)!important;
    line-height:.9!important;
    letter-spacing:.005em!important;
  }
  .slide-04 .character-grid{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-auto-rows:auto!important;
    grid-template-rows:none!important;
    gap:14px!important;
    margin:0!important;
    padding:0!important;
  }
  .slide-04 .character-card{
    min-height:0!important;
    display:grid!important;
    grid-template-columns:34% 1fr!important;
    grid-template-rows:auto auto!important;
    gap:0 14px!important;
    align-items:start!important;
  }
  .slide-04 .character-card img{
    grid-column:1!important;
    grid-row:1!important;
    width:100%!important;
    aspect-ratio:1/1!important;
    height:auto!important;
    object-fit:cover!important;
  }
  .slide-04 .character-card h2{
    grid-column:1!important;
    grid-row:2!important;
    font-size:clamp(22px,7vw,36px)!important;
    line-height:.9!important;
    margin:5px 0 0!important;
  }
  .slide-04 .character-card ul{
    grid-column:2!important;
    grid-row:1 / span 2!important;
    min-height:100%!important;
    max-height:none!important;
    overflow:visible!important;
    font-size:clamp(15px,4.15vw,23px)!important;
    line-height:1.04!important;
    padding:.55em .58em!important;
    letter-spacing:.025em!important;
    list-style-position:outside!important;
    padding-left:1.35em!important;
  }
  .slide-04 .character-card li{margin:0 0 .25em!important;}

  /* Page 5: avoid bottom-anchored giant copy on phones. */
  .slide-05{
    padding:36px 5vw calc(env(safe-area-inset-bottom) + 140px)!important;
  }
  .slide-05 .huge-title{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    margin:0 0 32px!important;
    width:100%!important;
    font-size:clamp(56px,17vw,92px)!important;
    line-height:.83!important;
  }
  .slide-05 .party-copy{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    width:100%!important;
    margin:0 auto!important;
    padding:18px!important;
    font-size:clamp(18px,5.2vw,29px)!important;
    line-height:1.05!important;
    letter-spacing:.045em!important;
    overflow:visible!important;
  }
  .slide-05 .party-copy p{margin:0 0 1.05em!important;}

  /* Page 6: make long story copy readable but not absurdly oversized on phones. */
  .slide-06{
    padding:32px 5vw calc(env(safe-area-inset-bottom) + 140px)!important;
  }
  .slide-06 .story-title{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    margin:0 0 34px!important;
    font-size:clamp(54px,16vw,90px)!important;
    line-height:.86!important;
  }
  .slide-06 .story-copy{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    width:100%!important;
    font-size:clamp(22px,5.55vw,34px)!important;
    line-height:1.04!important;
    overflow:visible!important;
  }

  /* Page 9: allow the team page to scroll naturally on phones instead of cropping the bottom section. */
  .slide-09.team{
    padding:24px 4.5vw calc(env(safe-area-inset-bottom) + 145px)!important;
  }
  .slide-09 .team-title{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    margin:0 0 24px!important;
    font-size:clamp(46px,15vw,82px)!important;
    line-height:.82!important;
  }
  .slide-09 .team-copy{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    width:100%!important;
    max-height:none!important;
    overflow:visible!important;
    font-size:clamp(16px,4.25vw,25px)!important;
    line-height:1.05!important;
  }
  .slide-09 .team-copy h3{
    font-size:clamp(28px,8vw,42px)!important;
    margin:.5em 0 .12em!important;
  }
  .slide-09 .team-copy p{
    margin:0 0 .45em!important;
    padding:.34em .42em!important;
  }

  /* General phone treatment for text boxes */
  .text-box,.body-copy,.team-copy{word-break:normal!important; overflow-wrap:break-word!important;}
}

/* v12 fixes: keep mobile Team background visible while scrolling, and bias final background toward car */
@media (max-aspect-ratio: 3/4){
  /* The team page scrolls on phones; keep its rave image pinned behind the whole scroll instead of ending at viewport height. */
  .slide-09.team{
    background-image:url("assets/p09-bg.jpg")!important;
    background-size:cover!important;
    background-position:center top!important;
    background-repeat:no-repeat!important;
    background-color:#000!important;
  }
  .slide-09.team .bg{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    object-fit:cover!important;
    object-position:center top!important;
    z-index:0!important;
  }
  .slide-09.team .team-copy,
  .slide-09.team .team-title{
    position:relative!important;
    z-index:2!important;
  }

  /* Final page: show more of the right side of the background on phones so the flying car stays visible. */
  .slide-12.final .bg{
    object-position:72% center!important;
  }
  .slide-12.final .final-logo{
    width:min(82vw, 520px)!important;
    top:45%!important;
  }
}

@media (min-aspect-ratio: 3/4) and (max-aspect-ratio: 1/1){
  .slide-12.final .bg{object-position:66% center!important;}
}
