:root{
  --bg: #0b1022;
  --bg-2: #0b1a3a;
  --bg-3: #141a37;
  --text: #e9f0ff;
  --muted: #a6b4d0;
  --accent: #4b6aff;       /* indigo */
  --accent-2: #7b83ff;     /* lighter indigo for hover/contrast */
  --panel: rgba(17,20,40,0.60);
  --panel-2: rgba(255,255,255,0.10);
  --glass: rgba(18,25,60,0.60);
  --border: rgba(255,255,255,0.25);
  --shadow: 0 10px 25px rgba(0,0,0,0.35);
  --radius: 14px;
}
*{box-sizing:border-box}
html,body{height:100%}
html{font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; line-height:1.4}
body{
  margin:0;
  color:var(--text);
  background: linear-gradient(135deg, rgba(11,16,34,0.95) 0%, rgba(8,12,28,0.95) 60%, rgba(5,8,20,0.95) 100%), 
              radial-gradient(circle at 20% -10%, rgba(60,40,140,0.25), transparent 40%),
              radial-gradient(circle at 100% 0, rgba(40,60,140,0.25), transparent 40%);
  min-height:100%;
  background-attachment: fixed;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  position: relative;
  overflow-x:hidden;
}
/* Subtle scanline overlay (no external assets) */
body::before{
  content:"";
  position: fixed;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,0.04), rgba(255,255,255,0.04)),
    repeating-linear-gradient(to bottom, rgba(0,0,0,0.0) 0 1px, rgba(0,0,0,0.02) 1px 2px);
  background-size: auto 2px, auto 2px;
  mix-blend-mode: overlay;
  opacity: 0.6;
}
@media (prefers-reduced-motion:no-preference){
  body::before{ animation: scan 18s linear infinite; }
}
@keyframes scan{ to{ transform: translateY(1px); } }

*,*:before,*:after{ box-sizing:border-box; }

.header, header, nav, main, article, aside, footer{
  will-change: transform;
}

/* Layout containers */
.container{ width:100%; max-width: clamp(320px, 92vw, 1140px); margin-inline:auto; padding-inline:1rem; }
.grid{ display:grid; gap:1rem; }
.card{ border-radius: var(--radius); background: var(--glass); border:1px solid rgba(255,255,255,0.25); padding:1rem; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: var(--shadow); }
@supports not (backdrop-filter: blur(12px)) {
  .card{ background: rgba(18,25,60,0.75); }
}
.image-frame{ aspect-ratio:16/9; width:100%; margin:0 auto; border-radius:12px; overflow:hidden; border:1px solid rgba(255,255,255,0.28); background:#000; box-shadow:0 8px 24px rgba(0,0,0,.25); display:block; }
.image-frame img{ width:100%; height:100%; object-fit:cover; display:block; filter: saturate(1.05); }
.content{ color: var(--text); font-size: clamp(14px, 1.2vw + 12px, 18px); line-height:1.5; }
.kbd{ font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Courier New"; font-size:0.9em; padding:.15em .4em; border-radius:6px; background: rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.25); color:#eaf2ff;}

header{ padding:1rem 0; position:relative; z-index:2; }
header h1{ font-size: clamp(1.4rem, 2.5vw + 1rem, 2.4rem); line-height:1.15; margin:0 0 .5rem; color:var(--text); letter-spacing:.2px; }
nav{ display:flex; gap:.75rem; align-items:center; flex-wrap:wrap; }
nav a{ color:var(--accent-2); text-decoration:none; padding:.25rem .5rem; border-radius:6px; border:1px solid rgba(75,106,255,.35); background: rgba(8,12,28,.55); }
nav a:hover{ color:white; background: rgba(75,106,255,.55); text-decoration: none; }
header, .card, aside{ background: rgba(8,12,28,.45); border:1px solid rgba(255,255,255,.18); border-radius: 16px; }

main{ padding: 1rem 0 2rem; }
article{ display:block; padding:0; }
footer{ padding:1rem 0 3rem; display:block; }

/* Glass panels for content zones */
.hero{ display:flex; flex-direction:column; gap:.75rem; align-items: center; text-align:center; padding:1rem; }
.hero .cta{ margin-left:.5rem; }

@media (min-width: 720px){
  .hero{ padding:1.5rem; text-align:left; align-items:flex-start; }
}
@media (min-width: 860px){
  .hero{ flex-direction: row; justify-content: space-between; align-items: center; padding: 1.5rem 0; }
}

/* Text content styling helpers */
.tag{ display:inline-block; padding:.25rem .5rem; font-size:.75rem; border-radius:999px; border:1px solid rgba(255,255,255,.25); background: rgba(60,70,140,.25); color:#e9eaff; }

/* Buttons and links: solid + outline variants; focus visible ring */
a, button, .btn, .cta{
  font-family: inherit;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing:.2px;
  cursor: pointer;
  border-radius: 999px;
  text-decoration: none;
  display:inline-block;
  padding: .72rem 1.15rem;
  border:1px solid rgba(255,255,255,.25);
  transition: transform .15s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
a{ color: var(--accent); }
a:hover, a:focus-visible{ text-decoration: underline; color: var(--accent-2); outline: none; }
.btn{ background: rgba(75,106,255,0.95); color:white; border-color: rgba(120,150,255,.95); }
.btn:hover{ transform: translateY(-1px); background: rgba(75,106,255,1); }
.btn:focus-visible{ outline: 3px solid white; outline-offset: 2px; }

/* outline variant for CTA */
.cta{ background: transparent; color: var(--text); border-color: rgba(120,150,255,.85); }
.cta:hover{ background: rgba(120,150,255,.15); }
.cta:focus-visible{ outline: 3px solid white; outline-offset: 2px; }

/* Utility helpers and semantics */
ul{ margin: .5rem 0; padding-left: 1.2rem; }
li{ margin: .25rem 0; }

/* Product ad footer sections styled as glass panels */
.product-ad, .sponsored-page{ padding:.9rem; display:flex; align-items:center; justify-content:center; text-align:center; }
.product-ad a, .sponsored-page a{ width:100%; display:inline-flex; align-items:center; justify-content:center; padding: .8rem; text-decoration:none; color:var(--text); }
.product-ad{ background: rgba(12,18,40,.62); border:1px solid rgba(255,255,255,.22); border-radius:12px; }
.sponsored-page{ background: rgba(8,14,28,.60); border:1px solid rgba(255,255,255,.20); border-radius:12px; }
.product-ad p, .sponsored-page p{ margin:0; font-weight:600; }

/* Image frame caption area (if used) */
.caption{ font-size:.9rem; color:var(--muted); text-align:center; padding-top:.4rem; }

/* Accessibility and typography helpers */
h1, h2, h3{ line-height:1.15; margin:0 0 .4rem; color:var(--text); }
p{ margin:.5rem 0 0; color: var(--text); }

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