/* YAKUZA theme
   One fixed window with an orange lattice frame. Six 1840x1000 scenes from the Figma file
   scroll inside it; the header never moves. Design unit --u = 1 Figma px.
   Colours come from ACF (printed in <head> as --orange / --bg / --red / --corner). */

:root{
  --bg:#111111;
  --orange:#fe703e;
  --red:#e41316;
  --white:#fefefe;
  --gold:#f4c64a;
  --corner:url(../img/corner.png);
  --u:min(calc(100vw/1920),calc(100vh/1080));
  --f:"Outfit","Gilroy","Avenir Next","Segoe UI",system-ui,sans-serif;
  --brush:"Permanent Marker","Outfit",cursive;
  --sh:color-mix(in srgb,var(--bg) 55%,transparent);
  color-scheme:dark;
}
body.admin-bar{--u:min(calc(100vw/1920),calc((100vh - 32px)/1080))}
*{box-sizing:border-box}
html,body{height:100%;margin:0;overflow:hidden;background:var(--bg)}
html{margin-top:0!important}
body{color:var(--white);font-family:var(--f);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--orange);outline-offset:4px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.brush-txt{font-family:var(--brush);color:var(--orange);font-size:calc(96*var(--u));line-height:1;white-space:nowrap;font-weight:400}

/* ---------- window + frame ---------- */
.win{position:fixed;inset:0;background:var(--bg);overflow:hidden;padding-top:env(safe-area-inset-top,0px)}
body.admin-bar .win{top:32px}
.inner{position:absolute;inset:calc(43.5*var(--u));overflow:hidden}
.scroller{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;overscroll-behavior:contain}
.scroller::-webkit-scrollbar{display:none}
.fl{position:absolute;background:var(--orange);z-index:70;pointer-events:none}
.fl.t,.fl.b{left:calc(106*var(--u));right:calc(106*var(--u));height:max(2px,calc(3.5*var(--u)))}
.fl.t{top:calc(40*var(--u))}.fl.b{bottom:calc(40*var(--u))}
.fl.l,.fl.r{top:calc(106*var(--u));bottom:calc(106*var(--u));width:max(2px,calc(3.5*var(--u)))}
.fl.l{left:calc(40*var(--u))}.fl.r{right:calc(40*var(--u))}
.corner{position:absolute;width:calc(80*var(--u));height:calc(80*var(--u));min-width:34px;min-height:34px;background:var(--corner) center/contain no-repeat;z-index:71;pointer-events:none}
.corner.tl{left:calc(34*var(--u));top:calc(34*var(--u))}
.corner.tr{right:calc(34*var(--u));top:calc(34*var(--u));transform:scaleX(-1)}
.corner.bl{left:calc(34*var(--u));bottom:calc(34*var(--u));transform:scaleY(-1)}
.corner.br{right:calc(34*var(--u));bottom:calc(34*var(--u));transform:scale(-1)}

main{height:100%}
.hshade{position:absolute;left:0;right:0;top:0;height:calc(190*var(--u));background:linear-gradient(color-mix(in srgb,var(--bg) 90%,transparent) 0%,color-mix(in srgb,var(--bg) 70%,transparent) 40%,color-mix(in srgb,var(--bg) 30%,transparent) 75%,transparent 100%);z-index:5;pointer-events:none;transition:opacity .6s}
.at-top .hshade{opacity:0}
/* design box: 1840x1000 centred in each scene */
.scene{position:relative;height:100%;min-height:calc(1000*var(--u));overflow:hidden;isolation:isolate}
.box{position:absolute;left:calc(50% - 920*var(--u));top:calc(50% - 500*var(--u));width:calc(1840*var(--u));height:calc(1000*var(--u))}
.box>*{position:absolute}
.dragon{left:calc(214*var(--u));top:calc(211*var(--u));width:calc(1413*var(--u));opacity:.05;filter:brightness(0) invert(1);pointer-events:none}

