/* ===== QLH — Dark Matter × Cosmos theme (AION-derived) ===== */
:root{
  --bg:#000000; --surface:#120f1f; --surface-2:#1b1730;
  --text:#f5f5f7; --dim:#a8a2ba; --faint:#726c86;
  --border:rgba(168,140,255,0.10); --border-2:rgba(168,140,255,0.18);
  --accent:#7c3aed; --accent-hover:#8b5cf6; --accent-link:#a855f7; --accent-soft:#c4b5fd;
  --btn-soft-bg:rgba(124,58,237,0.18); --btn-soft-bg-hover:rgba(124,58,237,0.32);
  --btn-soft-border:rgba(124,58,237,0.35); --btn-soft-border-hover:rgba(124,58,237,0.55);
  --radius:14px; --radius-sm:10px; --maxw:1200px; --narrow:720px; --topbar-h:60px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --shadow:0 10px 40px rgba(0,0,0,0.45);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--text); font-family:var(--font);
  font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased;
  position:relative; isolation:isolate; overflow-x:hidden;
}
img{max-width:100%; height:auto; display:block}
a{color:inherit; text-decoration:none}
::selection{background:rgba(124,58,237,0.4); color:#fff}

/* ---- Starfield ---- */
.starfield{position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(1px 1px at 32px 18px,rgba(255,255,255,.85),transparent 50%),
    radial-gradient(1.5px 1.5px at 142px 24px,rgba(255,255,255,.9),transparent 50%),
    radial-gradient(2px 2px at 268px 36px,rgba(255,255,255,.95),transparent 50%),
    radial-gradient(1px 1px at 360px 200px,rgba(255,255,255,.6),transparent 50%),
    radial-gradient(1px 1px at 220px 156px,rgba(196,168,255,.7),transparent 50%),
    radial-gradient(1px 1px at 48px 248px,rgba(255,255,255,.7),transparent 50%),
    radial-gradient(1.5px 1.5px at 218px 268px,rgba(196,168,255,.6),transparent 50%),
    radial-gradient(1px 1px at 130px 380px,rgba(168,200,255,.6),transparent 50%),
    radial-gradient(2px 2px at 366px 312px,rgba(255,255,255,.9),transparent 50%),
    radial-gradient(1px 1px at 92px 130px,rgba(255,255,255,.55),transparent 50%),
    radial-gradient(1px 1px at 14px 92px,rgba(196,168,255,.7),transparent 50%),
    radial-gradient(0.5px 0.5px at 84px 232px,rgba(255,255,255,.4),transparent 50%),
    radial-gradient(0.5px 0.5px at 300px 120px,rgba(255,255,255,.4),transparent 50%);
  background-size:400px 400px; background-repeat:repeat; opacity:.62;
}
body::before{content:""; position:fixed; inset:0; z-index:-3; pointer-events:none;
  background:
    radial-gradient(58vw 58vw at 80% -12%, rgba(124,58,237,.16), transparent 62%),
    radial-gradient(46vw 46vw at 8% 10%, rgba(168,85,247,.08), transparent 58%),
    radial-gradient(72vw 52vw at 50% 122%, rgba(88,40,180,.12), transparent 62%);
}
body::after{content:""; position:fixed; top:16vh; right:14vw; width:3px; height:3px; z-index:-1;
  border-radius:50%; background:rgba(255,255,255,.95);
  box-shadow:0 0 6px 1px rgba(255,255,255,.7), 0 0 16px 4px rgba(168,140,255,.4);
  animation:twinkle 5.5s ease-in-out infinite; pointer-events:none;}
@keyframes twinkle{0%,100%{opacity:.3;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}

/* ---- Layout ---- */
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px}
.wrap-narrow{max-width:var(--narrow); margin:0 auto; padding:0 24px}
.site-main{min-height:60vh; padding-bottom:80px}
.dim{color:var(--dim)}
.eyebrow{display:inline-block; font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--accent-soft); font-weight:700; margin-bottom:14px}

/* ---- Topbar ---- */
.topbar{position:sticky; top:0; z-index:50; height:var(--topbar-h);
  backdrop-filter:blur(24px) saturate(120%); background:rgba(0,0,0,.55);
  border-bottom:1px solid var(--border)}
