/* NCF 高保真共享样式 · 由 影片页 v8.1 抽出（2026-09-20）*/
:root{--s0:#FFFFFF;--s1:#F3F4F2;--paper:#F7F7F5;--ink:#1E2224;--ink2:#6A7075;--ink3:#9AA0A4;--brass:#8A6D3B;--btn:#2A2E31;--rule:#D6D8D3;--r-lg:24px;--r-md:18px;--r-sm:12px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--s0);color:var(--ink);font-family:Inter,"Noto Sans TC",-apple-system,system-ui,sans-serif;font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;letter-spacing:-.005em}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
.f{font-family:Fraunces,"Noto Serif TC",Georgia,serif;font-variation-settings:"opsz" 144}
.tc{font-family:"Noto Serif TC",serif}
.w{max-width:1280px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.wt{max-width:860px;margin:0 auto;padding:0 20px;text-align:center}
sec,section{display:block}
.mod{padding:clamp(72px,9vw,128px) 0}
.s1{background:var(--s1)}
.eb{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--brass);font-weight:600;margin:0 0 18px}
h2{font-weight:500;font-size:clamp(34px,4.8vw,64px);line-height:1.15;letter-spacing:.04em;margin:0 0 16px;text-wrap:balance}
.sub{font-size:clamp(18px,1.5vw,21px);line-height:1.6;color:var(--ink2);margin:0 auto;max-width:30em;font-weight:400;text-wrap:balance}
.more{display:inline-flex;align-items:center;gap:4px;font-weight:600;font-size:17px;color:var(--brass);margin-top:22px}
.more:after{content:"›";font-size:22px;line-height:1;transform:translateY(-1px)}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;border-radius:999px;background:var(--btn);color:#fff;font-weight:600;font-size:16px;transition:transform .2s}
.pill:hover{transform:scale(1.02)}
.pill.ghost{background:rgba(255,255,255,.72);color:var(--ink);box-shadow:inset 0 0 0 1px rgba(30,34,36,.22);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.pill.ghost:hover{background:rgba(255,255,255,.92)}
.hero.wall .pill{min-width:148px;padding:15px 28px;font-size:16px;letter-spacing:.06em}
.hero.wall .pill svg{margin-right:8px}
/* nav */
.nav{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.72);backdrop-filter:saturate(1.4) blur(18px);-webkit-backdrop-filter:saturate(1.4) blur(18px)}
.nav .w{display:flex;align-items:center;height:56px;gap:28px}
.mark{font-family:Fraunces,serif;font-weight:500;font-size:17px;margin-right:auto;white-space:nowrap}
.nav ul{display:none;list-style:none;margin:0;padding:0;gap:28px;font-size:13px;font-weight:500;color:var(--ink2)}
.nav ul a:hover{color:var(--ink)}
.nav .pill{padding:7px 14px;font-size:12px;white-space:nowrap}
.burger{width:20px;height:2px;background:var(--ink);position:relative;border-radius:2px}.burger:before,.burger:after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--ink);border-radius:2px}.burger:before{top:-6px}.burger:after{top:6px}
@media(min-width:960px){.nav ul{display:flex}.burger{display:none}}
@media(max-width:600px){.mark small{display:none}.nav .w{gap:14px}}
/* hero */
.hero{padding:clamp(56px,8vw,96px) 0 0;text-align:center}
.hero h1{font-weight:500;font-size:clamp(42px,7vw,92px);line-height:1.02;letter-spacing:-.03em;margin:0 auto 18px;max-width:14ch}
.hero h1 .tc{font-weight:600;letter-spacing:0}
.hero .sub{margin-bottom:28px}
.hero .acts{display:flex;gap:18px;justify-content:center;align-items:center;flex-wrap:wrap;margin-bottom:clamp(40px,6vw,72px)}
.hero .media{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/9;max-width:1280px;margin:0 auto}
.hero .media img{width:100%;height:100%;object-fit:cover;object-position:center 35%;transition:transform 1.2s ease}
.hero .media:hover img{transform:scale(1.02)}
.cap{font-size:12px;color:var(--ink3);margin-top:12px;letter-spacing:.02em}

