:root{--ink:#151515;--muted:#6f6a61;--paper:#f7f2e8;--panel:#fffaf0;--line:#ded5c4;--accent:#c8322d;--accent-dark:#8d211e;--green:#244d3b;--shadow:0 18px 45px rgba(38,29,18,0.12)}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);font-family:"Noto Serif SC",Songti SC,Georgia,serif;background:linear-gradient(135deg,rgba(200,50,45,.11),transparent 32%),linear-gradient(45deg,rgba(36,77,59,.12),transparent 38%),var(--paper)}a{color:inherit}.topbar{display:flex;align-items:center;justify-content:space-between;max-width:1180px;margin:0 auto;padding:24px clamp(18px,4vw,32px)}.brand{font-size:20px;font-weight:800;text-decoration:none}.shell{width:min(1180px,calc(100% - 36px));margin:0 auto 64px}.hero{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:28px;gap:28px;align-items:end;padding:44px 0 34px;border-bottom:1px solid var(--line)}.eyebrow{margin:0 0 10px;color:var(--accent-dark);font-size:14px;font-weight:800;letter-spacing:0}h1,h2,p{overflow-wrap:anywhere}h1{margin:0;font-size:clamp(42px,8vw,92px);line-height:.95;letter-spacing:0}.lead{max-width:720px;margin:22px 0 0;color:var(--muted);font-size:19px;line-height:1.75}.comment,.panel,.sync-card{background:rgba(255,250,240,.86);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.sync-card{padding:22px}.muted,.ratings small,.ratings span,.sync-card small,.sync-card span{color:var(--muted)}.sync-card strong{display:block;margin-top:8px}.movie-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));grid-gap:22px;gap:22px;padding-top:34px}.movie-card{min-width:0}.poster-link{display:block;aspect-ratio:2/3;overflow:hidden;background:#2d2a25;border-radius:8px;box-shadow:var(--shadow)}.detail-poster img,.poster-link img{width:100%;height:100%;object-fit:cover;display:block}.poster-fallback{display:grid;place-items:center;width:100%;height:100%;color:#fff;background:var(--green);font-size:42px;font-weight:900}.poster-fallback.large{min-height:420px}.movie-card-body{padding:14px 2px 0}.movie-card h2{margin:0 0 6px;font-size:21px}.movie-card h2 a{text-decoration:none}.movie-card p{min-height:42px;margin:0 0 12px;color:var(--muted);line-height:1.5}.score-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px}.button,.douban-link,button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;color:#fff;background:var(--accent);border:0;border-radius:6px;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}.back-link{display:inline-block;margin:18px 0;color:var(--muted);text-decoration:none}.detail{display:grid;grid-template-columns:minmax(220px,330px) minmax(0,1fr);grid-gap:clamp(24px,5vw,56px);gap:clamp(24px,5vw,56px);align-items:start}.detail-poster{overflow:hidden;aspect-ratio:2/3;border-radius:8px;background:#2d2a25;box-shadow:var(--shadow)}.detail-main h1{font-size:clamp(38px,6vw,76px)}.meta{color:var(--muted)}.ratings{display:grid;grid-template-columns:repeat(2,minmax(0,180px));grid-gap:16px;gap:16px;margin:26px 0}.ratings div{padding:16px;background:rgba(255,250,240,.72);border:1px solid var(--line);border-radius:8px}.ratings strong{display:block;margin:6px 0;font-size:36px}.forms{display:grid;grid-template-columns:minmax(240px,360px) minmax(0,1fr);grid-gap:20px;gap:20px;margin-top:42px}.panel{padding:22px}.comments h2,.panel h2{margin-top:0}label{display:block;margin:14px 0 6px;font-weight:800}input,textarea{width:100%;padding:12px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:6px;font:inherit}textarea{min-height:130px;resize:vertical}.panel button{margin-top:16px}.comments{margin-top:42px}.comment{padding:18px;margin-top:14px}.comment div{display:flex;justify-content:space-between;gap:16px;color:var(--muted)}.comment p{margin-bottom:0;line-height:1.7}.empty{padding:56px 0}.footer{width:min(1180px,calc(100% - 36px));margin:0 auto;padding:24px 0 42px;color:var(--muted);border-top:1px solid var(--line)}@media (max-width:760px){.detail,.forms,.hero{grid-template-columns:1fr}.hero{padding-top:16px}.ratings{grid-template-columns:1fr 1fr}.comment div{display:block}}@media (max-width:430px){.movie-grid,.ratings{grid-template-columns:1fr}}