:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f4f1ea;font-synthesis:none;text-rendering:optimizelegibility;--bg:#0b0d10;--surface:#12161b;--surface-2:#191f26;--line:#252d36;--muted:#929ba6;--gold:#d6a85f;--gold-soft:#f0ce8e;background:#0b0d10;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;overflow:hidden}.topbar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:20;background:#0b0d10e0;border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;height:76px;padding:0 max(24px,50vw - 620px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand-button{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.brand-mark{color:#101216;background:linear-gradient(145deg, var(--gold-soft), #a87331);border-radius:12px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 8px 24px #d6a85f24}.brand strong,.brand small{display:block}.brand strong{letter-spacing:.02em;font-family:Georgia,serif;font-size:18px}.brand small{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-top:2px;font-size:11px}nav{align-items:center;gap:8px;display:flex}nav button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:7px;padding:10px 13px;font-size:14px;display:flex}nav button:hover,nav button.active{color:var(--gold-soft);background:#d6a85f14}nav button b{color:#17130e;background:var(--gold-soft);border-radius:999px;min-width:18px;padding:2px 5px;font-size:10px}main{width:min(1240px,100% - 48px);margin:0 auto}.hero{max-width:810px;padding:104px 0 82px;position:relative}.hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#d6a85f24,#0000 68%);border-radius:50%;width:620px;height:620px;position:absolute;top:-200px;left:-360px}.eyebrow,.kicker{color:var(--gold);letter-spacing:.22em;font-size:11px;font-weight:750}.eyebrow{align-items:center;gap:10px;display:flex}.eyebrow span{background:var(--gold);width:28px;height:1px}h1{letter-spacing:-.045em;margin:17px 0 18px;font:600 clamp(48px,7vw,82px)/.98 Georgia,serif}h1 em{color:var(--gold-soft);font-weight:400}.hero>p{color:#a9b0b8;max-width:600px;margin:0;font-size:17px;line-height:1.7}.search-box{background:#15191f;border:1px solid #2a323c;border-radius:14px;align-items:center;gap:12px;width:min(680px,100%);margin-top:34px;padding:8px 8px 8px 18px;display:flex;box-shadow:0 24px 50px #00000038}.search-box:focus-within{border-color:#d6a85fad;box-shadow:0 0 0 3px #d6a85f17}.search-box svg{color:#77818d;flex:none}.search-box input{color:#f5f2eb;background:0 0;border:0;outline:0;flex:1;min-width:0;padding:8px 0}.search-box input::placeholder{color:#6f7780}.search-box button{color:#17130e;background:var(--gold-soft);cursor:pointer;border:0;border-radius:9px;padding:11px 21px;font-weight:750}.search-box button:hover{background:#f7daa3}.catalogue{padding:0 0 92px}.catalogue.library-view{min-height:calc(100vh - 154px);padding-top:74px}.section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:25px;display:flex}.section-heading h2{margin:7px 0 0;font:600 clamp(28px,4vw,39px)/1.1 Georgia,serif}.result-count{color:var(--muted);font-size:13px}.media-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 18px;display:grid}.media-card{cursor:pointer;border-radius:13px;outline:0;min-width:0}.media-card:focus-visible{box-shadow:0 0 0 3px #d6a85f80}.poster-shell{aspect-ratio:2/3;background:var(--surface);border:1px solid var(--line);border-radius:13px;position:relative;overflow:hidden}.poster-shell img{object-fit:cover;width:100%;height:100%;transition:transform .35s;display:block}.media-card:hover img{transform:scale(1.035)}.poster-shell:after{content:"";pointer-events:none;background:linear-gradient(#0000,#000000b8);position:absolute;inset:58% 0 0}.poster-missing{color:#646e79;place-content:center;justify-items:center;gap:10px;height:100%;display:grid}.poster-missing span{font-size:12px}.media-type{z-index:2;color:#e8e5df;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.08em;text-transform:uppercase;background:#0b0d10c2;border-radius:6px;padding:5px 8px;font-size:10px;font-weight:700;position:absolute;top:10px;left:10px}.add-button{z-index:3;color:#17130e;background:var(--gold-soft);cursor:pointer;opacity:0;border:0;border-radius:50%;place-items:center;width:36px;height:36px;transition:all .2s;display:grid;position:absolute;bottom:10px;right:10px;transform:translateY(5px);box-shadow:0 6px 18px #0000004d}.media-card:hover .add-button,.add-button:focus-visible{opacity:1;transform:translateY(0)}.add-button:disabled{cursor:default}.add-button.added{color:#d9efe4;opacity:1;background:#347253;transform:none}.add-button.remove{color:#ffe6e2;background:#8c3d38}.card-copy{padding:11px 2px 0}.card-copy h3{color:#ece9e3;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:14px;line-height:1.35;overflow:hidden}.card-copy p{color:var(--muted);justify-content:space-between;margin:6px 0 0;font-size:12px;display:flex}.score,.library-status{color:var(--gold-soft)}.state-card{color:var(--muted);background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:14px;padding:36px}.state-card.error{border-color:#cf5f5259;gap:7px;display:grid}.state-card.error strong{color:#e8a39a}.state-card.error span{font-size:13px}.notice{color:#e9d4ac;background:#d6a85f14;border:1px solid #d6a85f38;border-radius:10px;justify-content:space-between;align-items:center;gap:15px;margin:-8px 0 22px;padding:12px 14px;font-size:13px;display:flex}.notice button{color:inherit;cursor:pointer;background:0 0;border:0;font-size:20px;line-height:1}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#030507c7;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.auth-panel{background:#13171c;border:1px solid #2a323b;border-radius:18px;width:min(440px,100%);padding:32px;position:relative;box-shadow:0 28px 80px #0000008c}.auth-panel h2{margin:8px 0 7px;font:600 33px/1.1 Georgia,serif}.auth-panel>p{color:var(--muted);margin:0 0 24px;font-size:14px;line-height:1.5}.close-button{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:14px;right:14px}.close-button:hover{color:#fff;background:var(--surface-2)}.auth-tabs{background:#0e1115;border-radius:11px;grid-template-columns:1fr 1fr;gap:6px;padding:5px;display:grid}.auth-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:10px;display:flex}.auth-tabs button.active{color:var(--gold-soft);background:#20262d}.auth-panel form{gap:15px;margin-top:20px;display:grid}.auth-panel label{color:#c2c7cc;gap:7px;font-size:12px;font-weight:650;display:grid}.auth-panel input{color:#f3f0e9;background:#0e1115;border:1px solid #29313a;border-radius:9px;outline:0;width:100%;padding:12px 13px}.auth-panel input:focus{border-color:#d6a85fa6;box-shadow:0 0 0 3px #d6a85f14}.primary-button{color:#17130e;background:var(--gold-soft);cursor:pointer;border:0;border-radius:9px;margin-top:3px;padding:12px 18px;font-weight:750}.primary-button:disabled{opacity:.65;cursor:wait}.auth-message{color:#e9c9c4;background:#9d453c1f;border:1px solid #cf5f5240;border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.45}.details-backdrop{align-items:center;overflow-y:auto}.details-panel{background:#11151a;border:1px solid #29313a;border-radius:20px;width:min(980px,100%);max-height:calc(100vh - 40px);position:relative;overflow-y:auto;box-shadow:0 30px 100px #000000ad}.details-close{z-index:5;color:#f0eee9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0c0fb8}.details-hero{background-color:#171c22;background-position:50%;background-size:cover;align-items:end;min-height:330px;padding:42px;display:flex;position:relative;overflow:hidden}.details-shade{background:linear-gradient(90deg,#0a0c0ff7 0%,#0a0c0fc7 48%,#0a0c0f59 100%),linear-gradient(#0000 42%,#11151a 100%);position:absolute;inset:0}.details-heading{z-index:2;align-items:end;gap:27px;width:100%;display:flex;position:relative}.details-poster{aspect-ratio:2/3;object-fit:cover;border:1px solid #ffffff1f;border-radius:12px;flex:none;width:150px;box-shadow:0 18px 42px #0000007a}.details-heading h2{letter-spacing:-.03em;max-width:650px;margin:8px 0 5px;font:600 clamp(35px,5vw,55px)/1.02 Georgia,serif}.original-title{color:#9da5ae;margin:0 0 14px;font-size:13px}.details-meta{color:#b4bbc3;flex-wrap:wrap;gap:8px 18px;font-size:12px;display:flex}.details-meta span{align-items:center;gap:6px;display:flex}.details-meta .tmdb-score{color:var(--gold-soft)}.details-body{padding:8px 42px 42px}.details-loading,.details-error{color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:9px;margin-bottom:18px;padding:12px 14px;font-size:13px}.details-error{color:#e8a39a;border-color:#cf5f5259}.genre-list{flex-wrap:wrap;gap:7px;margin-bottom:18px;display:flex}.genre-list span{color:#c7cdd3;background:#1c2229;border:1px solid #2b343e;border-radius:999px;padding:6px 9px;font-size:11px}.overview{color:#b4bbc3;max-width:820px;margin:0;font-size:14px;line-height:1.75}.tracking-form,.details-add{border-top:1px solid var(--line);margin-top:30px;padding-top:27px}.tracking-heading,.details-add{justify-content:space-between;align-items:center;gap:24px;display:flex}.tracking-heading h3,.details-add h3{margin:5px 0 0;font:600 24px/1.15 Georgia,serif}.details-add p{color:var(--muted);margin:8px 0 0;font-size:13px}.tracking-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:22px;display:grid}.tracking-fields.has-narrative{grid-template-columns:.8fr .65fr 1.55fr}.tracking-fields label{color:#aeb6bf;letter-spacing:.04em;text-transform:uppercase;gap:7px;font-size:11px;font-weight:700;display:grid}.tracking-fields select{color:#eeeae3;background:#0c0f13;border:1px solid #2a333d;border-radius:9px;outline:0;width:100%;padding:11px 35px 11px 12px}.tracking-fields select:focus{border-color:#d6a85fa6;box-shadow:0 0 0 3px #d6a85f14}.narrative-help{color:#78838e;align-items:center;gap:7px;margin:12px 0 0;font-size:11px;display:flex}.save-button,.details-add .primary-button,.danger-button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.save-button{margin-top:20px}.danger-button{color:#e7aaa3;cursor:pointer;background:#9d453c1a;border:1px solid #cf5f5240;border-radius:8px;padding:9px 11px}.danger-button:hover{background:#9d453c2e}.danger-button:disabled{opacity:.55;cursor:wait}.episode-tracker{border-top:1px solid var(--line);margin-top:32px;padding-top:28px}.episode-heading{justify-content:space-between;align-items:end;gap:20px;display:flex}.episode-heading h3{align-items:center;gap:9px;margin:6px 0 0;font:600 24px/1.15 Georgia,serif;display:flex}.episode-heading>strong{color:var(--gold-soft);font:600 22px/1 Georgia,serif}.progress-track{background:#090c0f;border:1px solid #242c34;border-radius:999px;height:6px;margin-top:14px;overflow:hidden}.progress-track span{background:linear-gradient(90deg, #a87331, var(--gold-soft));border-radius:inherit;height:100%;transition:width .25s;display:block}.season-tabs{scrollbar-width:thin;gap:8px;margin:24px -2px 20px;padding:2px 2px 9px;display:flex;overflow-x:auto}.season-tabs button{color:#a5adb6;cursor:pointer;text-align:left;white-space:nowrap;background:#0d1115;border:1px solid #28313a;border-radius:9px;gap:3px;min-width:116px;padding:10px 12px;display:grid}.season-tabs button:hover{color:#e7e3dc;border-color:#3a4652}.season-tabs button.active{color:#17130e;background:var(--gold-soft);border-color:var(--gold-soft)}.season-tabs small{opacity:.72;font-size:10px}.season-summary{justify-content:space-between;align-items:center;gap:18px;margin-bottom:13px;display:flex}.season-summary h4{color:#e9e6df;margin:0;font:600 20px/1.2 Georgia,serif}.season-summary span{color:var(--muted);margin-top:4px;font-size:11px;display:block}.season-summary button{color:var(--gold-soft);cursor:pointer;background:#d6a85f14;border:1px solid #d6a85f40;border-radius:8px;align-items:center;gap:7px;padding:9px 11px;display:inline-flex}.season-summary button:disabled{opacity:.5;cursor:wait}.episode-list{gap:9px;display:grid}.episode-row{background:#0c1014;border:1px solid #222a32;border-radius:11px;grid-template-columns:36px 122px 1fr;align-items:center;gap:13px;min-width:0;padding:10px;transition:border-color .2s,background .2s;display:grid;position:relative}.episode-row.watched{background:#34725314;border-color:#4a976f52}.episode-toggle{color:#6f7a84;cursor:pointer;background:#151b21;border:1px solid #303a44;border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.episode-row.watched .episode-toggle{color:#d9efe4;background:#347253;border-color:#4b916e}.episode-toggle:disabled{opacity:.55;cursor:wait}.episode-row>img,.episode-still-missing{aspect-ratio:16/9;object-fit:cover;background:#171d23;border-radius:7px;width:122px}.episode-still-missing{color:#66717c;place-items:center;font-size:12px;display:grid}.episode-copy{min-width:0}.episode-copy>div{align-items:baseline;gap:8px;min-width:0;display:flex}.episode-copy>div>span{color:var(--gold);letter-spacing:.08em;flex:none;font-size:10px;font-weight:800}.episode-copy h5{color:#e7e4dd;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;overflow:hidden}.episode-copy p{color:#88929c;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0;font-size:11px;line-height:1.45;display:-webkit-box;overflow:hidden}.episode-copy small{color:#66717c;font-size:10px}footer{color:#737c86;text-align:center;border-top:1px solid #ffffff12;justify-content:center;align-items:center;gap:18px;padding:27px 24px;font-size:11px;display:flex}footer span{color:#b6b0a5;font-family:Georgia,serif}footer p{margin:0}footer a{color:var(--gold);font-weight:750}@media (width<=980px){.media-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=760px){.topbar{height:auto;padding-top:13px;padding-bottom:13px}.brand small{display:none}nav button{padding:9px}nav button>span{display:none}nav button svg{width:20px;height:20px}main{width:min(100% - 30px,1240px)}.hero{padding:72px 0 62px}.hero>p{font-size:15px}.media-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 11px}.add-button{opacity:1;transform:none}.details-panel{border-radius:16px;max-height:calc(100vh - 20px)}.details-hero{min-height:290px;padding:32px 25px}.details-poster{width:110px}.details-heading{gap:18px}.details-body{padding:6px 25px 30px}.tracking-fields,.tracking-fields.has-narrative{grid-template-columns:1fr 1fr}.tracking-fields.has-narrative label:last-child{grid-column:1/-1}.episode-row{grid-template-columns:36px 105px 1fr}.episode-row>img,.episode-still-missing{width:105px}footer{flex-direction:column;gap:7px}}@media (width<=510px){h1{font-size:48px}.search-box{padding-left:13px}.search-box button{padding-inline:14px}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-count{display:none}.details-backdrop{align-items:stretch;padding:0}.details-panel{border:0;border-radius:0;min-height:100vh;max-height:none}.details-hero{align-items:end;min-height:390px;padding:70px 20px 25px}.details-shade{background:linear-gradient(#0a0c0f40 0%,#0a0c0fb8 48%,#11151a 98%)}.details-heading{align-items:end}.details-poster{width:92px}.details-heading h2{font-size:31px}.details-meta{gap:7px 12px}.details-body{padding:8px 20px 28px}.tracking-heading,.details-add{flex-direction:column;align-items:stretch}.tracking-fields,.tracking-fields.has-narrative{grid-template-columns:1fr}.tracking-fields.has-narrative label:last-child{grid-column:auto}.details-add .primary-button,.save-button{width:100%}.episode-heading h3{font-size:21px}.season-summary{flex-direction:column;align-items:stretch}.season-summary button{justify-content:center}.episode-row{grid-template-columns:34px 1fr;align-items:start}.episode-row>img,.episode-still-missing{grid-area:1/2;width:100%}.episode-toggle{grid-area:1/1;margin-top:2px}.episode-copy{grid-column:2}}
