@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-500-normal-DnGCNyPD.woff2)format("woff2"),url(/assets/fraunces-latin-500-normal-BTR4KCeb.woff)format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2)format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff)format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-400-normal-BGsTXAXT.woff2)format("woff2"),url(/assets/outfit-latin-400-normal-DMwTpYkH.woff)format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-500-normal-DKnIMDSk.woff2)format("woff2"),url(/assets/outfit-latin-500-normal-ClnHRwRh.woff)format("woff")}:root{--bg:#12110e;--bg-raised:#1e1a16;--bg-sunk:#0c0b09;--line:#f4f0e61f;--text:#f4f0e6;--muted:#a79d90;--amber:#e2a15c;--amber-ink:#2a1c0c;--danger:#e07a64;--shadow:0 24px 70px #00000073;--serif:"Fraunces", "Iowan Old Style", Palatino, serif;--sans:"Outfit", "Avenir Next", "Segoe UI", sans-serif;color:var(--text);background:var(--bg);font-family:var(--sans);font-size:16px;line-height:1.45}*{box-sizing:border-box}body{background:radial-gradient(900px 420px at 50% -12%, #e2a15c29, transparent 55%), var(--bg);min-height:100dvh;margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}.app{min-height:100dvh}.top{z-index:5;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#12110eeb;padding:10px 14px;position:sticky;top:0}.mast,.mast-actions,.filters,.actions,.dialog-bar,.banner,.compact-toolbar{align-items:center;gap:10px;display:flex}.mast{justify-content:space-between;align-items:flex-end}.compact-mast{align-items:center}.compact-mast h1{letter-spacing:-.02em;font-size:1.45rem;line-height:1}.compact-btn{padding:.4rem .7rem;font-size:.9rem}.compact-toolbar{gap:8px;margin-top:8px}.compact-count{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);flex:1;margin:0;font-size:.8rem;overflow:hidden}.filter-toggle.active{color:var(--text);background:#e2a15c24;border-color:#e2a15c8c}.filter-panel{border-top:1px solid var(--line);gap:12px;max-height:min(48dvh,420px);margin-top:10px;padding-top:10px;display:grid;overflow:auto}.filter-section{gap:8px;display:grid}.filter-panel-foot{justify-content:flex-end;display:flex}.eyebrow{color:var(--amber);letter-spacing:.14em;text-transform:uppercase;font-size:.75rem}h1,.card-title,.dialog h2,.empty h2{font-family:var(--serif);font-weight:500}h1{letter-spacing:-.03em;font-size:2.4rem;line-height:.95}.mast-actions{flex-wrap:wrap;justify-content:flex-end}.primary,.secondary,.text-button,.danger,.file-picker{border:1px solid #0000;border-radius:999px;padding:.55rem .95rem}.primary{background:var(--amber);color:var(--amber-ink);font-weight:500}.secondary,.file-picker{border-color:var(--line);background:0 0}.text-button,.danger{background:0 0}.danger{color:var(--danger);border-color:#e07a6473}button:disabled{cursor:not-allowed;opacity:.55}.filters{flex-wrap:wrap;align-items:end;gap:8px}.filter-block{gap:12px;width:100%;margin-top:16px;display:grid}.filter-block .filters{margin-top:0}.genre-filter{gap:8px;display:grid}.genre-filter-bar{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.genre-filter-label{color:var(--muted);font-size:.82rem}.genre-mode{gap:6px;display:flex}.genre-chips{flex-wrap:wrap;gap:6px;display:flex}.genre-chip{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:999px;padding:.35rem .7rem;font-size:.82rem}.genre-chip.active{color:var(--text);background:#e2a15c29;border-color:#e2a15c8c}.filters label,.stack label{color:var(--muted);gap:6px;font-size:.82rem;display:grid}.search{flex:180px}input,select{border:1px solid var(--line);background:var(--bg-sunk);border-radius:12px;width:100%;padding:.7rem .8rem}input:focus,select:focus{outline-offset:1px;outline:2px solid #e2a15cb3}.count{color:var(--muted);margin-top:12px;font-size:.85rem}.banner[role=status]{background:#e07a6414;border:1px solid #e07a6466;border-radius:14px;justify-content:space-between;margin:12px 16px 0;padding:12px 14px}.view-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;display:flex}.view-modes{flex-wrap:wrap;gap:6px;display:flex}.view-mode{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:999px;padding:.4rem .75rem}.view-mode.active{color:var(--text);background:#e2a15c24;border-color:#e2a15c8c}.pagination{color:var(--muted);justify-content:center;align-items:center;gap:14px;padding:0 16px 24px;font-size:.9rem;display:flex}.shelf{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:22px 14px;margin:0;padding:22px 16px 28px;list-style:none;display:grid}.shelf-large{grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}.shelf-small{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:14px 10px}.shelf-small .card-title{font-size:.88rem}.shelf-small .card-meta{font-size:.72rem}.shelf-list,.shelf-details{grid-template-columns:1fr;gap:10px}.card{text-align:left;background:0 0;border:0;gap:8px;width:100%;padding:0;display:grid}.row-card,.detail-card{border:1px solid var(--line);background:var(--bg-raised);text-align:left;border-radius:14px;grid-template-columns:56px 1fr auto;align-items:center;gap:12px;width:100%;padding:8px;display:grid}.detail-card{grid-template-columns:72px 1fr;align-items:start}.row-thumb{width:56px;display:block}.detail-card .row-thumb{width:72px}.row-thumb .poster{box-shadow:none;border-radius:8px}.row-copy,.detail-card-copy{gap:4px;min-width:0;display:grid}.row-status{color:var(--muted);white-space:nowrap;font-size:.82rem}.detail-card-overview,.detail-card-review{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.88rem;display:-webkit-box;overflow:hidden}.detail-card-review{color:var(--text);font-family:var(--serif)}.card-art{display:block;position:relative}.poster{aspect-ratio:2/3;object-fit:cover;background:var(--bg-sunk);border-radius:12px;width:100%;display:block;box-shadow:0 10px 30px #00000047}.placeholder{border:1px solid var(--line);background:linear-gradient(160deg, #e2a15c2e, transparent 42%), var(--bg-raised);color:var(--amber);font-family:var(--serif);place-items:center;font-size:1.8rem;display:grid}.badge{background:var(--amber);color:var(--amber-ink);border-radius:999px;padding:.2rem .45rem;font-size:.72rem;font-weight:500;position:absolute;bottom:8px;left:8px}.rating-badge{inset:8px 8px auto auto}.card-title{font-size:1.02rem;line-height:1.2}.card-meta,.quiet,.credit,.detail-year,.cast,.install-note p{color:var(--muted)}.card-meta{font-size:.82rem}.stars{flex-wrap:wrap;align-items:center;gap:2px;display:flex}.stars-sm{gap:0;font-size:.9rem}.star,.star-hit{color:#f4f0e638;place-items:center;width:1.35em;display:inline-grid;position:relative}.star.full,.star-hit.full .star-face{color:var(--amber);-webkit-text-fill-color:var(--amber);background:0 0}.star.half,.star-hit.half .star-face{background:linear-gradient(90deg, var(--amber) 50%, #f4f0e638 50%);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.star-hit{width:1.55em;height:1.55em}.star-face{pointer-events:none;font-size:1.35em;line-height:1}.star-half{z-index:1;background:0 0;border:0;width:50%;height:100%;padding:0;position:absolute;top:0}.star-half.left{left:0}.star-half.right{right:0}.star-clear{margin-left:6px}.review-box{border-top:1px solid var(--line);padding-top:4px}.review-box h3,.review-box textarea+*,.candidates h3{font-size:1rem;font-weight:500}textarea{border:1px solid var(--line);background:var(--bg-sunk);resize:vertical;border-radius:12px;width:100%;padding:.7rem .8rem}textarea:focus{outline-offset:1px;outline:2px solid #e2a15cb3}.random-banner{color:var(--amber);letter-spacing:.12em;text-transform:uppercase;font-size:.78rem}.empty{text-align:center;max-width:34rem;margin:48px auto;padding:0 16px}.empty h2{font-size:2rem}.empty p,.empty .actions{margin-top:12px}.empty .actions{justify-content:center}.credit{text-align:center;padding:8px 16px 28px;font-size:.78rem}.overlay{z-index:20;background:#0000009e;place-items:end center;padding:12px;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--line);background:var(--bg-raised);width:min(560px,100%);max-height:min(92dvh,860px);box-shadow:var(--shadow);border-radius:22px;padding:18px 16px 20px;overflow:auto}.dialog.wide{width:min(860px,100%)}.dialog-bar{justify-content:space-between;align-items:flex-start;margin-bottom:16px}.dialog h2{font-size:1.7rem;line-height:1.15}.stack{gap:14px;display:grid}.form-error{color:var(--danger)}.summary{background:var(--bg-sunk);border-radius:14px;gap:8px;padding:12px;display:grid}.summary ul{color:var(--muted);margin:0;padding-left:1.1rem}.file-picker{cursor:pointer;place-items:center;display:inline-grid;position:relative}.file-picker input{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.install-note h3{margin-bottom:6px;font-size:.95rem;font-weight:500}.settings-heading{margin-top:4px;font-size:1rem;font-weight:500}.actions.wrap{flex-wrap:wrap}.picked-title{font-family:var(--serif);font-size:1.5rem;font-weight:500;line-height:1.15}.detail-add .detail{margin-top:0}code{font-family:ui-monospace,Cascadia Code,monospace;font-size:.86em}.detail{gap:18px;display:grid}.detail .poster{max-width:280px}.detail-copy{align-content:start;gap:14px;display:grid}.facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:0;display:grid}.facts dt{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem}.facts dd{margin:2px 0 0}.overview{font-family:var(--serif);font-size:1.15rem;line-height:1.45}.cast span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;display:block}.candidates h3{margin-bottom:8px;font-size:1rem;font-weight:500}.candidates ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.candidates button{border:1px solid var(--line);background:var(--bg-sunk);text-align:left;border-radius:12px;grid-template-columns:48px 1fr;gap:10px;width:100%;padding:6px;display:grid}.candidates .poster{box-shadow:none;border-radius:8px}.candidates span{align-content:center;gap:2px;display:grid}.candidates em{color:var(--muted);font-size:.85rem;font-style:normal}.confirm p{margin-bottom:10px}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}@media (width>=800px){.top{padding:12px 32px}.shelf{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));padding:28px 32px 36px}.banner[role=status],.credit{padding-left:32px;padding-right:32px}.banner[role=status]{margin-left:32px;margin-right:32px}.shelf-large{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.shelf-small{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.shelf-list,.shelf-details{padding-left:32px;padding-right:32px}.overlay{place-items:center}.detail{grid-template-columns:240px 1fr}}
