:root{--bg:#0f1115;--panel:#161a22;--panel-2:#1b2130;--text:#eaeef5;--muted:#96a0b5;--brand:#7dd3fc;--accent:#ffcf5c;--border: #263045;--shadow: 0 10px 30px rgba(0,0,0,.35)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text)}.wrap{min-height:100dvh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:5;display:flex;gap:16px;align-items:center;justify-content:space-between;padding:14px 20px;background:#0f1115cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.3px}.logo{font-size:24px}.title{font-size:18px}.searchbar{display:flex;gap:8px;width:min(700px,100%)}.search{flex:1;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--text);outline:none}.search:focus{border-color:var(--brand)}.btn{padding:10px 14px;border-radius:10px;border:1px solid var(--border);background:linear-gradient(180deg,var(--panel-2),var(--panel));color:var(--text);cursor:pointer}.btn.subtle{background:transparent}.btn.ghost{background:transparent;opacity:.8}.main{width:min(1100px,100%);margin:18px auto;padding:0 16px}.section{margin:14px 2px;font-size:18px}.alert{background:#3b1a1a;border:1px solid #5e2a2a;color:#ffdede;padding:12px 14px;border-radius:10px;margin:12px 0}.empty{text-align:center;margin:60px 0 20px;color:var(--muted)}.hint{font-size:14px;margin-top:8px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}.poster{width:100%;aspect-ratio:2/3;background:#0a0c10;display:grid;place-items:center;cursor:pointer}.poster img{width:100%;height:100%;object-fit:cover;display:block}.noimg{color:var(--muted);font-size:14px}.noimg.big{font-size:16px}.meta{padding:10px 12px;display:flex;gap:8px;flex-direction:column}.titleline{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.name{margin:0;font-size:15px;line-height:1.3}.year{color:var(--muted)}.iconbtn{border:none;background:transparent;cursor:pointer;font-size:18px;line-height:1;filter:grayscale(100%);opacity:.6}.iconbtn:hover{opacity:1;filter:none}.iconbtn.fav{filter:none;opacity:1;text-shadow:0 0 12px rgba(255,207,92,.6)}.muted{color:var(--muted)}.favlist{list-style:none;padding:0;display:flex;gap:8px;flex-wrap:wrap}.favpill{background:var(--panel);border:1px solid var(--border);padding:6px 10px;border-radius:999px;color:var(--text)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:20}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:21;padding:24px}.modal-body{width:min(900px,100%);background:var(--panel-2);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);display:grid;grid-template-columns:280px 1fr;gap:16px;padding:16px}.modal-poster{border-right:1px solid var(--border);padding-right:12px;display:grid;place-items:center}.modal-poster img{width:100%;border-radius:10px}.modal-info{padding:6px 6px 6px 0}.modal-title{margin:0 0 8px}.plot{color:var(--text);opacity:.95;line-height:1.5}.tag{margin:.2rem 0;color:var(--muted)}.modal-actions{margin-top:12px;display:flex;gap:10px}.close{position:absolute;top:30px;right:36px;z-index:22;background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:8px 10px;cursor:pointer}.skeleton{animation:pulse 1.4s ease-in-out infinite}.poster-skel{width:100%;aspect-ratio:2/3;background:#0a0c10}.line-skel{height:10px;background:#0a0c10;margin:10px;border-radius:6px}.w60{width:60%}.w40{width:40%}@keyframes pulse{0%{opacity:.8}50%{opacity:.4}to{opacity:.8}}.footer{margin-top:auto;padding:16px 20px;border-top:1px solid var(--border);color:var(--muted);font-size:14px;text-align:center}@media (max-width: 720px){.modal-body{grid-template-columns:1fr}.modal-poster{border-right:none;border-bottom:1px solid var(--border);padding:0 0 12px}}.card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;will-change:transform}.card:hover{transform:translateY(-4px);border-color:color-mix(in oklab,var(--border),var(--brand) 35%);box-shadow:var(--shadow)}.poster img{transition:transform .25s ease}.card:hover .poster img{transform:scale(1.03)}.btn{transition:border-color .18s ease,background .18s ease,transform .05s ease}.btn:active{transform:translateY(1px)}.btn:hover{border-color:var(--brand)}.btn.primary{background:linear-gradient(180deg,color-mix(in oklab,var(--brand) 35%,#000 0%),var(--panel));border-color:color-mix(in oklab,var(--brand),var(--border) 30%)}.btn.primary:hover{background:linear-gradient(180deg,color-mix(in oklab,var(--brand) 55%,#000 0%),var(--panel))}.btn.accent{background:linear-gradient(180deg,color-mix(in oklab,var(--accent) 35%,#000 0%),var(--panel));border-color:color-mix(in oklab,var(--accent),var(--border) 30%)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.iconbtn:focus-visible,.btn:focus-visible,.search:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-color:var(--brand)}.section+.grid{margin-top:8px}.tag{display:inline-block;padding:4px 8px;border-radius:999px;background:var(--panel);border:1px solid var(--border)}.iconbtn.fav{color:var(--accent);text-shadow:0 0 10px color-mix(in oklab,var(--accent),transparent 60%);filter:none;opacity:1}.favpill{display:inline-flex;align-items:center;gap:8px;transition:transform .15s ease,border-color .15s ease,background .15s ease;cursor:pointer}.favpill:hover{transform:translateY(-2px);border-color:color-mix(in oklab,var(--border),var(--brand) 35%);background:var(--panel-2)}.search::placeholder{color:color-mix(in oklab,var(--muted),#fff 10%)}.poster-skel{border-radius:10px;background:linear-gradient(135deg,#0a0c10,#0c0f14 60%,#0a0c10)}hr.section-sep{border:none;height:1px;margin:18px 0;background:linear-gradient(90deg,transparent,var(--border),transparent)}.row-scroll{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(170px,1fr);gap:14px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory}.row-scroll>.card{scroll-snap-align:start}.row-scroll::-webkit-scrollbar{height:8px}.row-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}
