*{box-sizing:border-box}
img{max-width:100%;height:auto}
body{margin:0}
:root{
  --paper:#faf7ed;--surface:#fffdf6;--surface-hover:#fff4d5;
  --ink:#302711;--muted:#66583d;--line:#d6c9ac;--line-hover:#8a681b;
  --accent:#f2ce4b;--accent-ink:#302711;
  --dark:#302711;--dark-ink:#fff7e4;--dark-muted:#eadbb7;
  --dark-card:#42361d;--dark-card-hover:#514225;--dark-line:#9d875c;
  --focus:#805b0a;
  --body-size:clamp(16px,1rem + .3vw,18px);
  --small-size:14px;--h1:clamp(32px,5vw,58px);
  --h2:clamp(26px,3vw,38px);--h3:clamp(19px,2vw,23px);
  --s1:.5rem;--s2:1rem;--s3:1.5rem;--s4:2rem;
  --s5:3rem;--s6:clamp(3rem,7vw,6rem);
  --radius:16px;--radius-small:8px;--pill:999px;
  --shadow:0 8px 24px rgba(116,83,16,.10);
  --shadow-hover:0 14px 32px rgba(116,83,16,.18);
  --width:1180px;
}
html{scroll-behavior:smooth;scroll-padding-top:var(--s2)}
body{
  background:var(--paper);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  font-size:var(--body-size);line-height:1.65;overflow-wrap:anywhere;
}
a{color:inherit;text-underline-offset:4px}
button,input{font:inherit}
button{cursor:pointer}
button,a,input{touch-action:manipulation}
:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
[hidden]{display:none!important}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{color:inherit}
h1{font-size:var(--h1);line-height:1.15;letter-spacing:1px}
h2{font-size:var(--h2);line-height:1.2;letter-spacing:1px}
h3{font-size:var(--h3);line-height:1.4}
p+p{margin-top:var(--s2)}
.wrap{width:min(var(--width),calc(100% - 32px));margin-inline:auto}
.section{padding-block:var(--s6)}
.section+.section{border-top:1px solid var(--line)}
.section-heading{margin-bottom:var(--s4)}
.section-heading h2{margin-block:var(--s1) var(--s2)}
.section-heading>p:last-child{color:var(--muted)}
.eyebrow{font-size:var(--small-size);font-weight:700;letter-spacing:1px}
.muted{color:var(--muted)}
.section-intro{max-width:75ch;margin-bottom:var(--s4)}
.skip{
  position:absolute;left:var(--s2);top:var(--s2);
  transform:translateY(-200%);z-index:10;
  background:var(--accent);color:var(--accent-ink);
  padding:var(--s2);border-radius:var(--radius-small);
}
.skip:focus{transform:none}
.site-header{
  width:min(var(--width),calc(100% - 32px));margin:auto;
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:var(--s1) var(--s3);padding-block:var(--s1);
  border-bottom:1px solid var(--line);
}
.brand{
  display:inline-flex;align-items:center;gap:var(--s1);
  min-height:44px;font-size:22px;font-weight:800;text-decoration:none;
}
nav{display:flex;flex-wrap:wrap;gap:var(--s1)}
nav a{
  display:inline-flex;align-items:center;min-height:44px;
  padding:var(--s1);border-radius:var(--radius-small);
  text-decoration:none;font-size:var(--small-size);
}
nav a:hover{background:var(--surface-hover);color:var(--ink)}
.hero{display:grid;gap:var(--s4);padding-block:var(--s5)}
.hero-copy{
  min-width:0;background:var(--accent);color:var(--accent-ink);
  padding:clamp(24px,4vw,48px);border-radius:var(--radius);
}
.hero-copy h1{margin-block:var(--s3)}
.hero-copy .lead{font-weight:600}
.hero-copy>p{max-width:55ch}
.actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.button{
  display:inline-flex;justify-content:center;align-items:center;gap:var(--s3);
  min-height:48px;padding:var(--s1) var(--s3);
  border:1px solid var(--dark);border-radius:var(--radius-small);
  background:var(--dark);color:var(--dark-ink);text-decoration:none;font-weight:700;
  transition:transform .2s,box-shadow .2s;
}
.button:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
.button.secondary{background:var(--surface);color:var(--ink)}
.tags{display:flex;flex-wrap:wrap;gap:var(--s1);list-style:none;margin:var(--s4) 0 0;padding:0}
.tags li{font-size:var(--small-size);border:1px solid var(--ink);border-radius:var(--pill);padding:.25rem .75rem}
.hero-figure{
  align-self:center;min-width:0;overflow:hidden;border-radius:var(--radius);
  background:var(--surface);color:var(--ink);border:1px solid var(--line);
}
.hero-figure img{display:block;width:100%}
.hero-figure figcaption{padding:var(--s3)}
.feature-title{font-size:var(--h2);font-weight:800;line-height:1.3;margin-top:var(--s1)}
.text-link{display:inline-flex;align-items:center;min-height:44px;margin-top:var(--s1);font-weight:700}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:var(--s3)}
.film-card,.card,.faq-item{
  min-width:0;background:var(--surface);color:var(--ink);
  border:1px solid var(--line);border-radius:var(--radius);
}
.film-card{overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,border-color .2s,box-shadow .2s}
.film-card:hover{transform:translateY(-4px);border-color:var(--line-hover);box-shadow:var(--shadow-hover)}
.film-card img{display:block;width:100%;aspect-ratio:3/4}
.card-body,.card,.faq-item{padding:var(--s3)}
.card-body h3{margin-block:var(--s1)}
.card-body>p:not(.eyebrow){margin-top:var(--s2)}
.catalog-tools{display:grid;gap:var(--s3);margin-bottom:var(--s2)}
.filters{display:flex;flex-wrap:wrap;gap:var(--s1)}
.filters button,.empty-state button{
  min-height:44px;padding:var(--s1) var(--s2);
  border:1px solid var(--line);border-radius:var(--pill);
  background:var(--surface);color:var(--ink);
}
.filters button:hover,.empty-state button:hover{background:var(--surface-hover);color:var(--ink);border-color:var(--line-hover)}
.filters button[aria-pressed="true"]{background:var(--dark);color:var(--dark-ink);border-color:var(--dark)}
.search{min-width:0;display:grid;gap:var(--s1)}
.search label{font-size:var(--small-size);font-weight:700}
.search input{
  min-width:0;width:100%;min-height:48px;padding:var(--s1) var(--s2);
  background:var(--surface);color:var(--ink);
  border:1px solid var(--line);border-radius:var(--radius-small);
}
.search input::placeholder{color:var(--muted);opacity:1}
.search-status{font-size:var(--small-size);color:var(--muted);margin-bottom:var(--s3)}
.empty-state{
  padding:var(--s4);margin-top:var(--s3);border:1px solid var(--line);
  background:var(--surface);color:var(--ink);border-radius:var(--radius);
}
.empty-state p{margin-block:var(--s2)}
.dark-band{background:var(--dark);color:var(--dark-ink)}
.dark-band .section-heading>p:last-child{color:var(--dark-muted)}
.dark-band :focus-visible{outline-color:var(--accent)}
.genre-card{
  background:var(--dark-card);color:var(--dark-ink);
  padding:var(--s3);border:1px solid var(--dark-line);border-radius:var(--radius);
  transition:transform .2s,background .2s;
}
.genre-card:hover{background:var(--dark-card-hover);color:var(--dark-ink);transform:translateY(-4px)}
.genre-card p{color:var(--dark-muted);margin-top:var(--s2)}
.plot{display:grid;gap:var(--s3);padding-block:var(--s4);border-top:1px solid var(--line);scroll-margin-top:var(--s2)}
.plot-heading h3{margin-block:var(--s1) var(--s2)}
.plot-heading>p:not(.eyebrow){color:var(--muted)}
.plot-question{font-weight:700}
.taste{border-left:3px solid var(--focus);padding-left:var(--s2);font-size:var(--small-size)}
.split{display:grid;gap:var(--s4)}
.steps{padding-left:var(--s3);margin:var(--s4) 0 0}
.steps li{padding-left:var(--s1)}
.steps li+li{margin-top:var(--s3)}
.steps li::marker{font-weight:800;color:var(--focus)}
.steps p{margin-top:var(--s1)}
.guide-figure{min-width:0;align-self:start}
.guide-figure img{display:block;width:100%;border-radius:var(--radius)}
.guide-figure figcaption{font-size:var(--small-size);color:var(--muted);padding-top:var(--s2)}
.faq-item p,.card p{margin-top:var(--s2)}
.table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-small)}
table{width:100%;border-collapse:collapse;background:var(--surface);color:var(--ink);font-size:var(--small-size)}
caption{text-align:left;font-weight:700;padding:var(--s2);background:var(--accent);color:var(--accent-ink)}
th,td{text-align:left;vertical-align:top;padding:var(--s2);border-bottom:1px solid var(--line);overflow-wrap:anywhere}
thead th{background:var(--surface-hover);color:var(--ink)}
tbody tr:last-child>*{border-bottom:0}
table a{display:inline-flex;align-items:center;min-height:44px}
@media(min-width:900px){
  .hero{grid-template-columns:1.05fr 1fr;align-items:center}
  .split{grid-template-columns:1.15fr 1fr}
  .plot{grid-template-columns:1fr 1.65fr;gap:var(--s5)}
  .catalog-tools{grid-template-columns:1.4fr 1fr;align-items:end}
}
@media(max-width:480px){
  .site-header{justify-content:center}
  .site-header nav{justify-content:center;width:100%}
  .hero{padding-block:var(--s3)}
  .hero-copy{padding:var(--s3)}
  .actions .button{width:100%}
  th,td{padding:var(--s1)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important}
}
