/* Palette & Foundations */
:root{
  --bg: #000000;
  --bg-2: #0a0a0f;
  --text: #eae6f0;
  --muted: #b6a7b8;
  --accent: #ff2a92;
  --accent-2: #ff7ad9;
  --glass: rgba(255,255,255,0.12);
  --glass-strong: rgba(255,255,255,0.18);
  --border: rgba(255,255,255,0.28);
}
*,*::before,*::after{ box-sizing: border-box; }
html,body{ height:100%; }
html{ color-scheme: dark; }
body{
  margin:0;
  color:var(--text);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif;
  line-height:1.5;
  background: 
    radial-gradient(circle at 20% 0%, rgba(255,0,120,0.20), transparent 40%),
    linear-gradient(135deg, #000 0%, #080812 60%, #000 100%),
    repeating-linear-gradient(0deg, rgba(255,255,255,0.04) 0 1px, transparent 1px 2px),
    repeating-linear-gradient(90deg, rgba(255,255,255,0.03) 0 1px, transparent 1px 2px);
  background-blend-mode: screen, normal, overlay, overlay;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  padding:0;
  margin:0;
  min-height:100%;
}
img{ max-width:100%; display:block; }

/* Layout primitives */
.container{ width:100%; max-width: clamp(320px, 92vw, 1100px); margin-inline:auto; padding-inline:1rem; }
.grid{ display:grid; gap:1rem; }
@media (min-width: 640px){
  .grid{ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}
header, main, footer, aside, article{ display:block; margin:0; padding:0; }

/* Glass panels (fallbacks included) */
.glass, header, main, footer, .card{ background: var(--glass); border:1px solid var(--border); border-radius:12px; padding:1rem; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 6px 20px rgba(0,0,0,0.35); }
@supports not (backdrop-filter: blur(12px)) {
  .glass, header, main, footer, .card{ background: rgba(255,255,255,0.22); }
}
header{ text-align:center; padding: clamp(1.25rem, 4vw, 2rem) 1rem; margin:0 auto 1rem; }
main{ padding:1rem 1rem 2rem; }
footer{ padding:1rem; margin-top:1rem; }

/* Typography & hierarchy */
h1{ font-size: clamp(1.75rem, 2.5vw + 1rem, 3rem); line-height:1.08; letter-spacing:.2px; margin:.25rem 0 0.5rem; color:var(--text); }
h2{ font-size: clamp(1.25rem, 1.5vw + 0.9rem, 1.75rem); margin:.75rem 0 .5rem; color:var(--text); }
h3{ font-size: clamp(1rem, 1vw + .6rem, 1.25rem); margin:.75rem 0 .5rem; color:var(--text); }
p{ color: var(--text); margin:.5rem 0; }
.meta{ color: var(--muted); font-size: .9rem; margin:.25rem 0 0; }

/* Featured image frame */
.featured-image{ display:flex; justify-content:center; align-items:center; padding:0.25rem; }
.image-frame{ aspect-ratio:16/9; width:100%; max-width:720px; border-radius:12px; overflow:hidden; border:1px solid rgba(255,255,255,0.28); box-shadow:0 6px 24px rgba(0,0,0,0.5); margin:0 auto; background:#111; }
.image-frame img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Content helper (styling hooks) */
.content{ font-size: clamp(0.92rem, 0.9vw + 0.4rem, 1rem); line-height:1.6; color:var(--text); }

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

/* Cards, tags, and utility blocks */
.card{ padding:1rem; border-radius:12px; background: rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.25); }
.tag{ display:inline-block; padding:.2em .6em; font-size:.78rem; border-radius:999px; background: rgba(255,0,120,0.25); color:#fff; border:1px solid rgba(255,255,255,0.35); }

.product-ad{ display:block; text-align:center; padding:.75rem; margin:.75rem 0; border-radius:12px; background: rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.25); }

/* Links & actions */
a{ color:var(--accent); text-decoration:none; transition: color .2s ease, text-decoration .2s ease; }
a:hover{ text-decoration:underline; color:var(--accent-2); }
a:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }

/* Buttons (solid / outline) */
.btn{ display:inline-block; padding:.6rem 1rem; border-radius:10px; border:1px solid rgba(255,255,255,0.4); background: linear-gradient(to bottom right, rgba(255,45,146,0.95), rgba(255,45,146,0.75)); color:#fff; font-weight:600; font-size: .95rem; cursor:pointer; text-decoration:none; }
.btn.secondary{ background: transparent; color:var(--text); border:1px solid rgba(255,255,255,0.6); }
.btn:focus-visible{ outline:2px solid var(--accent-2); outline-offset:2px; }

/* Forms (basic, matching theme) */
input, button{ font-family:inherit; font-size: 1rem; color:inherit; }
input{ padding:.5rem .75rem; border-radius:8px; border:1px solid rgba(255,255,255,0.4); background: rgba(255,255,255,0.08); color:var(--text); }

/* Layout helpers */
.nav{ display:flex; justify-content:center; gap:.75rem; flex-wrap:wrap; padding:.25rem 0; }

/* Decorative focus for links inside text blocks */
blockquote{ margin:1rem 0; padding:.75rem 1rem; border-left:3px solid var(--accent); background: rgba(255,255,255,0.05); border-radius:6px; }

/* Accessibility & motion preferences */
@media (prefers-reduced-motion: reduce){
  *{ transition: none !important; animation: none !important; }
}
@media print{
  body{ background:#fff; color:#000; }
  a{ text-decoration: underline; color:#000; }
}

/* Section wrappers to guarantee WCAG-friendly text over glass */
header, main, footer, aside, article{ color: var(--text); }
header h1{ text-shadow: 0 0 14px rgba(255,0,140,.25); }

/* Base spacing for content sections to feel balanced on mobile */
@media (max-width: 640px){
  header{ padding:1.25rem 1rem; }
  .image-frame{ max-width:100%; }
  .container{ padding-inline:0.75rem; }
}