:root{
  --bg: #0a0f0a;
  --bg-2: #162018;
  --bg-3: #1b2a22;
  --text: #eaf7ee;
  --muted: #aab5aa;
  --accent: #87b58a;
  --accent-2: #4e7f66;
  --surface: rgba(255,255,255,.08);
  --surface-2: rgba(255,255,255,.14);
  --glass-border: rgba(255,255,255,.28);
}

html, body, header, nav, main, article, footer, aside{
  box-sizing: border-box;
}

html, body{ height:100%; }

/* Layered cyber-glass backdrop with gradient + scanlines + subtle glow */
body{
  margin:0;
  color:var(--text);
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  line-height:1.5;
  background:
    radial-gradient(circle at 15% 0%, rgba(120,170,120,.08), transparent 25%),
    linear-gradient(135deg, rgba(15,28,22,.95), rgba(8,12,10,.95)),
    repeating-linear-gradient(to bottom, rgba(0,0,0,.04) 0 1px, transparent 1px 2px);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Page container */
.container{ width: clamp(320px, 90vw, 1100px); margin: 0 auto; padding: 0 1rem; }

/* Glass panels (fallback-friendly) */
header, main, footer, aside{
  background: var(--surface);
  border: 1px solid var(--glass-border);
  border-radius: 12px;
  padding: 1rem;
  box-shadow: 0 6px 20px rgba(0,0,0,.25);
  backdrop-filter: saturate(105%) blur(12px);
  -webkit-backdrop-filter: saturate(105%) blur(12px);
}

@supports not (backdrop-filter: blur(12px)){
  header, main, footer, aside{ background: rgba(255,255,255,.08); }
}

/* Layout helpers */
.grid{ display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.card{ background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.28); border-radius:12px; padding:1rem; }

/* Typography & hierarchy */
h1{ font-size: clamp(1.6rem, calc(1.2rem + 2vw), 2.6rem); line-height: 1.08; margin:.25rem 0 .5rem; letter-spacing:.2px; }
h2{ font-size: clamp(1.25rem, 1.5vw + .8rem, 2rem); margin: .75rem 0 .5rem; }
h3{ font-size: clamp(1.05rem, 0.9vw + .8rem, 1.35rem); margin:.5rem 0; }
p{ margin:0 0 1rem; color: var(--text); }
.meta{ color: var(--muted); font-size: .9rem; margin: .25rem 0 0; }

a{ color: var(--text); text-decoration: none; }
a:hover{ text-decoration: underline; }
a:focus-visible{ outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; text-decoration: underline; }

/* Images & frames */
.image-frame, .featured-image{ border-radius:12px; overflow:hidden; border:1px solid rgba(255,255,255,.28); box-shadow:0 6px 14px rgba(0,0,0,.25); }
.image-frame{ aspect-ratio:16/9; width:100%; background:#111; }
.image-frame img, .featured-image img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Content area */
.content{ padding: .5rem 0; }

/* Article & sections */
article{ max-width: 900px; }

/* Lists & items */
ul{ padding-left:1.25rem; margin: .5rem 0; }
li{ margin:.25rem 0; }

/* Inline chips / tags */
.tag{ display:inline-block; padding:.25rem .6rem; font-size:.75rem; border-radius:999px; background: rgba(135,181,138,.2); color:var(--text); border:1px solid rgba(135,181,138,.5); }

/* CTAs & controls */
.btn, a.btn, .cta{ display:inline-block; padding:.75rem 1.25rem; border-radius:999px; border:1px solid rgba(255,255,255,.4); background: linear-gradient(#2a432e, #1a341f); color:#e9fbe9; font-weight:600; text-align:center; cursor:pointer; text-decoration:none; transition: transform .2s ease, background .25s ease, color .25s ease; }
.btn:hover, a.btn:hover, .cta:hover{ transform: translateY(-1px); }
.btn:focus-visible, a:focus-visible, .cta:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }

/* Solid vs outline variants */
.btn.outline{ background: transparent; border-color: rgba(255,255,255,.6); color: var(--text); }
.btn.primary{ background: linear-gradient(#3a6a40, #2a5a2e); border: none; color: #f6fffb; }
.btn.ghost{ background: transparent; border:1px solid rgba(255,255,255,.3); color: var(--text); }

/* Form elements (basic styling) */
input, textarea, select, button{ font: inherit; color: inherit; background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.3); border-radius:6px; padding:.5rem; }
input:focus-visible, textarea:focus-visible, select:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }

/* Section helpers for footer ads */
.product-ad, .sponsored-page{ display:inline-block; padding:.5rem 1rem; margin:.25rem; border-radius:8px; background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); }
.product-ad a, .sponsored-page a{ color:var(--text); text-decoration:none; font-weight:600; }

/* Accessibility helpers */
:focus-visible{ outline: 2px solid var(--accent); outline-offset: 2px; }

/* Print styles for readability */
@media print{
  body{ background: white; color: black; }
  header, main, footer{ background: transparent; border: none; box-shadow: none; }
  a{text-decoration:underline; color: #000;}
}

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

/* Minor utility */
.container--tight{ padding-inline: 0.5rem; }
@media (min-width: 720px){
  .container{ padding-inline: 0; }
}