/* ---------- header ---------- */
.hdr{position:absolute;left:calc(50% - 920*var(--u));top:calc(40*var(--u));width:calc(1840*var(--u));height:calc(190*var(--u));z-index:40;pointer-events:none}
.hdr>*{pointer-events:auto}
.nav{position:absolute;left:calc(200*var(--u));top:calc(87*var(--u));display:flex;gap:calc(37*var(--u))}
@media (max-width:1300px){.nav{left:calc(130*var(--u))}.nav a{letter-spacing:.1em}.follow{right:calc(120*var(--u))}}
@media (max-width:1100px){.nav{left:calc(110*var(--u));gap:calc(28*var(--u))}.nav a{font-size:11px}.follow span{display:none}}
.nav a{font-weight:500;font-size:max(12px,calc(18*var(--u)));line-height:1;letter-spacing:.15em;text-transform:uppercase;text-decoration:none;color:var(--white);transition:color .3s}
.nav a:hover{color:var(--orange)}
.nav a.on{color:var(--orange);font-weight:800}
.brand{position:absolute;left:calc(50% - 134*var(--u));top:calc(48*var(--u));width:calc(268*var(--u))}
.brand img{width:100%;transition:transform .5s cubic-bezier(.3,1.4,.5,1)}
.brand:hover img{transform:scale(1.05) rotate(-2deg)}
.follow{position:absolute;right:calc(160*var(--u));top:calc(67*var(--u));display:flex;align-items:center;gap:calc(14*var(--u))}
.follow span{font-weight:600;font-size:max(14px,calc(20*var(--u)));letter-spacing:.15em;text-transform:uppercase;margin-right:calc(4*var(--u))}
.soc{width:calc(57*var(--u));height:calc(57*var(--u));min-width:32px;min-height:32px;border-radius:50%;display:grid;place-items:center;background:var(--white);color:var(--bg);transition:background .3s,color .3s}
.soc:hover,.soc:focus-visible{background:var(--red);color:var(--white)}
.soc svg{width:56%;height:56%}
.follow-m{display:none}

/* ---------- 1 hero ---------- */
.hero .bg{position:absolute;inset:0;overflow:hidden}
.hero .bg img{width:100%;height:100%;object-fit:cover}
.hero .shade{position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 0%,var(--sh) 38%,transparent 65%),linear-gradient(180deg,var(--sh) 0%,color-mix(in srgb,var(--bg) 30%,transparent) 9%,color-mix(in srgb,var(--bg) 10%,transparent) 18%,transparent 26%)}
.hero .big-logo{left:calc(200*var(--u));top:calc(326*var(--u));width:calc(355*var(--u))}
.hero .lede{left:calc(200*var(--u));top:calc(483*var(--u));width:calc(600*var(--u));margin:0;font-weight:500;font-size:max(16px,calc(24*var(--u)));line-height:1.5}
.hero .lede span{display:block}
.cue{left:calc(200*var(--u));bottom:calc(60*var(--u));display:flex;align-items:center;gap:12px;font-weight:600;font-size:calc(14*var(--u));letter-spacing:.25em;text-transform:uppercase;color:var(--orange)}
.cue i{display:block;width:calc(60*var(--u));height:2px;background:var(--orange);transform-origin:left;animation:cue 2s infinite}
@keyframes cue{0%{transform:scaleX(0)}50%{transform:scaleX(1)}100%{transform:scaleX(1);opacity:0}}

/* ---------- 2 story ---------- */
.story .pic{position:absolute;right:0;top:0;bottom:0;width:calc(806*var(--u));overflow:hidden}
.story .pic img{width:100%;height:100%;object-fit:cover;will-change:transform}
.story .pic::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 0%,transparent 47%)}
.story .ttl{left:calc(199*var(--u));top:calc(185*var(--u));width:calc(232*var(--u))}
.story .brush-txt{width:auto}
.story .txt{left:calc(199*var(--u));top:calc(290*var(--u));width:calc(800*var(--u));font-weight:400;font-size:max(13px,calc(17*var(--u)));line-height:1.4}
.story .txt p{margin:0 0 calc(12*var(--u))}

