:root{--bg-obsidian:#090a0f;--bg-surface:#11131c;--bg-elevated:#171a26;--bg-glass:#11131cc7;--border-subtle:#ffffff0f;--border-medium:#ffffff1f;--border-focus:#8b5cf699;--text-primary:#f4f6fb;--text-secondary:#949bb0;--text-muted:#5e657a;--accent-primary:#a78bfa;--accent-primary-strong:#8b5cf6;--accent-primary-dim:#a78bfa24;--accent-gold:#a78bfa;--accent-gold-dim:#a78bfa24;--accent-cyan:#38bdf8;--accent-cyan-dim:#38bdf824;--accent-emerald:#34d399;--accent-emerald-dim:#34d39924;--accent-rose:#fb7185;--accent-rose-dim:#fb718524;--font-display:"Google Sans", "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-sans:"Google Sans Text", "Google Sans", "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-serif:var(--font-display);--font-mono:"Google Sans Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--shadow-book:0 20px 38px -10px #000000c7, 0 4px 12px #00000080, inset 2px 0 5px #ffffff24, inset -1px 0 2px #0006;--max-width:1180px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background-color:var(--bg-obsidian);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:16px;line-height:1.6}body{background-color:var(--bg-obsidian);background-image:radial-gradient(75% 45% at 50% -12%,#8b5cf621,#0000),radial-gradient(circle at 85% 15%,#38bdf812,#0000 45%),radial-gradient(circle at 12% 40%,#34d3990a,#0000 40%);min-height:100vh;position:relative;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:9999;opacity:.022;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}.site-header{border-bottom:1px solid var(--border-subtle);backdrop-filter:blur(16px);z-index:40;background:#090a0fc7;position:sticky;top:0}.site-header-inner{justify-content:space-between;align-items:center;height:4.25rem;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.025em;color:var(--text-primary);align-items:center;gap:.7rem;font-size:1.25rem;font-weight:600;display:inline-flex}.brand-mark{width:1.85rem;height:1.85rem;color:var(--accent-primary);background:linear-gradient(135deg,#a78bfa40,#38bdf81f);border:1px solid #a78bfa59;border-radius:8px;place-items:center;display:grid}.site-nav{align-items:center;gap:.75rem;display:flex}.nav-link{color:var(--text-secondary);border-radius:var(--radius-sm);padding:.45rem .8rem;font-size:.875rem;font-weight:500;transition:color .15s,background .15s}.nav-link:hover{color:var(--text-primary);background:#ffffff0d}.book-cover-frame{aspect-ratio:2/3;box-shadow:var(--shadow-book);user-select:none;background:linear-gradient(145deg,#1b1f2e,#10131c);border-radius:4px 10px 10px 4px;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s;position:relative;overflow:hidden}.book-cover-frame:after{content:"";pointer-events:none;z-index:2;background:linear-gradient(90deg,#ffffff26 0%,#ffffff0a 3%,#00000040 5.5%,#ffffff0f 7.5%,#0000 14% 96%,#00000038 100%);position:absolute;inset:0}.book-cover-img{object-fit:cover;width:100%;height:100%;display:block}.book-cover-placeholder{background:radial-gradient(circle at 100% 0,#a78bfa33,#0000 65%),linear-gradient(160deg,#1e2233 0%,#11141f 100%);border:1px solid #ffffff14;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:1.25rem 1rem 1.25rem 1.35rem;display:flex}.book-cover-placeholder-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.01em;-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:1rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.book-cover-placeholder-author{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-primary);font-size:.72rem;font-weight:500}.dashboard-hero{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;padding:3rem 0 2.25rem;display:flex}.dashboard-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--text-primary);font-size:clamp(2rem,3.8vw,2.75rem);font-weight:700;line-height:1.12}.dashboard-subtitle{color:var(--text-secondary);margin-top:.45rem;font-size:.98rem}.stats-strip{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);gap:1.75rem;padding:.9rem 1.4rem;display:flex}.stat-item{flex-direction:column;display:flex}.stat-value{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-primary);font-size:1.5rem;font-weight:700;line-height:1.1}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-top:.25rem;font-size:.72rem;font-weight:500}.section-block{margin-top:3.25rem}.section-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.35rem;display:flex}.section-title{font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:.65rem;font-size:1.35rem;font-weight:600;display:inline-flex}.section-count{font-family:var(--font-mono);color:var(--accent-primary);background:var(--accent-primary-dim);border:1px solid #a78bfa38;border-radius:999px;padding:.15rem .6rem;font-size:.74rem;font-weight:500}.currently-reading-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem;display:grid}.reading-spotlight-card{border-radius:var(--radius-lg);background:radial-gradient(circle at 12% 50%, #8b5cf61f, transparent 65%), linear-gradient(180deg, var(--bg-elevated) 0%, var(--bg-surface) 100%);border:1px solid var(--border-medium);cursor:pointer;text-align:left;grid-template-columns:135px 1fr;gap:1.5rem;padding:1.5rem;transition:transform .25s,border-color .25s,box-shadow .25s;display:grid;position:relative}.reading-spotlight-card:hover{border-color:#a78bfa6b;transform:translateY(-3px);box-shadow:0 20px 44px -15px #000000b3}.reading-spotlight-card:hover .book-cover-frame{transform:scale(1.03)}.spotlight-body{flex-direction:column;justify-content:center;min-width:0;display:flex}.status-pill{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;align-items:center;gap:.4rem;width:fit-content;padding:.24rem .68rem;font-size:.72rem;font-weight:600;display:inline-flex}.status-pill--in-progress{color:var(--accent-cyan);background:var(--accent-cyan-dim);border:1px solid #38bdf847}.status-pill--read{color:var(--accent-emerald);background:var(--accent-emerald-dim);border:1px solid #34d39947}.status-pill--dnf{color:var(--accent-rose);background:var(--accent-rose-dim);border:1px solid #fb718547}.pulse-dot{background:currentColor;border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px}.spotlight-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-primary);margin-top:.7rem;font-size:1.35rem;font-weight:600;line-height:1.25}.spotlight-author{color:var(--text-secondary);margin-top:.22rem;font-size:.92rem}.spotlight-excerpt{color:var(--text-secondary);-webkit-line-clamp:2;opacity:.88;-webkit-box-orient:vertical;margin-top:.85rem;font-size:.86rem;display:-webkit-box;overflow:hidden}.spotlight-meta{color:var(--text-muted);align-items:center;gap:.75rem;margin-top:auto;padding-top:.9rem;font-size:.78rem;display:flex}.recent-books-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:1.5rem;display:grid}@media (width<=1024px){.recent-books-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){.recent-books-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem}}.book-showcase-card{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;padding:0;display:flex}.book-showcase-card:hover .book-cover-frame{transform:translateY(-6px)scale(1.015);box-shadow:0 26px 48px -12px #000000d9,0 0 24px #8b5cf62e}.showcase-info{padding-top:.9rem}.showcase-title{font-family:var(--font-display);letter-spacing:-.015em;color:var(--text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1rem;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.showcase-author{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:.2rem;font-size:.82rem;overflow:hidden}.showcase-footer{justify-content:space-between;align-items:center;gap:.5rem;margin-top:.45rem;display:flex}.showcase-date{font-family:var(--font-mono);color:var(--text-muted);font-size:.72rem}.star-rating{color:var(--accent-primary);vertical-align:middle;align-items:center;gap:2px;display:inline-flex}.star-icon{flex-shrink:0;width:14px;height:14px}.star-icon--lg{width:17px;height:17px}.star-empty{color:#ffffff24}.archive-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.15rem;display:flex}.filter-tabs{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);gap:.2rem;padding:.25rem;display:inline-flex}.filter-tab{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:.42rem .9rem;font-size:.82rem;font-weight:500;transition:all .15s}.filter-tab:hover{color:var(--text-primary)}.filter-tab.is-active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:0 1px 4px #00000059}.search-input-wrap{min-width:250px;position:relative}.search-input{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;color:var(--text-primary);padding:.52rem .85rem .52rem 2.25rem;font-size:.86rem;transition:border-color .15s,box-shadow .15s}.search-input:focus{border-color:var(--border-focus);outline:none;box-shadow:0 0 0 3px #8b5cf626}.search-icon{width:15px;height:15px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.archive-table-wrap{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);-webkit-overflow-scrolling:touch;overflow:auto hidden}.archive-table{border-collapse:collapse;text-align:left;width:100%;min-width:640px}.archive-table th{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);user-select:none;background:#ffffff04;padding:.9rem 1.15rem;font-size:.73rem;font-weight:600}.archive-table .book-cover-frame{border-radius:2px 3px 3px 2px}.sort-btn{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.35rem;padding:0;transition:color .15s;display:inline-flex}.sort-btn:hover,.sort-btn.is-sorted{color:var(--accent-primary)}.sort-indicator{opacity:.4;font-size:.7rem}.sort-btn.is-sorted .sort-indicator{opacity:1}.archive-row{border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background .15s}.archive-row:last-child{border-bottom:none}.archive-row:hover{background:#a78bfa0a}.archive-table td{vertical-align:middle;padding:.85rem 1.15rem}.row-book-cell{align-items:center;gap:1rem;min-width:210px;display:flex}.row-thumb{flex-shrink:0;width:40px}.row-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-primary);font-size:.98rem;font-weight:600;line-height:1.3}.row-notes-badge{color:var(--accent-primary);opacity:.85;align-items:center;gap:.25rem;margin-top:.2rem;font-size:.72rem;display:inline-flex}.row-author{color:var(--text-secondary);min-width:150px;font-size:.9rem}.row-date{font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;font-size:.8rem}@media (width<=720px){.archive-table th,.archive-table td{padding:.75rem .9rem}}.book-dialog{background:var(--bg-elevated);width:min(680px,100vw - 1.5rem);max-height:calc(100dvh - 2.5rem);color:var(--text-primary);border:1px solid var(--border-medium);border-radius:var(--radius-lg);margin:auto;padding:0;overflow:hidden;box-shadow:0 30px 70px #000000d9}.book-dialog[open]{flex-direction:column;display:flex}.book-dialog::backdrop{backdrop-filter:blur(8px);background:#05060bc7}.dialog-inner{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:calc(100dvh - 2.5rem);padding:2rem;overflow-y:auto}.dialog-top{grid-template-columns:145px 1fr;align-items:start;gap:1.75rem;display:grid}@media (width<=540px){.dialog-top{grid-template-columns:105px 1fr;gap:1.15rem}.dialog-inner{padding:1.35rem}}.dialog-close{border:1px solid var(--border-subtle);background:var(--bg-surface);width:2.1rem;height:2.1rem;color:var(--text-secondary);cursor:pointer;border-radius:50%;place-items:center;transition:all .15s;display:grid;position:absolute;top:1.15rem;right:1.15rem}.dialog-close:hover{color:var(--text-primary);border-color:var(--border-medium)}.dialog-title{font-family:var(--font-display);letter-spacing:-.025em;margin-top:.6rem;padding-right:2rem;font-size:1.6rem;font-weight:700;line-height:1.2}.dialog-author{color:var(--text-secondary);margin-top:.25rem;font-size:.98rem}.dialog-meta-grid{border-top:1px solid var(--border-subtle);flex-wrap:wrap;gap:1.25rem;margin-top:1.1rem;padding-top:1rem;font-size:.82rem;display:flex}.dialog-meta-item{flex-direction:column;gap:.15rem;display:flex}.dialog-meta-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.7rem;font-weight:600}.dialog-notes-section{border-top:1px solid var(--border-subtle);margin-top:1.75rem;padding-top:1.5rem}.dialog-notes-heading{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:.85rem;font-size:.75rem;font-weight:600}.markdown-prose{color:var(--text-primary);font-size:.96rem;line-height:1.72}.markdown-prose p+p{margin-top:.95rem}.markdown-prose h1,.markdown-prose h2,.markdown-prose h3{font-family:var(--font-display);letter-spacing:-.015em;color:var(--text-primary);margin:1.35rem 0 .5rem;font-weight:600}.markdown-prose ul,.markdown-prose ol{margin:.75rem 0;padding-left:1.35rem}.markdown-prose li+li{margin-top:.3rem}.markdown-prose blockquote{border-left:3px solid var(--accent-primary);background:var(--accent-primary-dim);color:var(--text-primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:1rem 0;padding:.75rem 1.15rem}.markdown-prose code{font-family:var(--font-mono);background:#ffffff12;border-radius:4px;padding:.15rem .35rem;font-size:.85em}.markdown-prose a{color:var(--accent-primary);text-decoration:underline}.btn{font-family:var(--font-display);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.58rem 1.15rem;font-size:.86rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{color:#fff;background:linear-gradient(135deg,#8b5cf6,#6366f1);box-shadow:0 4px 14px #8b5cf659}.btn-primary:hover{background:linear-gradient(135deg,#9d74f7,#7577f3);transform:translateY(-1px)}.btn-secondary{background:var(--bg-elevated);border-color:var(--border-medium);color:var(--text-primary)}.btn-secondary:hover{background:#202434;border-color:#ffffff40}.btn-danger{background:var(--accent-rose-dim);color:var(--accent-rose);border-color:#fb71854d}.btn-danger:hover{background:#fb71853d}.form-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.75rem}.form-grid{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}@media (width<=680px){.form-grid{grid-template-columns:1fr}}.form-group{flex-direction:column;gap:.42rem;display:flex}.form-group--full{grid-column:1/-1}.form-label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.form-hint{color:var(--text-muted);font-size:.75rem}.form-input,.form-select,.form-textarea{background:var(--bg-obsidian);border:1px solid var(--border-medium);border-radius:var(--radius-sm);color:var(--text-primary);padding:.62rem .85rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--border-focus);outline:none;box-shadow:0 0 0 3px #8b5cf626}.form-textarea{resize:vertical;min-height:160px;font-family:var(--font-mono);font-size:.86rem;line-height:1.6}.site-footer{border-top:1px solid var(--border-subtle);color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:5rem;padding:2.25rem 0;font-size:.82rem;display:flex}
