:root {
  /* Palette tokens (glowstick green + charcoal) */
  --bg: #0a0f14;
  --bg-2: #0e141a;
  --text: #eafaf1;
  --muted: #a8d6b0;
  --accent: #39ff14;
  --accent-2: #2cff74;
  --panel: rgba(12, 18, 28, 0.28);
  --panel-strong: rgba(12, 18, 28, 0.42);
  --border: rgba(255, 255, 255, 0.20);
  --glow: 0 0 14px rgba(57, 255, 20, 0.55);
}

* { box-sizing: border-box; }
html, body { height: 100%; }
html { color-scheme: dark; }
body {
  margin: 0;
  color: var(--text);
  font-family: ui-system, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-synthesis: none;
  line-height: 1.55;
  background:
    radial-gradient(circle at 15% -10%, rgba(57,255,20,.12), transparent 40%),
    linear-gradient(135deg, rgba(10,12,14,.98), rgba(8,8,12,.98)),
    linear-gradient(to bottom, rgba(8,12,14,.98), rgba(6,8,12,.98) 60%);
  background-attachment: fixed;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  min-height: 100dvh;
  position: relative;
  overflow-x: hidden;
}
body::before, body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
body::before {
  /* subtle glow overlays */
  background: radial-gradient(circle at 60% 0%, rgba(57,255,20,.12), transparent 35%),
              radial-gradient(circle at 100% 50%, rgba(0,0,0,.15), transparent 40%);
  mix-blend-mode: screen;
  opacity: 0.6;
}
body::after {
  /* subtle scanlines */
  background-image: 
    repeating-linear-gradient(to bottom, rgba(255,255,255,.04) 0 1px, transparent 1px 2px);
  opacity: 0.25;
  mix-blend-mode: overlay;
}

.container {
  width: 100%;
  max-width: clamp(320px, 90vw, 1100px);
  margin-inline: auto;
  padding: 1rem;
  position: relative;
  z-index: 1;
}

header, nav, main, article, footer, aside {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1rem;
  margin: 1rem auto;
  backdrop-filter: saturate(1.2) blur(12px);
  -webkit-backdrop-filter: saturate(1.2) blur(12px);
  box-shadow: 0 6px 28px rgba(0,0,0,.25);
}

header { padding: 1.25rem; }
header h1 { font-size: clamp(1.6rem, 1.4rem + 2vw, 2.6rem); line-height: 1.05; margin: .25rem 0 0.5rem; font-weight: 800; color: #eafff5; }
header .meta { font-size: .92rem; color: var(--muted); margin-top: .25rem; }

nav { display: flex; gap: .5rem; justify-content: flex-start; align-items: center; }
nav a { color: var(--text); text-decoration: none; padding: .5rem .75rem; border-radius: 6px; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.04); }
nav a:hover { text-decoration: underline; text-underline-offset: 3px; }

main { padding: 0; }
article { padding: 1rem; }

.featured-image { border-radius: 12px; overflow: hidden; border: 1px solid rgba(255,255,255,.25); margin: .25rem 0 1rem; background: #000; }
.image-frame { width: 100%; height: auto; aspect-ratio: 16/9; display: block; overflow: hidden; border-radius: 12px; border: 1px solid rgba(255,255,255,.25); box-shadow: inset 0 0 12px rgba(57,255,20,.25); }
.image-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }

.content { padding: 0.25rem 0 0.5rem; color: var(--text); }

.product-ad { display: grid; place-items: stretch; padding: .75rem; border-radius: 12px; border: 1px solid rgba(255,255,255,.25); background: rgba(0,0,0,.18); box-shadow: 0 4px 18px rgba(0,0,0,.25); }
.product-ad a { text-decoration: none; color: var(--text); display: block; padding: .5rem; border-radius: 8px; }
.product-ad a:hover { background: rgba(57,255,20,.15); text-decoration: underline; text-underline-offset: 3px; }

.sponsored-page { display: grid; place-items: stretch; padding: .75rem; border-radius: 12px; border: 1px solid rgba(255,255,255,.25); background: rgba(0,0,0,.18); box-shadow: 0 4px 18px rgba(0,0,0,.25); }
.sponsored-page a { text-decoration: none; color: var(--text); display: block; padding: .5rem; border-radius: 8px; }
.sponsored-page a:hover { background: rgba(0,0,0,.25); text-decoration: underline; text-underline-offset: 3px; }

h2, h3 { color: #eafff0; }
h2 { font-size: clamp(1.25rem, 0.9rem + 1.5vw, 2rem); margin: .75rem 0 .5rem; }
h3 { font-size: clamp(1.05rem, .6rem + 1vw, 1.3rem); margin: .5rem 0; }

p { color: rgba(234, 251, 241, 0.95); margin: .5rem 0 1rem; }

ol { padding-left: 1.25rem; margin: .25rem 0 1rem; }
ul { padding-left: 1.25rem; margin: .25rem 0 1rem; }
li { margin: .25rem 0; color: rgba(234,251,241,.95); }

@supports (backdrop-filter: blur(8px)) or (-webkit-backdrop-filter: blur(8px)) {
  /* already applying; keep for browsers that support it */
}
@supports not (backdrop-filter: blur(8px)) {
  /* fallback: less transparent panels without backdrop blur */
  header, nav, main, article, aside, footer {
    background: rgba(12,18,28,.72);
    border-color: rgba(255,255,255,.28);
  }
}

.tag {
  display: inline-block;
  padding: .15rem .5rem;
  font-size: .75rem;
  border-radius: 999px;
  background: rgba(57,255,20,.18);
  color: #eafff0;
  border: 1px solid rgba(57,255,20,.45);
}

a, button, .btn, .cta {
  color: var(--text);
  text-decoration: none;
  background: transparent;
  border: 1px solid rgba(57,255,20,.65);
  padding: .55rem .95rem;
  border-radius: 8px;
  cursor: pointer;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
a:hover, button:hover, .btn:hover, .cta:hover {
  background: rgba(57,255,20,.16);
  border-color: rgba(57,255,20,.95);
  text-decoration: underline;
  text-underline-offset: 3px;
}
a:focus-visible, button:focus-visible, .btn:focus-visible, .cta:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 2px;
}
.btn { display: inline-block; font-weight: 600; background: rgba(57,255,20,.28); color: #041b06; border-color: rgba(57,255,20,.65); }
.btn.primary { background: var(--accent); color: #041b06; border: none; box-shadow: var(--glow); }
.btn.secondary { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.25); color: var(--text); }

.grid { display: grid; gap: 1rem; }

/* Responsive utilities */
@media (min-width: 640px) {
  .grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
  header { padding: 1.25rem 1rem; }
}
@media (min-width: 1024px) {
  .container { padding: 1.25rem; }
  article { padding: 1rem 0; }
  header { padding: 1.75rem; }
}

/* Print styles for readability */
@media print {
  body { background: #fff; color: #000; }
  header, main, footer { background: #fff; border: none; }
  a, button, .btn, .cta { color: #000; border: 1px solid #ccc; }
  .container { width: 100%; padding: 0; }
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}