@font-face{font-family:'PixelForge';src:url('/fonts/PixelForge.otf') format('opentype');font-style:normal;font-weight:400;font-display:swap}

:root{color-scheme:dark;--bg:#09070d;--panel:#120d19;--panel-2:#191121;--ink:#f2e9f8;--muted:#a997b4;--purple:#c18cff;--purple-2:#8d5bc4;--line:#342340;--green:#a5d9bd;--red:#f2a5b7;--mono:'PixelForge',monospace;--sans:'PixelForge',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 14% 0%,#29173a 0,transparent 36rem),linear-gradient(145deg,#0c0910,#08060b 65%);color:var(--ink);font-family:var(--sans)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}.blink{color:var(--purple);animation:blink 1.1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}.eyebrow{margin:0 0 10px;color:var(--purple);font:500 .72rem var(--mono);letter-spacing:.17em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}.home-page{display:grid;place-items:center;padding:32px}.home-shell{width:min(900px,100%);padding:clamp(28px,7vw,76px);border:1px solid var(--line);background:#100c16d9;box-shadow:0 28px 90px #0008}.home-shell h1{margin:0;font-size:clamp(3.5rem,11vw,7.8rem);line-height:.95;letter-spacing:-.09em}.intro{max-width:520px;margin:26px 0 38px;color:var(--muted);font-size:1.13rem;line-height:1.7}.category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.category-card{position:relative;display:flex;min-height:130px;flex-direction:column;justify-content:center;gap:8px;padding:22px;border:1px solid var(--line);background:linear-gradient(135deg,#21162b,#110d16);transition:transform .18s,border-color .18s}.category-card:hover{transform:translateY(-3px);border-color:var(--purple-2)}.category-card span{position:absolute;right:18px;top:16px;color:#776387;font:12px var(--mono)}.category-card strong{font-size:1.5rem}.category-card small{color:var(--muted)}.admin-link{display:inline-block;margin-top:28px;color:var(--purple);font:13px var(--mono)}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px max(calc((100vw - 1280px)/2),24px);border-bottom:1px solid #32223c;background:#0b0810cc}.wordmark{font-weight:700;letter-spacing:-.06em}.site-header nav{display:flex;gap:20px;color:var(--muted);font:12px var(--mono)}.site-header nav a:hover,.site-header nav .active{color:var(--purple)}.log-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:28px;width:min(1280px,calc(100% - 48px));margin:34px auto}.log-main{min-width:0}.log-main h1{margin:0 0 22px;font-size:clamp(2.1rem,5vw,3.5rem);letter-spacing:-.055em}.year-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 24px}.year-nav a{padding:7px 11px;border:1px solid var(--line);color:var(--purple);font:12px var(--mono)}.year-nav a:hover{background:#281934}.catalog{display:grid;gap:26px}.year-section{scroll-margin-top:20px}.year-heading{display:flex;align-items:center;gap:12px;margin:0 0 12px;color:var(--purple);font:500 13px var(--mono)}.year-heading:after{height:1px;flex:1;background:var(--line);content:''}.year-stats{margin:-3px 0 12px;color:var(--muted);font:11px var(--mono)}.media-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;margin-bottom:14px;padding:14px;border:1px solid var(--line);background:linear-gradient(115deg,#191221,#100d15);box-shadow:0 10px 30px #0003}.media-art{position:relative;min-height:200px;overflow:hidden;background:#0a080c;border:1px solid #473154}.media-art img{display:block;width:100%;height:100%;min-height:200px;object-fit:cover}.no-art{display:grid;min-height:200px;place-items:center;color:#766482;font:11px var(--mono)}.media-body{display:flex;min-width:0;flex-direction:column}.media-date{display:flex;justify-content:space-between;gap:12px;margin:2px 0 14px;color:var(--muted);font:11px var(--mono);text-transform:uppercase}.media-title{margin:0;color:#f2e9f8;font-size:1.35rem;line-height:1.2}.media-subtitle{margin:6px 0 10px;color:var(--muted);font-size:.93rem}.rating{margin:10px 0;color:#e0b5ff;letter-spacing:.08em}.media-info{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0 13px}.media-chip,.tag{padding:4px 8px;border:1px solid #463052;color:#cda5e8;font:10px var(--mono)}.review{margin:auto 0 0;padding:12px 14px;border-left:2px solid var(--purple-2);background:#09070db3;color:#d4c8dc;font-size:.93rem;line-height:1.6;white-space:pre-wrap}.log-aside{position:sticky;top:24px;align-self:start;padding:18px;border:1px solid var(--line);background:#110d17}.log-aside h2{color:var(--purple);font-size:1.12rem}.favorites-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.favorite-card{display:block;aspect-ratio:1/1.25;overflow:hidden;border:1px solid #493258;background:#0a080d}.favorite-card img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.favorite-card:hover img{transform:scale(1.05)}.empty-favorite{display:grid;place-items:center;color:#715682;font-size:1.7rem}.top-button,.button{border:1px solid var(--purple-2);background:#24172e;color:var(--ink);cursor:pointer}.top-button{width:100%;margin-top:18px;padding:10px;color:var(--purple);font:11px var(--mono)}.top-button:hover,.button:hover{background:#392348}.empty-state,.error-state{padding:24px;border:1px dashed var(--line);color:var(--muted);text-align:center;line-height:1.6}.error-state{color:var(--red)}

/* Admin */
.admin-page{padding:24px}.admin-shell{width:min(1100px,100%);margin:4vh auto;padding:clamp(20px,4vw,42px);border:1px solid var(--line);background:#110d17ed;box-shadow:0 20px 70px #0007}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}.admin-header h1{margin:0;font-size:2rem}.admin-header p{margin:5px 0 0;color:var(--muted);font:11px var(--mono)}.admin-actions{display:flex;gap:10px}.admin-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--line)}.admin-nav button{padding:9px 13px;border:1px solid var(--line);background:#17111e;color:var(--muted);cursor:pointer;font:12px var(--mono)}.admin-nav button.active,.admin-nav button:hover{border-color:var(--purple-2);color:var(--purple)}.admin-grid{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr);gap:26px}.admin-panel{padding:18px;border:1px solid var(--line);background:#0e0b13}.admin-panel h2{margin-bottom:18px;font-size:1.1rem}.form-stack{display:grid;gap:13px}.field{display:grid;gap:6px}.field label{color:#c4b3cf;font:11px var(--mono)}.field input,.field select,.field textarea,.login-box input{width:100%;padding:10px 11px;border:1px solid #493653;outline:none;background:#17121b;color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus,.login-box input:focus{border-color:var(--purple)}.field textarea{min-height:120px;resize:vertical}.check-field{display:flex;align-items:center;gap:9px;color:#d3c8dc;font-size:.9rem}.check-field input{accent-color:var(--purple)}.admin-form-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:5px}.button{padding:10px 13px;font:12px var(--mono)}.button.primary{background:#583878;border-color:#a775d0;color:#fff}.button.danger{border-color:#814558;color:#f0a3b4}.button.ghost{background:transparent}.item-list{display:grid;gap:9px;max-height:70vh;overflow:auto}.admin-item{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:11px;padding:9px;border:1px solid #302239;background:#15101a}.admin-thumb{width:48px;height:62px;object-fit:cover;background:#09070c}.admin-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.admin-item small{display:block;margin-top:5px;color:var(--muted);font:10px var(--mono)}.item-buttons{display:flex;gap:6px}.item-buttons button{padding:7px 8px;font-size:10px}.settings-note,.form-message{color:var(--muted);font-size:.85rem;line-height:1.6}.form-message{min-height:1.3em}.form-message.error{color:var(--red)}.form-message.success{color:var(--green)}.key-state{font:10px var(--mono);color:var(--green)}.login-box{width:min(430px,100%);margin:10vh auto;padding:clamp(24px,5vw,42px);border:1px solid var(--line);background:#110d17;box-shadow:0 20px 70px #0008}.login-box h1{margin:0 0 8px;font-size:2rem}.login-box p{color:var(--muted);line-height:1.5}.login-box form{display:grid;gap:13px}.hidden{display:none!important}
@media(max-width:850px){.log-layout{grid-template-columns:1fr}.log-aside{position:static;order:-1}.favorites-grid{grid-template-columns:repeat(4,1fr)}.media-card{grid-template-columns:125px minmax(0,1fr)}.admin-grid{grid-template-columns:1fr}.item-list{max-height:420px}}@media(max-width:560px){.home-page{padding:12px}.category-grid{grid-template-columns:1fr}.site-header{align-items:flex-start;flex-direction:column;padding:16px 18px}.site-header nav{width:100%;justify-content:space-between;gap:8px}.log-layout{width:calc(100% - 28px);margin:22px auto}.media-card{grid-template-columns:94px minmax(0,1fr);gap:12px;padding:9px}.media-art,.media-art img,.no-art{min-height:145px}.media-title{font-size:1.05rem}.review{font-size:.84rem;padding:9px}.admin-page{padding:10px}.admin-header{align-items:flex-start;flex-direction:column}.admin-item{grid-template-columns:40px minmax(0,1fr)}.admin-thumb{width:40px;height:54px}.item-buttons{grid-column:2}.item-buttons button{flex:1}.favorites-grid{grid-template-columns:repeat(4,1fr)}}

/* Log cards keep the original fixed poster column and move flag markers under it. */
.media-card{display:flex;align-items:flex-start;gap:20px}
.media-art{display:flex;flex:0 0 132px;width:132px;min-height:0;flex-direction:column;align-items:center;overflow:visible;border:0;background:transparent}
.poster-box{width:132px;padding:5px;border:1px solid #473154;background:#15111a}
.poster-box img,.poster-box .no-art{display:block;width:120px;height:180px;min-height:180px;object-fit:cover;border:1px solid #493653;background:#0a080c}
.poster-box .no-art{display:grid;place-items:center;color:#766482;font:11px var(--mono)}
.media-marker{width:max-content;max-width:132px;margin-top:6px;padding:3px 7px;border:1px solid #674787;background:linear-gradient(#30213b,#17111e);color:#d4b3ef;font:9px var(--mono);letter-spacing:.08em;text-align:center;box-shadow:inset 0 0 0 1px #3e2a50,0 1px 2px #000}
.media-body{flex:1;min-width:0}
.media-date{justify-content:flex-start;align-items:center;margin:2px 0 10px}
.date-extra{margin-left:8px;color:#c6a2e2}
.media-heading{display:flex;align-items:baseline;gap:10px;margin:0 0 12px}
.media-heading .media-title{flex:1;min-width:0;font-size:1.3rem}
.media-heading .rating{flex:none;margin:0;white-space:nowrap;font-size:1.05rem}
.rating .star.filled{color:#c18cff}.rating .star.empty{color:#5c5066}.rating .star.half{position:relative;display:inline-block;color:#5c5066}.rating .star.half::before{position:absolute;left:0;top:0;width:50%;overflow:hidden;color:#c18cff;content:'★'}
.rating small{margin-left:4px;color:var(--muted);font:10px var(--mono);letter-spacing:0}
.media-subtitle{margin:-5px 0 11px;color:var(--muted);font-size:.9rem}
.media-info{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 13px;color:var(--muted);font:11px var(--mono);text-transform:uppercase}
.info-divider{color:var(--purple-2)}
.media-link{color:var(--purple);text-decoration:underline;text-underline-offset:3px}
.media-link:hover{color:var(--ink)}
.book-tags{display:flex;gap:7px;flex-wrap:wrap;margin:2px 0 13px}
.book-tags .tag{padding:4px 8px;border-color:#463052;color:#cda5e8;font:10px var(--mono)}
.review{margin:0;padding:14px 17px}
@media(max-width:850px){.media-card{grid-template-columns:none}}
@media(max-width:560px){.media-card{grid-template-columns:none;gap:12px;padding:9px}.media-art{flex-basis:132px}.media-heading{align-items:flex-start;flex-direction:column;gap:4px}.media-heading .media-title{font-size:1.05rem}.media-heading .rating{font-size:1rem}.review{font-size:.84rem;padding:9px}}