.topbar-inner{height:var(--topbar-h); display:flex; align-items:center; gap:22px}
.brand{display:flex; align-items:center; gap:11px; font-weight:800; letter-spacing:.2px}
.brand-mark{width:26px; height:26px; border-radius:50%; flex:none;
  background:radial-gradient(circle at 30% 30%, #c4b5fd, #7c3aed 60%, #3b1d80);
  box-shadow:0 0 14px rgba(124,58,237,.7), inset 0 0 6px rgba(0,0,0,.4)}
.brand-text{font-size:16px; line-height:1; display:flex; align-items:baseline; gap:7px}
.brand-text small{font-size:10px; letter-spacing:.22em; color:var(--accent-soft); font-weight:700}
.nav{display:flex; align-items:center; gap:6px; margin-left:6px}
.nav>a,.nav-drop-btn{color:var(--dim); font-size:14px; font-weight:600; padding:8px 12px;
  border-radius:9px; background:none; border:0; cursor:pointer; font-family:inherit}
.nav>a:hover,.nav-drop-btn:hover{color:#fff; background:rgba(255,255,255,.05)}
.nav-drop{position:relative}
.nav-drop-menu{position:absolute; top:calc(100% + 8px); left:0; min-width:230px;
  background:rgba(20,18,38,.97); backdrop-filter:blur(16px); border:1px solid var(--border-2);
  border-radius:12px; padding:8px; box-shadow:var(--shadow); display:none; flex-direction:column; gap:2px}
.nav-drop-menu a{padding:9px 12px; border-radius:8px; font-size:14px; color:var(--dim)}
.nav-drop-menu a:hover{background:var(--btn-soft-bg); color:#fff}
.nav-drop.open .nav-drop-menu{display:flex}
.search-mini{margin-left:auto; display:flex; align-items:center; gap:0;
  background:var(--surface); border:1px solid var(--border); border-radius:999px; padding:3px 3px 3px 14px}
.search-mini input{background:none; border:0; color:var(--text); font-size:13px; width:170px; outline:none; font-family:inherit}
.search-mini input::placeholder{color:var(--faint)}
.search-mini button{width:32px; height:32px; border-radius:50%; border:0; cursor:pointer; font-size:16px;
  color:var(--accent-soft); background:var(--btn-soft-bg)}
.search-mini button:hover{background:var(--btn-soft-bg-hover); color:#fff}
.nav-toggle{display:none; margin-left:auto; background:none; border:0; color:#fff; font-size:22px; cursor:pointer}

/* ---- Buttons ---- */
.btn{display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:14px;
  padding:11px 20px; border-radius:999px; cursor:pointer; border:1px solid transparent; transition:.16s; font-family:inherit}
.btn-primary{background:var(--btn-soft-bg); color:var(--accent-soft); border-color:var(--btn-soft-border);
  box-shadow:0 0 0 1px rgba(124,58,237,.35), 0 0 18px rgba(124,58,237,.28)}
.btn-primary:hover{background:var(--btn-soft-bg-hover); color:#fff; border-color:var(--btn-soft-border-hover);
  box-shadow:0 0 0 1px rgba(139,92,246,.6), 0 0 26px rgba(139,92,246,.4)}
.btn-ghost{background:transparent; color:var(--text); border-color:var(--border-2)}
.btn-ghost:hover{border-color:var(--accent); background:rgba(255,255,255,.04)}

/* ---- Hero ---- */
.hero{padding:78px 24px 40px; text-align:center; position:relative}
.hero-copy{max-width:820px; margin:0 auto}
.hero-title{font-size:clamp(34px,6vw,60px); line-height:1.06; font-weight:800; margin:6px 0 20px; letter-spacing:-.02em}
.hero-title em{font-style:normal; background:linear-gradient(120deg,#c4b5fd,#a855f7 40%,#7c3aed);
  -webkit-background-clip:text; background-clip:text; color:transparent}
.hero-sub{font-size:clamp(16px,2.2vw,20px); color:var(--dim); max-width:640px; margin:0 auto 28px}
.hero-actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap}

/* ---- Featured ---- */
.featured-wrap{margin:34px auto 10px}
.featured{display:grid; grid-template-columns:1.1fr 1fr; gap:0; border:1px solid var(--border-2);
  border-radius:20px; overflow:hidden; background:linear-gradient(180deg,var(--surface),var(--surface-2));
  transition:.2s; box-shadow:var(--shadow)}
.featured:hover{border-color:var(--accent); transform:translateY(-3px)}
.featured-media{position:relative; min-height:340px; background:#0e0c20}
.featured-media img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0}
.featured-body{padding:40px}
.badge{display:inline-block; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--accent-soft); background:var(--btn-soft-bg); border:1px solid var(--btn-soft-border);
  padding:5px 12px; border-radius:999px; margin-bottom:16px}
.featured-body h2{font-size:clamp(24px,3vw,34px); line-height:1.12; margin:0 0 14px; font-weight:800; letter-spacing:-.01em}
.featured-body p{color:var(--dim); margin:0 0 22px}
.featured-more{color:var(--accent-link); font-weight:600; font-size:14px}

/* ---- Topic chips ---- */
.topic-chips{display:flex; flex-wrap:wrap; gap:10px; margin:40px auto 6px; justify-content:center}
.chip{display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--dim);
  background:var(--surface); border:1px solid var(--border); padding:8px 15px; border-radius:999px; transition:.15s}
.chip:hover{color:#fff; border-color:var(--accent); background:var(--btn-soft-bg)}
.chip-n{font-size:11px; color:var(--faint)}

/* ---- Section head ---- */
.section-head{display:flex; align-items:center; gap:16px; margin:54px 0 24px}
.section-title{font-size:22px; font-weight:700; margin:0; white-space:nowrap}
.section-head::after{content:""; height:1px; flex:1; background:linear-gradient(90deg,var(--border-2),transparent)}

/* ---- Card grid ---- */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.card{background:linear-gradient(180deg,var(--surface),rgba(22,20,42,.6)); border:1px solid var(--border);
  border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; transition:.18s}
.card:hover{border-color:var(--border-2); transform:translateY(-4px); box-shadow:var(--shadow)}
.card-media{display:block; aspect-ratio:16/9; background:#0e0c20; position:relative; overflow:hidden}
.card-media img{width:100%; height:100%; object-fit:cover; transition:.4s}
.card:hover .card-media img{transform:scale(1.05)}
.card-media-fallback{position:absolute; inset:0;
  background:radial-gradient(circle at 30% 30%, rgba(124,58,237,.35), transparent 60%), #0e0c20;}
.card-media-fallback::after{content:"✦"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:34px; color:rgba(196,181,253,.5)}
.card-media-fallback.big::after{font-size:60px}
.card-body{padding:20px; display:flex; flex-direction:column; gap:10px; flex:1}
.card-cat{align-self:flex-start; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--accent-soft)}
.card-title{font-size:19px; line-height:1.25; margin:0; font-weight:700}
.card-title a:hover{color:var(--accent-link)}
.card-excerpt{color:var(--dim); font-size:14px; margin:0; flex:1}
.card-meta{display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--faint)}
.dot{opacity:.6}

/* ---- Pagination ---- */
.pagination{display:flex; gap:8px; justify-content:center; margin:48px 0 0; flex-wrap:wrap}
.page-link{min-width:40px; text-align:center; padding:9px 13px; border-radius:10px; font-size:14px;
  font-weight:600; color:var(--dim); background:var(--surface); border:1px solid var(--border)}
.page-link:hover{color:#fff; border-color:var(--accent)}
.page-link.is-active{background:var(--btn-soft-bg); color:#fff; border-color:var(--btn-soft-border)}
.page-gap{align-self:end; color:var(--faint); padding:0 4px}

/* ---- Single post ---- */
.post-head{padding:56px 24px 20px; text-align:center}
.post-cats{display:flex; gap:10px; justify-content:center; margin-bottom:16px}
.post-cats a{font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-soft)}
.post-title{font-size:clamp(30px,5vw,50px); line-height:1.1; font-weight:800; margin:0 auto 20px; max-width:840px; letter-spacing:-.02em}
.post-meta{display:flex; align-items:center; gap:9px; justify-content:center; color:var(--faint); font-size:14px}
.post-meta .author{color:var(--dim); font-weight:600}
.post-hero{margin:30px auto; max-width:960px; padding:0 24px}
.post-hero img{width:100%; border-radius:18px; border:1px solid var(--border-2); box-shadow:var(--shadow)}
.post-content{font-size:18px; line-height:1.8; padding-top:14px; padding-bottom:20px; color:#e9e6f2}
.post-content>*{margin:0 0 1.3em}
.post-content h2{font-size:28px; font-weight:700; margin:1.7em 0 .6em; letter-spacing:-.01em; color:#fff}
.post-content h3{font-size:22px; font-weight:700; margin:1.5em 0 .5em; color:#fff}
.post-content h4{font-size:18px; font-weight:700; margin:1.4em 0 .4em; color:#fff}
.post-content a{color:var(--accent-link); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(168,85,247,.4)}
.post-content a:hover{text-decoration-color:var(--accent-link)}
.post-content strong{color:#fff}
.post-content blockquote{border-left:3px solid var(--accent); padding:6px 0 6px 22px; margin-left:0;
  color:var(--dim); font-style:italic; font-size:20px}
.post-content ul,.post-content ol{padding-left:26px}
.post-content li{margin:.4em 0}
.post-content figure.post-img{margin:2em 0}
.post-content figure.post-img img{width:100%; border-radius:14px; border:1px solid var(--border)}
.post-content img{border-radius:12px}
.post-content .post-table{width:100%; border-collapse:collapse; font-size:15px}
.post-content .post-table td{border:1px solid var(--border); padding:9px 12px}
.post-content .lede{font-size:21px; color:#fff}
.post-tags{display:flex; flex-wrap:wrap; gap:9px; margin:36px auto; padding-top:26px; border-top:1px solid var(--border)}
.tag{font-size:13px; color:var(--dim); background:var(--surface); border:1px solid var(--border); padding:6px 13px; border-radius:999px}
.tag:hover{color:#fff; border-color:var(--accent); text-shadow:0 0 8px rgba(168,85,247,.5)}
.post-nav{display:flex; justify-content:space-between; gap:20px; margin:20px auto 10px}
.pn{flex:1; max-width:48%; padding:18px; border:1px solid var(--border); border-radius:14px; background:var(--surface); transition:.15s}
.pn:hover{border-color:var(--accent)}
.pn.next{text-align:right}
.pn span{font-size:12px; color:var(--faint); display:block; margin-bottom:6px}
.pn strong{font-size:15px; font-weight:600}
.related{margin-top:30px}

/* ---- Archive / page heads ---- */
.archive-head{padding:56px 24px 10px; text-align:center}
.page-title{font-size:clamp(30px,5vw,46px); font-weight:800; margin:6px 0 10px; letter-spacing:-.02em}
.search-page{display:flex; gap:10px; max-width:560px; margin:20px auto 0}
.search-page input{flex:1; background:var(--surface); border:1px solid var(--border-2); border-radius:999px;
  padding:13px 20px; color:var(--text); font-size:15px; outline:none; font-family:inherit}
.search-page input:focus{border-color:var(--accent); box-shadow:0 0 0 3px rgba(124,58,237,.2)}
.is-page .site-main,.is-archive .site-main{padding-top:6px}

/* ---- Error ---- */
.error-page{text-align:center; padding:90px 24px}
.error-code{font-size:120px; font-weight:800; line-height:1;
  background:linear-gradient(120deg,#c4b5fd,#7c3aed); -webkit-background-clip:text; background-clip:text; color:transparent}

/* ---- Footer ---- */
.site-footer{border-top:1px solid var(--border); background:rgba(10,9,22,.6); backdrop-filter:blur(10px); margin-top:60px}
.footer-grid{display:grid; grid-template-columns:2fr 1fr 1fr; gap:40px; padding:52px 24px 30px}
.footer-col h4{font-size:13px; text-transform:uppercase; letter-spacing:.12em; color:var(--accent-soft); margin:0 0 14px}
.footer-col a{display:block; color:var(--dim); font-size:14px; padding:4px 0}
.footer-col a:hover{color:#fff}
.footer-brand{font-size:19px; font-weight:800; margin-bottom:10px}
.footer-bottom{padding:22px 24px; border-top:1px solid var(--border); color:var(--faint); font-size:13px; text-align:center}

/* ---- Responsive ---- */
@media(max-width:900px){
  .card-grid{grid-template-columns:repeat(2,1fr)}
  .featured{grid-template-columns:1fr}
  .featured-media{min-height:220px; position:relative}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .nav,.search-mini{display:none}
  .nav-toggle{display:block}
  .topbar.open .nav{display:flex; position:absolute; top:var(--topbar-h); left:0; right:0; flex-direction:column;
    background:rgba(15,13,30,.98); padding:14px; border-bottom:1px solid var(--border); align-items:stretch}
  .topbar.open .nav-drop-menu{position:static; display:flex; box-shadow:none; background:none; border:0; padding:0 0 0 10px}
  .card-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .hero{padding-top:48px}
  .post-nav{flex-direction:column}
  .pn{max-width:100%}
}
