/* ミニシアターのプログラム冊子。赤い壁、金の細線、欧文はガラモンの斜体、和文は明朝。 */
:root{
  --bg:#4a0c12;
  --bg-deep:#2f070b;
  --text:#f2e8d8;
  --muted:#c4ab92;
  --gold:#c9a46b;
  --line:rgba(201,164,107,.34);
  --mincho:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;
  --gothic:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --latin:"Cormorant Garamond","Garamond","Times New Roman",serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--bg-deep)}
body{
  margin:0;min-height:100vh;color:var(--text);font-family:var(--gothic);font-size:15px;line-height:1.85;
  background:
    radial-gradient(ellipse 80% 420px at 50% -60px,rgba(255,214,160,.13),transparent 70%),
    radial-gradient(ellipse 120% 90% at 50% 40%,transparent 55%,rgba(0,0,0,.35)),
    var(--bg);
  -webkit-font-smoothing:antialiased;font-feature-settings:"palt";
}
/* フィルムのざらつき */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a{color:inherit}
img{max-width:100%;display:block}
::selection{background:var(--gold);color:var(--bg-deep)}
:focus-visible{outline:1px solid var(--gold);outline-offset:4px}

.wrap{max-width:1100px;margin:0 auto;
  padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}

.en{font-family:var(--latin);font-style:italic;font-weight:500;letter-spacing:.06em;color:var(--gold)}
.caps{font-family:var(--latin);font-weight:500;font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold)}

/* ヘッダー */
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:22px}
.site-name{font-family:var(--mincho);font-weight:500;font-size:14px;letter-spacing:.24em;text-decoration:none}
.site-name:hover{color:var(--gold)}
.site-name,.logo-text{white-space:nowrap}
@media (max-width:520px){.site-name{font-size:12px;letter-spacing:.12em}}
.logo{display:flex;align-items:center;text-decoration:none}
.logo img{height:36px;width:auto}
@media (max-width:520px){.logo img{height:26px}}
.logo .logo-text{font-family:var(--mincho);font-size:13px;letter-spacing:.2em;color:var(--muted)}
.rule{height:1px;background:linear-gradient(90deg,transparent,var(--line) 12%,var(--line) 88%,transparent)}

/* 月の見出し */
.month{padding-block:72px 56px;display:grid;grid-template-columns:auto auto 1fr;align-items:end;gap:0 28px}
.month .caps{grid-column:1/-1;margin:0 0 18px;display:flex;align-items:center;gap:14px}
.month .caps::after{content:"";height:1px;width:64px;background:var(--line)}
.month-num{margin:0;font-family:var(--latin);font-weight:300;font-size:clamp(120px,19vw,210px);line-height:.78;letter-spacing:-.02em;font-feature-settings:"lnum"}
.month-tate{writing-mode:vertical-rl;font-family:var(--mincho);font-size:15px;letter-spacing:.32em;color:var(--muted);margin:0;padding-bottom:4px;justify-self:start}
.theme{margin:0 0 6px;justify-self:end;text-align:right;max-width:20em}
.theme .en{display:block;font-size:16px;margin-bottom:4px}
.theme b{font-family:var(--mincho);font-weight:500;font-size:clamp(22px,2.8vw,30px);line-height:1.5;text-wrap:balance}
@media (max-width:680px){.month{grid-template-columns:auto 1fr;padding-top:48px}.theme{grid-column:1/-1;justify-self:start;text-align:left;margin-top:28px}}