/* ---------- 3 characters ---------- */
.cast .meet{left:calc(841*var(--u));top:calc(190*var(--u));font-weight:500;font-size:calc(28*var(--u));z-index:3}
.cast .ttl{left:calc(728*var(--u));top:calc(200*var(--u));width:calc(388*var(--u));z-index:2}
.cast .brush-txt{width:auto;top:calc(215*var(--u))}
.stage{inset:0}
.fighter{position:absolute;left:calc(var(--x)*var(--u));top:calc(var(--y)*var(--u));width:calc(var(--w)*var(--u));z-index:var(--z,2);background:none;border:0;padding:0;cursor:pointer;transition:filter .5s,opacity .5s}
.fighter img{width:100%;height:auto;pointer-events:none;transition:filter .5s}
.fighter.flip img{transform:scaleX(-1)}
.fighter .fig{transform-origin:50% 100%}
.cast.picking .fighter:not(.hot){filter:grayscale(1) brightness(.9)}
.cast .fighter.hot img{filter:drop-shadow(0 0 calc(30*var(--u)) rgba(244,198,74,.55)) drop-shadow(0 0 calc(70*var(--u)) rgba(244,198,74,.3))}
.label{position:absolute;left:calc(var(--lx)*var(--u));top:calc(var(--ly)*var(--u));z-index:5;height:calc(67*var(--u));width:auto;max-width:none;pointer-events:none;opacity:0;transform:translateY(10px) rotate(-4deg);transition:opacity .3s,transform .45s cubic-bezier(.2,.9,.25,1.4)}
.label-txt{height:auto;font-size:calc(60*var(--u))}
.label.on{opacity:1;transform:none}

/* ---------- 4 trailer ---------- */
.still .frame{left:calc(358*var(--u));top:calc(228*var(--u));width:calc(1124*var(--u));height:calc(645*var(--u));overflow:hidden;margin:0;background:#000}
.still .frame video{width:100%;height:100%;object-fit:cover;display:block;background:#000}
.still .embed,.still .embed iframe{width:100%;height:100%;border:0;display:block}

/* ---------- 5 episodes (grows with the number of episodes) ---------- */
.eps{height:auto;min-height:calc(1000*var(--u))}
.eps .box{position:relative;top:0;height:auto;min-height:calc(1516*var(--u));padding:calc(814*var(--u)) calc(196*var(--u)) calc(140*var(--u))}
.eps .banner{position:absolute;left:0;right:0;top:calc(180*var(--u));height:calc(608*var(--u));overflow:hidden}
.eps .banner img{width:100%;height:100%;object-fit:cover;object-position:60% 50%;will-change:transform}
.eps .banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 35%,transparent) 33%,transparent 55%),linear-gradient(180deg,color-mix(in srgb,var(--bg) 50%,transparent) 0%,color-mix(in srgb,var(--bg) 15%,transparent) 10%,transparent 18%)}
.eps .ttl{left:calc(200*var(--u));top:calc(393*var(--u));width:calc(232*var(--u));z-index:2}
.eps .brush-txt{width:auto}
.eps .season{left:calc(442*var(--u));top:calc(440*var(--u));font-weight:700;font-size:max(16px,calc(24*var(--u)));z-index:2}
.eps .desc{left:calc(200*var(--u));top:calc(509*var(--u));width:calc(460*var(--u));margin:0;font-size:max(14px,calc(18*var(--u)));line-height:1.22;z-index:2}
.cards{position:relative;left:auto;right:auto;top:auto;padding:calc(4*var(--u));display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:calc(56*var(--u)) calc(21.5*var(--u))}
.card{text-decoration:none;color:var(--white);display:flex;flex-direction:column;perspective:900px}
.card .shot{display:block;position:relative;aspect-ratio:271/471;overflow:hidden;transition:box-shadow .4s;background:#222}
.card .shot img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.card:hover .shot img{transform:scale(1.08)}
a.shot:hover{box-shadow:inset 0 0 0 2px var(--orange)}
.play{position:absolute;left:calc(50% - 40*var(--u));top:calc(50% - 40*var(--u));width:calc(80*var(--u));height:calc(80*var(--u));border-radius:50%;background:var(--orange);display:grid;place-items:center;transform:scale(.3);opacity:0;transition:transform .45s cubic-bezier(.3,1.6,.5,1),opacity .3s}
.play svg{width:34%;margin-left:6%}
.shot:hover .play,.shot:focus-visible .play{transform:scale(1);opacity:1}
.card h3{margin:calc(12*var(--u)) 0 0;font-weight:900;font-size:calc(30*var(--u));line-height:1.33}
.card .ep{font-weight:500;font-size:max(14px,calc(20*var(--u)))}
.card p{margin:calc(22*var(--u)) 0 0;font-weight:400;font-size:max(14px,calc(18*var(--u)));line-height:1.22}
.watch{display:flex;align-items:center;flex-wrap:wrap;gap:calc(8*var(--u));margin-top:calc(18*var(--u))}
.watch span{flex-basis:100%;font-weight:600;font-size:max(11px,calc(13*var(--u)));letter-spacing:.14em;text-transform:uppercase;color:var(--orange)}
.wl{width:max(28px,calc(40*var(--u)));height:max(28px,calc(40*var(--u)));border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--white) 12%,transparent);color:var(--white);transition:background .3s,transform .3s}
.wl:hover,.wl:focus-visible{background:var(--red);transform:translateY(-2px)}
.wl svg{width:50%;height:50%}
.box>.more{position:relative}
.more{display:flex;align-items:center;justify-content:center;width:max-content;margin:calc(64*var(--u)) auto 0;height:calc(66*var(--u));min-height:44px;padding:0 calc(64*var(--u));border:2px solid var(--orange);background:transparent;color:var(--white);font-weight:700;font-size:max(14px,calc(18*var(--u)));letter-spacing:.12em;text-transform:uppercase;cursor:pointer;overflow:hidden}
.more::before{content:"";position:absolute;inset:0;background:var(--orange);transform:translateX(-101%);transition:transform .45s cubic-bezier(.7,0,.2,1)}
.more:hover::before{transform:none}
.more span{position:relative}

