:root{--page:#f7f4ef;--surface:#fff;--text:#1b1714;--muted:#6f665d;--border:rgba(27,23,20,.12);--accent:#b8681f;--danger:#b83a3a;--tap:44px}@media (prefers-color-scheme:dark){:root{--page:#14110f;--surface:#1f1b18;--text:#f3ede6;--muted:#a99f94;--border:hsla(0,0%,100%,.12);--accent:#e8a04a;--danger:#e46b6b}}*{box-sizing:border-box}body,html{margin:0;background:var(--page);color:var(--text)}body{font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:inherit}button,input,textarea{font:inherit;color:inherit}.shell{max-width:1100px;margin:0 auto;padding:16px 16px calc(40px + env(safe-area-inset-bottom))}.narrow{max-width:720px}.top{display:flex;justify-content:space-between;align-items:center;min-height:var(--tap)}.top h1{margin:0;font-size:1.5rem;letter-spacing:-.02em}.brand,.link-muted{text-decoration:none}.link-muted{color:var(--muted)}.plain{background:none;border:0}.hint,.muted,.sub{color:var(--muted)}.sub{font-size:.9rem}.hint{font-weight:400;font-size:.85rem}.error{color:var(--danger)}.login{text-align:center;padding-top:20vh;max-width:480px}.btn,button{min-height:var(--tap);padding:0 16px;border-radius:10px;cursor:pointer;background:var(--surface);border:1px solid var(--border);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.btn{background:var(--accent);color:#fff;border-color:transparent;font-weight:600}button.danger{color:var(--danger)}button:disabled{opacity:.6}input,textarea{width:100%;min-height:var(--tap);padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px}textarea{resize:vertical}.bar-row{display:flex;gap:8px;margin:12px 0 4px}.search{flex:1 1;min-width:0}.empty{padding:40px 0;text-align:center;color:var(--muted)}.grid{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.card{display:flex;flex-direction:column;gap:4px;height:100%;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:14px;text-decoration:none;transition:border-color .15s}.card:hover{border-color:var(--accent)}.title{font-weight:700;font-size:1.05rem}.excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:.92rem;margin-top:4px}.date{margin-top:auto;padding-top:8px;font-size:.8rem}.form{display:grid;grid-gap:14px;gap:14px}.form label{display:grid;grid-gap:6px;gap:6px;font-weight:600;font-size:.92rem}.two{display:grid;grid-gap:14px;gap:14px;grid-template-columns:1fr 1fr}@media (max-width:560px){.two{grid-template-columns:1fr}}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.film h2{font-size:2rem;line-height:1.15;margin:0;letter-spacing:-.02em}.film-head{margin:20px 0 18px}.byline{margin:6px 0 0;font-size:1.1rem}.byline,.count{color:var(--muted)}.film h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:28px 0 6px}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose blockquote,.prose ol,.prose p,.prose table,.prose ul{margin:0 0 12px}.prose ol,.prose ul{padding-left:1.4em}.prose li{margin:4px 0}.prose li>p{margin:0}.prose h1,.prose h2,.prose h3,.prose h4{font-size:1.05rem;text-transform:none;letter-spacing:0;color:var(--text);margin:18px 0 6px}.prose a{color:var(--accent)}.prose blockquote{border-left:3px solid var(--accent);padding-left:12px;color:var(--muted)}.prose code{background:var(--page);padding:1px 5px;border-radius:5px}.prose table{border-collapse:collapse;display:block;overflow-x:auto}.prose td,.prose th{border:1px solid var(--border);padding:6px 10px;text-align:left}.repo{color:var(--accent);overflow-wrap:anywhere}:focus{outline:none}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.nav{display:flex;align-items:center;gap:16px}.section-title{margin-top:32px}.panel{background:var(--surface);border:1px solid var(--accent);border-radius:12px;padding:14px;margin:12px 0}.snippet{margin-top:12px}.snippet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.snippet-head button{min-height:32px;font-size:.85rem}pre{margin:0;padding:12px;background:var(--page);border-radius:8px;overflow-x:auto;font-size:.82rem;white-space:pre-wrap}code,pre{overflow-wrap:anywhere}code{font-size:.9em}.tokens{list-style:none;padding:0;margin:0;display:grid;grid-gap:8px;gap:8px}.tokens li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.upload{display:inline-flex;cursor:pointer}.confirm{flex-basis:100%;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.confirm p{margin:0 0 10px}.facts{display:grid;grid-template-columns:1fr 1fr;grid-gap:1px;gap:1px;margin:0;background:var(--border);border:1px solid var(--border);border-radius:14px;overflow:hidden}.facts>div{background:var(--surface);padding:12px 16px;min-width:0}.facts .wide{grid-column:1/-1}.facts dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:2px}.facts dd{margin:0;overflow-wrap:anywhere}.facts strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:560px){.facts{grid-template-columns:1fr}}.photos{list-style:none;padding:0;margin:0 0 12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:10px;gap:10px}.thumb{padding:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;aspect-ratio:4/3;background:var(--surface)}.thumb,.thumb img{width:100%;display:block}.thumb img{height:100%;object-fit:cover;transition:transform .25s}.thumb:hover img{transform:scale(1.04)}.btn.danger-fill{background:var(--danger)}.lightbox{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;background:rgba(10,8,7,.96);color:#f3ede6;animation:lb-fade .18s ease-out;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}@keyframes lb-fade{0%{opacity:0}}.lb-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px}.lb-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.9rem;opacity:.8;padding-left:4px}.lb-tools{display:flex;gap:6px}.lb-btn{width:var(--tap);height:var(--tap);padding:0;border-radius:50%;border:0;text-decoration:none;background:hsla(0,0%,100%,.08);color:#f3ede6;display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem}.lb-btn:hover{background:hsla(0,0%,100%,.18)}.lb-stage{position:relative;flex:1 1;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px 64px;touch-action:pan-y}.lb-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.5);opacity:0;transform:scale(.98);transition:opacity .2s,transform .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lb-stage img.in{opacity:1;transform:none}.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;padding:0;border-radius:50%;border:0;background:hsla(0,0%,100%,.1);color:#fff;font-size:2rem;line-height:1}.lb-nav:hover{background:hsla(0,0%,100%,.22)}.lb-nav.prev{left:10px}.lb-nav.next{right:10px}.lb-spinner{position:absolute;width:32px;height:32px;border:3px solid hsla(0,0%,100%,.2);border-top-color:#fff;border-radius:50%;animation:lb-spin .8s linear infinite}@keyframes lb-spin{to{transform:rotate(1turn)}}.lb-strip{display:flex;gap:8px;padding:10px 12px 14px;overflow-x:auto;justify-content:safe center;scrollbar-width:none}.lb-strip button{flex:0 0 auto;width:64px;height:48px;padding:0;border-radius:6px;overflow:hidden;border:2px solid transparent;opacity:.5;background:none;transition:opacity .15s}.lb-strip button.on{border-color:var(--accent);opacity:1}.lb-strip button:hover{opacity:.9}.lb-strip img{width:100%;height:100%;object-fit:cover;display:block}.lb-confirm{position:absolute;left:50%;bottom:96px;transform:translateX(-50%);width:min(360px,calc(100% - 32px));background:var(--surface);color:var(--text);border-radius:14px;padding:16px;box-shadow:0 10px 40px rgba(0,0,0,.5)}.lb-confirm p{margin:0}.lb-confirm .actions{justify-content:flex-end;margin-top:12px}@media (max-width:560px){.lb-stage{padding:4px}.lb-nav{display:none}}@media (prefers-reduced-motion:reduce){.lb-stage img,.lightbox,.thumb img{animation:none;transition:none}}.film-card{padding:0;overflow:hidden}.film-card .poster{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.card-body{display:flex;flex-direction:column;gap:4px;padding:16px;flex:1 1}.film-head{display:flex;gap:18px;align-items:flex-end}.hero-poster{width:140px;aspect-ratio:2/3;object-fit:cover;border-radius:10px;border:1px solid var(--border);flex:0 0 auto}@media (max-width:560px){.film-head{flex-direction:column;align-items:flex-start}.hero-poster{width:120px}}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0}.chips span{font-size:.82rem;padding:2px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.chips .age{border-color:var(--danger);color:var(--danger);font-weight:700}.ratings{margin:0 0 16px}.ratings.loading{color:var(--muted);padding:16px;border:1px dashed var(--border);border-radius:14px}.ratings ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.ratings a{display:grid;grid-gap:2px;gap:2px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:14px;text-decoration:none;height:100%}.ratings a:hover{border-color:var(--accent)}.r-src{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.r-val{font-size:1.9rem;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.r-val small{font-size:.9rem;font-weight:500;color:var(--muted)}.r-votes{font-size:.8rem;color:var(--muted)}.ratings .hint{margin:6px 0 0}.cast{list-style:none;padding:0;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:6px 16px;gap:6px 16px}.cast,.sources{margin:0;display:grid}.sources{border:1px solid var(--border);border-radius:12px;padding:12px 14px 14px;grid-gap:12px;gap:12px}.sources legend{font-weight:600;font-size:.92rem;padding:0 6px}.sort{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:4px 0 0;font-size:.9rem}.sort a{padding:4px 12px;border-radius:999px;border:1px solid var(--border);text-decoration:none;color:var(--muted)}.sort a.on{background:var(--accent);border-color:transparent;color:#fff;font-weight:600}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border);font-weight:500}