:root {
  --navy:#20364c; --ink:#293e51; --blue:#64819c; --pink:#c8869b;
  --paper:#f9fafb; --line:#d9e1e7;
  --mincho:"Hiragino Mincho ProN","Yu Mincho","Noto Serif CJK JP",serif;
  --sans:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --header:88px; --gutter:clamp(24px,6vw,104px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 24px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--mincho);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{color:inherit;cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
button:disabled{cursor:default}
img{display:block;max-width:100%}
[hidden]{display:none!important}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--pink);outline-offset:5px}
.skip-link{position:fixed;z-index:100;top:-80px;left:24px;background:white;padding:16px}
.skip-link:focus{top:10px}
.site-header{height:var(--header);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 4%;background:#fffffffa;-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);position:sticky;top:0;z-index:30;border-bottom:1px solid #233d5612}
.brand{font-size:20px;letter-spacing:.08em;white-space:nowrap;flex-shrink:0}
.brand span{font-size:28px;line-height:1}
.brand small{display:block;font-size:11px;letter-spacing:.28em;text-align:center;margin-top:7px}
.site-header nav{display:flex;align-items:center;gap:clamp(18px,2.5vw,38px)}
.site-header nav a{font-size:13px;letter-spacing:.1em;padding:12px 0;white-space:nowrap;border-bottom:1px solid transparent}
.site-header nav a:hover,.site-header nav a[aria-current]{border-color:var(--pink)}
.menu-toggle{display:none}
.film-language{display:flex;align-items:center;gap:8px;position:relative;font-family:var(--sans);flex-shrink:0}
.language-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;width:68px;height:32px;padding:3px;border:1px solid #c3d0db;border-radius:999px;background:white;font:13px/1 var(--mincho);transition:border-color .2s}
.language-switch:hover{border-color:var(--navy)}
.switch-option{position:relative;z-index:1;text-align:center;color:var(--blue);transition:color .3s}
.switch-knob{position:absolute;top:3px;left:3px;width:30px;height:24px;border-radius:999px;background:var(--navy);transition:transform .35s cubic-bezier(.3,.7,.2,1),background .3s}
.language-switch[data-language="zh-Hans"] .switch-knob{transform:translateX(30px);background:#a85372}
.language-switch[data-language="ja"] .switch-option[lang="ja"],.language-switch[data-language="zh-Hans"] .switch-option[lang="zh-Hans"]{color:white}
html[lang="zh-Hans"]{--mincho:"Noto Serif SC","Songti SC","STSong",serif;--sans:"Noto Serif SC","Songti SC","STSong",serif}
html[lang="zh-Hans"] .mobile-break{display:none}
.hero{height:calc(100svh - var(--header));min-height:620px;max-height:1000px;position:relative;color:white;overflow:hidden}
.hero-image{width:100%;height:100%;object-fit:cover;object-position:50% 54%}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#11244525,transparent 65%),linear-gradient(0deg,#121f3bcc,transparent 48%,#091b382b)}
.hero-title{position:absolute;top:17%;left:7%;max-width:76%;text-shadow:0 2px 25px #192c4b33}
.hero-director{font-size:14px;letter-spacing:.3em;margin:0 0 24px}
.hero-title h1{font-size:clamp(40px,5.3vw,82px);font-weight:400;letter-spacing:.05em;line-height:1.5;margin:0;white-space:nowrap}
.five{font-size:1.3em;line-height:1;margin:0 .02em}
.mobile-break{display:none}
.hero-subtitle{font:13px/1.8 Georgia,serif;letter-spacing:.12em;margin:12px 0 0}
.title-rule{height:1px;width:36px;background:#ffffffb3;margin:28px 0 20px}
.hero-caption{font-size:15px;letter-spacing:.16em;line-height:1.8;margin:0}
.vertical-copy{writing-mode:vertical-rl;position:absolute;right:5%;top:11%;font-size:20px;line-height:2.1;letter-spacing:.17em;text-shadow:0 2px 18px #30436f;margin:0}
.hero-bottom{position:absolute;left:7%;right:7%;bottom:10%;display:flex;align-items:center;justify-content:space-between;gap:32px}
.film-data{font:12px/2 var(--sans);letter-spacing:.08em;display:flex;align-items:center;gap:16px}
.film-data i{width:1px;height:12px;background:#ffffff70}
.hero-play{display:flex;align-items:center;gap:18px;font-size:16px;letter-spacing:.12em;flex-shrink:0}
.hero-play small{display:block;font:11px Georgia,serif;letter-spacing:.25em;margin-top:8px}
.play-circle{display:grid;place-items:center;border:1px solid #fff8;border-radius:50%;width:60px;height:60px;font-size:13px;padding-left:3px;transition:background .25s}
.hero-play:hover .play-circle{background:#fff2}
.scroll-cue{position:absolute;bottom:0;left:50%;display:flex;flex-direction:column;align-items:center;gap:12px;font:10px Georgia,serif;letter-spacing:.25em;transform:translateX(-50%)}
.scroll-cue i{width:1px;height:34px;background:#fff8}
.chapter-ribbon{display:flex;justify-content:center;align-items:center;gap:5%;min-height:94px;padding:24px var(--gutter);border-bottom:1px solid var(--line);background:white;font-size:12px;letter-spacing:.1em}
.chapter-ribbon b{font-size:15px;font-weight:400;margin-left:18px}
.chapter-ribbon i{height:22px;width:1px;background:var(--line)}
.section-pad{--pad-x:max(var(--gutter),calc((100vw - 1280px)/2));padding:clamp(80px,8vw,120px) var(--pad-x)}
.section-top h2{font-size:clamp(26px,2.6vw,36px);font-weight:400;letter-spacing:.1em;line-height:1.8;margin:0;max-width:58%}
.section-note{font-size:16px;line-height:2;letter-spacing:.1em;margin:0;max-width:50%;text-align:right}
.eyebrow{font-size:13px;line-height:2;letter-spacing:.14em;color:var(--blue);margin:0 0 24px}
.introduction{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:64px 10%;background:linear-gradient(125deg,#fff 50%,#edf2f7)}
.introduction>.section-label{grid-column:1/-1}
.intro-content{min-width:0}
.intro-content h2{font-size:clamp(28px,3.2vw,44px);font-weight:400;letter-spacing:.1em;line-height:1.8;margin:0 0 30px}
.body-copy{font-size:15px;line-height:2.4;letter-spacing:.04em;margin:0 0 24px}
.body-copy br{display:none}
.intro-signature{display:block;font-size:17px;letter-spacing:.18em;color:var(--blue);margin-top:36px;line-height:1.8}
.intro-image{position:relative;align-self:center;margin:24px 0 0;padding:0 0 0 22px;min-width:0}
.intro-image img{width:100%;height:420px;object-fit:cover;object-position:65% center}
.intro-image:before{content:"";position:absolute;left:0;top:-22px;width:70px;height:70px;border-top:1px solid #9cb0c1;border-left:1px solid #9cb0c1}
.intro-image span{display:block;font-size:12px;line-height:1.8;letter-spacing:.14em;margin-top:18px;text-align:right}
.story{background:white}
.story-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:52px;border-bottom:1px solid var(--line);gap:24px}
.story-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:22px 0;display:grid;grid-template-columns:26px 1fr;align-content:start;gap:9px 12px;font-size:18px;line-height:1.7;letter-spacing:.05em;text-align:left;min-width:0}
.story-tabs button>span{font:12px/2 Georgia,serif;color:var(--blue)}
.story-tabs small{grid-column:2;font:11px/1.7 Georgia,var(--mincho);color:var(--blue);letter-spacing:.07em}
.story-tabs button[aria-selected=true]{color:#a85372;border-color:var(--pink)}
.story-panel{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:7%;align-items:center}
.story-panel figure{margin:0;min-width:0}
.story-panel figure img{width:100%;aspect-ratio:1.45;object-fit:cover}
.story-panel figcaption{font-size:11px;line-height:1.8;color:var(--blue);letter-spacing:.15em;padding-top:16px}
.story-text{min-width:0}
.chapter-no{display:block;font:48px/1 Georgia,serif;color:#cbd7e1;margin-bottom:24px}
.story-text .eyebrow{margin-bottom:16px}
.story-text h3{font-size:clamp(24px,2.2vw,30px);line-height:1.8;letter-spacing:.07em;font-weight:400;margin:0 0 22px}
.story-text>p:not(.eyebrow){font-size:15px;letter-spacing:.025em;line-height:2.15;margin:0 0 16px}
.story-motif{display:block;border-top:1px solid var(--line);font-size:11px;line-height:1.9;color:var(--blue);letter-spacing:.12em;padding-top:20px;margin-top:26px}
.landscape-break{height:440px;position:relative;color:white;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;text-align:center;padding:32px}
.landscape-break img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%}
.landscape-break>div{position:absolute;inset:0;background:#27365160}
.landscape-break p{position:relative;font-size:32px;line-height:1.9;letter-spacing:.16em;margin:0;text-shadow:0 2px 24px #17294480}
.landscape-break>span{position:relative;font-size:12px;line-height:1.8;letter-spacing:.12em}
.movie{background:#fff;border-top:1px solid var(--line)}
.music{background:linear-gradient(130deg,#f5f7f9,#fff 65%)}
.soundtrack-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:12%}
.album-column,.track-column{min-width:0}
.album-art{max-width:320px;padding:12px;background:white;box-shadow:0 16px 50px #293e511a;border:1px solid #dce4ea}
.album-art img{width:100%;aspect-ratio:1;object-fit:cover}
.album-caption{display:block;font:11px/1.8 Georgia,serif;letter-spacing:.12em;color:var(--blue);margin:24px 0 30px}
.album-column h2{font-size:28px;font-weight:400;line-height:1.8;letter-spacing:.08em;margin:0 0 22px}
.album-column>p{font-size:15px;line-height:2.2;letter-spacing:.03em;margin:0 0 24px}
.album-play{display:flex;align-items:center;gap:14px;border:1px solid #99adbe;padding:14px 22px;background:none;font-size:13px;line-height:1.8;letter-spacing:.06em}
.album-play:hover{background:#e9eff4}
.album-play>span{font-size:11px}
.theme-song{margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.theme-song small{font:11px Georgia,serif;letter-spacing:.14em;color:var(--blue)}
.theme-song p{font-size:15px;line-height:2;letter-spacing:.04em;margin:14px 0 0}
.theme-song p span{font:13px/1.8 Georgia,serif;letter-spacing:0}
.tracklist-heading{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.1em;color:var(--blue);border-bottom:1px solid #b8c9d7;padding:0 0 20px}
.track-list{list-style:none;padding:0;margin:0}
.track-list li{border-bottom:1px solid var(--line)}
.track-list button{border:0;background:none;width:100%;padding:20px 0;display:grid;grid-template-columns:24px minmax(0,1fr) 36px 20px;gap:14px;align-items:center;text-align:left;font-size:15px;line-height:1.6}
.track-list button:hover{background:#e7edf455}
.track-list button[aria-pressed=true]{color:#a85372}
.track-number{font:12px Georgia,serif;color:#6e89a0}
.track-title{overflow-wrap:anywhere}
.track-duration{font:11px Georgia,serif;color:#6e89a0;text-align:right}
.track-icon{font:11px var(--sans);text-align:center}
.media-status{font-size:13px;line-height:1.8;color:#a85372}
.gallery{background:#eef2f5;overflow:hidden}
.credits{background:white}
.director-credit{text-align:center;padding:12px 0 48px}
.director-credit>span{font-size:13px;line-height:1.8;letter-spacing:.13em;color:var(--blue)}
.director-credit h2{font-size:42px;font-weight:400;letter-spacing:.22em;margin:18px 0 14px;line-height:1.5}
.director-credit p{font:11px/1.8 Georgia,serif;letter-spacing:.2em;color:var(--blue);margin:0}
.staff-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 48px;max-width:850px;margin:0 auto 56px;padding-top:38px;border-top:1px solid var(--line)}
.staff-list div{text-align:center}
.staff-list dt{font-size:12px;line-height:1.8;letter-spacing:.05em;color:var(--blue);margin-bottom:12px}
.staff-list dd{font-size:19px;line-height:1.8;margin:0;letter-spacing:.1em}
.cast-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;text-align:center;border-top:1px solid var(--line);padding-top:38px}
.cast-list span{font-size:12px;line-height:1.8;letter-spacing:.12em;color:var(--blue)}
.cast-list h3{font-size:19px;font-weight:400;letter-spacing:.07em;margin:16px 0 0;line-height:1.8}
.credits-links{display:flex;justify-content:center;flex-wrap:wrap;gap:24px 48px;margin-top:60px}
.credits-links a{font-size:11px;letter-spacing:.04em;border-bottom:1px solid #b8c9d7;padding-bottom:9px;line-height:1.8;text-align:center}
.site-footer{padding:64px 24px;text-align:center;background:var(--navy);color:white}
.footer-title{font-size:24px;line-height:1.8;letter-spacing:.16em}
.site-footer p{font:11px/1.8 Georgia,serif;letter-spacing:.05em;opacity:.65;margin:24px 0 0}
.media-dialog,.gallery-dialog{width:min(1100px,94vw);max-width:none;border:0;background:#132638;color:white;padding:28px;box-shadow:0 30px 100px #0005;max-height:92svh}
.media-dialog{width:min(1180px,94vw);background:#f6f2ec;color:var(--ink);padding:24px 28px 26px;max-height:96svh;overflow:auto;box-shadow:0 40px 120px #0a142466}
.media-dialog::backdrop,.gallery-dialog::backdrop{background:#081627d9;backdrop-filter:blur(7px)}
.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px}
.dialog-heading>div{min-width:0}
.dialog-heading small{font:11px/1.8 Georgia,serif;color:#9eb4c9;letter-spacing:.15em}
.dialog-heading h2{font-size:21px;font-weight:400;letter-spacing:.07em;line-height:1.6;margin:8px 0 0}
.dialog-close{display:flex;gap:14px;align-items:center;border:0;background:none;color:inherit;font-size:12px;padding:7px;white-space:nowrap;flex-shrink:0}
.dialog-close>span{font-size:25px}
.gallery-dialog{width:min(1280px,94vw)}
.gallery-dialog #gallery-image{width:100%;max-height:65svh;object-fit:contain}
#gallery-title{font-size:19px;line-height:1.8;letter-spacing:.08em}
.gallery-dialog-controls{display:flex;align-items:center;gap:24px;margin-top:20px;font-size:12px}
.gallery-dialog-controls button{color:white;border:0;border-bottom:1px solid #ffffff60;background:none;padding:8px 0;font-size:12px}
.gallery-dialog-controls a{margin-left:auto;border-bottom:1px solid #ffffff60;padding:8px 0}
#gallery-counter{font:11px Georgia,serif;color:#a7bfd3;white-space:nowrap}
.audio-dock{position:fixed;z-index:35;bottom:0;left:0;right:0;display:flex;align-items:center;gap:24px;padding:18px 5%;height:90px;background:#fffef9f5;backdrop-filter:blur(15px);box-shadow:0 -3px 40px #13263814;border-top:1px solid var(--line)}
.dock-track{display:flex;align-items:center;gap:16px;width:35%;min-width:180px}
.dock-track>span{font:22px Georgia,serif;color:var(--pink)}
.dock-track>div{min-width:0}
.dock-track small{font:10px Georgia,serif;letter-spacing:.05em;color:var(--blue);display:block;margin-bottom:8px;white-space:nowrap}
.dock-track strong{font-size:14px;font-weight:400;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dock-buttons{display:flex;gap:8px;align-items:center}
.dock-buttons button{border:0;background:none;padding:10px;font-size:12px;white-space:nowrap}
.dock-buttons #audio-toggle{font:18px var(--sans);width:42px;height:42px;border:1px solid #b8c9d7;border-radius:50%;display:grid;place-items:center;padding:0}
.dock-seek{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.dock-seek span{font:11px Georgia,serif;color:var(--blue);min-width:26px}
.dock-seek input{width:100%;min-width:0;accent-color:var(--pink);height:4px;cursor:pointer}
.audio-dock>button{background:none;border:0;font-size:24px;padding:8px;color:var(--blue)}
body.audio-open{padding-bottom:90px}
@media(max-width:1120px){
  :root{--header:80px}
  .site-header{gap:16px}
  .film-language{margin-left:auto}
  .site-header nav{display:none;position:absolute;top:var(--header);left:0;right:0;padding:28px var(--gutter);background:white;border-top:1px solid var(--line);box-shadow:0 12px 20px #233d5610;flex-wrap:wrap;gap:18px 36px}
  .site-header nav.open{display:flex}
  .site-header nav a{font-size:15px}
  .menu-toggle{display:flex;flex-direction:column;gap:7px;justify-content:center;width:40px;height:40px;border:0;background:none;padding:7px;flex-shrink:0}
  .menu-toggle span{height:1px;width:26px;background:var(--navy);transition:transform .2s}
  .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}
  .hero-title h1{font-size:clamp(38px,5.4vw,62px)}
  .vertical-copy{font-size:18px}
  .film-data{display:block;max-width:280px}
  .film-data i{display:none}
  .chapter-ribbon b{display:block;margin:8px 0 0;text-align:center}
  .chapter-ribbon span{text-align:center}
  .introduction{column-gap:7%}
  .intro-image img{height:380px}
  .story-panel{gap:6%;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
  .story-tabs button{font-size:16px;gap:8px}
  .soundtrack-layout{gap:8%}
  .audio-dock{gap:14px;padding-left:3%;padding-right:3%}
}
@media(max-width:800px){
  .section-top{flex-direction:column;gap:30px;margin-bottom:40px}
  .section-top h2,.section-note{max-width:none;text-align:left}
  .introduction{grid-template-columns:1fr;gap:40px}
  .introduction>.section-label{grid-column:auto}
  .intro-content{max-width:620px}
  .intro-image{margin:20px 0 0;max-width:560px;justify-self:end;width:88%}
  .intro-image img{height:320px}
  .story-panel{grid-template-columns:1fr;gap:28px}
  .story-panel figure img{aspect-ratio:16/9}
  .chapter-no{font-size:38px;margin-bottom:20px}
  .story-text{max-width:620px}
  .soundtrack-layout{grid-template-columns:1fr;gap:50px}
  .album-column{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px;align-items:start}
  .album-art{grid-column:1;grid-row:1/5;max-width:none}
  .album-caption{grid-column:1;margin:0;font-size:10px}
  .album-column h2,.album-column>p,.album-play{grid-column:2;margin:0}
  .album-column h2{grid-row:1;font-size:24px}
  .album-column>p{grid-row:2}
  .album-play{grid-row:3;justify-self:start}
  .theme-song{grid-column:2;grid-row:4;margin:0;padding-top:16px}
  .staff-list{gap:28px}
  .cast-list{gap:20px}
  .cast-list h3{font-size:17px}
  .dock-track{width:34%;min-width:150px}
}
@media(max-width:560px){
  :root{--header:72px;--gutter:24px}
  .site-header{padding:0 18px;gap:10px}
  .brand{font-size:15px;letter-spacing:0}
  .brand span{font-size:22px}
  .brand small{font-size:10px;letter-spacing:.18em;margin-top:5px}
  .film-language{gap:4px}
  .language-switch{width:60px;height:30px;font-size:12px}
  .switch-knob{width:26px;height:22px}
  .language-switch[data-language="zh-Hans"] .switch-knob{transform:translateX(26px)}
    .menu-toggle{width:32px;padding:3px}
  .hero{height:calc(100svh - var(--header));min-height:630px;max-height:850px}
  .hero-image{object-position:59% center}
  .hero-title{top:9%;left:7%;right:7%;max-width:none}
  .hero-title h1{font-size:38px;white-space:normal;letter-spacing:.05em;line-height:1.55}
  .mobile-break{display:block}
  .hero-director{font-size:12px;letter-spacing:.22em;margin-bottom:16px}
  .hero-subtitle{font-size:11px;max-width:250px;letter-spacing:.06em}
  .hero-caption{font-size:13px;letter-spacing:.08em}
  .title-rule{margin:20px 0 16px}
  .vertical-copy{top:45%;right:6%;font-size:15px;line-height:2}
  .hero-bottom{left:7%;right:7%;bottom:9%;gap:20px;align-items:flex-end}
  .film-data{font-size:10px;line-height:2;max-width:125px;letter-spacing:.03em}
  .hero-play{font-size:13px;gap:12px;letter-spacing:.05em}
  .hero-play small{font-size:10px}
  .play-circle{width:44px;height:44px;font-size:11px}
  .chapter-ribbon{padding:20px 16px;gap:16px;min-height:94px;font-size:10px}
  .chapter-ribbon b{font-size:11px;letter-spacing:.02em;line-height:1.7}
  .chapter-ribbon i{height:32px;flex-shrink:0}
  .section-pad{--pad-x:var(--gutter);padding:72px var(--pad-x)}
  .section-top{gap:26px;margin-bottom:34px}
  .section-note{font-size:14px;letter-spacing:.06em}
  .introduction{gap:36px}
  .intro-content h2{font-size:29px;line-height:1.85;letter-spacing:.06em;margin-bottom:26px}
  .eyebrow{font-size:12px;letter-spacing:.06em;margin-bottom:20px}
  .body-copy{font-size:14px;line-height:2.25}
  .intro-signature{font-size:15px;letter-spacing:.1em;margin-top:28px}
  .intro-image{width:94%;margin-top:16px;padding-left:18px}
  .intro-image img{height:280px}
  .intro-image:before{top:-18px;width:52px;height:52px}
  .intro-image span{font-size:10px}
  .story-tabs{gap:14px;margin-bottom:32px}
  .story-tabs button{display:flex;flex-direction:column;justify-content:flex-start;font-size:12px;letter-spacing:0;line-height:1.8;padding:16px 0}
  .story-tabs button>span{display:block;font-size:11px;margin-bottom:7px}
  .story-tabs small{display:none}
  .story-text h3{font-size:26px;letter-spacing:.05em}
  .story-text>p:not(.eyebrow){font-size:14px;line-height:2.15}
  .landscape-break{height:340px;gap:24px}
  .landscape-break img{object-position:65% center}
  .landscape-break p{font-size:25px;letter-spacing:.1em}
  .landscape-break>span{font-size:11px;letter-spacing:.06em}
  .album-column{display:block}
  .album-art{max-width:280px;margin:0 auto}
  .album-caption{text-align:center;margin:20px 0 30px;font-size:10px}
  .album-column h2{font-size:27px;margin-bottom:20px}
  .album-column>p{font-size:14px;line-height:2.2;margin-bottom:24px}
  .album-column>p br{display:none}
  .theme-song{margin-top:32px;padding-top:24px}
  .track-list button{grid-template-columns:20px minmax(0,1fr) 31px 16px;gap:10px;font-size:14px;padding:19px 0}
  .track-duration,.track-number{font-size:11px}
  .director-credit{padding-bottom:36px}
  .director-credit h2{font-size:36px;letter-spacing:.16em}
  .staff-list{gap:26px 20px;padding-top:30px;margin-bottom:36px}
  .staff-list dt{font-size:11px;min-height:40px;letter-spacing:0}
  .staff-list dd{font-size:16px;letter-spacing:.04em}
  .cast-list{grid-template-columns:1fr;gap:30px;padding-top:32px}
  .cast-list h3{font-size:20px;margin-top:10px}
  .credits-links{flex-direction:column;align-items:center;margin-top:44px;gap:24px}
  .site-footer{padding:52px 20px}
  .footer-title{font-size:21px;letter-spacing:.1em}
  .site-footer p{font-size:10px}
  .media-dialog,.gallery-dialog{width:96vw;padding:16px;max-height:94svh}
  .dialog-heading{gap:14px;margin-bottom:16px}
  .dialog-heading h2{font-size:16px;line-height:1.7;letter-spacing:.04em}
  .dialog-heading small{font-size:10px}
  .dialog-close{font-size:11px;gap:8px;padding:4px}
  #gallery-title{font-size:16px;letter-spacing:.05em}
  .gallery-dialog-controls{gap:16px;flex-wrap:wrap;margin-top:16px;font-size:11px}
  .gallery-dialog-controls button{font-size:11px}
  .audio-dock{height:116px;padding:14px 5%;display:grid;grid-template-columns:minmax(0,1fr) auto 20px;gap:8px 10px}
  .dock-track{width:auto;min-width:0;gap:10px}
  .dock-track>span{font-size:18px}
  .dock-track small{font-size:9px;letter-spacing:0;margin-bottom:6px}
  .dock-track strong{font-size:12px;max-width:160px}
  .dock-buttons{gap:0}
  .dock-buttons button{padding:6px;font-size:11px}
  .dock-buttons #audio-toggle{width:34px;height:34px;font-size:16px}
  .dock-seek{grid-column:1/4;grid-row:2;gap:10px}
  .audio-dock>button{grid-row:1;grid-column:3;padding:0;font-size:22px}
  body.audio-open{padding-bottom:116px}
}
@media(max-width:360px){
  :root{--gutter:20px}
  .site-header{padding:0 12px;gap:8px}
  .brand{font-size:14px}
  .brand span{font-size:20px}
  .hero-title h1{font-size:34px}
  .intro-content h2{font-size:26px}
  .dock-track small{max-width:120px;overflow:hidden;text-overflow:ellipsis}
}
/* Section labels: the number sits on its own line so it never collides with the heading text. */
.section-top{display:flex;align-items:flex-end;justify-content:space-between;gap:32px 64px;margin-bottom:56px}
.section-label{display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-width:0;flex-shrink:0}
.section-label>span{display:flex;align-items:center;gap:12px;font:13px/1 Georgia,serif;letter-spacing:.12em;color:var(--pink)}
.section-label>span:after{content:"";width:44px;height:1px;background:currentColor;opacity:.6}
.section-label p{font:15px/1.6 Georgia,serif;letter-spacing:.17em;margin:0}
.section-label small{display:block;font:12px/1.8 var(--mincho);letter-spacing:.16em;margin-top:6px;color:var(--blue)}
.movie .section-top h2{font-size:clamp(26px,2.6vw,34px)}

/* Films: a white screening room — featured screen beside the programme, then a ticket for the full film. */
.movie .section-top h2{margin-left:auto;text-align:right;max-width:none}
.movie-tategaki{writing-mode:vertical-rl;margin:0;font-size:12px;line-height:1;letter-spacing:.5em;color:var(--blue);border-right:1px solid var(--pink);padding-right:12px;align-self:stretch}
.theatre{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,360px);gap:48px;align-items:stretch}
.theatre-main{min-width:0;position:relative}
.theatre-main:before{content:"";position:absolute;left:-18px;top:-18px;width:64px;height:64px;border-top:1px solid #9cb0c1;border-left:1px solid #9cb0c1;pointer-events:none}
.cinema-screen{display:block;width:100%;aspect-ratio:16/9;position:relative;overflow:hidden;padding:0;border:0;background:#0f1c29;box-shadow:0 34px 60px -34px #1d334980}
.cinema-screen img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.cinema-screen:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0d1d2ea6,transparent 42%),linear-gradient(180deg,#0d1d2e55,transparent 30%);pointer-events:none}
.cinema-screen:hover img{transform:scale(1.025)}
.cinema-screen[data-film="interview"] img{object-position:50% 38%}
.cinema-screen[data-film="cast-interview"] img{object-position:50% 32%}
.screen-tag{position:absolute;z-index:1;top:20px;left:20px;border:1px solid #ffffffd9;color:white;padding:5px 9px 5px 13px;font-size:13px;line-height:1.4;letter-spacing:.32em;background:#0d1d2e40}
.large-play{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);width:84px;height:84px;display:grid;place-items:center;border-radius:50%;color:var(--navy);background:#fffffff0;box-shadow:0 10px 40px #0d1d2e55;transition:transform .3s,background .3s,color .3s}
.large-play:before{content:"";position:absolute;inset:-10px;border:1px solid #ffffff80;border-radius:50%;transition:inset .3s,opacity .3s}
.large-play svg{width:28px;height:28px;fill:currentColor;margin-left:4px}
.cinema-screen:hover .large-play{transform:translate(-50%,-50%) scale(1.06);color:#a85372}
.cinema-screen:hover .large-play:before{inset:-16px;opacity:.6}
.film-time{position:absolute;z-index:1;bottom:18px;right:20px;color:white;display:flex;align-items:baseline;gap:10px}
.film-time small{font-size:11px;letter-spacing:.2em;opacity:.85}
.film-time b{font:400 16px Georgia,serif;letter-spacing:.08em}
.cinema-info{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding:30px 0 28px;border-bottom:1px solid var(--line)}
.cinema-copy{min-width:0}
.cinema-kicker{display:flex;align-items:center;gap:12px;margin:0 0 12px;font:11px/1.8 Georgia,serif;letter-spacing:.18em;color:#a85372}
.cinema-kicker i{width:28px;height:1px;background:currentColor;opacity:.6}
.cinema-info h3{font-size:clamp(22px,2.3vw,30px);font-weight:400;letter-spacing:.06em;line-height:1.6;margin:0 0 10px;overflow-wrap:anywhere}
#cinema-description{font-size:14px;line-height:2;letter-spacing:.04em;color:var(--blue);margin:0}
.cinema-play{display:flex;align-items:center;gap:12px;flex-shrink:0;color:white;background:var(--navy);border:0;border-radius:999px;padding:14px 28px 14px 22px;font-size:13px;letter-spacing:.14em;white-space:nowrap;transition:background .25s}
.cinema-play svg{width:14px;height:14px;fill:currentColor}
.cinema-play:hover{background:#a85372}
.playlist{position:relative;min-width:0;min-height:320px}
.playlist-scroll{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;padding-right:12px;scrollbar-width:thin;scrollbar-color:#c5d2dd transparent}
.playlist-group+.playlist-group{margin-top:30px}
.playlist-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin:0 0 8px;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.7;letter-spacing:.12em}
.playlist-no{font-size:11px;letter-spacing:.2em;color:#a85372;border:1px solid #d9b3c0;padding:1px 6px 1px 8px}
.playlist-heading small{flex-basis:100%;font:10px/1.6 Georgia,serif;letter-spacing:.16em;color:var(--blue)}
.playlist ul{list-style:none;margin:0;padding:0}
.film-choice{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-items:center;width:100%;padding:9px 10px;margin:2px 0;border:0;border-left:2px solid transparent;background:none;color:var(--ink);text-align:left;transition:background .2s}
.film-choice:hover{background:#f2f5f8}
.film-choice[aria-pressed=true]{background:#f8eff2;border-left-color:var(--pink)}
.film-choice[aria-pressed=true] .film-choice-title{color:#a85372}
.film-choice-image{display:block;aspect-ratio:16/9;overflow:hidden;background:#dbe4ec}
.film-choice-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.film-choice:hover img{transform:scale(1.05)}
.film-choice[data-select-film="interview"] img{object-position:50% 38%}
.film-choice[data-select-film="cast-interview"] img{object-position:50% 32%}
.film-choice-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.film-choice-title{font-size:13px;line-height:1.6;letter-spacing:.03em;overflow-wrap:anywhere}
.film-choice-time{font:11px/1.6 Georgia,serif;letter-spacing:.08em;color:var(--blue)}
.ticket{display:flex;width:100%;margin-top:64px;padding:0;border:0;text-align:left;color:white;position:relative;background:linear-gradient(90deg,#172b40f5 0%,#172b40d9 45%,#172b4040),url(https://vid.tsuikaii.com/5cm/v1/images/wallpaper-06.webp) 50% 62%/cover;box-shadow:0 30px 60px -36px #172b40;transition:transform .35s,box-shadow .35s}
.ticket:hover{transform:translateY(-3px);box-shadow:0 40px 70px -36px #172b40}
.ticket-main{flex:1;min-width:0;padding:38px 48px;display:flex;flex-direction:column;gap:12px}
.ticket-main small{font-size:11px;letter-spacing:.3em;color:#f0c9d5}
.ticket-main strong{font-weight:400;font-size:clamp(24px,2.8vw,34px);letter-spacing:.12em;line-height:1.5}
.ticket-main>span{font-size:12px;letter-spacing:.1em;line-height:1.9;color:#d6e1ea}
.ticket-stub{position:relative;width:220px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-left:1px dashed #ffffff70;background:#ffffff12;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.ticket-stub:before,.ticket-stub:after{content:"";position:absolute;left:-12px;width:24px;height:24px;border-radius:50%;background:#fff}
.ticket-stub:before{top:-12px}
.ticket-stub:after{bottom:-12px}
.ticket-stub small{font-size:11px;letter-spacing:.24em;opacity:.85}
.ticket-stub b{font:400 30px Georgia,serif;letter-spacing:.06em}
.ticket-stub em{font-style:normal;font-size:12px;letter-spacing:.2em;margin-top:8px;padding:7px 18px;border:1px solid #ffffffb3;border-radius:999px;transition:background .25s,color .25s}
.ticket:hover .ticket-stub em{background:white;color:var(--navy)}

/* Film player window: washi paper around a black screen, with its own controls. */
.media-dialog::backdrop{background:#0b1724e0}
.media-dialog .dialog-heading{margin-bottom:18px}
.player-kicker{display:flex;align-items:center;gap:12px;margin:0}
.player-tag{border:1px solid #c58a9d;color:#a85372;padding:1px 7px 1px 10px;font-size:12px;line-height:1.6;letter-spacing:.28em}
.media-dialog .dialog-heading small{color:var(--blue)}
.media-dialog .dialog-heading h2{margin-top:10px}
.player{--accent:#eaa7bb;position:relative;width:100%;aspect-ratio:16/9;max-height:70svh;background:#000;overflow:hidden;color:white;user-select:none;-webkit-user-select:none}
.player video{display:block;width:100%;height:100%;object-fit:contain;background:#000}
.player.is-fullscreen{max-height:none;aspect-ratio:auto;width:100vw;height:100vh}
.player button:focus-visible,.player input:focus-visible{outline-color:var(--accent);outline-offset:2px}
.player svg{width:22px;height:22px;fill:currentColor}
.player svg .stroke{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.player svg text{font:700 6.5px var(--sans);text-anchor:middle;fill:currentColor}
.icon-pause,.icon-muted,.icon-collapse{display:none}
.player[data-state=playing] .icon-play{display:none}
.player[data-state=playing] .icon-pause,.player.is-muted .icon-muted,.player.is-fullscreen .icon-collapse{display:block}
.player.is-muted .icon-sound,.player.is-fullscreen .icon-expand{display:none}
.player-center{position:absolute;left:50%;top:50%;width:82px;height:82px;margin:-41px 0 0 -41px;border:0;border-radius:50%;display:grid;place-items:center;background:#f6f2ecee;color:var(--navy);box-shadow:0 12px 40px #0006;transition:opacity .3s,transform .3s}
.player-center svg{width:30px;height:30px}
.player-center .icon-play{margin-left:4px}
.player-center:hover{color:#a85372;transform:scale(1.05)}
.player[data-state=playing] .player-center,.player.is-loading .player-center{opacity:0;transform:scale(.85);pointer-events:none}
.player-spinner{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border:2px solid #ffffff33;border-top-color:var(--accent);border-radius:50%;opacity:0;pointer-events:none;transition:opacity .2s}
.player.is-loading .player-spinner{opacity:1;animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.player-fallback{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;background:linear-gradient(0deg,#08121ef2,#08121ecc),url(https://vid.tsuikaii.com/5cm/v1/images/wallpaper-06.webp) center/cover;color:white}
.fallback-kicker{margin:0;font:11px/1.8 Georgia,serif;letter-spacing:.3em;color:var(--accent)}
.fallback-title{margin:0;font-size:clamp(15px,1.8vw,20px);line-height:1.8;letter-spacing:.06em;max-width:30em}
.fallback-text{margin:0;font-size:13px;line-height:1.9;letter-spacing:.06em;color:#c9d6e2}
.fallback-link{margin-top:14px;display:inline-flex;align-items:center;gap:10px;padding:12px 26px;border-radius:999px;background:#f6f2ec;color:var(--navy);font-size:13px;letter-spacing:.12em;transition:background .25s,color .25s}
.fallback-link:hover{background:var(--accent);color:var(--navy)}
.player.is-unsupported .player-center,.player.is-unsupported .player-controls,.player.is-unsupported .player-spinner{display:none}
.player-controls{position:absolute;left:0;right:0;bottom:0;padding:48px 18px 10px;background:linear-gradient(0deg,#08121ee6,#08121e80 55%,transparent);transition:opacity .35s}
.player[data-state=playing]:not(.show-controls) .player-controls{opacity:0}
.player[data-state=playing]:not(.show-controls){cursor:none}
.player-seek{position:relative;height:20px;display:flex;align-items:center}
.seek-track{position:absolute;left:0;right:0;top:50%;height:3px;margin-top:-1.5px;background:#ffffff38;overflow:hidden;transition:height .15s,margin .15s}
.player-seek:hover .seek-track,.player-seek:focus-within .seek-track{height:5px;margin-top:-2.5px}
.seek-buffer,.seek-fill{position:absolute;inset:0;transform-origin:left;transform:scaleX(0)}
.seek-buffer{background:#ffffff4a}
.seek-fill{background:var(--accent)}
#player-seek{position:relative;width:100%;height:20px;margin:0;opacity:0;cursor:pointer}
.player-seek:has(#player-seek:focus-visible) .seek-track{outline:2px solid var(--accent);outline-offset:3px}
.seek-tip{position:absolute;bottom:24px;left:0;transform:translateX(-50%);background:#f6f2ec;color:var(--ink);font:11px Georgia,serif;padding:3px 8px;opacity:0;pointer-events:none;transition:opacity .15s;white-space:nowrap}
.player-seek:hover .seek-tip{opacity:1}
.player-bar{display:flex;align-items:center;gap:2px;margin-top:4px}
.player-button{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;border:0;border-radius:50%;background:none;color:white;padding:0;transition:background .2s,color .2s}
.player-button:hover{background:#ffffff1f}
.player-volume{display:flex;align-items:center}
#player-volume{width:0;opacity:0;margin:0;accent-color:var(--accent);cursor:pointer;transition:width .25s,opacity .25s,margin .25s}
.player-volume:hover #player-volume,.player-volume:focus-within #player-volume{width:84px;opacity:1;margin:0 8px 0 2px}
.player-time{font:12px Georgia,serif;letter-spacing:.06em;margin-left:10px;white-space:nowrap;color:#e3eaf0}
.player-spacer{flex:1}
.player-speed{width:auto;min-width:52px;padding:0 10px;border-radius:999px;font:12px Georgia,serif;letter-spacing:.04em}
.player-speed.is-changed{color:var(--accent)}
.media-dialog .dialog-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-top:20px}
.player-about{min-width:0}
#film-description{margin:0;font-size:14px;line-height:1.9;letter-spacing:.05em}
#film-message{margin:4px 0 0;font:12px/1.8 var(--sans);color:#a85372}
#film-message:empty{display:none}
.gallery-dialog .dialog-close{color:white}

/* Gallery: an emaki-style horizontal scroll in five chapters, with arrows, drag and a progress line. */
.emaki-bar{display:flex;align-items:center;justify-content:space-between;gap:20px 32px;margin-bottom:26px}
.emaki-chapters{display:flex;flex-wrap:wrap;gap:4px 6px}
.emaki-chapters button{position:relative;display:flex;align-items:baseline;gap:8px;border:0;background:none;padding:8px 14px;font-size:16px;letter-spacing:.14em;color:var(--blue);transition:color .2s}
.emaki-chapters button span{font-size:11px;letter-spacing:.06em;color:#a7b6c3}
.emaki-chapters button:after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:1px;background:var(--pink);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.emaki-chapters button:hover{color:var(--ink)}
.emaki-chapters button[aria-pressed=true]{color:var(--ink)}
.emaki-chapters button[aria-pressed=true] span{color:#a85372}
.emaki-chapters button[aria-pressed=true]:after{transform:scaleX(1)}
.emaki-arrows{display:flex;align-items:center;gap:10px;flex-shrink:0}
.emaki-count{font:11px Georgia,serif;letter-spacing:.14em;color:var(--blue);margin-right:10px}
.emaki-count b{font-weight:400;font-size:16px;color:var(--ink)}
.emaki-arrows button{width:46px;height:46px;display:grid;place-items:center;border:1px solid #a9bac8;border-radius:50%;background:none;padding:0;transition:background .2s,border-color .2s,opacity .2s}
.emaki-arrows button:hover:not(:disabled){background:white;border-color:var(--navy)}
.emaki-arrows button:disabled{opacity:.3}
.emaki-arrows svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.emaki{--row:clamp(150px,16.5vw,230px);--gap:14px;position:relative;display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,var(--row));gap:var(--gap);margin:0 calc(-1 * var(--pad-x));padding:6px var(--pad-x) 26px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--pad-x);scrollbar-width:none;cursor:grab}
.emaki::-webkit-scrollbar{display:none}
.emaki:focus-visible{outline:2px solid var(--pink);outline-offset:-2px}
.emaki.is-dragging{cursor:grabbing;scroll-snap-type:none}
.emaki.is-dragging *{pointer-events:none}
.gallery-item{position:relative;display:block;height:100%;padding:0;border:0;background:#d6dfe7;overflow:hidden;min-width:0;text-align:left;color:white;scroll-snap-align:start;cursor:inherit}
.gallery-item[data-size=S]{width:calc(var(--row) * 1.6)}
.gallery-item[data-size=L]{grid-row:span 2;width:calc((var(--row) * 2 + var(--gap)) * 1.5)}
.gallery-item[data-size=T]{grid-row:span 2;width:calc((var(--row) * 2 + var(--gap)) * .64)}
.gallery-photo{display:block;height:100%}
.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .4s}
.gallery-item.portrait-photo img{object-position:50% 62%}
.gallery-item:hover .gallery-photo img{transform:scale(1.05)}
.gallery-item:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0f1f33a6,transparent 46%);opacity:.75;transition:opacity .3s;pointer-events:none}
.gallery-item:hover:after{opacity:1}
.gallery-item:focus-visible{outline-offset:3px}
.gallery-caption{position:absolute;z-index:1;left:0;right:0;bottom:0;display:flex;align-items:baseline;gap:10px;padding:0 14px 11px;font-size:12px;line-height:1.7;letter-spacing:.08em;pointer-events:none;text-shadow:0 1px 10px #0f1f3399}
.gallery-caption small{font:10px/1.8 Georgia,serif;opacity:.8;flex-shrink:0}
.gallery-caption>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gallery-item[data-size=L] .gallery-caption,.gallery-item[data-size=T] .gallery-caption{left:auto;bottom:auto;top:20px;right:16px;writing-mode:vertical-rl;padding:0;gap:12px;font-size:15px;letter-spacing:.24em}
.gallery-item[data-size=L] .gallery-caption small,.gallery-item[data-size=T] .gallery-caption small{text-combine-upright:all;font-size:11px}
.gallery-item[data-size=L] .gallery-caption>span,.gallery-item[data-size=T] .gallery-caption>span{overflow:visible;white-space:normal}
.gallery-item[data-size=L]:before,.gallery-item[data-size=T]:before{content:"";position:absolute;z-index:1;top:0;right:0;width:46%;height:60%;background:linear-gradient(225deg,#0f1f3366,transparent 60%);pointer-events:none}
.emaki-chapter{grid-row:span 2;width:calc(var(--row) * 1.08);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr auto auto;column-gap:12px;padding:4px 0 4px 22px;border-left:1px solid #c3d0db;scroll-snap-align:start}
.emaki-chapter:first-child{border-left:0;padding-left:0}
.emaki-chapter-no{grid-column:1;font-size:11px;letter-spacing:.3em;color:#a85372}
.emaki-chapter b{grid-column:1;align-self:end;font-weight:400;font-size:clamp(46px,5.4vw,76px);line-height:1.1;letter-spacing:.04em;white-space:nowrap}
.emaki-chapter small{grid-column:1;font:11px/1.8 Georgia,serif;letter-spacing:.3em;color:var(--blue);margin-top:6px}
.emaki-chapter em{grid-column:1;font:10px/1.8 Georgia,serif;font-style:normal;letter-spacing:.16em;color:#8ea2b3;margin-top:14px;padding-top:12px;border-top:1px solid #c3d0db}
.emaki-chapter p{grid-column:2;grid-row:1/-1;margin:0;writing-mode:vertical-rl;font-size:13px;line-height:1.9;letter-spacing:.24em;color:var(--ink)}
.emaki-end{grid-row:span 2;width:calc(var(--row) * .9);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border:1px solid #c3d0db;color:var(--ink)}
.emaki-end span{font-size:40px;line-height:1;width:84px;height:84px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%}
.emaki-end small{font:10px Georgia,serif;letter-spacing:.4em;color:var(--blue)}
.emaki-progress{position:relative;height:1px;background:#c9d5df}
.emaki-progress span{position:absolute;inset:0;background:var(--pink);transform-origin:left;transform:scaleX(.04);transition:transform .15s linear}
.emaki-hint{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin:16px 0 0;font-size:11px;letter-spacing:.14em;color:var(--blue)}
.emaki-hint i{position:relative;width:40px;height:1px;background:currentColor}
.emaki-hint i:after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}

/* Japanese film promotion details: award laurels, a flyer-style data box and a poster billing block. */
.laurels{list-style:none;margin:34px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:14px 30px;text-shadow:0 1px 14px #0b1a3366}
.laurels li{display:flex;align-items:center;gap:4px}
.laurel{width:26px;height:52px;flex-shrink:0;color:#ecd9ad;filter:drop-shadow(0 1px 8px #0b1a3366)}
.laurel-right{transform:scaleX(-1)}
.laurels li>span{display:flex;flex-direction:column;align-items:center;text-align:center;font-size:10px;line-height:1.55;letter-spacing:.08em;color:#ffffffd9}
.laurels small{font:10px Georgia,serif;letter-spacing:.24em;color:#ecd9ad}
.laurels b{font-weight:400;font-size:13px;letter-spacing:.08em;color:white;margin-top:1px}
.film-spec{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:30px 0 0;background:#d3dde5;border:1px solid #d3dde5}
.film-spec div{background:#fbfcfd;padding:12px 16px}
.film-spec dt{font-size:10px;letter-spacing:.24em;color:var(--blue)}
.film-spec dd{margin:4px 0 0;font-size:14px;letter-spacing:.06em;line-height:1.6}
.billing-block{max-width:780px;margin:64px auto 0;padding-top:40px;border-top:1px solid var(--line);text-align:center;font-family:var(--sans);font-feature-settings:"palt"}
.billing-block p{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 10px;margin:0 0 4px;line-height:1.75}
.billing-block small{font-size:10px;letter-spacing:0;color:var(--blue)}
.billing-block small:not(:first-child){margin-left:8px}
.billing-block b{font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.billing-block .billing-mark{align-items:center;gap:10px 16px;margin-top:22px}
.billing-mark span{font-size:10px;letter-spacing:.12em;border:1px solid currentColor;padding:2px 8px;color:var(--ink)}
.billing-mark strong{font-family:var(--mincho);font-weight:400;font-size:22px;letter-spacing:.14em}

@media(max-width:1120px){
  .theatre{grid-template-columns:minmax(0,1fr) 300px;gap:32px}
  .film-choice{grid-template-columns:96px minmax(0,1fr);gap:12px}
}
@media(max-width:800px){
  .section-top{flex-direction:column;align-items:flex-start;gap:26px;margin-bottom:40px}
  .movie .section-top h2{margin-left:0;text-align:left}
  .movie-tategaki{display:none}
  .theatre{grid-template-columns:1fr;gap:32px}
  .theatre-main:before{left:-10px;top:-10px;width:44px;height:44px}
  .playlist{min-height:0}
  .playlist-scroll{position:static;overflow:visible;padding-right:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}
  .playlist-group+.playlist-group{margin-top:0}
  .cinema-info{align-items:flex-start;flex-direction:column;gap:20px}
  .ticket-main{padding:30px 28px}
  .ticket-stub{width:160px}
  .emaki-bar{flex-direction:column;align-items:stretch;gap:14px}
  .emaki-arrows{justify-content:flex-end}
  .film-spec{max-width:420px;margin-left:auto}
}
@media(max-width:560px){
  .section-top{gap:22px;margin-bottom:32px}
  .section-label{gap:10px}
  .section-label p{font-size:13px;letter-spacing:.14em}
  .section-label small{font-size:11px}
  .movie .section-top h2{font-size:25px}
  .screen-tag{top:12px;left:12px;font-size:11px;padding:3px 6px 3px 9px}
  .large-play{width:60px;height:60px}
  .large-play svg{width:22px;height:22px}
  .film-time{bottom:10px;right:12px;gap:6px}
  .film-time small{font-size:10px}
  .film-time b{font-size:13px}
  .cinema-info{padding-top:20px;gap:18px}
  .cinema-info h3{font-size:23px}
  #cinema-description{font-size:13px;line-height:1.9}
  .cinema-play{padding:12px 22px 12px 18px;font-size:12px}
  .playlist-scroll{grid-template-columns:1fr;gap:26px}
  .film-choice{grid-template-columns:104px minmax(0,1fr);padding:8px 8px 8px 10px}
  .ticket{flex-direction:column;margin-top:44px}
  .ticket-main{padding:26px 22px 22px}
  .ticket-main>span{font-size:11px}
  .ticket-stub{width:auto;flex-direction:row;justify-content:space-between;padding:16px 22px;border-left:0;border-top:1px dashed #ffffff70}
  .ticket-stub:before,.ticket-stub:after{left:auto;top:-12px;bottom:auto}
  .ticket-stub:before{left:-12px}
  .ticket-stub:after{right:-12px}
  .ticket-stub b{font-size:22px}
  .ticket-stub em{margin:0}
  .media-dialog{padding:14px 14px 18px}
  .player-center{width:62px;height:62px;margin:-31px 0 0 -31px}
  .player-controls{padding:36px 8px 4px}
  .player-button{width:36px;height:36px}
  .player svg{width:20px;height:20px}
  #player-back,#player-forward,#player-speed{display:none}
  .player-time{font-size:11px;margin-left:4px}
  .player-fallback{gap:6px;padding:14px}
  .fallback-text{font-size:12px}
  .fallback-link{margin-top:8px;padding:9px 18px;font-size:12px}
  .media-dialog .dialog-footer{flex-direction:column;gap:14px;margin-top:14px}
  #film-description{font-size:13px}
      .emaki{--row:118px;--gap:8px;padding-bottom:20px}
  .emaki-chapters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--pad-x));padding:0 var(--pad-x)}
  .emaki-chapters button{padding:8px 10px;font-size:14px;flex-shrink:0}
  .emaki-arrows{justify-content:space-between}
  .emaki-arrows button{width:40px;height:40px}
  .emaki-count{margin-right:auto}
  .gallery-item[data-size=L] .gallery-caption,.gallery-item[data-size=T] .gallery-caption{top:12px;right:10px;font-size:12px;gap:8px}
  .gallery-caption{font-size:11px;padding:0 10px 8px;gap:7px;letter-spacing:.02em}
  .emaki-chapter{width:150px;padding-left:16px;column-gap:8px}
  .emaki-chapter p{font-size:11px;letter-spacing:.16em}
  .emaki-chapter em{margin-top:8px;padding-top:8px}
  .emaki-hint{justify-content:flex-start;font-size:10px}
  .laurels{flex-direction:column;align-items:flex-start;width:fit-content;gap:6px;margin-top:22px}
  .laurel{width:20px;height:40px}
  .laurels li>span{font-size:9px;letter-spacing:.02em}
  .laurels small{font-size:9px}
  .laurels b{font-size:11px;letter-spacing:.04em}
  .film-spec{max-width:none;margin-top:24px}
  .film-spec div{padding:10px 12px}
  .film-spec dd{font-size:13px}
  .billing-block{margin-top:44px;padding-top:30px}
  .billing-block b{font-size:12px}
  .billing-block small{font-size:9px}
  .billing-mark strong{font-size:18px}
}
@media(pointer:coarse){.player-volume #player-volume{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