/* ---------- 6 gallery (1080x1350 pictures, grows with the number of pictures) ---------- */
.gal{height:auto;min-height:calc(1000*var(--u))}
.gal .box{position:relative;top:0;height:auto;min-height:calc(1000*var(--u));padding:calc(340*var(--u)) calc(196*var(--u)) calc(140*var(--u))}
.gal .ttl{left:calc(200*var(--u));top:calc(170*var(--u));width:calc(232*var(--u));z-index:2}
.gal .brush-txt{width:auto}
.gal .desc{left:calc(200*var(--u));top:calc(280*var(--u));width:calc(800*var(--u));margin:0;font-size:max(14px,calc(18*var(--u)));line-height:1.3;z-index:2}
.box>.grid{position:relative}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:calc(21.5*var(--u))}
.gpic{display:block;position:relative;padding:0;border:0;background:#222;aspect-ratio:1080/1350;overflow:hidden;cursor:zoom-in}
.gpic img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.gpic:hover img,.gpic:focus-visible img{transform:scale(1.06)}
.gpic::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 2px var(--orange);opacity:0;transition:opacity .3s}
.gpic:hover::after,.gpic:focus-visible::after{opacity:1}

/* lightbox */
.lb{position:fixed;inset:0;z-index:95;overscroll-behavior:contain;background:color-mix(in srgb,var(--bg) 95%,transparent);display:grid;place-items:center;padding:64px 88px}
.lb figure{margin:0;width:100%;display:grid;gap:14px;justify-items:center}
.lb img{width:auto;max-width:100%;max-height:calc(100vh - 160px);max-height:calc(100svh - 160px);object-fit:contain;box-shadow:0 0 0 2px var(--orange)}
.lb figcaption{font-size:15px;text-align:center;max-width:60ch}
.lb figcaption:empty{display:none}
.lb-x{position:absolute;right:max(24px,env(safe-area-inset-right,0px));top:max(24px,env(safe-area-inset-top,0px));width:48px;height:48px;border:2px solid var(--white);background:transparent;cursor:pointer;transition:transform .45s cubic-bezier(.3,1.6,.5,1),border-color .3s}
.lb-x::before,.lb-x::after{content:"";position:absolute;left:18%;right:18%;top:50%;height:2px;background:var(--white);rotate:45deg}
.lb-x::after{rotate:-45deg}
.lb-x:hover{transform:rotate(90deg);border-color:var(--orange)}
.lb-a{position:absolute;top:50%;translate:0 -50%;width:52px;height:52px;border-radius:50%;border:0;background:var(--orange);color:var(--white);font-size:22px;cursor:pointer;transition:background .3s}
.lb-a:hover{background:var(--red)}
.lb-p{left:max(24px,env(safe-area-inset-left,0px))}.lb-n{right:max(24px,env(safe-area-inset-right,0px))}
.lb.solo .lb-a{display:none}

