/* ── Fonts (self-hosted) ──────────────────────────────────── */
@font-face {
  font-family: 'Orbitron';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url('/static/fonts/orbitron-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('/static/fonts/spacegrotesk-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── Reset ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  background-color: #04040e;
  min-height: 100%;
  font-family: 'Space Grotesk', sans-serif;
  color: white;
}

a { text-decoration: none; color: inherit; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
input, textarea, select { font-family: inherit; }

/* ── Custom scrollbar ─────────────────────────────────────── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: rgba(255,255,255,0.03); border-radius: 999px; }
::-webkit-scrollbar-thumb { background: linear-gradient(180deg, rgba(124,58,237,0.6), rgba(6,182,212,0.4)); border-radius: 999px; border: 1px solid rgba(124,58,237,0.2); }
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, rgba(124,58,237,0.85), rgba(6,182,212,0.65)); }
::-webkit-scrollbar-corner { background: transparent; }

/* ── Nebula noise overlay ─────────────────────────────────── */
.nebula-noise {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.4'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  mix-blend-mode: soft-light;
}

/* ── Text colours ─────────────────────────────────────────── */
.tx-bright  { color: rgba(255,255,255,0.95); }
.tx-medium  { color: rgba(255,255,255,0.72); }
.tx-dim     { color: rgba(255,255,255,0.5);  }
.tx-muted   { color: rgba(255,255,255,0.4);  }
.tx-faint   { color: rgba(255,255,255,0.3);  }
.tx-ghost   { color: rgba(255,255,255,0.25); }
.tx-accent2 { color: #c084fc; }
.tx-red     { color: rgba(255,100,100,0.8); }

/* ── Decorative lines ─────────────────────────────────────── */
.gradient-bar   { height:4px; width:100%; background:linear-gradient(90deg,#7c3aed,#06b6d4,#ec4899); }
.gradient-bar-v { width:4px; border-radius:999px; background:linear-gradient(180deg,#7c3aed,#06b6d4); }

/* ── Surfaces ─────────────────────────────────────────────── */
.avatar-bg           { background:#1e1b4b; }

/* ── Avatar borders ───────────────────────────────────────── */
.bd-avatar-md { border:2px solid rgba(124,58,237,0.5); }

/* ── Shadows ──────────────────────────────────────────────── */
.shadow-violet    { box-shadow:0 0 15px rgba(124,58,237,0.3); }

/* ── Buttons ──────────────────────────────────────────────── */
.btn-primary { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:12px; font-weight:600; font-size:0.82rem; color:white; background:linear-gradient(135deg,rgba(124,58,237,0.85),rgba(6,182,212,0.65)); border:1px solid rgba(124,58,237,0.4); box-shadow:0 0 15px rgba(124,58,237,0.25); transition:all 0.2s ease; }
.btn-primary:hover { box-shadow:0 0 25px rgba(124,58,237,0.4); transform:translateY(-1px); }

.btn-ghost { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:12px; font-weight:600; font-size:0.82rem; color:rgba(255,255,255,0.7); border:1px solid rgba(255,255,255,0.12); transition:all 0.2s ease; }
.btn-ghost:hover { background:rgba(255,255,255,0.05); }

.btn-cta { display:inline-flex; align-items:center; gap:8px; padding:12px 24px; border-radius:12px; font-weight:600; font-size:0.9rem; color:white; background:linear-gradient(135deg,#7c3aed,#06b6d4); box-shadow:0 0 25px rgba(124,58,237,0.4); transition:transform 0.2s ease; }
.btn-cta:hover { transform:scale(1.05); }

.btn-outline { display:inline-flex; align-items:center; gap:8px; padding:12px 24px; border-radius:12px; font-weight:600; font-size:0.9rem; color:rgba(255,255,255,0.8); background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.12); transition:background 0.2s ease; }
.btn-outline:hover { background:rgba(255,255,255,0.1); }

.btn-icon { width:36px; height:36px; border-radius:12px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,0.08); transition:background 0.2s ease; }
.btn-icon:hover { background:rgba(255,255,255,0.1); }

.btn-nav-publish { display:flex; align-items:center; gap:6px; padding:6px 12px; border-radius:12px; font-size:0.8rem; font-weight:600; color:white; background:linear-gradient(135deg,rgba(124,58,237,0.8),rgba(6,182,212,0.6)); border:1px solid rgba(124,58,237,0.4); box-shadow:0 0 15px rgba(124,58,237,0.3); }

.btn-like { display:flex; align-items:center; gap:8px; padding:8px 16px; border-radius:12px; font-weight:600; font-size:0.85rem; color:rgba(255,255,255,0.5); background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.07); transition:all 0.2s ease; }
.btn-like:hover { background:rgba(236,72,153,0.15); border-color:rgba(236,72,153,0.4); color:#ec4899; }
.btn-like-active { background:rgba(236,72,153,0.15); border-color:rgba(236,72,153,0.4); color:#ec4899; box-shadow:0 0 15px rgba(236,72,153,0.2); }

.btn-share { display:flex; align-items:center; gap:8px; padding:8px 12px; border-radius:12px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.07); transition:background 0.2s ease; }
.btn-share:hover { background:rgba(255,255,255,0.08); }

.btn-publish { width:100%; display:flex; align-items:center; justify-content:center; gap:8px; padding:12px; border-radius:12px; font-size:0.9rem; font-weight:700; color:white; background:linear-gradient(135deg,#7c3aed,#06b6d4); box-shadow:0 0 30px rgba(124,58,237,0.4); transition:transform 0.2s ease; }
.btn-publish:hover { transform:scale(1.02); }

.btn-publish-disabled { width:100%; display:flex; align-items:center; justify-content:center; gap:8px; padding:12px; border-radius:12px; font-size:0.9rem; font-weight:700; color:rgba(255,255,255,0.2); background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.07); cursor:not-allowed; }

/* ── Flash messages ───────────────────────────────────────── */
.flash         { padding:12px 16px; border-radius:12px; font-size:0.85rem; margin-bottom:16px; }
.flash-error   { background:rgba(220,38,38,0.15);  border:1px solid rgba(220,38,38,0.3);  color:#fca5a5; }
.flash-success { background:rgba(16,185,129,0.15); border:1px solid rgba(16,185,129,0.3); color:#6ee7b7; }

/* ── Navbar ───────────────────────────────────────────────── */
.nav-glass { position:fixed; top:0; left:0; right:0; z-index:50; background:rgba(4,4,18,0.7); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-bottom:1px solid rgba(124,58,237,0.2); box-shadow:0 4px 30px rgba(0,0,0,0.4); }
.nav-gradient-line { position:absolute; bottom:0; left:0; height:1px; width:100%; background:linear-gradient(90deg,transparent,rgba(124,58,237,0.5),rgba(6,182,212,0.5),transparent); }
.nav-logo-glow { filter:drop-shadow(0 0 8px rgba(124,58,237,0.8)) drop-shadow(0 0 16px rgba(6,182,212,0.4)); }
.nav-logo-text { font-family: 'Orbitron', sans-serif; font-weight:800; font-size:1.25rem; letter-spacing:0.15em; background:linear-gradient(90deg,#fff 0%,#c4b5fd 50%,#67e8f9 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }

.search-box   { display:flex; align-items:center; gap:8px; padding:6px 12px; border-radius:12px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); width:160px; transition:width 0.3s ease; }
.search-input { background:transparent; outline:none; border:none; width:100%; font-size:0.8rem; color:rgba(255,255,255,0.8); caret-color:#a78bfa; }

.nav-avatar-btn { width:36px; height:36px; border-radius:12px; overflow:hidden; cursor:pointer; border:2px solid rgba(124,58,237,0.5); box-shadow:0 0 12px rgba(124,58,237,0.3); transition:all 0.2s ease; }

.nav-dropdown         { position:absolute; right:0; margin-top:8px; border-radius:16px; overflow:hidden; z-index:100; background:rgba(8,8,28,0.97); border:1px solid rgba(124,58,237,0.25); backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); box-shadow:0 20px 60px rgba(0,0,0,0.6); }
.nav-dropdown-header  { padding:12px 16px; border-bottom:1px solid rgba(255,255,255,0.06); }
.nav-dropdown-item    { display:flex; align-items:center; gap:10px; padding:10px 16px; font-size:0.82rem; color:rgba(255,255,255,0.7); transition:background 0.15s ease; }
.nav-dropdown-item:hover { background:rgba(255,255,255,0.05); }
.nav-dropdown-danger  { display:flex; align-items:center; gap:10px; padding:10px 16px; font-size:0.82rem; color:rgba(255,100,100,0.8); width:100%; transition:background 0.15s ease; }
.nav-dropdown-danger:hover { background:rgba(239,68,68,0.1); }
.nav-divider          { height:1px; background:rgba(255,255,255,0.06); margin:4px 0; }
.nav-mobile-menu      { background:rgba(4,4,18,0.97); border-top:1px solid rgba(124,58,237,0.15); }

/* ── Page layout ──────────────────────────────────────────── */
.page-wrap { min-height:100vh; padding-top:24px; padding-bottom:64px; }
.back-link { display:inline-flex; align-items:center; gap:8px; font-size:0.85rem; color:rgba(255,255,255,0.4); margin-bottom:24px; transition:color 0.2s ease; }
.back-link:hover { color:#c084fc; }

/* ── Hero ─────────────────────────────────────────────────── */
.hero-card { position:relative; border-radius:24px; overflow:hidden; margin-bottom:40px; padding:32px 48px; background:linear-gradient(135deg,rgba(124,58,237,0.2) 0%,rgba(6,182,212,0.1) 50%,rgba(236,72,153,0.1) 100%); border:1px solid rgba(124,58,237,0.25); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); }
@media (max-width:640px) { .hero-card { padding:24px; } }
.hero-badge    { font-size:0.75rem; letter-spacing:0.2em; text-transform:uppercase; color:#a78bfa; display:block; margin-bottom:16px; }
.hero-title    { font-family: 'Orbitron', sans-serif; font-weight:800; font-size:clamp(2rem,5vw,3.5rem); line-height:1.1; margin-bottom:12px; background:linear-gradient(135deg,#ffffff 0%,#c4b5fd 40%,#67e8f9 80%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.hero-subtitle { font-size:1rem; color:rgba(255,255,255,0.65); line-height:1.7; max-width:560px; margin-bottom:32px; }
.hero-orb-tr   { position:absolute; pointer-events:none; top:-80px; right:-80px; width:256px; height:256px; border-radius:50%; background:radial-gradient(ellipse,rgba(124,58,237,0.3) 0%,transparent 70%); filter:blur(40px); }
.hero-orb-bl   { position:absolute; pointer-events:none; bottom:-80px; left:80px; width:192px; height:192px; border-radius:50%; background:radial-gradient(ellipse,rgba(6,182,212,0.2) 0%,transparent 70%); filter:blur(40px); }

/* ── Stats ────────────────────────────────────────────────── */
.stats-grid { position:relative; z-index:1; margin-top:40px; display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
@media (min-width:640px) { .stats-grid { grid-template-columns:repeat(4,1fr); } }
.stat-card  { display:flex; flex-direction:column; align-items:center; gap:4px; padding:16px 20px; border-radius:16px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.stat-icon  { width:36px; height:36px; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:4px; }
.stat-icon-purple { background:rgba(168,85,247,0.13); border:1px solid rgba(168,85,247,0.19); }
.stat-icon-cyan   { background:rgba(6,182,212,0.13);  border:1px solid rgba(6,182,212,0.19);  }
.stat-icon-pink   { background:rgba(236,72,153,0.13); border:1px solid rgba(236,72,153,0.19); }
.stat-icon-green  { background:rgba(34,197,94,0.13);  border:1px solid rgba(34,197,94,0.19);  }
.stat-value { font-weight:700; font-size:1.25rem; color:white; }
.stat-label { font-size:0.7rem; color:rgba(255,255,255,0.4); }

/* ── Sort tabs ────────────────────────────────────────────── */
.sort-bar { display:flex; align-items:center; gap:4px; margin-bottom:20px; padding:4px; border-radius:12px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.06); }
.sort-tab { display:flex; align-items:center; gap:6px; padding:8px 16px; border-radius:8px; flex:1; justify-content:center; font-weight:600; font-size:0.8rem; color:rgba(255,255,255,0.4); border:1px solid transparent; transition:all 0.2s ease; }
.sort-tab:hover { color:rgba(255,255,255,0.7); }
.sort-tab-active { color:white; background:linear-gradient(135deg,rgba(124,58,237,0.6),rgba(6,182,212,0.4)); border:1px solid rgba(124,58,237,0.4); box-shadow:0 0 15px rgba(124,58,237,0.3); }

/* ── Post cards ───────────────────────────────────────────── */
.post-card { position:relative; border-radius:16px; overflow:hidden; padding:20px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); box-shadow:0 4px 20px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.03); transition:border-color 0.3s ease,background 0.3s ease; }
.post-card:hover { border-color:rgba(124,58,237,0.4); background:rgba(124,58,237,0.05); }
.post-card-avatar  { width:40px; height:40px; border-radius:12px; overflow:hidden; flex-shrink:0; border:2px solid rgba(124,58,237,0.4); }
.post-card-author  { font-weight:600; font-size:0.9rem;  color:rgba(255,255,255,0.9); }
.post-card-date    { font-size:0.75rem; color:rgba(255,255,255,0.35); }
.post-card-title   { font-weight:700; font-size:1rem; color:rgba(255,255,255,0.95); line-height:1.4; margin-bottom:8px; transition:color 0.2s ease; }
.post-card:hover .post-card-title { color:#c084fc; }
.post-card-excerpt { font-size:0.85rem; color:rgba(255,255,255,0.6); line-height:1.6; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; margin-bottom:16px; }
.post-card-footer  { display:flex; align-items:center; gap:16px; padding-top:12px; border-top:1px solid rgba(255,255,255,0.05); }
.post-stat         { display:flex; align-items:center; gap:6px; font-size:0.8rem; color:rgba(255,255,255,0.4); }

/* ── Sidebar ──────────────────────────────────────────────── */
.sidebar-widget { border-radius:16px; padding:20px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.sidebar-title  { font-weight:700; font-size:0.9rem; color:white; }

.category-link       { display:flex; align-items:center; justify-content:space-between; padding:10px 12px; border-radius:12px; border:1px solid transparent; font-size:0.82rem; font-weight:500; color:rgba(255,255,255,0.7); transition:background 0.2s ease; }
.category-link:hover { background:rgba(255,255,255,0.05); }

.cat-badge-purple,
.cat-badge-cyan,
.cat-badge-pink,
.cat-badge-green,
.cat-badge-amber,
.cat-badge-indigo,
.cat-badge-red,
.cat-badge-teal   { padding:2px 8px; border-radius:6px; font-size:0.72rem; font-weight:600; }
.cat-badge-purple { background:rgba(168,85,247,0.15); color:#a855f7; }
.cat-badge-cyan   { background:rgba(6,182,212,0.15);  color:#06b6d4; }
.cat-badge-pink   { background:rgba(236,72,153,0.15); color:#ec4899; }
.cat-badge-green  { background:rgba(34,197,94,0.15);  color:#22c55e; }
.cat-badge-amber  { background:rgba(245,158,11,0.15); color:#f59e0b; }
.cat-badge-indigo { background:rgba(99,102,241,0.15); color:#818cf8; }
.cat-badge-red    { background:rgba(239,68,68,0.15);  color:#ef4444; }
.cat-badge-teal   { background:rgba(20,184,166,0.15); color:#14b8a6; }

.live-dot      { width:8px; height:8px; border-radius:50%; background:#22c55e; box-shadow:0 0 6px #22c55e; animation:pulse-dot 2s infinite; }
@keyframes pulse-dot { 0%,100%{opacity:1;} 50%{opacity:0.4;} }
.activity-avatar { width:28px; height:28px; border-radius:8px; overflow:hidden; flex-shrink:0; border:1px solid rgba(255,255,255,0.1); }
.activity-text   { font-size:0.75rem; color:rgba(255,255,255,0.6); }
.activity-time   { font-size:0.65rem; color:rgba(255,255,255,0.25); }

.sidebar-cta     { border-radius:16px; padding:20px; position:relative; overflow:hidden; background:linear-gradient(135deg,rgba(124,58,237,0.2),rgba(6,182,212,0.1)); border:1px solid rgba(124,58,237,0.3); }
.sidebar-cta-orb { position:absolute; pointer-events:none; top:-40px; right:-40px; width:128px; height:128px; border-radius:50%; background:radial-gradient(rgba(124,58,237,0.4),transparent 70%); filter:blur(20px); }

/* ── Auth ─────────────────────────────────────────────────── */
.auth-accent    { position:absolute; pointer-events:none; top:50%; left:50%; transform:translate(-50%,-50%); width:600px; height:600px; border-radius:50%; background:radial-gradient(ellipse,rgba(124,58,237,0.12) 0%,transparent 70%); filter:blur(60px); }
.auth-logo-glow { filter:drop-shadow(0 0 16px rgba(124,58,237,0.9)) drop-shadow(0 0 32px rgba(6,182,212,0.5)); }
.auth-logo-text { font-family: 'Orbitron', sans-serif; font-weight:800; font-size:1.75rem; letter-spacing:0.2em; background:linear-gradient(90deg,#fff 0%,#c4b5fd 50%,#67e8f9 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.auth-subtitle  { margin-top:8px; font-size:0.85rem; color:rgba(255,255,255,0.5); }

.auth-card { border-radius:24px; padding:32px; background:rgba(255,255,255,0.04); border:1px solid rgba(124,58,237,0.2); backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); box-shadow:0 25px 50px rgba(0,0,0,0.5),inset 0 1px 0 rgba(255,255,255,0.06); }
.auth-tabs { display:flex; gap:4px; padding:4px; border-radius:12px; margin-bottom:32px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.06); }
.auth-tab  { flex:1; padding:10px; border-radius:8px; text-align:center; font-weight:600; font-size:0.875rem; color:rgba(255,255,255,0.4); border:1px solid transparent; transition:all 0.2s ease; }
.auth-tab-active { color:white; background:linear-gradient(135deg,rgba(124,58,237,0.7),rgba(6,182,212,0.5)); border:1px solid rgba(124,58,237,0.4); box-shadow:0 0 15px rgba(124,58,237,0.3); }
.auth-label { display:block; font-size:0.8rem; font-weight:600; color:rgba(255,255,255,0.5); margin-bottom:6px; letter-spacing:0.05em; text-transform:uppercase; }
.auth-field { display:flex; align-items:center; gap:12px; padding:12px 16px; border-radius:12px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); transition:border-color 0.2s ease, box-shadow 0.2s ease; }
.auth-field:focus-within { border-color:rgba(124,58,237,0.6); box-shadow:0 0 20px rgba(124,58,237,0.15); }
.auth-field:focus-within .field-icon { stroke:#a78bfa; }
.auth-input  { flex:1; background:transparent; outline:none; border:none; width:100%; font-size:0.9rem; color:rgba(255,255,255,0.85); caret-color:#a78bfa; }
.auth-submit { width:100%; display:flex; align-items:center; justify-content:center; gap:8px; padding:14px; border-radius:12px; margin-top:8px; background:linear-gradient(135deg,#7c3aed,#06b6d4); box-shadow:0 0 30px rgba(124,58,237,0.4); font-weight:700; font-size:0.95rem; color:white; letter-spacing:0.03em; transition:transform 0.2s ease; }
.auth-submit:hover { transform:scale(1.02); }
.auth-footer { text-align:center; margin-top:20px; font-size:0.82rem; color:rgba(255,255,255,0.3); }
.auth-link   { color:#a78bfa; font-weight:600; }
.auth-back   { display:block; text-align:center; margin-top:24px; font-size:0.8rem; color:rgba(255,255,255,0.25); }

/* ── Article (post detail) ────────────────────────────────── */
.article-card { border-radius:24px; overflow:hidden; margin-bottom:24px; background:rgba(255,255,255,0.03); border:1px solid rgba(124,58,237,0.2); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); box-shadow:0 25px 50px rgba(0,0,0,0.4); }
.article-body { padding:28px 40px; }
@media (max-width:640px) { .article-body { padding:20px; } }
.article-title { font-family: 'Orbitron', sans-serif; font-weight:800; font-size:clamp(1.5rem,3vw,2.2rem); line-height:1.25; margin-bottom:24px; background:linear-gradient(135deg,#ffffff 0%,#e2d9f3 60%,#bfdbfe 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.article-author-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; padding-bottom:24px; margin-bottom:24px; border-bottom:1px solid rgba(255,255,255,0.06); }
.article-avatar      { width:48px; height:48px; border-radius:12px; overflow:hidden; border:2px solid rgba(124,58,237,0.4); }
.article-author-name { font-weight:700; font-size:0.9rem; color:white; }
.article-date        { font-size:0.72rem; color:rgba(255,255,255,0.3); }
.article-stat-pill   { display:flex; align-items:center; gap:6px; padding:6px 12px; border-radius:8px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.07); font-size:0.75rem; color:rgba(255,255,255,0.4); }
.article-content     { font-size:0.95rem; line-height:1.85; color:rgba(255,255,255,0.72); margin-bottom:32px; }
.article-action-bar  { display:flex; align-items:center; justify-content:space-between; padding-top:24px; flex-wrap:wrap; gap:16px; border-top:1px solid rgba(255,255,255,0.06); }

/* ── Comments ─────────────────────────────────────────────── */
.section-header { display:flex; align-items:center; gap:8px; margin-bottom:24px; }
.section-title  { font-weight:700; font-size:1.1rem; color:white; }

.comment-form-wrap    { border-radius:16px; padding:20px; margin-bottom:24px; background:rgba(255,255,255,0.03); border:1px solid rgba(124,58,237,0.2); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.comment-form-avatar  { width:40px; height:40px; border-radius:12px; overflow:hidden; flex-shrink:0; border:2px solid rgba(124,58,237,0.4); }
.comment-textarea-wrap{ position:relative; border-radius:12px; overflow:hidden; background:rgba(255,255,255,0.04); border:1px solid rgba(124,58,237,0.25); }
.comment-textarea     { width:100%; background:transparent; outline:none; resize:none; padding:12px 16px; border:none; font-size:0.88rem; color:rgba(255,255,255,0.8); caret-color:#a78bfa; }
.comment-form-footer  { display:flex; align-items:center; justify-content:space-between; padding:8px 16px; border-top:1px solid rgba(255,255,255,0.05); }
.comment-submit       { display:flex; align-items:center; gap:6px; padding:6px 16px; border-radius:8px; font-size:0.78rem; font-weight:600; color:white; background:linear-gradient(135deg,#7c3aed,#06b6d4); box-shadow:0 0 15px rgba(124,58,237,0.3); }
.comment-card         { border-radius:16px; padding:20px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.comment-card-reply   { margin-left:48px; border-left:2px solid rgba(124,58,237,0.3); }
.comment-avatar       { width:40px; height:40px; border-radius:12px; overflow:hidden; border:2px solid rgba(124,58,237,0.3); }
.comment-author       { font-weight:600; font-size:0.88rem; color:rgba(255,255,255,0.9); }
.comment-date         { font-size:0.72rem; color:rgba(255,255,255,0.25); }
.comment-text         { font-size:0.88rem; color:rgba(255,255,255,0.7); line-height:1.7; }
.comment-reply-mention{ color:#a78bfa; font-weight:600; }

.not-logged-banner  { border-radius:16px; padding:20px; margin-bottom:24px; text-align:center; background:rgba(255,255,255,0.02); border:1px solid rgba(124,58,237,0.15); font-size:0.85rem; color:rgba(255,255,255,0.4); }
.empty-state        { text-align:center; padding:48px 0; border-radius:16px; background:rgba(255,255,255,0.02); border:1px solid rgba(255,255,255,0.05); }
.empty-state-text   { font-size:0.85rem; color:rgba(255,255,255,0.3); }
.empty-state-strong { font-size:1rem; color:rgba(255,255,255,0.6); font-weight:600; }
.empty-state-sub    { font-size:0.85rem; color:rgba(255,255,255,0.3); margin-top:6px; }
.inline-accent-link { color:#a78bfa; font-weight:600; }

/* ── Profile ──────────────────────────────────────────────── */
.profile-card        { border-radius:24px; overflow:hidden; margin-bottom:24px; background:rgba(255,255,255,0.03); border:1px solid rgba(124,58,237,0.2); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); box-shadow:0 25px 50px rgba(0,0,0,0.4); }
.profile-banner      { position:relative; height:160px; background:linear-gradient(135deg,rgba(124,58,237,0.4) 0%,rgba(6,182,212,0.3) 50%,rgba(236,72,153,0.2) 100%); }
@media (min-width:640px) { .profile-banner { height:208px; } }
.profile-banner-orb-l { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 50%,rgba(124,58,237,0.5) 0%,transparent 60%); }
.profile-banner-orb-r { position:absolute; inset:0; background:radial-gradient(ellipse at 70% 50%,rgba(6,182,212,0.3) 0%,transparent 60%); }
.profile-body        { padding:0 24px 32px; position:relative; }
@media (min-width:640px) { .profile-body { padding:0 32px 32px; } }
.profile-avatar-wrap { width:96px; height:96px; border-radius:16px; overflow:hidden; border:3px solid rgba(124,58,237,0.6); box-shadow:0 0 30px rgba(124,58,237,0.4); }
.profile-name        { font-family: 'Orbitron', sans-serif; font-weight:800; font-size:1.5rem; color:white; letter-spacing:0.05em; }
.profile-stat-card        { display:flex; flex-direction:column; align-items:center; gap:4px; padding:16px 20px; border-radius:16px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); }
.profile-stat-icon-cyan   { width:32px; height:32px; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:4px; background:rgba(6,182,212,0.13);  border:1px solid rgba(6,182,212,0.2);  }
.profile-stat-icon-pink   { width:32px; height:32px; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:4px; background:rgba(236,72,153,0.13); border:1px solid rgba(236,72,153,0.2); }
.profile-stat-value       { font-family: 'Orbitron', sans-serif; font-weight:700; font-size:1.2rem; color:white; }
.profile-stat-label       { font-size:0.7rem; color:rgba(255,255,255,0.4); text-align:center; line-height:1.3; }

/* ── New post editor ──────────────────────────────────────── */
.editor-card           { border-radius:16px; overflow:hidden; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.editor-title-wrap     { padding:28px 28px 16px; border-bottom:1px solid rgba(255,255,255,0.05); }
.editor-char-count     { font-size:0.7rem; color:rgba(255,255,255,0.18); text-align:right; margin-top:8px; }
.editor-title-input    { width:100%; background:transparent; outline:none; border:none; font-size:1.6rem; font-weight:800; color:white; caret-color:#a78bfa; letter-spacing:0.03em; }
.editor-toolbar        { display:flex; align-items:center; gap:2px; padding:8px 28px; border-bottom:1px solid rgba(255,255,255,0.05); }
.editor-divider        { width:1px; height:16px; margin:0 8px; background:rgba(255,255,255,0.08); }
.fmt-btn               { width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.35); transition:all 0.15s ease; }
.fmt-btn:hover         { background:rgba(255,255,255,0.08); color:rgba(255,255,255,0.8); }
.editor-textarea       { width:100%; background:transparent; outline:none; resize:none; padding:24px 28px; border:none; font-size:0.95rem; line-height:1.8; color:rgba(255,255,255,0.82); caret-color:#a78bfa; display:block; }
.editor-bottom-bar     { padding:16px 28px 24px; border-top:1px solid rgba(255,255,255,0.05); }
.editor-hint           { font-size:0.75rem; color:rgba(255,255,255,0.2); }
.editor-sidebar-widget { border-radius:16px; padding:16px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.editor-section-label  { font-size:0.72rem; font-weight:600; color:#a78bfa; letter-spacing:0.1em; text-transform:uppercase; }
.cat-label             { display:flex; align-items:center; justify-content:space-between; padding:8px 12px; border-radius:12px; cursor:pointer; background:rgba(255,255,255,0.025); border:1px solid rgba(255,255,255,0.06); transition:all 0.15s ease; }
.cat-name              { font-size:0.8rem; color:rgba(255,255,255,0.5); transition:color 0.15s; }
.cat-selected          { border-color:rgba(124,58,237,0.5) !important; background:rgba(124,58,237,0.12) !important; }
.preview-btn           { display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:12px; font-size:0.8rem; color:rgba(255,255,255,0.4); border:1px solid rgba(255,255,255,0.08); transition:background 0.2s ease; }
.preview-btn:hover     { background:rgba(255,255,255,0.05); }
.editor-stat-row   { display:flex; align-items:center; justify-content:space-between; }
.editor-stat-key   { font-size:0.78rem; color:rgba(255,255,255,0.35); }
.editor-stat-value { font-size:0.78rem; font-weight:600; color:rgba(255,255,255,0.65); }
.cancel-link       { display:block; text-align:center; font-size:0.8rem; color:rgba(255,255,255,0.25); transition:color 0.2s ease; }
.cancel-link:hover { color:rgba(255,255,255,0.5); }

.nebula-bg     { background:linear-gradient(135deg,#04040e 0%,#080820 40%,#0a0518 70%,#050510 100%); }
.nebula-purple { top:-20%;left:-10%;width:60%;height:60%;background:radial-gradient(ellipse at center,rgba(124,58,237,.18) 0%,rgba(109,40,217,.08) 40%,transparent 70%);filter:blur(60px);border-radius:50%; }
.nebula-cyan   { top:20%;right:-15%;width:55%;height:55%;background:radial-gradient(ellipse at center,rgba(6,182,212,.12) 0%,rgba(8,145,178,.06) 40%,transparent 70%);filter:blur(80px);border-radius:50%; }
.nebula-pink   { bottom:0%;left:20%;width:50%;height:45%;background:radial-gradient(ellipse at center,rgba(236,72,153,.10) 0%,rgba(219,39,119,.05) 40%,transparent 70%);filter:blur(70px);border-radius:50%; }
.nebula-indigo { top:40%;left:30%;width:40%;height:40%;background:radial-gradient(ellipse at center,rgba(99,102,241,.08) 0%,transparent 70%);filter:blur(90px);border-radius:50%; }
.main-wrap     { position:relative;z-index:1;padding-top:64px; }
.hero-inner    { position:relative;z-index:1; }
.page-grid     { grid-template-columns:1fr 320px; }
.posts-list    { display:flex;flex-direction:column;gap:16px; }
.gradient-bar-v-sm { height:20px; }

.nav-dropdown-notif  { width:300px; }
.nav-dropdown-avatar { width:200px; }
.nav-notif-title     { font-weight:700;font-size:0.9rem; }
.nav-notif-empty     { font-size:0.8rem; }
.nav-user-name       { font-weight:700;font-size:0.88rem; }
.nav-mobile-user     { border-bottom:1px solid rgba(255,255,255,0.06); }
.nav-mobile-username { font-weight:700;font-size:0.9rem; }
.nav-mobile-link     { font-size:0.85rem;border-radius:12px; }
.nav-mobile-btn      { border-radius:12px;font-size:0.85rem; }

.auth-wrap       { max-width:440px;z-index:10; }

.sidebar-cta-title { font-weight:700;font-size:1rem;position:relative;z-index:1; }
.sidebar-cta-text  { font-size:0.78rem;line-height:1.6;position:relative;z-index:1; }
.sidebar-cta-btn   { display:block;text-align:center;position:relative;z-index:1; }

.profile-info-row  { margin-top:-52px; display:flex; justify-content:space-between; align-items:flex-end; }
.profile-banner-image { background-size:cover; background-position:center; }
.profile-edit-btn  { margin-bottom:-14px; }
.profile-bio-empty { opacity:0.35; font-style:italic; }
.profile-stats     { width:100%; }

.editor-main        { display:flex;flex-direction:column;gap:16px; }
.editor-sidebar-col { display:flex;flex-direction:column;gap:14px; }
.editor-author-name { font-weight:700;font-size:0.88rem; }
.editor-author-role { font-size:0.72rem; }
.cat-hint           { font-size:0.68rem; }
.cat-list           { display:flex;flex-direction:column;gap:6px; }
.preview-list       { display:flex;flex-direction:column;gap:8px; }
.editor-char-count-left { text-align:left;margin-top:0; }

.article-comment-count { font-weight:600;font-size:0.85rem; }

/* ── Comment actions ─────────────────────────────────────── */
.comment-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 0.75rem;
  color: rgba(255,255,255,0.3);
  cursor: pointer;
  transition: color 0.15s;
  background: none;
  border: none;
  padding: 0;
}
.comment-action-btn:hover { color: #a78bfa; }
.comment-action-btn:hover svg { stroke: #a78bfa; }
.comment-action-btn.liked { color: #a78bfa; }
.comment-action-btn.liked svg { stroke: #a78bfa; fill: #a78bfa; }
.comment-action-count { font-family: 'Space Grotesk', sans-serif; font-size: 0.72rem; }

.comment-reply-input {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(124,58,237,0.3);
  border-radius: 10px;
  padding: 8px 14px;
  font-size: 0.82rem;
  color: rgba(255,255,255,0.8);
  caret-color: #a78bfa;
  outline: none;
  min-width: 0;
}
.comment-reply-input:focus { border-color: rgba(124,58,237,0.6); }
.comment-reply-send {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #7c3aed, #06b6d4);
  flex-shrink: 0;
  transition: transform 0.15s;
}
.comment-reply-send:hover { transform: scale(1.1); }

/* ── Nav links ────────────────────────────────────────────── */
.nav-link-item { padding:6px 10px; border-radius:10px; font-size:0.8rem; font-weight:500; color:rgba(255,255,255,0.6); transition:all 0.15s ease; }
.nav-link-item:hover { color:white; background:rgba(255,255,255,0.07); }

/* ── Profile bio / handle / tags ──────────────────────────── */
.profile-handle   { font-size:0.78rem; color:rgba(255,255,255,0.35); }
.profile-bio-text { font-size:0.88rem; color:rgba(255,255,255,0.65); line-height:1.7; }

/* ── Search page ──────────────────────────────────────────── */
.search-hero-input-wrap { position:relative; }
.search-hero-input { width:100%; padding:14px 20px 14px 48px; border-radius:16px; background:rgba(255,255,255,0.04); border:1px solid rgba(124,58,237,0.25); font-size:1rem; color:white; outline:none; caret-color:#a78bfa; transition:border-color 0.2s ease,box-shadow 0.2s ease; }
.search-hero-input:focus { border-color:rgba(124,58,237,0.6); box-shadow:0 0 30px rgba(124,58,237,0.15); }
.search-hero-icon { position:absolute; left:16px; top:50%; transform:translateY(-50%); pointer-events:none; }

/* ── Markdown rendering ──────────────────────────────────── */
.md-bold-italic { font-style:italic; color:white; }
.md-bold        { font-weight:700; color:white; }
.md-italic      { color:rgba(255,255,255,0.7); }
.md-code-inline { background:rgba(0,0,0,0.35); padding:1px 6px; border-radius:4px; font-family:monospace; font-size:0.85em; color:#67e8f9; border:1px solid rgba(255,255,255,0.1); }
.md-link        { color:#a78bfa; text-decoration:underline; text-underline-offset:3px; }
.md-img         { display:block; max-width:100%; height:auto; max-height:520px; margin:18px auto; border-radius:12px; border:1px solid rgba(255,255,255,0.08); background:rgba(0,0,0,0.25); }
.md-pre         { background:rgba(0,0,0,0.4); border-radius:12px; padding:20px; overflow-x:auto; border:1px solid rgba(124,58,237,0.2); margin:4px 0 20px; }
.md-code-block  { font-family:monospace; font-size:0.87rem; color:#67e8f9; line-height:1.7; }
.md-h           { font-weight:800; color:white; margin-bottom:10px; font-family: 'Space Grotesk', sans-serif; letter-spacing:0.03em; line-height:1.3; margin-top:20px; }
.md-h:first-child { margin-top:0; }
.md-h1          { font-size:1.8rem; }
.md-h2          { font-size:1.45rem; }
.md-h3          { font-size:1.2rem; }
.md-h4          { font-size:1rem; }
.md-h5          { font-size:0.9rem; }
.md-h6          { font-size:0.85rem; }
.md-table-wrap  { overflow-x:auto; margin:14px 0; border-radius:8px; border:1px solid rgba(167,139,250,0.18); }
.md-table       { width:100%; border-collapse:collapse; font-size:0.92rem; color:rgba(255,255,255,0.85); }
.md-th          { padding:8px 12px; text-align:left; font-weight:700; background:rgba(124,58,237,0.15); color:#c4b5fd; border-bottom:1px solid rgba(167,139,250,0.25); }
.md-td          { padding:8px 12px; border-top:1px solid rgba(255,255,255,0.06); }
.md-table tbody tr:hover { background:rgba(167,139,250,0.05); }
.md-quote       { border-left:3px solid rgba(124,58,237,0.55); margin:0 0 16px 0; background:rgba(124,58,237,0.05); border-radius:0 10px 10px 0; padding:12px 18px; font-style:italic; color:rgba(255,255,255,0.62); }
.md-list        { list-style:none; padding:0; margin:0 0 16px 0; }
.md-li          { display:flex; align-items:flex-start; gap:10px; margin-bottom:6px; color:rgba(255,255,255,0.82); line-height:1.75; }
.md-bullet      { color:#a78bfa; margin-top:7px; font-size:0.45rem; flex-shrink:0; }
.md-num         { color:#a78bfa; font-weight:700; flex-shrink:0; min-width:20px; }
.md-hr          { border:none; border-top:1px solid rgba(124,58,237,0.25); margin:24px 0; }
.md-spacer      { height:12px; }
.md-p           { color:rgba(255,255,255,0.82); line-height:1.85; margin-bottom:14px; font-size:0.97rem; }
.md-empty       { color:rgba(255,255,255,0.2); font-style:italic; }

/* ── Post page interactive states ────────────────────────── */
.like-icon-on { filter:drop-shadow(0 0 6px #ec4899); }
.comment-submit-active { background:linear-gradient(135deg,#7c3aed,#06b6d4); box-shadow:0 0 15px rgba(124,58,237,0.3); color:white; }
.pv-title-empty { color:rgba(255,255,255,0.15); }

/* ── Image upload (new post) ─────────────────────────────── */
.image-previews    { display:flex; flex-wrap:wrap; gap:10px; margin-top:10px; }
.image-previews.hidden { display:none; }
.upload-loading    { font-size:0.75rem; color:rgba(255,255,255,0.35); padding:4px 0; }
.upload-thumb      { position:relative; display:inline-block; }
.upload-thumb-img  { height:56px; border-radius:8px; border:1px solid rgba(255,255,255,0.1); object-fit:cover; }
.upload-thumb-del  { position:absolute; top:-6px; right:-6px; width:16px; height:16px; border-radius:50%; background:#ef4444; color:white; font-size:10px; line-height:16px; text-align:center; border:none; cursor:pointer; }

/* ── Search box focused state ────────────────────────────── */
.search-box-focused { width:220px !important; border:1px solid rgba(124,58,237,0.5) !important; box-shadow:0 0 15px rgba(124,58,237,0.2); }

/* ── Notification dropdown ───────────────────────────────── */
.notif-badge      { position:absolute; top:-4px; right:-4px; min-width:16px; height:16px; padding:0 4px; border-radius:8px; background:#ec4899; color:white; font-size:0.6rem; font-weight:700; line-height:16px; text-align:center; }
.notif-badge.hidden { display:none; }
.notif-btn        { position:relative; }
.notif-readall    { font-size:0.72rem; color:#a78bfa; font-weight:600; background:none; border:none; cursor:pointer; padding:0; }
.notif-header     { display:flex; align-items:center; justify-content:space-between; }
.notif-scroll     { max-height:340px; overflow-y:auto; }
.nav-notif-empty-wrap { padding:24px 16px; text-align:center; }
.notif-item       { display:flex; align-items:flex-start; gap:10px; padding:10px 16px; border-bottom:1px solid rgba(255,255,255,0.04); transition:background 0.15s; }
.notif-item:hover { background:rgba(255,255,255,0.03); }
.notif-item-unread { background:rgba(124,58,237,0.06); }
.notif-item-unread:hover { background:rgba(124,58,237,0.1); }
.notif-ico        { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.notif-ico-like   { background:rgba(236,72,153,0.15); border:1px solid rgba(236,72,153,0.3); }
.notif-ico-comment{ background:rgba(6,182,212,0.15);  border:1px solid rgba(6,182,212,0.3);  }
.notif-ico-mention{ background:rgba(124,58,237,0.15); border:1px solid rgba(124,58,237,0.3); }
.notif-body       { flex:1; min-width:0; }
.notif-actor      { color:#a78bfa; font-weight:600; }
.notif-text       { font-size:0.8rem; color:rgba(255,255,255,0.82); line-height:1.4; margin:0; }
.notif-post       { font-size:0.72rem; color:rgba(255,255,255,0.35); margin:2px 0 0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.notif-date       { font-size:0.68rem; color:rgba(255,255,255,0.25); margin:3px 0 0; }
.notif-dot        { width:6px; height:6px; border-radius:50%; background:#a78bfa; flex-shrink:0; margin-top:6px; }
.nav-dropdown-wide { width:340px; }

/* ── Profile page extras ─────────────────────────────────── */
.badge-explorer { display:inline-flex; align-items:center; gap:4px; padding:3px 10px; border-radius:8px; font-weight:700; font-size:0.72rem; background:rgba(59,130,246,0.15); color:#93c5fd; border:1px solid rgba(59,130,246,0.3); }
.tab-count      { font-size:0.75rem; }
.post-stat-liked { color:#ec4899; }
.no-scroll      { overflow:hidden; }

/* ── Edit profile modal ──────────────────────────────────── */
.modal-edit-overlay { position:fixed; inset:0; z-index:50; display:flex; align-items:center; justify-content:center; padding:64px 16px 24px; background:rgba(4,4,18,0.75); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.modal-edit-card    { width:100%; max-width:448px; max-height:calc(100vh - 88px); display:flex; flex-direction:column; border-radius:24px; overflow:hidden; background:rgba(10,8,30,0.97); border:1px solid rgba(124,58,237,0.3); box-shadow:0 30px 80px rgba(0,0,0,0.7); }
.modal-edit-head    { display:flex; align-items:center; justify-content:space-between; padding:16px 24px; flex-shrink:0; border-bottom:1px solid rgba(255,255,255,0.06); }
.modal-edit-title   { font-weight:700; font-size:1rem; color:white; }
.modal-edit-close   { width:32px; height:32px; border-radius:12px; display:flex; align-items:center; justify-content:center; transition:background 0.2s ease; }
.modal-edit-close:hover { background:rgba(255,255,255,0.1); }
.modal-edit-scroll  { overflow-y:auto; flex:1; }
.modal-edit-banner  { position:relative; height:112px; cursor:pointer; background:linear-gradient(135deg,rgba(124,58,237,0.3) 0%,rgba(6,182,212,0.2) 50%,rgba(236,72,153,0.15) 100%); }
.modal-edit-banner-overlay { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; opacity:0; background:rgba(0,0,0,0.45); transition:opacity 0.2s ease; }
.modal-edit-banner:hover .modal-edit-banner-overlay { opacity:1; }
.modal-edit-banner-label { font-size:0.75rem; color:white; font-weight:600; }
.modal-edit-avatar-block { padding:0 24px; position:relative; z-index:10; margin-top:-32px; margin-bottom:20px; }
.modal-edit-avatar-frame { width:64px; height:64px; border-radius:16px; overflow:hidden; border:3px solid rgba(124,58,237,0.6); box-shadow:0 0 20px rgba(124,58,237,0.4); background:#0a0518; }
.modal-edit-avatar-sub   { font-size:0.72rem; color:rgba(255,255,255,0.35); }
.modal-edit-avatar-grid  { display:grid; gap:8px; grid-template-columns:repeat(6,1fr); }
.avatar-preset      { position:relative; border-radius:12px; overflow:hidden; border:2px solid transparent; background:#0a0518; aspect-ratio:1; transition:transform 0.15s ease; }
.avatar-preset:hover { transform:scale(1.1); }
.avatar-preset-on   { border-color:rgba(124,58,237,0.8); box-shadow:0 0 10px rgba(124,58,237,0.5); }
.modal-edit-fields  { padding:20px 24px 24px; display:flex; flex-direction:column; gap:16px; border-top:1px solid rgba(255,255,255,0.05); }
.modal-edit-label   { display:block; font-weight:600; font-size:0.72rem; color:rgba(255,255,255,0.4); letter-spacing:0.08em; margin-bottom:6px; }
.modal-edit-label-note { color:rgba(255,255,255,0.2); font-weight:400; }
.modal-edit-banner-image       { background-size:cover; background-position:center; }
.modal-edit-avatar-actions     { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.modal-edit-avatar-upload-link { font-size:0.72rem; text-decoration:underline; cursor:pointer; background:none; border:none; color:rgba(167,139,250,0.8); padding:0; }
.modal-edit-section-header     { display:flex; align-items:center; gap:8px; }
.modal-edit-section-header-spaced { margin-top:4px; }
.modal-edit-section-header .modal-edit-label { margin-bottom:0; }
.modal-edit-section-divider    { flex:1; height:1px; background:rgba(255,255,255,0.06); }
.modal-edit-section-hint       { font-size:0.67rem; color:rgba(255,255,255,0.18); white-space:nowrap; }
.modal-edit-password-fields    { display:none; flex-direction:column; gap:1rem; }
.modal-edit-password-fields.is-open { display:flex; }
.modal-edit-sensitive-box      { background:rgba(124,58,237,0.07); border:1px solid rgba(124,58,237,0.22); border-radius:12px; padding:12px 14px; }
.modal-edit-label-sensitive    { color:rgba(167,139,250,0.65); }
.modal-edit-label-note-sensitive { color:rgba(167,139,250,0.35); font-weight:400; }
.modal-edit-input-sensitive    { background:rgba(124,58,237,0.06); border-color:rgba(124,58,237,0.25); }
.modal-edit-input   { width:100%; padding:10px 16px; border-radius:12px; outline:none; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); font-size:0.9rem; color:white; caret-color:#a78bfa; transition:border-color 0.2s ease; }
.modal-edit-input:focus { border-color:rgba(124,58,237,0.4); }
.modal-edit-input-strong { border-color:rgba(124,58,237,0.3); }
.modal-edit-input-strong:focus { border-color:rgba(124,58,237,0.6); }
.modal-edit-textarea { resize:none; }
.modal-edit-loc-wrap { display:flex; align-items:center; gap:10px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); border-radius:12px; padding:0 14px; transition:border-color 0.2s ease; }
.modal-edit-loc-wrap:focus-within { border-color:rgba(124,58,237,0.4); }
.modal-edit-loc-icon { flex-shrink:0; }
.modal-edit-loc-input { width:100%; padding:10px 0; outline:none; background:transparent; border:none; font-size:0.9rem; color:white; caret-color:#a78bfa; }
.modal-edit-footer  { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 24px; flex-shrink:0; border-top:1px solid rgba(255,255,255,0.06); }
.modal-edit-delete  { display:flex; align-items:center; gap:6px; padding:8px 16px; border-radius:12px; font-weight:600; font-size:0.85rem; color:rgba(248,113,113,0.7); border:1px solid rgba(248,113,113,0.2); transition:all 0.2s ease; }
.modal-edit-delete:hover { background:rgba(248,113,113,0.1); color:#f87171; border-color:rgba(248,113,113,0.4); }
.modal-edit-toggle-pwd { display:flex; align-items:center; gap:6px; padding:8px 14px; border-radius:12px; font-size:0.8rem; color:rgba(167,139,250,0.7); border:1px solid rgba(167,139,250,0.2); transition:all 0.2s ease; width:100%; }
.modal-edit-toggle-pwd:hover { background:rgba(124,58,237,0.1); color:#c4b5fd; border-color:rgba(167,139,250,0.4); }
.modal-edit-cancel  { padding:8px 20px; border-radius:12px; font-weight:600; font-size:0.85rem; color:rgba(255,255,255,0.4); border:1px solid rgba(255,255,255,0.08); transition:background 0.2s ease; }
.modal-edit-cancel:hover { background:rgba(255,255,255,0.1); }
.modal-edit-save    { display:flex; align-items:center; gap:8px; padding:8px 24px; border-radius:12px; background:linear-gradient(135deg,#7c3aed,#06b6d4); box-shadow:0 0 20px rgba(124,58,237,0.3); font-weight:700; font-size:0.85rem; color:white; transition:transform 0.2s ease; }
.modal-edit-save:hover { transform:scale(1.05); }

/* ── Home extras ─────────────────────────────────────────── */
.post-card-featured { border-color:rgba(124,58,237,0.35); background:linear-gradient(135deg,rgba(124,58,237,0.08) 0%,rgba(6,182,212,0.04) 100%); }
.badge-pinned       { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:8px; font-weight:700; font-size:0.7rem; background:rgba(245,158,11,0.15); color:#f59e0b; border:1px solid rgba(245,158,11,0.3); }
.post-card-footer-bordered { border-top:1px solid rgba(255,255,255,0.05); margin-top:12px; padding-top:12px; }
.see-all-link       { font-size:0.75rem; font-weight:600; color:#a78bfa; display:flex; align-items:center; gap:4px; }
.sidebar-empty      { font-size:0.78rem; color:rgba(255,255,255,0.25); }
.cat-dot            { width:8px; height:8px; border-radius:50%; flex-shrink:0; background:var(--dot); box-shadow:0 0 6px var(--dot); }
.cat-dot-purple     { --dot:#a855f7; }
.cat-dot-cyan       { --dot:#06b6d4; }
.cat-dot-pink       { --dot:#ec4899; }
.cat-dot-green      { --dot:#22c55e; }
.cat-dot-amber      { --dot:#f59e0b; }
.cat-dot-indigo     { --dot:#818cf8; }
.cat-dot-red        { --dot:#ef4444; }
.cat-dot-teal       { --dot:#14b8a6; }
.rank-num           { font-family: 'Orbitron', sans-serif; font-weight:800; font-size:0.85rem; width:20px; text-align:center; flex-shrink:0; color:rgba(255,255,255,0.2); }
.rank-1             { color:#f59e0b; }
.rank-2             { color:#9ca3af; }
.rank-3             { color:#b45309; }
.rank-avatar        { width:36px; height:36px; border-radius:12px; overflow:hidden; flex-shrink:0; border:2px solid rgba(255,255,255,0.1); }
.rank-avatar-gold   { border-color:rgba(245,158,11,0.5); box-shadow:0 0 10px rgba(245,158,11,0.3); }
.top-user-name      { font-weight:600; font-size:0.82rem; color:rgba(255,255,255,0.85); }
.top-user-likes     { font-size:0.7rem; color:rgba(255,255,255,0.35); }

/* ── Users page ──────────────────────────────────────────── */
.users-header-icon  { width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,rgba(124,58,237,0.3),rgba(6,182,212,0.2)); border:1px solid rgba(124,58,237,0.4); }
.users-header-title { font-family: 'Orbitron', sans-serif; font-weight:800; font-size:2rem; background:linear-gradient(90deg,#fff 0%,#c4b5fd 50%,#67e8f9 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.users-header-sub   { font-size:0.9rem; color:rgba(255,255,255,0.4); margin-top:4px; }
.user-card          { padding:20px; transition:transform 0.2s ease; }
.user-card:hover    { transform:scale(1.02); }
.user-rank-badge    { width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.user-rank-1        { background:linear-gradient(135deg,rgba(245,158,11,0.2),rgba(245,158,11,0.05)); border:1px solid rgba(245,158,11,0.3); }
.user-rank-2        { background:linear-gradient(135deg,rgba(156,163,175,0.2),rgba(156,163,175,0.05)); border:1px solid rgba(156,163,175,0.3); }
.user-rank-3        { background:linear-gradient(135deg,rgba(180,83,9,0.2),rgba(180,83,9,0.05)); border:1px solid rgba(180,83,9,0.3); }
.user-rank-other    { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); }
.user-rank-num      { font-weight:700; font-size:0.85rem; color:rgba(255,255,255,0.3); }
.user-card-avatar   { width:64px; height:64px; border-radius:16px; overflow:hidden; flex-shrink:0; border:2px solid rgba(124,58,237,0.4); box-shadow:0 0 15px rgba(124,58,237,0.2); background:#0a0518; }
.user-card-name     { font-weight:700; font-size:1.05rem; color:rgba(255,255,255,0.9); }
.user-card-stat-strong { font-size:0.75rem; font-weight:600; color:rgba(255,255,255,0.5); }
.user-card-stat-dim    { font-size:0.75rem; color:rgba(255,255,255,0.3); }
.badge-explorer-sm  { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:6px; font-weight:700; font-size:0.68rem; background:rgba(59,130,246,0.12); color:#93c5fd; border:1px solid rgba(59,130,246,0.25); margin-bottom:10px; }

/* ── Search page ─────────────────────────────────────────── */
.search-page-title  { font-family: 'Orbitron', sans-serif; font-weight:800; font-size:1.8rem; background:linear-gradient(90deg,#fff 0%,#c4b5fd 50%,#67e8f9 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.member-card        { display:flex; align-items:center; gap:12px; padding:12px 16px; transition:transform 0.15s ease; }
.member-card:hover  { transform:scale(1.01); }
.member-card-avatar { width:44px; height:44px; border-radius:14px; overflow:hidden; flex-shrink:0; border:2px solid rgba(124,58,237,0.35); background:#0a0518; }
.member-card-name   { font-weight:700; font-size:0.9rem; color:rgba(255,255,255,0.9); }
.member-card-sub-dim{ font-size:0.75rem; color:rgba(255,255,255,0.25); }

/* ── New post editor extras ──────────────────────────────── */
.editor-bottom-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.attach-btn        { cursor:pointer; display:flex; align-items:center; gap:5px; padding:4px 10px; border-radius:8px; border:1px solid rgba(255,255,255,0.1); color:rgba(255,255,255,0.45); font-size:0.75rem; transition:all 0.15s ease; }
.attach-btn:hover  { border-color:rgba(167,139,250,0.5); color:#a78bfa; }

/* ── Post detail extras ──────────────────────────────────── */
.action-bar-spaced { margin-top:8px; }
.badge-explorer-xs { display:inline-flex; align-items:center; padding:1px 7px; border-radius:6px; font-weight:700; font-size:0.62rem; background:rgba(59,130,246,0.12); color:#93c5fd; border:1px solid rgba(59,130,246,0.25); }

/* ── Layout / login extras ───────────────────────────────── */
.page-body   { background-color:#04040e; color:white; }
.bg-layer    { z-index:0; }
.forgot-link { font-size:0.78rem; color:#a78bfa; cursor:pointer; }

.search-filters       { display:flex; align-items:center; gap:0.5rem; margin-top:0.75rem; flex-wrap:wrap; }
.search-filter-label  { font-size:0.78rem; color:rgba(255,255,255,0.5); text-transform:uppercase; letter-spacing:0.06em; }
.search-filter-select { background:rgba(15,15,30,0.6); border:1px solid rgba(255,255,255,0.08); color:white; border-radius:0.5rem; padding:0.4rem 0.75rem; font-size:0.85rem; cursor:pointer; }
.search-filter-select:focus { outline:none; border-color:rgba(167,139,250,0.5); }

.search-type-tabs { display:flex; gap:0.375rem; margin-top:0.875rem; }
.search-type-tab  { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); color:rgba(255,255,255,0.55); border-radius:2rem; padding:0.35rem 1rem; font-size:0.85rem; cursor:pointer; transition:all 0.18s ease; }
.search-type-tab:hover  { background:rgba(167,139,250,0.1); border-color:rgba(167,139,250,0.3); color:rgba(255,255,255,0.85); }
.search-type-tab.active { background:rgba(124,58,237,0.2); border-color:rgba(124,58,237,0.5); color:#c4b5fd; font-weight:600; }

.search-cat-pills { display:flex; flex-wrap:wrap; gap:0.375rem; margin-top:0.75rem; }
.search-cat-pill  { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); color:rgba(255,255,255,0.55); border-radius:2rem; padding:0.25rem 0.85rem; font-size:0.78rem; cursor:pointer; text-decoration:none; transition:all 0.18s ease; }
.search-cat-pill:hover  { background:rgba(167,139,250,0.1); border-color:rgba(167,139,250,0.3); color:rgba(255,255,255,0.85); }
.search-cat-pill.active { background:rgba(124,58,237,0.2); border-color:rgba(124,58,237,0.5); color:#c4b5fd; font-weight:600; }

.comment-like-active        { color:#ec4899; }
.comment-like-active svg    { fill:#ec4899; stroke:#ec4899; }

/* Infinite scroll loader / end marker */
.infinite-loader { display:flex; justify-content:center; align-items:center; padding:1.5rem 0; }
.proxima-loader-logo { width:48px; height:48px; object-fit:contain; filter:drop-shadow(0 0 12px rgba(167,139,250,0.45)); animation:proxima-pulse 1.4s ease-in-out infinite; }
@keyframes proxima-pulse {
  0%, 100% { transform:scale(0.9); opacity:0.55; filter:drop-shadow(0 0 6px rgba(167,139,250,0.25)); }
  50%      { transform:scale(1.08); opacity:1;    filter:drop-shadow(0 0 18px rgba(167,139,250,0.7)); }
}
.infinite-end { display:flex; align-items:center; gap:0.75rem; padding:1.5rem 0; color:rgba(255,255,255,0.35); font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; }
.infinite-end::before, .infinite-end::after { content:""; flex:1; height:1px; background:linear-gradient(to right, transparent, rgba(167,139,250,0.25), transparent); }
.infinite-end span { white-space:nowrap; }
.infinite-sentinel { height:1px; }

/* ── Site footer ─────────────────────────────────────────── */
.site-footer        { margin-top:4rem; padding:1.5rem 1.25rem; position:relative; z-index:1; border-top:1px solid transparent; border-image:linear-gradient(to right, transparent, rgba(167,139,250,0.35), transparent) 1; }
.site-footer-inner  { max-width:1280px; margin:0 auto; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0.75rem; color:rgba(255,255,255,0.35); font-size:0.78rem; }
.site-footer-brand  { display:flex; align-items:center; gap:0.5rem; letter-spacing:0.04em; }
.site-footer-mark   { color:rgba(167,139,250,0.7); }
.site-footer-links  { display:flex; align-items:center; gap:0.6rem; }
.site-footer-links a { color:rgba(255,255,255,0.45); transition:color .2s ease; }
.site-footer-links a:hover { color:rgba(167,139,250,0.95); }
.site-footer-sep    { opacity:0.35; }
.site-footer-copy   { font-variant-numeric:tabular-nums; }

.sidebar-legal      { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:0.4rem; padding:1rem 0.25rem 0; font-size:0.72rem; color:rgba(255,255,255,0.3); }
.sidebar-legal a    { color:rgba(255,255,255,0.45); transition:color .2s ease; }
.sidebar-legal a:hover { color:rgba(167,139,250,0.9); }
.sidebar-legal-sep  { opacity:0.4; }

/* ── Legal / privacy pages ───────────────────────────────── */
.legal-wrap         { max-width:780px; margin:0 auto; padding:3rem 1.25rem 4rem; position:relative; z-index:1; }
.legal-title        { font-family: 'Orbitron', sans-serif; font-size:1.65rem; letter-spacing:0.04em; color:white; margin-bottom:0.4rem; }
.legal-subtitle     { color:rgba(255,255,255,0.4); font-size:0.85rem; margin-bottom:2rem; }
.legal-card         { background:rgba(15,15,30,0.55); border:1px solid rgba(255,255,255,0.06); border-radius:1rem; padding:1.75rem 1.75rem; backdrop-filter:blur(10px); }
.legal-card h2      { font-size:1rem; font-weight:700; color:rgba(255,255,255,0.92); margin:1.5rem 0 0.6rem; letter-spacing:0.02em; }
.legal-card h2:first-child { margin-top:0; }
.legal-card p,
.legal-card li      { font-size:0.88rem; line-height:1.65; color:rgba(255,255,255,0.65); }
.legal-card p       { margin-bottom:0.8rem; }
.legal-card ul      { list-style:disc; padding-left:1.3rem; margin-bottom:0.8rem; }
.legal-card a       { color:#a78bfa; }
.legal-card a:hover { text-decoration:underline; }
.legal-card strong  { color:rgba(255,255,255,0.85); font-weight:600; }

.kebab-wrap          { position:relative; display:inline-block; }
.kebab-btn           { background:transparent; border:0; color:rgba(255,255,255,0.4); padding:4px; border-radius:6px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:all 0.15s; }
.kebab-btn:hover     { color:rgba(255,255,255,0.85); background:rgba(255,255,255,0.05); }
.kebab-menu          { position:absolute; right:0; top:100%; margin-top:4px; min-width:140px; background:#1a1530; border:1px solid rgba(167,139,250,0.25); border-radius:8px; box-shadow:0 8px 24px rgba(0,0,0,0.4); z-index:50; padding:4px; }
.kebab-item          { display:block; width:100%; text-align:left; padding:8px 12px; background:transparent; border:0; color:rgba(255,255,255,0.85); font-size:0.85rem; border-radius:6px; cursor:pointer; transition:background 0.15s; }
.kebab-item:hover    { background:rgba(167,139,250,0.12); }
.kebab-item-danger   { color:#f87171; }
.kebab-item-danger:hover { background:rgba(239,68,68,0.12); }

.edit-title-input    { width:100%; background:rgba(255,255,255,0.04); border:1px solid rgba(167,139,250,0.3); color:white; border-radius:8px; padding:10px 14px; font-size:1.5rem; font-weight:700; font-family: 'Space Grotesk', sans-serif; }
.edit-title-input:focus { outline:none; border-color:#a78bfa; }
.edit-content-textarea { width:100%; background:rgba(255,255,255,0.04); border:1px solid rgba(167,139,250,0.3); color:white; border-radius:8px; padding:10px 14px; font-family: 'Space Grotesk', sans-serif; font-size:0.95rem; resize:vertical; margin-top:8px; }
.edit-content-textarea:focus { outline:none; border-color:#a78bfa; }
.edit-actions        { display:flex; gap:8px; justify-content:flex-end; margin-top:8px; }
.edit-actions button { padding:6px 14px; border-radius:6px; border:1px solid rgba(167,139,250,0.3); background:transparent; color:rgba(255,255,255,0.85); font-size:0.85rem; cursor:pointer; transition:all 0.15s; }
.edit-cancel:hover   { background:rgba(255,255,255,0.05); }
.edit-save           { background:rgba(124,58,237,0.2); border-color:rgba(124,58,237,0.5)!important; color:#c4b5fd!important; }
.edit-save:hover     { background:rgba(124,58,237,0.3); }

.comment-card-deleted .comment-text { color:rgba(255,255,255,0.35); font-style:italic; }

.md-edited-tag       { color:rgba(255,255,255,0.4); font-size:0.75rem; font-style:italic; }

/* Proxima confirm modal */
.pm-backdrop          { position:fixed; inset:0; background:rgba(0,0,0,0.65); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; z-index:1000; opacity:0; transition:opacity 0.15s; padding:16px; }
.pm-backdrop.pm-open  { opacity:1; }
.pm-backdrop.pm-closing { opacity:0; }
.pm-dialog            { background:#1a1530; border:1px solid rgba(167,139,250,0.25); border-radius:14px; padding:24px; max-width:420px; width:100%; box-shadow:0 20px 60px rgba(0,0,0,0.5); transform:scale(0.96); transition:transform 0.15s; }
.pm-backdrop.pm-open .pm-dialog { transform:scale(1); }
.pm-title             { font-size:1.1rem; font-weight:700; color:white; font-family: 'Space Grotesk', sans-serif; margin-bottom:8px; }
.pm-message           { color:rgba(255,255,255,0.7); font-size:0.92rem; line-height:1.5; margin-bottom:20px; }
.pm-actions           { display:flex; gap:8px; justify-content:flex-end; }
.pm-btn               { padding:8px 16px; border-radius:8px; border:1px solid rgba(167,139,250,0.25); background:transparent; color:rgba(255,255,255,0.85); font-size:0.88rem; font-weight:600; cursor:pointer; transition:all 0.15s; }
.pm-cancel:hover      { background:rgba(255,255,255,0.05); border-color:rgba(255,255,255,0.2); }
.pm-confirm           { background:rgba(124,58,237,0.2); border-color:rgba(124,58,237,0.5); color:#c4b5fd; }
.pm-confirm:hover     { background:rgba(124,58,237,0.3); }
.pm-confirm-danger    { background:rgba(239,68,68,0.15); border-color:rgba(239,68,68,0.5); color:#fca5a5; }
.pm-confirm-danger:hover { background:rgba(239,68,68,0.25); }

.article-card-deleted        { opacity:0.75; }
.article-deleted-banner      { display:flex; align-items:center; gap:8px; padding:10px 14px; background:rgba(239,68,68,0.08); border:1px solid rgba(239,68,68,0.25); border-radius:8px; color:#fca5a5; font-size:0.88rem; }
.article-content-deleted     { color:rgba(255,255,255,0.4); font-style:italic; }
.hidden-deleted              { display:none!important; }

.avatar-anonymous            { background:rgba(255,255,255,0.04); display:flex; align-items:center; justify-content:center; }
.article-author-anonymous    { color:rgba(255,255,255,0.4)!important; font-style:italic; }