/* ポスター */
.posters{list-style:none;margin:0;padding:8px 0 96px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:64px 48px}
@media (max-width:820px){.posters{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 24px}}
.poster a{text-decoration:none;display:flex;flex-direction:column;gap:18px}
.p-no{display:flex;align-items:center;gap:12px;font-family:var(--latin);font-style:italic;font-size:17px;color:var(--gold);line-height:1}
.p-no::after{content:"";flex:1;height:1px;background:var(--line)}
.frame{position:relative;aspect-ratio:2/3;max-width:100%;padding:7px;border:1px solid var(--gold);background:var(--bg-deep);
  transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.frame{min-height:0;overflow:hidden}
/* 中身は枠の内側に固定（画像の元サイズに引っぱられて枠がのびないように） */
.frame > img,.frame > .noimg{position:absolute;inset:7px;width:calc(100% - 14px);height:calc(100% - 14px);object-fit:cover}
.poster a:hover .frame{transform:translateY(-4px);box-shadow:0 18px 40px -18px rgba(0,0,0,.8),0 0 0 1px rgba(201,164,107,.25)}
.p-title{font-family:var(--mincho);font-weight:700;font-size:19px;line-height:1.5;margin:0;letter-spacing:.04em}
.p-meta{font-size:12px;color:var(--muted);letter-spacing:.08em;margin:4px 0 0}
@media (prefers-reduced-motion:reduce){.frame{transition:none}}

/* ポスターがない時 */
.noimg{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;
  background:radial-gradient(ellipse at 50% 30%,#5a121a,var(--bg-deep) 75%)}
.noimg::before{content:"";position:absolute;inset:8%;border:1px solid var(--line)}
.noimg-t{writing-mode:vertical-rl;font-family:var(--mincho);font-weight:700;font-size:clamp(14px,2vw,22px);letter-spacing:.2em;line-height:1.6;height:72%;text-align:center;overflow:hidden;color:var(--text)}
.noimg-l{position:absolute;bottom:11%;left:0;right:0;text-align:center;font-family:var(--latin);font-size:10px;letter-spacing:.4em;color:var(--gold)}

/* 過去の月 */
.archive{padding-block:40px 96px}
.archive .caps{margin:0 0 22px}
.archive dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 32px;align-items:baseline}
.archive dt{font-family:var(--latin);font-size:22px;font-weight:400;color:var(--muted)}
.archive dd{margin:0;display:flex;flex-wrap:wrap;gap:6px 26px}
.archive a{text-decoration:none;font-family:var(--mincho);font-size:16px;letter-spacing:.08em}
.archive a[aria-current]{color:var(--gold)}
.archive a:hover{color:var(--gold)}
.archive .c{font-family:var(--latin);font-style:italic;font-size:14px;color:var(--muted);margin-left:6px}

/* 映画ページ */
.back{display:inline-flex;gap:10px;margin-top:36px;font-family:var(--mincho);font-size:13px;letter-spacing:.12em;color:var(--muted);text-decoration:none}
.back:hover{color:var(--gold)}
.film{display:grid;grid-template-columns:minmax(0,360px) auto minmax(0,1fr);gap:0 48px;padding-block:48px 96px;align-items:start}
.f-title{writing-mode:vertical-rl;font-family:var(--mincho);font-weight:700;font-size:clamp(30px,3.4vw,40px);line-height:1.4;letter-spacing:.14em;margin:0;max-height:540px}
.f-body{min-width:0;padding-top:4px}
@media (max-width:820px){
  .film{grid-template-columns:1fr;gap:32px}
  .film .frame{max-width:300px}
  .f-title{writing-mode:horizontal-tb;max-height:none;letter-spacing:.06em}
}
.meta{margin:0 0 44px;border-top:1px solid var(--line)}
.meta div{display:grid;grid-template-columns:6.5em 1fr;padding:11px 0;border-bottom:1px solid var(--line);align-items:baseline}
.meta dt{font-size:12px;color:var(--muted);letter-spacing:.14em}
.meta dd{margin:0;font-family:var(--mincho)}
.sec{margin:0 0 40px;max-width:36em}
.sec h2{display:flex;align-items:baseline;gap:12px;font-size:13px;font-weight:700;letter-spacing:.2em;margin:0 0 12px}
.sec h2 .en{font-size:15px;font-weight:500;letter-spacing:.06em}
.sec p{margin:0;white-space:pre-wrap}
.sec ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.sec li{padding-left:1.4em;position:relative}
.sec li::before{content:"";position:absolute;left:0;top:.9em;width:.7em;height:1px;background:var(--gold)}
.moods{font-family:var(--mincho);font-size:17px;letter-spacing:.06em}
.moods i{font-style:normal;color:var(--gold);margin:0 .7em}

.empty{padding-block:96px;color:var(--muted);font-family:var(--mincho);font-size:18px;letter-spacing:.1em}
.site-foot .wrap{display:flex;justify-content:flex-end;align-items:center;gap:16px;padding-block:28px 40px;font-family:var(--mincho);font-size:12px;color:var(--muted);letter-spacing:.16em}
