:root{--cream:#faf8ef;--ink:#1b1b1b;--green:#0a7d3b;--leaf:#a6d66f;--blue:#0a5cff;--orange:#f28c1c;--muted:#555}
@media (prefers-color-scheme:dark){:root{--cream:#fdfcf6}}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:18px/1.65 "Nunito Sans",system-ui,sans-serif}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;font-weight:800;line-height:1.15;margin:0 0 .5em}
a{color:var(--green)}a:focus-visible,button:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.wrap{max-width:1080px;margin:0 auto;padding:0 22px}
header.top{border-bottom:1px solid #e3dfcf}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}
header.top img{height:46px;display:block}
nav a{margin-left:20px;text-decoration:none;color:var(--ink);font-weight:700}
nav a:hover{color:var(--green)}
.hero{text-align:center;padding:48px 0 36px}
.hero .logo{width:min(640px,92%);height:auto}
.tag{font-family:"Playfair Display",serif;font-weight:700;font-size:1.25rem;margin:.2em 0 1.6em}
.tag b{color:var(--green)}
.hero h1{font-size:clamp(2.4rem,7vw,4.2rem);margin:0}
.hero h1 span{display:block;color:var(--green)}
.lead{font-family:"Playfair Display",serif;font-style:italic;font-size:1.25rem;max-width:34em;margin:1em auto 0}
.when{display:flex;justify-content:center;gap:12px 28px;flex-wrap:wrap;margin-top:28px;font-family:"Playfair Display",serif;font-weight:800;font-size:1.5rem}
.when span{display:inline-flex;align-items:center;gap:8px}
.when svg{width:1.3em;height:1.3em;fill:none;stroke:var(--orange);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.strip{background:#111;padding:30px 0;position:relative;margin:40px 0}
.strip::before,.strip::after{content:"";position:absolute;left:0;right:0;height:12px;background:repeating-linear-gradient(90deg,#fff 0 12px,transparent 12px 28px)}
.strip::before{top:9px}.strip::after{bottom:9px}
.frames{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;list-style:none;margin:0;padding:0}
.frames a{display:block;color:#fff;text-decoration:none;text-align:center}
.ph{aspect-ratio:3/4;background:#2b2b2b;border:3px solid #fff;overflow:hidden;display:grid;place-items:center;font:800 2.4rem "Playfair Display",serif;color:var(--leaf)}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
.frames a:hover .ph{border-color:var(--orange)}
.frames strong{display:block;margin-top:10px;font-family:"Playfair Display",serif;line-height:1.2}
.frames small{display:block;color:#cfcfcf;font-size:.85rem;margin-top:2px}
section{padding:36px 0}
h2{font-size:clamp(1.7rem,4vw,2.3rem)}
.films{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;list-style:none;padding:0;margin:0}
.films a{display:block;border:2px solid var(--green);padding:20px 22px;text-decoration:none;color:var(--ink);background:#fff}
.films a:hover{background:var(--green);color:#fff}
.films h3{margin:0 0 .2em;font-size:1.4rem}.films p{margin:0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}
.two img{width:100%;height:auto;display:block}
.note{background:#fff;border-left:6px solid var(--orange);padding:18px 22px}
.btn{display:inline-block;background:var(--green);color:#fff;padding:.6em 1.3em;text-decoration:none;font-weight:800}
.btn:hover{background:var(--blue)}
.film-head{padding:44px 0 10px}.film-head .back{font-weight:700;text-decoration:none}
.film-head h1{font-size:clamp(2.6rem,8vw,5rem);color:var(--green);margin:.3em 0 .1em}
.by{font-family:"Playfair Display",serif;font-size:1.3rem;margin:0}
.cast{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:18px;list-style:none;padding:0;margin:0}
.cast .ph{aspect-ratio:3/4}.cast strong{display:block;margin-top:8px;font-family:"Playfair Display",serif}
.dir{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:32px;align-items:start}
.soon{color:var(--muted);font-style:italic}
footer{background:var(--green);color:#fff;margin-top:40px}
footer .wrap{display:flex;gap:24px 48px;flex-wrap:wrap;justify-content:space-between;align-items:center;padding-top:32px;padding-bottom:32px}
footer a{color:#fff}footer img{height:64px;background:#fff;padding:8px 14px;display:block}
@media(max-width:820px){.frames{grid-template-columns:repeat(2,1fr)}.two,.dir{grid-template-columns:1fr}nav a{margin:0 16px 0 0}}
.film-head .when{justify-content:flex-start;font-size:1.25rem}
.ph img{object-position:center 25%}
