/* CSS: Neon Cyberpunk Landing Theme - Neon Gaming Mouse Pad (Production-Ready) */

/* Tokens */
:root{
  --bg: #0a0a12;
  --bg-2: #141226;
  --text: #f7faff;
  --muted: #cbd5e1;
  --accent: #ff2a92;      /* neon pink */
  --accent-2: #ff4dbe;    /* secondary neon pink */
  --card: rgba(255,255,255,.08);
  --card-border: rgba(255,255,255,.32);
  --shadow: 0 6px 20px rgba(0,0,0,.45);
  --focus: 2px solid #fff;
  --focus-offset: 2px;
  --radius: 12px;
  --radius-sm: 10px;
  --glass: rgba(20,22,40,.22);
}
*{box-sizing:border-box}
html,body{height:100%}
html{font-family: system-ui,-apple-system,"Segoe UI",Roboto,Arial,"Noto Sans",sans-serif; line-height:1.5}
body{
  margin:0;
  color:var(--text);
  background:
    linear-gradient(135deg, rgba(255,0,122,.25), rgba(0,0,0,.0) 60%),
    linear-gradient(to bottom, rgba(20,0,40,.65), rgba(0,0,0,.65)),
    repeating-linear-gradient(to bottom, rgba(255,255,255,.04) 0 1px, transparent 1px 2px);
  background-blend-mode: screen, normal, overlay;
  min-height:100dvh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* Reduced motion respect */
  scroll-behavior:smooth;
}
@media (prefers-reduced-motion: reduce){
  html { scroll-behavior: auto; }
}
a,button,.btn,.cta{cursor:pointer}
a{color:var(--accent); text-decoration:none}
a:focus-visible, button:focus-visible{outline:var(--focus); outline-offset:var(--focus-offset); outline-color:#fff}
a:hover{ text-decoration: underline; color:var(--accent-2) }

/* Layout primitives */
.container{ width:100%; max-width:clamp(320px, 92vw, 1100px); padding-inline:1rem; margin-inline:auto }
.grid{ display:grid; gap:1rem }
.card{ background:var(--card); border:1px solid var(--card-border); border-radius:var(--radius); padding:1rem; box-shadow:var(--shadow) }
.tag{ display:inline-block; padding:.25rem .5rem; border-radius:999px; font-size:.75rem; color:#fff; background:rgba(255,255,255,.15) }

/* Global sections (required selectors) */
html, body, header, nav, main, article, footer, aside{ /* base semantics reserved */ }
header{ padding:.75rem 0; text-align:center; position:relative; }
header h1{ font-size: clamp(1.25rem, 3vw + .5rem, 2rem); margin:.25rem 0 .5rem; color:var(--text); text-shadow:0 1px 0 rgba(0,0,0,.25) }
nav{ display:flex; justify-content:center; gap:.5rem; flex-wrap:wrap }
main{ padding:1rem 0; display:flex; justify-content:center }
article{ width:100%; display:block }
footer{ padding:.75rem 0; display:grid; gap:.75rem; grid-template-columns:1fr; justify-items:center; text-align:center }

/* Glass panels (with fallback) */
.glass{ background: var(--glass);
  border:1px solid rgba(255,255,255,.28);
  border-radius:12px;
  padding:1rem;
  box-shadow:0 8px 28px rgba(0,0,0,.4);
  backdrop-filter: blur(8px) saturate(120%);
  -webkit-backdrop-filter: blur(8px) saturate(120%);
}
@supports not (backdrop-filter: blur(8px)){
  .glass{ background: rgba(15,16,40,.70); border-color: rgba(255,255,255,.50); }
}
.product-ad, .sponsored-page{ width:min(100%,860px); }

/* Image frame specifics */
.image-frame{ aspect-ratio:16/9; width:100%; overflow:hidden; border-radius:var(--radius-sm); border:1px solid rgba(255,255,255,.28); box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 8px 24px rgba(0,0,0,.45); background:#000; display:block }
.image-frame img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Content area (future usage) */
.content{ padding: .5rem; }

/* CTAs & links/buttons */
.btn{ display:inline-block; padding:.75rem 1rem; border-radius:999px; border:0; font-weight:700; color:#fff; background: linear-gradient(135deg, var(--accent), var(--accent-2)); text-align:center; text-decoration:none; transition: transform .15s ease, box-shadow .15s ease; box-shadow: 0 6px 14px rgba(255,0,140,.5); }
.btn:hover{ transform: translateY(-1px); box-shadow:0 8px 18px rgba(255,0,140,.6) }
.btn:active{ transform: translateY(0); }
.btn--outline{ background: transparent; border:1px solid rgba(255,255,255,.6); color:#fff; box-shadow: none; }
.btn--outline:hover{ background: rgba(255,255,255,.08); }

/* Link states for accessibility on focus/hover (explicit underline) */
.cta{ display:inline-block; padding:.75rem 1.25rem; border-radius:999px; border:1px solid rgba(255,255,255,.45); color:#fff; text-decoration:none; font-weight:700; background: rgba(0,0,0,.15); }
.cta:hover{ text-decoration:underline; background: rgba(255,255,255,.08) }
.cta:focus-visible{ outline:2px solid #fff; outline-offset:3px; }

/* Lists (ul/li) */
ul{ padding-left:1rem; margin:0; }
li{ margin:.25rem 0; }

/* Utility classes (grid/layout) */
.container{ padding-inline:1rem }
.grid.auto-fit{ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.grid.cols-3{ grid-template-columns: repeat(3, 1fr); }
.card + .card{ margin-top:.5rem; }

/* Typography (fluid) */
h2,h3{ color:var(--text); margin:.4rem 0; }
p{ color: var(--muted); margin:.25rem 0 0; }

/* Print styles (basic readability) */
@media print{
  body{ background:#fff; color:#000; }
  a{ color:#000; text-decoration:underline; }
  .glass{ background:#fff; border:1px solid #ccc; }
}
@media (min-width: 720px){
  main{ padding:2rem 0 }
  article{ max-width: min(680px, 90vw) }
  .image-frame{ border-radius:14px }
}
@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; }
}

/* Basic responsive helpers for vertical rhythm */
.header-spacer{ height:.25rem }
@media (min-width: 700px){
  header{ padding:1rem 0; }
  footer{ padding:1rem 0; }
  .container{ padding-inline:1.25rem; }
}