/* ---------- 6 fans ---------- */
.fans .ttl{left:calc(625*var(--u));top:calc(221*var(--u));width:calc(588*var(--u))}
.fans .brush-txt{left:0;right:0;width:auto;text-align:center}
.fans .fh{left:0;right:0;top:calc(392*var(--u));margin:0;text-align:center;font-weight:800;font-size:max(15px,calc(22*var(--u)));letter-spacing:.04em;text-transform:uppercase}
.fans .sub{left:0;right:0;top:calc(456*var(--u));margin:0;text-align:center;font-weight:500;font-size:max(16px,calc(24*var(--u)))}
.idea{left:calc(558*var(--u));top:calc(508*var(--u));width:calc(726*var(--u));display:flex;flex-direction:column;gap:calc(20*var(--u))}
.ibox{position:relative;height:calc(238*var(--u));background:url(../img/frame-w.png) center/100% 100% no-repeat;padding:calc(50*var(--u)) calc(73*var(--u))}
.ibox label{display:block;font-weight:500;font-size:max(14px,calc(18*var(--u)));text-transform:uppercase}
.ibox textarea{display:block;width:100%;height:calc(110*var(--u));margin-top:calc(4*var(--u));border:0;background:transparent;resize:none;outline:none;color:var(--white);font:inherit;font-weight:500;font-size:max(14px,calc(18*var(--u)));line-height:1.5}
.ibox textarea::placeholder{color:rgba(254,254,254,.8)}
.ask{height:calc(66*var(--u));min-height:44px;border:0;background:var(--red);color:var(--white);font-weight:700;font-size:max(14px,calc(18*var(--u)));text-transform:uppercase;cursor:pointer;position:relative;overflow:hidden}
.ask::before{content:"";position:absolute;inset:0;background:var(--orange);transform:translateX(-101%);transition:transform .45s cubic-bezier(.7,0,.2,1)}
.ask:hover::before{transform:none}
.ask span{position:relative}
.answer{display:flex;align-items:center;justify-content:center;gap:calc(16*var(--u));min-height:calc(60*var(--u))}
.answer .stamp{font-weight:900;font-size:calc(40*var(--u));color:var(--orange);border:3px solid var(--orange);padding:0 calc(20*var(--u));rotate:-6deg;opacity:0}
.answer small{font-size:calc(16*var(--u));opacity:0}
.fans .copy{left:0;right:0;top:calc(931*var(--u));margin:0;text-align:center;font-weight:500;font-size:max(14px,calc(18*var(--u)))}

/* ---------- character page ---------- */
.cp{position:absolute;inset:0;z-index:30;visibility:hidden}
.cp.open{visibility:visible}
.cp .bgfill{position:absolute;inset:0;background:var(--bg)}
.cp-fig{z-index:3;will-change:transform}
.cp-fig img{width:100%;height:auto}
.cp-fig.flip img{transform:scaleX(-1)}
.cp-name{left:calc(200*var(--u));top:calc(262*var(--u));height:auto;z-index:4}
.cp-name-txt{left:calc(200*var(--u));top:calc(290*var(--u));z-index:4;display:none}
.cp.no-name-img .cp-name{display:none}.cp.no-name-img .cp-name-txt{display:block}
.cp-tag{left:calc(200*var(--u));top:calc(436*var(--u));margin:0;font-weight:700;font-size:max(18px,calc(30*var(--u)));z-index:4}
.cp-desc{left:calc(200*var(--u));top:calc(486*var(--u));width:calc(820*var(--u));margin:0;font-weight:400;font-size:max(14px,calc(19*var(--u)));line-height:1.55;z-index:4}
.cp-close{left:calc(1699*var(--u));top:calc(455*var(--u));width:calc(90*var(--u));height:calc(90*var(--u));min-width:44px;min-height:44px;border:2px solid var(--white);background:transparent;cursor:pointer;z-index:6;transition:transform .45s cubic-bezier(.3,1.6,.5,1),border-color .3s}
.cp-close::before,.cp-close::after{content:"";position:absolute;left:16%;right:16%;top:50%;height:2px;background:var(--white);rotate:45deg;transition:background .3s}
.cp-close::after{rotate:-45deg}
.cp-close:hover{transform:rotate(90deg);border-color:var(--orange)}
.cp-close:hover::before,.cp-close:hover::after{background:var(--orange)}
.cp-nav{left:calc(200*var(--u));top:calc(860*var(--u));display:flex;gap:calc(30*var(--u));z-index:6}
.cp-nav button{background:none;border:0;padding:0;cursor:pointer;font-weight:500;font-size:max(14px,calc(18*var(--u)));letter-spacing:.15em;text-transform:uppercase;transition:color .3s}
.cp-nav button:hover{color:var(--orange)}
.cp.solo .cp-nav{display:none}