/* hero · poster wall */
.hero.wall{position:relative;overflow:hidden;padding:0;min-height:clamp(560px,92vh,880px);display:flex;align-items:center;justify-content:center;text-align:center;background:var(--s0)}
.posters{position:absolute;inset:-28% -18%;display:flex;flex-direction:column;justify-content:center;gap:16px;transform:rotate(-6deg) scale(1.12);pointer-events:none}
.row{overflow:hidden;width:100%}
.track{display:flex;gap:16px;width:max-content;animation:slide 90s linear infinite}
.r2 .track{animation-duration:120s;animation-direction:reverse}
.r3 .track{animation-duration:105s}
.track img{height:clamp(150px,22vh,230px);aspect-ratio:2/3;object-fit:cover;border-radius:10px;flex:0 0 auto;opacity:.95}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.veil{position:absolute;inset:0;background:radial-gradient(ellipse 62% 60% at 50% 50%,rgba(255,255,255,.97) 0%,rgba(255,255,255,.90) 38%,rgba(255,255,255,.55) 66%,rgba(255,255,255,.14) 100%),linear-gradient(to bottom,rgba(255,255,255,.85) 0%,rgba(255,255,255,0) 14%,rgba(255,255,255,0) 82%,#F3F4F2 100%)}
.hero.wall .copy{position:relative;z-index:2;padding:96px 20px}
.hero.wall h1{font-weight:500;font-size:clamp(40px,6.2vw,82px);line-height:1.18;letter-spacing:.06em;margin:0 auto 34px;text-wrap:balance}
.hero.wall .sub{margin-bottom:30px;color:var(--ink2);text-wrap:balance;letter-spacing:.01em;line-height:1.7;max-width:30em}
.hero.wall .acts{display:flex;gap:14px;justify-content:center;align-items:center;flex-wrap:wrap}
@media(max-width:600px){.posters{gap:10px;inset:-30% -60%;transform:rotate(-6deg) scale(1.1)}.track{gap:10px}.track img{height:132px;border-radius:8px}.hero.wall{min-height:88vh}.hero.wall .copy{padding:72px 20px}}
@media(prefers-reduced-motion:reduce){.track{animation:none}}

h1.two small,h2.two small{display:block;font-size:.5em;font-weight:500;letter-spacing:.2em;color:var(--ink2);margin-bottom:.35em}
/* three feature image cards */
.feats{display:grid;gap:18px;margin-top:44px}
.feat{position:relative;display:block;border-radius:var(--r-lg);overflow:hidden;background:var(--s0);aspect-ratio:3/4;transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s}
.feat:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(30,34,36,.12)}
.feat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.feat:hover img{transform:scale(1.04)}
.feat .fx{position:absolute;left:0;right:0;bottom:0;padding:120px 28px 28px;background:linear-gradient(to top,#FFFFFF 0%,#FFFFFF 34%,rgba(255,255,255,.85) 58%,rgba(255,255,255,0) 100%)}
.feat b{display:block;font-size:clamp(28px,2.4vw,36px);font-weight:600;letter-spacing:.1em;line-height:1.2;margin-bottom:10px}
.feat b:before{content:"";display:block;width:26px;height:2px;background:var(--brass);margin-bottom:14px;border-radius:2px}
.feat p{margin:0 0 10px;color:var(--ink2);font-size:15px;line-height:1.75;text-wrap:balance}
.feat span{font-size:12px;color:var(--ink3);letter-spacing:.04em}
@media(min-width:800px){.feats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:799px){.feat{aspect-ratio:4/5}}

/* stat line + wide still */
.statline{display:grid;grid-template-columns:repeat(2,1fr);gap:22px 0;margin:56px auto 40px;max-width:980px}
.statline div{text-align:center;padding:6px 12px;border-left:1px solid var(--rule)}
.statline div:first-child{border-left:0}
.statline b{display:block;font-family:Fraunces,serif;font-weight:300;font-size:clamp(40px,4.2vw,60px);line-height:1;letter-spacing:-.02em}
.statline span{display:block;font-size:13px;color:var(--ink2);margin-top:8px;letter-spacing:.06em}
@media(min-width:800px){.statline{grid-template-columns:repeat(4,1fr)}}
@media(max-width:799px){.statline div:nth-child(3){border-left:0}}
.wide{margin:0;border-radius:var(--r-lg);overflow:hidden;background:var(--s0)}
.wide img{width:100%;aspect-ratio:21/9;object-fit:cover;object-position:center 40%;display:block}
.wide figcaption{font-size:13px;color:var(--ink2);padding:14px 20px;letter-spacing:.02em}
@media(max-width:600px){.wide img{aspect-ratio:4/3}}

/* festival logo wall */
.logos{margin-top:8px}
.lg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:1120px;margin:0 auto}
@media(min-width:700px){.lg-grid{grid-template-columns:repeat(7,1fr)}}
@media(min-width:1000px){.lg-grid{grid-template-columns:repeat(7,1fr)}}
.lg-grid img{width:100%;aspect-ratio:1;object-fit:contain;background:transparent;border-radius:14px;padding:10%;box-sizing:border-box;filter:grayscale(1) contrast(.95);opacity:.62;mix-blend-mode:multiply;transition:filter .4s,opacity .4s,transform .4s}
.lg-grid img:hover{filter:none;opacity:1;transform:translateY(-2px)}
.lg-cap{text-align:center;font-size:13px;color:var(--ink2);letter-spacing:.04em;margin:26px 0 0}

/* featured strip v2 */
.stripbar{display:flex;align-items:center;justify-content:space-between;margin:40px 0 18px}
.stripbar .more{margin-top:0}
.arrows{margin-top:0}
.strip{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 0 12px;margin:0;scrollbar-width:none}
.strip::-webkit-scrollbar{display:none}
.card{flex:0 0 auto;width:clamp(200px,20vw,236px);scroll-snap-align:start;background:transparent;border-radius:0;overflow:visible;box-shadow:none;transform:none;transition:none}
.card:hover{transform:none;box-shadow:none}
.card .ph{position:relative;border-radius:14px;overflow:hidden;background:var(--s1);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.card:hover .ph{transform:translateY(-6px);box-shadow:0 22px 44px rgba(30,34,36,.14)}
.card .ph img{aspect-ratio:2/3;object-fit:cover;width:100%;display:block}
.card .sub-tag{position:absolute;top:12px;right:12px;font-size:11px;letter-spacing:.12em;color:var(--ink);background:rgba(255,255,255,.92);padding:4px 8px;border-radius:999px;font-weight:600}
.card .aw{position:absolute;top:12px;left:12px;font-size:11px;letter-spacing:.16em;color:var(--brass);background:rgba(255,255,255,.92);padding:4px 8px;border-radius:999px;font-weight:700}
.card .t{padding:14px 2px 0;display:block}
.card .t b{display:block;font-size:18px;font-weight:600;letter-spacing:.04em;line-height:1.3}
.card .t span{display:block;font-size:13px;color:var(--ink2);margin-top:4px}
.card .t i{display:block;font-style:normal;font-size:12px;color:var(--ink3);margin-top:2px;letter-spacing:.01em}

/* footer v2 */
.ft{background:var(--s1);border-top:1px solid #E6E8E4;padding:56px 0 32px;color:var(--ink2);font-size:14px}
.colophon{text-align:center;padding:0 0 40px;margin:0 0 48px;border-bottom:1px solid #E1E3DF}
.colophon b{display:block;font-size:19px;letter-spacing:.26em;line-height:1.6;color:var(--brass);font-weight:600}
.colophon small{display:block;font-size:12px;letter-spacing:.3em;line-height:1.8;color:var(--ink2);font-weight:500;margin-top:8px}
.ftgrid{display:grid;gap:34px 24px;grid-template-columns:1fr 1fr}
@media(min-width:900px){.ftgrid{grid-template-columns:1.6fr 1fr 1fr 1.2fr}}
.ftgrid h4{margin:0 0 14px;font-size:12px;letter-spacing:.2em;color:var(--ink3);font-weight:600}
.ftgrid a{display:block;color:var(--ink);padding:5px 0;font-size:14px}
.ftgrid a:hover{color:var(--brass)}
.brand .en{font-size:10px;letter-spacing:.3em;color:var(--ink3);margin:6px 0 14px}
.brand p{margin:0;font-size:13px;color:var(--ink2)}
@media(max-width:899px){.brand{grid-column:1/-1}}
.ftbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-top:48px;padding-top:22px;border-top:1px solid #E1E3DF;font-size:12px;color:var(--ink3)}
.ftr a{color:var(--ink2);margin-left:14px}.ftr i{font-style:normal;margin-left:14px;color:var(--ink3)}.ftr .top{margin-left:28px;color:var(--brass);font-weight:600}
/* stats bento */
.bento{display:grid;gap:16px;margin-top:40px}
.cell{background:var(--s0);border-radius:var(--r-md);padding:28px 28px 26px;display:flex;flex-direction:column;justify-content:center;gap:6px;min-height:180px}
.cell.img{padding:0;overflow:hidden;position:relative;min-height:232px}
.cell.img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.cell.img span{position:absolute;left:22px;bottom:18px;font-size:13px;font-weight:600;color:#fff;text-shadow:0 1px 8px rgba(30,34,36,.4)}
.cell b{font-family:Fraunces,serif;font-weight:300;font-size:clamp(48px,5vw,76px);line-height:.95;letter-spacing:-.035em}
.cell span.l{font-size:14px;color:var(--ink2);margin-top:6px}
.cell .brass{width:28px;height:2px;background:var(--brass);border-radius:2px;margin-bottom:18px}
@media(min-width:800px){.bento{grid-template-columns:repeat(4,1fr)}.cell.img{grid-column:span 2}}
/* films */
.strip{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 0 28px;margin:0;scrollbar-width:none;scroll-padding-left:0}
.strip::-webkit-scrollbar{display:none}
.card{flex:0 0 auto;width:clamp(230px,24vw,300px);scroll-snap-align:start;background:var(--s0);border-radius:var(--r-md);overflow:hidden;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.card:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 18px 40px rgba(30,34,36,.10)}
.card img{aspect-ratio:2/3;object-fit:cover;width:100%}
.card .t{padding:14px 16px 16px}
.card .t b{font-family:"Noto Serif TC",serif;font-size:17px;font-weight:600;display:block}
.card .t span{font-size:13px;color:var(--ink2)}
.card .aw{display:inline-block;margin-top:8px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);font-weight:700}
.arrows{display:flex;justify-content:flex-end;gap:10px;margin-top:-8px}
.arrows button{width:38px;height:38px;border-radius:50%;border:0;background:var(--s1);color:var(--ink);font-size:22px;line-height:1;cursor:pointer;transition:background .2s}.arrows button:hover{background:#E6E8E4}
/* values bento */
.vals{display:grid;gap:16px;margin-top:44px}
.val{background:var(--s0);border-radius:var(--r-md);padding:32px 30px 30px}
.val b:before{content:"";display:block;width:22px;height:1px;background:var(--brass);margin-bottom:16px}
.val b{font-family:"Noto Serif TC",serif;font-size:24px;font-weight:600;display:block;margin-bottom:8px}
.val p{margin:0;color:var(--ink2);font-size:16px}
@media(min-width:800px){.vals{grid-template-columns:repeat(3,1fr)}}
/* latest */
.latest{display:grid;gap:20px;margin-top:44px}
.latest .big{border-radius:var(--r-lg);overflow:hidden;position:relative;min-height:360px}
.latest .big img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.latest .txt{background:var(--s1);border-radius:var(--r-lg);padding:40px 36px;display:flex;flex-direction:column;justify-content:center}
.latest .y{font-family:Fraunces,serif;font-weight:300;font-size:64px;line-height:1;letter-spacing:-.03em;margin-bottom:12px}
.latest h3{font-family:"Noto Serif TC",serif;font-size:clamp(20px,2vw,26px);font-weight:600;line-height:1.5;letter-spacing:.03em;margin:0 0 12px;text-wrap:balance}
.latest p{color:var(--ink2);margin:0 0 6px;font-size:16px;line-height:1.75;text-wrap:balance}
@media(min-width:900px){.latest{grid-template-columns:7fr 5fr}}
/* support */
.sup{text-align:center}
.creed .gold{width:40px;height:1px;background:var(--brass);margin:26px auto 0}
.creed .vals{margin-top:56px}
.sup .pill{margin-top:28px}
.ind{text-align:center;font-size:14px;color:var(--ink2);padding:0 0 64px;margin-top:-40px}
.ind a{color:var(--brass);font-weight:600}
/* reveal */
.r{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.r.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.r{opacity:1;transform:none;transition:none}}
/* ===== v8 · Apple TV+ 式（纸白版） ===== */
:root{--ink2:#5C6367;--ink3:#7F868B}
body{font-size:16px;line-height:1.7}
.tc{font-family:"Noto Serif TC",serif}
/* 首屏：满幅画面，信息压在左下 */
.atv{position:relative;height:clamp(620px,88vh,860px);overflow:hidden;background:var(--s1)}
.atv>img{width:100%;height:100%;object-fit:cover;object-position:center 100%;display:block;transform:scale(1.18);transform-origin:center 88%}
.atv:after{content:"";position:absolute;inset:auto 0 0 0;height:84%;background:linear-gradient(to top,#FFFFFF 0%,#FFFFFF 40%,rgba(255,255,255,.97) 50%,rgba(255,255,255,.8) 62%,rgba(255,255,255,.4) 78%,rgba(255,255,255,0) 100%);pointer-events:none}
.atv .in{position:absolute;left:0;right:0;bottom:0;z-index:2;display:grid;gap:20px;padding-bottom:clamp(28px,4vw,52px)}
@media(min-width:960px){.atv .in{grid-template-columns:1fr;align-items:end}}
.atv h1{font-size:clamp(56px,7vw,96px);font-weight:600;letter-spacing:.06em;line-height:1;margin:0 0 6px}
.atv .en{font-family:Fraunces,serif;font-weight:300;font-size:clamp(18px,1.6vw,22px);color:var(--ink2);margin:0 0 16px;letter-spacing:-.01em}
.atv .genre{font-size:13px;color:var(--ink2);letter-spacing:.06em;margin:0 0 12px;font-weight:600}
.atv .pitch{font-size:16px;line-height:1.7;margin:0 0 14px;max-width:38em;color:var(--ink)}
.atv .pitch a{color:var(--brass);font-weight:600;margin-left:6px}
.atv .chips{display:flex;flex-wrap:wrap;gap:6px 8px;margin:0 0 22px}
.atv .chips span{font-size:12px;letter-spacing:.04em;color:var(--ink2);border:1px solid var(--rule);border-radius:6px;padding:3px 8px;background:rgba(255,255,255,.7)}
.atv .chips span.gold{color:var(--brass);border-color:rgba(138,109,59,.45)}
.atv .acts{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.atv .acts .pill{min-width:0;padding:15px 24px;font-size:16px}.atv .acts .pill.ghost{background:rgba(255,255,255,.85)}
.atv .acts .pill svg{margin-right:2px}
.atv .ico{width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.8);box-shadow:inset 0 0 0 1px rgba(30,34,36,.18);display:inline-flex;align-items:center;justify-content:center;color:var(--ink);backdrop-filter:blur(8px)}
.atv .ico:hover{background:#fff}
.atv .hint{font-size:12px;color:var(--ink3);margin:12px 0 0}
.atv .credits{font-size:13px;color:var(--ink2);line-height:1.8;padding-bottom:6px}
.atv .credits b{color:var(--ink);font-weight:600}
.atv .credits a{color:var(--ink);border-bottom:1px solid var(--brass)}
/* 播放态 */
.atv iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:none;background:var(--s1)}
.atv.playing{height:min(56.25vw,84vh)}
.atv.playing>img,.atv.playing .in,.atv.playing:after{display:none}
.atv.playing iframe{display:block;left:50%;transform:translateX(-50%);width:min(100vw,calc(84vh * 16 / 9))}
.pbar{display:none;background:transparent}
.pbar.on{display:block}
.pbar .w{display:flex;align-items:center;gap:10px;height:72px}
.pbar .pill{padding:10px 18px;font-size:14px;gap:8px;background:transparent;color:var(--ink2);box-shadow:inset 0 0 0 1px rgba(30,34,36,.16)}
.pbar .pill:hover{color:var(--ink);transform:none}
.pbar .pill.on{background:var(--btn);color:#fff;box-shadow:none}
.pbar .x{margin-left:auto;font-size:14px;color:var(--ink2);font-weight:600}
.pbar .x:hover{color:var(--ink)}
.pbar .x:after{content:"›";margin-left:4px}
.pbar .sep{width:1px;height:22px;background:var(--rule);margin:0 6px}
.atv .langs{display:flex;align-items:center;flex-wrap:wrap;gap:0 8px;font-size:13px;color:var(--ink2);margin:14px 0 0}
.atv .langs span{letter-spacing:.06em;margin-right:4px}
.atv .langs a{color:var(--ink);font-weight:600;border-bottom:1px solid var(--brass)}
.atv .langs i{color:var(--ink3);font-style:normal}
.atv .langs small{font-size:11px;color:var(--ink3);letter-spacing:.06em;margin-left:6px;border:1px solid var(--rule);border-radius:4px;padding:1px 6px}
/* 滚过首屏后出现的细条 */
.cbar{position:sticky;top:56px;z-index:30;background:rgba(255,255,255,.82);backdrop-filter:saturate(1.4) blur(18px);-webkit-backdrop-filter:saturate(1.4) blur(18px);border-bottom:1px solid var(--rule);transform:translateY(-110%);opacity:0;transition:transform .35s cubic-bezier(.2,.7,.2,1),opacity .3s;pointer-events:none}
.cbar.on{transform:none;opacity:1;pointer-events:auto}
.cbar .w{display:flex;align-items:center;gap:14px;height:46px}
.cbar b{font-size:18px;font-weight:600;letter-spacing:.06em}
.cbar span{font-size:13px;color:var(--ink2)}
.cbar .go{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--brass);box-shadow:inset 0 0 0 1px rgba(138,109,59,.45);margin-left:6px;transition:background .2s,color .2s}
.cbar .go:hover{background:var(--brass);color:#fff}
/* 货架 */
.shelf{padding:clamp(28px,3.4vw,44px) 0 0}
.shelf .hd{display:flex;align-items:baseline;justify-content:space-between;margin:0 auto 14px}
.shelf .hd h2{font-family:Inter,"Noto Sans TC",sans-serif;font-size:21px;font-weight:600;letter-spacing:.02em;margin:0;display:inline-flex;align-items:center;gap:6px}
.shelf .hd h2 a{color:inherit}
.shelf .hd h2 .chev{color:var(--ink3);font-size:20px;line-height:1;transform:translateY(-1px)}
.shelf .hd .arrows{margin:0}
.row2{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 0 14px;scrollbar-width:none;--edge:max(clamp(20px,4vw,48px),calc((100vw - 1280px)/2 + clamp(20px,4vw,48px)));scroll-padding-left:var(--edge)}
.row2::-webkit-scrollbar{display:none}
.row2>*:first-child{margin-left:var(--edge)}.row2>*:last-child{margin-right:var(--edge)}
.tile{flex:0 0 auto;scroll-snap-align:start;display:block;border-radius:14px;overflow:hidden;position:relative;background:var(--s1);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.tile:hover{transform:scale(1.02);box-shadow:0 18px 40px rgba(30,34,36,.12)}
.tile img{width:100%;height:100%;object-fit:cover;display:block}
.tile.v{width:clamp(280px,30vw,400px);aspect-ratio:16/9}
.tile.s{width:clamp(300px,34vw,460px);aspect-ratio:16/9}
.tile.p{width:clamp(140px,13vw,176px);aspect-ratio:2/3}
.tile .cap{position:absolute;left:0;right:0;bottom:0;padding:44px 14px 12px;background:linear-gradient(to top,rgba(255,255,255,.96) 0%,rgba(255,255,255,.85) 45%,rgba(255,255,255,0) 100%)}
.tile .cap b{display:block;font-size:14px;font-weight:600}
.tile .cap span{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink2);margin-top:3px}
.tile .cap span i{width:16px;height:16px;border-radius:50%;background:var(--btn);display:inline-flex;align-items:center;justify-content:center}
.tile .num{position:absolute;right:12px;bottom:10px;font-size:11px;letter-spacing:.08em;color:#fff;background:rgba(30,34,36,.42);padding:3px 8px;border-radius:6px;font-family:Inter,sans-serif}
.pt{flex:0 0 auto;width:clamp(140px,13vw,176px);scroll-snap-align:start}
.pt .tile{width:100%;aspect-ratio:2/3}
.pt b{display:block;font-size:14px;font-weight:600;margin-top:10px;letter-spacing:.02em}
.pt span{display:block;font-size:12px;color:var(--ink2);margin-top:2px}
/* 演員 */
.cast{flex:0 0 auto;width:132px;text-align:center;scroll-snap-align:start}
.cast .av{width:112px;height:112px;border-radius:50%;margin:0 auto 12px;background:var(--s1);display:flex;align-items:center;justify-content:center;font-family:Fraunces,serif;font-size:36px;color:var(--ink3);overflow:hidden;transition:transform .35s}
.cast:hover .av{transform:scale(1.04)}
.cast .av img{width:100%;height:100%;object-fit:cover}
.cast b{display:block;font-size:14px;font-weight:600}
.cast b.lk{border-bottom:1px solid var(--brass);display:inline-block}
.cast span{display:block;font-size:12px;color:var(--ink2);margin-top:3px}
/* 獎項 */
.lcard{flex:0 0 auto;scroll-snap-align:start;background:var(--s1);border-radius:14px;padding:26px 22px 22px;width:272px;text-align:center;transition:transform .35s}
.lcard:hover{transform:translateY(-3px)}
.lcard .lr{height:132px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.lcard .lr img{width:204px;max-width:100%;display:block}
.lcard.win .lr img{filter:invert(42%) sepia(30%) saturate(600%) hue-rotate(5deg) brightness(.9)}
.lcard.fin .lr img{filter:invert(38%) sepia(8%) saturate(280%) hue-rotate(165deg) brightness(.95)}
.lcard.sel .lr img{filter:invert(58%) sepia(4%) saturate(120%) hue-rotate(165deg)}
.lcard b{display:block;font-size:15px;font-weight:600;letter-spacing:.02em}
.lcard span{display:block;font-size:12.5px;color:var(--ink2);margin-top:4px}
.lcard em{display:inline-block;font-style:normal;font-size:11.5px;letter-spacing:.14em;font-weight:700;margin-top:10px;color:var(--brass)}
.lcard.fin em,.lcard.sel em{color:var(--ink2)}
.lcard em i{font-style:normal;font-weight:500;color:var(--ink3);letter-spacing:.06em;margin-left:8px}
/* 關於 + 資料：卡片网格 */
.about{display:grid;gap:16px;margin-top:14px}
@media(min-width:900px){.about{grid-template-columns:1.25fr 1fr}}
.acard{background:var(--s1);border-radius:18px;padding:26px 28px}
.acard .k{font-size:12px;letter-spacing:.14em;color:var(--ink2);font-weight:700;margin:0 0 10px}
.acard h3{font-size:22px;font-weight:600;letter-spacing:.06em;margin:0 0 4px}
.acard .g{font-size:12px;color:var(--ink2);letter-spacing:.06em;margin:0 0 14px}
.acard p{font-size:15px;line-height:1.85;margin:0;color:var(--ink)}
.acard blockquote{margin:0 0 12px;font-size:17px;line-height:1.75;font-weight:500}
.acard blockquote:before{content:"「"}.acard blockquote:after{content:"」"}
.acard .by{font-size:12.5px;color:var(--ink2)}
.acard .more{margin-top:14px;font-size:14px}
.info{display:grid;gap:16px 40px;margin-top:16px}
@media(min-width:900px){.info{grid-template-columns:repeat(3,1fr)}}
.info h4{font-size:13px;letter-spacing:.12em;color:var(--ink2);font-weight:700;margin:0 0 6px}
.info dl{margin:0}
.info .r{display:grid;grid-template-columns:72px 1fr;gap:12px;padding:9px 0;border-top:1px solid var(--rule);font-size:14px}
.info .r:last-child{border-bottom:1px solid var(--rule)}
.info dt{color:var(--ink2);font-size:13px;padding-top:1px}
.info dd{margin:0;color:var(--ink)}
.info dd a{border-bottom:1px solid var(--brass);font-weight:600}
.info dd.dim{color:var(--ink3)}
/* 支持 */
.sup{text-align:center}.sup .pill{margin-top:28px}
.sup h2{font-size:clamp(32px,4.2vw,56px)}.sup .sub{font-size:18px}
.note{font-size:12px;color:var(--ink3);border-left:2px solid var(--rule);padding:4px 12px;margin:14px 0 0}
.gap{height:clamp(40px,5vw,72px)}
@media(max-width:600px){.atv{height:78vh}.atv h1{font-size:56px}.atv .acts .pill{min-width:0}.cbar b{font-size:16px}}

/* ===== v8.1 · 纸色、环境色、紧凑 ===== */
body{background:var(--paper)}
.nav{background:rgba(247,247,245,.78)}
/* 环境色：这部片的剧照做大幅模糊底，铺在首屏与第一排货架后面 */
.ambient{position:absolute;left:0;right:0;top:0;height:1500px;overflow:hidden;pointer-events:none;z-index:0}
.ambient img{position:absolute;left:-10%;top:-10%;width:120%;height:120%;object-fit:cover;filter:blur(90px) saturate(1.25);opacity:.34;transform:translateZ(0)}
.ambient:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(247,247,245,0) 0%,rgba(247,247,245,0) 56%,rgba(247,247,245,.7) 82%,#F7F7F5 100%)}
.page{position:relative;z-index:1}
/* 首屏：渐变收到纸色，不到纯白 */
.atv{background:transparent;height:clamp(600px,84vh,820px)}
.atv:after{background:linear-gradient(to top,rgba(247,247,245,.9) 0%,rgba(247,247,245,.9) 36%,rgba(247,247,245,.82) 50%,rgba(247,247,245,.62) 64%,rgba(247,247,245,.3) 80%,rgba(247,247,245,0) 100%);height:82%}
.atv .in{padding-bottom:clamp(24px,3vw,40px)}
.atv .chips{margin-bottom:18px}
.atv .chips span{background:rgba(255,255,255,.75);border-color:rgba(30,34,36,.14)}
.atv .pitch{margin-bottom:12px}
.atv .en{margin-bottom:12px}
.atv .ico{background:rgba(255,255,255,.85)}
/* 白是浮起来的东西：卡片、说明条、播放条用纯白 */
.tile{background:#fff;box-shadow:0 1px 2px rgba(30,34,36,.05)}
.tile .cap{background:linear-gradient(to top,rgba(255,255,255,.97) 0%,rgba(255,255,255,.9) 50%,rgba(255,255,255,0) 100%)}
.cast .av{background:#fff;box-shadow:0 1px 2px rgba(30,34,36,.06)}
.lcard{background:#fff;box-shadow:0 1px 2px rgba(30,34,36,.05)}
.acard{background:#fff;box-shadow:0 1px 2px rgba(30,34,36,.05)}
.cbar{background:rgba(247,247,245,.86)}
.info .r{border-color:#DFE1DC}
.sup.s1{background:#EEEFEC}
.ft{background:#EEEFEC;border-top-color:#DFE1DC}
/* 紧凑两成 */
.shelf{padding:clamp(22px,2.6vw,34px) 0 0}
.shelf .hd{margin:0 auto 12px}
.row2{padding:8px 0 12px;gap:14px}
.tile.v{width:clamp(280px,29vw,380px)}
.tile.s{width:clamp(300px,33vw,440px)}
.pt b{margin-top:8px}
.about{margin-top:12px;gap:14px}
.info{margin-top:14px}
.gap{height:clamp(32px,4vw,56px)}
.mod{padding:clamp(60px,7.5vw,104px) 0}

/* 首屏四行：片名 / 一行资料 / 一句话 / 一行按钮 */
.atv .en{margin-bottom:14px}
.atv .meta{display:flex;flex-wrap:wrap;align-items:center;font-size:14px;color:var(--ink2);margin:0 0 14px;letter-spacing:.02em}
.atv .meta span+span:before{content:"·";margin:0 9px;color:var(--ink3)}
.atv .meta em{font-style:normal;color:var(--brass);font-weight:600;margin-left:14px}
.atv .meta em:before{content:"";display:inline-block;width:6px;height:6px;background:var(--brass);transform:rotate(45deg);margin-right:8px;vertical-align:1px}
.atv .pitch{margin-bottom:22px}
.atv .acts .pill.sm{padding:15px 18px}
.caret{display:inline-block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:0 0 3px 8px}
.lang-wrap{position:relative;display:inline-block}
.lang-wrap .menu{display:none;position:absolute;left:0;bottom:calc(100% + 8px);min-width:200px;background:#fff;border-radius:14px;box-shadow:0 18px 44px rgba(30,34,36,.16);padding:8px;z-index:5}
.lang-wrap.open .menu{display:block}
.lang-wrap .menu a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 12px;border-radius:10px;font-size:14px;font-weight:600;color:var(--ink)}
.lang-wrap .menu a:hover{background:var(--s1)}
.lang-wrap .menu small{font-size:11px;color:var(--ink3);font-weight:500;letter-spacing:.04em}
