:root{color-scheme:dark;--bg:#090a0f;--panel:#121521;--panel-soft:#171b2b;--text:#f5f7ff;--muted:#b4bdd4;--accent:#7c6cff;--accent-soft:#2d2956;--border:#2a3147;--success:#3ecf8e;--brand-logo-bubble:#f6f8ff;--brand-logo-heart:#ff5f97}*{box-sizing:border-box}body,html{margin:0;padding:0;background:radial-gradient(circle at top right,#1a2145 0,var(--bg) 55%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5}a{color:#c6c0ff;text-decoration:none}a:hover{text-decoration:underline}.page-shell{min-height:100vh;display:flex;flex-direction:column}.content-wrap{width:min(1100px,100% - 2rem);margin:0 auto}.site-header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:-webkit-sticky;position:sticky;top:0;z-index:10;background:color-mix(in oklab,var(--bg) 90%,black)}.site-main{flex:1 1;padding:2rem 0 3rem}.nav-row{min-height:64px;display:flex;gap:1rem}.brand,.nav-row{align-items:center}.brand{display:inline-flex;gap:.55rem;font-weight:700;letter-spacing:.2px;color:var(--text)}.brand-logo-mark{width:1.55rem;height:1.55rem;flex:0 0 auto}.loviechat-logo-mark__bubble{stroke:var(--brand-logo-bubble)}.loviechat-logo-mark__heart{fill:var(--brand-logo-heart)}.main-nav{display:flex;gap:.9rem;align-items:center;flex-wrap:wrap}.app-link{margin-left:auto;border:1px solid var(--border);padding:.45rem .8rem;border-radius:999px;background:var(--panel)}.site-footer{border-top:1px solid var(--border);padding:1.5rem 0;background:color-mix(in oklab,var(--bg) 96%,black)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:1rem;gap:1rem}.site-footer h2{margin:0 0 .5rem;font-size:1rem}.site-footer p{margin:0;color:var(--muted)}.site-footer nav{display:grid;grid-gap:.35rem;gap:.35rem;justify-content:start}.hero{display:grid;grid-gap:1.25rem;gap:1.25rem;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}.hero h1{margin:0 0 .6rem;font-size:clamp(2rem,4vw,2.8rem);line-height:1.08}.hero p{margin:0;color:var(--muted)}.card{background:linear-gradient(145deg,var(--panel),var(--panel-soft));border:1px solid var(--border);border-radius:14px;padding:1rem}.card h2,.card h3{margin-top:0}.hero-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:.55rem .9rem;border:1px solid var(--border);color:var(--text);background:color-mix(in oklab,var(--panel) 92%,black);text-decoration:none}.button:hover{text-decoration:none;border-color:color-mix(in oklab,var(--accent) 45%,var(--border))}.button-primary{background:linear-gradient(145deg,var(--accent),#6f5dff);border-color:color-mix(in oklab,var(--accent) 70%,black)}.section{margin-top:2rem;display:grid;grid-gap:.9rem;gap:.9rem}.section h2{margin:0}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.character-grid{display:grid;grid-gap:.85rem;gap:.85rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.character-card{display:grid;grid-gap:.6rem;gap:.6rem;align-content:start}.character-card h3{margin:0;font-size:1.1rem}.character-card p{margin:0;color:var(--muted);font-size:.95rem}.chip-row{display:flex;flex-wrap:wrap;gap:.4rem}.chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--border);padding:.15rem .5rem;font-size:.76rem}.chip-muted{color:var(--muted)}.chip-accent{background:var(--accent-soft)}.chip-accent,.chip-link:hover{border-color:color-mix(in oklab,var(--accent) 50%,var(--border))}.chip-link:hover{text-decoration:none}.subtle{color:var(--muted)}.page-title{margin:0;font-size:clamp(1.5rem,3vw,2rem)}.breadcrumbs{margin-bottom:1rem}.breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;gap:.55rem;flex-wrap:wrap;font-size:.88rem;color:var(--muted)}.breadcrumbs li{display:inline-flex;align-items:center;gap:.55rem}.breadcrumbs li:not(:last-child):after{content:"/";color:color-mix(in oklab,var(--muted) 70%,black)}.info-grid{display:grid;grid-gap:.9rem;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.prose h2{margin-top:1.4rem}.prose li,.prose p{color:var(--muted)}.prose ul{padding-left:1.2rem}.extraction-block h2{margin-bottom:.4rem}.extraction-block p{margin:0 0 .5rem;color:var(--muted)}.extraction-block ul{margin:0;padding-left:1.2rem}.extraction-block li+li{margin-top:.2rem}.pagination{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.alert{border:1px solid color-mix(in oklab,#f59e0b 60%,var(--border));background:color-mix(in oklab,#f59e0b 11%,var(--panel));border-radius:12px;padding:.7rem .8rem}.faq-list{display:grid;grid-gap:.65rem;gap:.65rem}.faq-item h3{margin:0 0 .2rem;font-size:1rem}.faq-item p{margin:0;color:var(--muted)}.blog-search-input{width:min(620px,100%);border-radius:10px;border:1px solid var(--border);background:color-mix(in oklab,var(--panel) 92%,black);color:var(--text);padding:.65rem .75rem}.blog-search-input:focus{outline:2px solid color-mix(in oklab,var(--accent) 60%,white);outline-offset:1px}.blog-search-row{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}.blog-search-clear{min-width:84px}.blog-post-list{display:grid;grid-gap:.8rem;gap:.8rem}.blog-feed .blog-post-list{border-top:1px solid var(--border)}.blog-feed .blog-post-card.card{background:transparent;border:none;padding:1.25rem 0;border-bottom:1px solid var(--border);border-radius:0}.blog-feed .chip-row{margin-top:.3rem}.blog-post-thumb-link{display:block;border-radius:12px;overflow:hidden;border:1px solid color-mix(in oklab,var(--border) 70%,black)}.blog-post-thumb{width:100%;height:auto;display:block;aspect-ratio:16/9;object-fit:cover}.blog-feed .blog-post-thumb-link{border-radius:14px;border-color:color-mix(in oklab,var(--border) 60%,black)}.blog-feed .blog-post-thumb{aspect-ratio:16/9}.blog-post-card h2,.blog-post-card h3,.blog-post-card p{margin:0}.blog-post-layout{display:grid;grid-gap:1rem;gap:1rem}.blog-meta-line{margin-bottom:0}.blog-toc h2{margin:0 0 .5rem}.blog-toc ul{margin:0;padding-left:1rem;display:grid;grid-gap:.3rem;gap:.3rem}.blog-toc li{color:var(--muted)}.blog-toc-nested{margin-left:.9rem}.blog-prose>:first-child{margin-top:0}.blog-prose{font-size:1.05rem;line-height:1.8;max-width:720px;margin:0 auto}.blog-prose li,.blog-prose p{color:color-mix(in oklab,var(--text) 90%,var(--muted))}.blog-prose h2{margin-top:2rem}.blog-prose h3{margin-top:1.3rem}.blog-prose blockquote{margin:1.25rem 0;padding:.85rem 1rem;border-left:3px solid color-mix(in oklab,var(--accent) 65%,var(--border));background:color-mix(in oklab,var(--panel) 88%,black);border-radius:12px}.blog-prose blockquote p{margin:0;color:var(--text)}.blog-prose img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:12px;border:1px solid color-mix(in oklab,var(--border) 70%,black);background:color-mix(in oklab,var(--panel) 90%,black)}.blog-prose h2,.blog-prose h3{scroll-margin-top:90px}.blog-prose pre{margin:1rem 0;overflow-x:auto;border-radius:12px;border:1px solid color-mix(in oklab,var(--border) 70%,black)}.blog-prose pre code{font-size:.85rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.blog-prose code:not(pre code){background:color-mix(in oklab,var(--accent-soft) 65%,var(--panel));border:1px solid color-mix(in oklab,var(--accent) 40%,var(--border));border-radius:6px;padding:.08rem .32rem;font-size:.9em}.blog-adjacent-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:.65rem;gap:.65rem}.blog-adjacent-button{display:grid;justify-items:start;grid-gap:.25rem;gap:.25rem;text-align:left;min-height:80px}@media (min-width:720px){.blog-feed .blog-post-card{display:grid;grid-template-columns:220px 1fr;grid-gap:1rem;gap:1rem;align-items:start}.blog-feed .blog-post-thumb-link{grid-row:1/span 6;grid-column:1}.blog-feed .blog-post-card>:not(.blog-post-thumb-link){grid-column:2}}@media (min-width:1040px){.blog-post-layout{grid-template-columns:minmax(0,1fr) 290px;align-items:start}.blog-post-layout>header{grid-column:1/-1}.blog-post-layout>.blog-toc{grid-column:2;grid-row:2;position:-webkit-sticky;position:sticky;top:88px;max-height:calc(100vh - 120px);overflow:auto}.blog-post-layout>.blog-prose{grid-column:1;grid-row:2}}@media (max-width:880px){.hero{grid-template-columns:1fr}.main-nav{display:none}.footer-grid{grid-template-columns:1fr}.blog-search-input{width:100%}}@media (prefers-color-scheme:light){:root{--brand-logo-bubble:#1e2230;--brand-logo-heart:#e84881}}