.loader{position:fixed;inset:0;z-index:100;background:var(--bg);display:none;place-items:center}
.loader img{width:min(36vw,420px)}
.js .loader{display:grid}.reduced .loader{display:none!important}

/* ---------- phones / portrait (Figma: Yakuza - Landing page - Mobile, 402 wide) ----------
   The page scrolls normally; the orange frame wraps the first screen only. */
@media (max-width:782px){body.admin-bar .win{top:auto}}
@media (max-width:820px),(max-aspect-ratio:1/1){
  :root,body.admin-bar{--u:calc(100vw/1000);--su:calc((100vw - 52px)/985);--g:max(22px,8.4vw);--fh:calc(100svh - 24px)}
  html,body{height:auto;overflow:visible}
  .win{position:relative;inset:auto;overflow:clip;padding-top:0}
  .inner,.scroller{position:static;inset:auto;overflow:visible}
  main{height:auto}
  .hshade{display:none}

  /* frame around the first screen */
  .fl.t,.fl.b{left:40px;right:40px;height:2px}
  .fl.t{top:12px}.fl.b{top:calc(var(--fh) + 10px);bottom:auto}
  .fl.l,.fl.r{top:40px;bottom:auto;height:calc(var(--fh) - 56px);width:2px}
  .fl.l{left:12px}.fl.r{right:12px}
  .corner{width:40px;height:40px;min-width:0;min-height:0}
  .corner.tl{left:9px;top:9px}.corner.tr{right:9px;top:9px}
  .corner.bl{left:9px;top:calc(var(--fh) - 25px);bottom:auto}.corner.br{right:9px;top:calc(var(--fh) - 25px);bottom:auto}

  /* header: logo, menu under it, social buttons move to the bottom */
  .hdr{position:absolute;left:0;right:0;top:0;width:auto;height:150px;background:none}
  .brand{left:calc(50% - 80px);top:44px;width:160px}
  .nav{display:flex;left:0;right:0;top:122px;justify-content:center;gap:clamp(12px,4.6vw,24px)}
  .nav a{font-size:clamp(11px,3.3vw,13px);letter-spacing:.12em}
  .follow{display:none}

  /* scenes flow one under the other */
  .scene{height:auto;min-height:0}
  .box{position:relative;left:auto;top:auto;width:auto;height:auto;padding:0 var(--g)}
  .box>*{position:relative;left:auto!important;top:auto!important;right:auto;bottom:auto;width:auto}
  .brush-txt{font-size:56px;display:block}
  .dragon{position:absolute!important;left:0!important;top:30%!important;width:120%!important;opacity:.05}

  /* 1 hero */
  .hero{padding-top:164px}
  .hero .bg{position:relative;inset:auto;margin:0 var(--g);aspect-ratio:335/182}
  .hero .shade,.hero .big-logo,.cue{display:none}
  .hero .lede{width:auto;margin-top:24px;font-size:17px;line-height:1.45}
  .hero .lede span{display:inline}
  .hero .lede span::after{content:" "}
  .hero .lede span.gap{display:block;height:.9em}

  /* 2 story: title, picture, text */
  .story{display:flex;flex-direction:column;padding-top:48px}
  .story .box{display:contents}
  .story .ttl,.story .brush-txt{order:1;width:138px;margin:0 var(--g)}
  .story .pic{order:2;position:relative;right:auto;top:auto;bottom:auto;width:auto;margin:24px var(--g) 0;aspect-ratio:335/416}
  .story .pic::after{display:none}
  .story .txt{order:3;width:auto;margin:28px var(--g) 0;font-size:16px;line-height:1.4}
  .story .txt p{margin:0 0 16px}

  /* 3 characters */
  .cast .box{padding-top:64px}
  .cast .meet{display:block;text-align:center;font-size:22px;margin-bottom:-24px;z-index:3}
  .cast .ttl{width:100%;margin:0 auto}
  .cast .brush-txt{text-align:center}
  .stage{position:relative;height:calc(840*var(--su));margin-top:12px}
  .fighter{position:absolute!important;left:calc((var(--x) - 430)*var(--su))!important;top:calc((var(--y) - 250)*var(--su))!important;width:calc(var(--w)*var(--su))!important}
  .label{display:none}

  /* 4 trailer */
  .still .box{padding-top:28px}
  .still .frame{width:100%;height:auto;aspect-ratio:1124/645}

  /* 5 episodes: two columns, no side scroll */
  .eps{min-height:0}
  .eps .banner{display:none}
  .eps .box{display:flex;flex-wrap:wrap;align-items:center;column-gap:10px;min-height:0;padding:64px var(--g) 0}
  .eps .ttl{width:62%;margin:0}
  .eps .brush-txt{margin:0}
  .eps .season{font-size:18px;margin:0}
  .eps .desc,.eps .cards,.eps .more{flex-basis:100%}
  .eps .desc{width:auto;margin-top:16px;font-size:16px;line-height:1.35}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 14px;margin:28px 0 0;padding:0}
  .card h3{font-size:18px;line-height:1.25;margin-top:10px}
  .card .ep{font-size:13px}
  .card p{font-size:13.5px;line-height:1.35;margin-top:8px}
  .play{width:52px;height:52px;left:calc(50% - 26px);top:calc(50% - 26px);transform:none;opacity:.92}
  .watch{gap:6px;margin-top:12px}
  .watch span{flex-basis:100%;font-size:10.5px;margin:0 0 2px}
  .wl{width:34px;height:34px}
  .more{width:100%;height:54px;margin-top:32px;font-size:14px}

  /* 6 gallery: two columns */
  .gal{min-height:0}
  .gal .box{min-height:0;padding:64px var(--g) 0}
  .gal .ttl{width:62%}
  .gal .desc{width:auto;margin-top:12px;font-size:16px;line-height:1.35}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:24px}

  /* 7 fans */
  .fans .box{text-align:center;padding:72px var(--g) 40px}
  .fans .ttl{width:88%;margin:0 auto}
  .fans .fh{font-size:15px;margin-top:4px}
  .fans .sub{font-size:20px;line-height:1.35;margin-top:20px}
  .idea{width:auto;margin-top:28px;gap:20px}
  .ibox{display:flex;flex-direction:column;height:auto;aspect-ratio:335/518;max-height:560px;background:none;border:34px solid transparent;border-image:url(../img/frame-w.png) 64 / 34px stretch;padding:10px 10px 0;text-align:left}
  .ibox label{font-size:13px}
  .ibox textarea{flex:1;height:auto;font-size:15px}
  .ask{height:60px;font-size:16px}
  .answer .stamp{font-size:26px}.answer small{font-size:13px}
  .follow-m{display:grid;justify-items:center;gap:16px;margin-top:40px}
  .follow-m>span{font-weight:600;font-size:18px;letter-spacing:.2em;text-transform:uppercase}
  .follow-m>div{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
  .follow-m .soc{width:58px;height:58px;background:var(--white);color:var(--orange)}
  .follow-m .soc:nth-child(even){background:var(--orange);color:var(--white)}
  .fans .copy{font-size:12px;line-height:1.5;margin-top:44px}

  /* character page: full screen over the page */
  .cp{position:fixed;inset:0;z-index:80;overflow-y:auto}
  .cp .box{padding-top:72px;padding-bottom:40px}
  .cp-fig{position:relative!important;width:62vw!important;margin:0 auto}
  .cp-name-txt{display:none}.cp.no-name-img .cp-name-txt{display:block}
  .cp-name{width:auto!important;height:70px!important}.cp-tag{font-size:19px;margin-top:6px}.cp-desc{font-size:15px;margin-top:10px}
  .cp-close{position:fixed!important;left:auto!important;right:24px;top:24px!important;width:44px;height:44px}
  .cp-nav{margin-top:22px;gap:20px}.cp-nav button{font-size:12px}

  /* lightbox: arrows under the picture */
  .lb{padding:72px 16px 96px}
  .lb img{max-height:calc(100svh - 190px)}
  .lb-a{top:auto;bottom:max(24px,env(safe-area-inset-bottom,0px));translate:none}
  .lb-p{left:calc(50% - 66px)}.lb-n{right:calc(50% - 66px)}
}
@media (prefers-reduced-motion:reduce){.cue i{animation:none}}
