:root{
  --bg: #0b1a3a;
  --bg-2: #1a2a63;
  --text: #eaf2ff;
  --muted: #a8b8d8;
  --accent: #8a87ff;
  --accent-2: #6bd7ff;
  --card: rgba(255,255,255,.08);
  --border: rgba(255,255,255,.25);
}
*,
*::before,
*::after{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  color:var(--text);
  font-family:system-ui,-apple-system,"Segoe UI","Roboto","Helvetica Neue",Arial;
  line-height:1.5;
  background: linear-gradient(135deg, var(--bg-2) 0%, var(--bg) 60%, #0b1a2a 100%);
  min-height:100dvh;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  background-attachment: fixed;
}
body::before{
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  background-image:
    repeating-linear-gradient(to bottom, rgba(255,255,255,.04) 0 2px, transparent 2px 4px),
    radial-gradient(circle at 20% 0%, rgba(255,255,255,.06), transparent 40%),
    radial-gradient(circle at 70% 60%, rgba(255,255,255,.04), transparent 40%);
  mix-blend-mode: overlay;
  opacity:.28;
}
body::after{
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  background: radial-gradient(circle at 60% 40%, rgba(255,255,255,.05), transparent 40%),
              radial-gradient(circle at 20% 70%, rgba(255,255,255,.04), transparent 40%);
  opacity:.25;
}
header{
  padding:2rem 1rem;
  margin:0 auto;
  text-align:center;
  max-width:clamp(320px,92vw,1000px);
  background: rgba(255,255,255,.08);
  border:1px solid var(--border);
  border-radius:16px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
header h1{font-size:clamp(1.4rem,4vw,2.25rem); margin:.25rem 0 .5rem; font-weight:700; letter-spacing:.2px}
header .meta{color:var(--muted); font-size:0.95rem; margin:.25rem 0 0}
nav{ margin-top:.5rem }
nav a{
  color:var(--accent);
  text-decoration:none;
  padding:.25rem .5rem;
  border-radius:6px;
}
nav a:hover{text-decoration:underline}
nav a:focus-visible{outline:2px solid var(--accent-2); outline-offset:2px}
main{ padding:1rem 0 2rem; }
article{ max-width:clamp(320px,92vw,1000px); margin:0 auto; padding:1rem; }
.image-frame, .image-frame img{ display:block; width:100% }
.image-frame{ aspect-ratio:16/9; width:100%; overflow:hidden; border-radius:12px;
  border:1px solid var(--border);
  box-shadow:0 6px 18px rgba(0,0,0,.25);
  margin:0 0 1rem;
}
.image-frame img{ object-fit:cover; height:100% }
h2{ font-size:clamp(1.25rem,3.5vw,2rem); margin:.75rem 0 0.5rem }
h3{ font-size:clamp(1.05rem,3vw,1.5rem); margin:.75rem 0 }
p{ margin:.75rem 0; color:var(--text) }
blockquote{
  margin:1rem 0; padding:.75rem 1rem;
  border-left:3px solid var(--accent);
  background: rgba(255,255,255,.05);
}
ul{ padding-left:1.25rem; margin:.75rem 0 1rem }
li{ margin:.25rem 0 }
.content{ padding:1rem 0 }
footer{ padding:1rem 1rem 2rem; display:block }
.product-ad, .sponsored-page{
  display:block;
  padding:.75rem;
  margin:.5rem 0;
  border-radius:12px;
  background: rgba(255,255,255,.08);
  border:1px solid var(--border);
  text-align:center;
}
.product-ad a, .sponsored-page a{ color:inherit; text-decoration:none; display:block }
a, button, .btn, .cta{ cursor:pointer }
a{ color:var(--accent); text-decoration:none }
a:hover{ text-decoration:underline }
a:focus-visible{ outline:2px solid var(--accent-2); outline-offset:2px; text-decoration:underline }
.btn{ display:inline-block; padding:.65rem 1rem; border-radius:999px;
  border:1px solid rgba(255,255,255,.5);
  background: linear-gradient(to bottom, rgba(255,255,255,.25), rgba(255,255,255,.08));
  color:#fff; text-decoration:none; transition: transform .15s ease, background .2s ease;
}
.btn:hover{ transform: translateY(-1px) }
.btn:focus-visible{ outline:2px solid var(--accent-2); outline-offset:2px }
.btn.primary{ background: linear-gradient(135deg, var(--accent), var(--accent-2)); border-color: rgba(255,255,255,.6) }
.btn.outline{ background: transparent; border-color: rgba(255,255,255,.6); color:var(--text) }
.cta{ text-decoration:none }
.card{ background: var(--card); border:1px solid var(--border); border-radius:12px; padding:.75rem; }
.tag{ display:inline-block; padding:.15rem .5rem; border-radius:999px;
  font-size:.75rem; background: rgba(138, 135, 255,.25); color:#fff; }
.grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1rem }
.container{ width:100%; max-width: clamp(320px, 92vw, 1100px); margin-inline:auto; padding-inline:1rem; }
@media (prefers-reduced-motion: reduce){
  *{ animation:none!important; transition:none!important }
}
@media print{
  body{ background:white; color:black }
  header, main, footer{ background:transparent; }
  a{ text-decoration:underline }
}
@media (max-width: 640px){
  header{ padding:1.25rem 1rem; }
  .image-frame{ border-radius:10px }
}
