/* ── RESET ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
img { display: block; max-width: 100%; }
a { text-decoration: none; }
button { cursor: pointer; background: none; border: none; }

/* ── ROOT ── */
:root {
  --bg:       #0d0d0d;
  --bg-alt:   #111111;
  --surface:  #1a1a1a;
  --border:   #2a2a2a;
  --red:      #CC0000;
  --red-glow: rgba(204,0,0,0.25);
  --orange:   #FF6600;
  --white:    #ffffff;
  --muted:    #888888;
  --font:     'Barlow Condensed', sans-serif;
  --radius:   4px;
  --radius-lg: 16px;
  --max-w:    1180px;
}

/* ── BASE ── */
body {
  background: var(--bg);
  color: var(--white);
  font-family: var(--font);
  font-size: 18px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  animation: pageFadeIn .4s ease both;
}
body.page-out { animation: pageFadeOut .3s ease forwards; }

.container { max-width: var(--max-w); margin: 0 auto; padding: 0 1.5rem; }
.red { color: var(--red); }

/* ── KEYFRAMES ── */
@keyframes pageFadeIn  { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes pageFadeOut { from { opacity:1; } to { opacity:0; } }
@keyframes fadeUp      { from { opacity:0; transform:translateY(32px); } to { opacity:1; transform:translateY(0); } }
@keyframes scanline    { 0% { top:-2%; } 100% { top:102%; } }
@keyframes diagMove    { 0% { background-position:0 0; } 100% { background-position:80px 80px; } }
@keyframes floatUp     { 0%,100% { transform:translateY(0); opacity:.2; } 50% { transform:translateY(-20px); opacity:.5; } }
@keyframes spin        { to { transform:rotate(360deg); } }
@keyframes spinCCW     { to { transform:rotate(-360deg); } }
@keyframes blink       { 0%,49% { opacity:1; } 50%,100% { opacity:0; } }
@keyframes pinPulse    { 0%,100% { transform:scale(1); opacity:1; } 50% { transform:scale(1.6); opacity:.3; } }
@keyframes glitchClip1 {
  0%,85%,100% { clip-path:inset(0 0 100% 0); transform:translateX(0); }
  86% { clip-path:inset(10% 0 70% 0); transform:translateX(-4px); }
  87% { clip-path:inset(60% 0 20% 0); transform:translateX(4px); }
  88% { clip-path:inset(30% 0 50% 0); transform:translateX(-2px); }
  89% { clip-path:inset(0 0 100% 0); }
}
@keyframes glitchClip2 {
  0%,90%,100% { clip-path:inset(0 0 100% 0); transform:translateX(0); }
  91% { clip-path:inset(70% 0 5% 0);  transform:translateX(4px); }
  92% { clip-path:inset(20% 0 60% 0); transform:translateX(-3px); }
  93% { clip-path:inset(50% 0 30% 0); transform:translateX(2px); }
  94% { clip-path:inset(0 0 100% 0); }
}

/* ── BUTTONS ── */
.btn {
  display: inline-block;
  font-family: var(--font);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .7rem 1.8rem;
  border-radius: 12px;
  border: 2px solid transparent;
  transition: background .2s, border-color .2s, color .2s, box-shadow .2s;
  white-space: nowrap;
}
.btn-red     { background:var(--red); color:var(--white); border-color:var(--red); }
.btn-red:hover { background:var(--orange); border-color:var(--orange); box-shadow:0 0 24px rgba(255,102,0,.4); }
.btn-outline { background:transparent; color:var(--white); border-color:var(--white); }
.btn-outline:hover { background:var(--white); color:var(--red); }
.btn-lg      { font-size:1.2rem; padding:.9rem 2.4rem; letter-spacing:.12em; }

/* ── NAV ── */
.nav {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(13,13,13,.95);
  backdrop-filter: blur(12px);
  border-bottom: 2px solid var(--red);
}
.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 68px;
}
.nav-wordmark {
  font-family: var(--font);
  font-weight: 700;
  font-size: 1.5rem;
  letter-spacing: .12em;
  color: var(--white);
  text-transform: uppercase;
}
.nav-links { display:flex; align-items:center; gap:2rem; }
.nav-links a {
  font-family: var(--font);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  transition: color .2s;
  position: relative;
}
.nav-links a:hover, .nav-links a.active { color: var(--white); }
.nav-links a.active::after {
  content: '';
  position: absolute;
  bottom: -6px; left: 0; right: 0;
  height: 2px;
  background: var(--red);
}

/* hamburger */
.hamburger { display:none; flex-direction:column; gap:5px; padding:.3rem; }
.hamburger span { display:block; width:24px; height:2px; background:var(--white); transition:all .25s; }
.hamburger.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* mobile overlay */
.mobile-menu {
  position: fixed;
  inset: 68px 0 0 0;
  background: rgba(13,13,13,.97);
  z-index: 999;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  opacity: 0;
  transition: opacity .25s;
}
.mobile-menu.open { opacity: 1; }
.mobile-menu a {
  font-family: var(--font);
  font-weight: 700;
  font-size: 2.2rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--white);
  transition: color .2s;
}
.mobile-menu a:hover { color: var(--red); }

/* ── FOOTER ── */
.footer { background:#0a0a0a; border-top:2px solid var(--red); padding:2.5rem 0 1.5rem; }
.footer-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 2rem;
  margin-bottom: 1.5rem;
}
.footer-brand { font-family:var(--font); font-weight:700; font-size:1.3rem; letter-spacing:.12em; text-transform:uppercase; color:var(--white); }
.footer-nav { display:flex; gap:1.5rem; justify-content:center; }
.footer-nav a { font-family:var(--font); font-weight:700; font-size:.9rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); transition:color .2s; }
.footer-nav a:hover { color:var(--white); }
.footer-etsy { text-align:right; font-family:var(--font); font-weight:700; font-size:.9rem; letter-spacing:.1em; text-transform:uppercase; color:var(--red); transition:color .2s; }
.footer-etsy:hover { color:var(--orange); }
.footer-copy { text-align:center; font-size:.8rem; color:#444; letter-spacing:.05em; padding-top:1rem; border-top:1px solid #1a1a1a; }

/* ── SECTION UTILS ── */
.section { padding:5rem 0; }
.section-label { display:inline-block; font-family:var(--font); font-weight:700; font-size:.85rem; letter-spacing:.25em; text-transform:uppercase; color:var(--red); margin-bottom:.5rem; }
.section-title { font-family:var(--font); font-weight:700; font-size:clamp(2rem,5vw,3.2rem); letter-spacing:.05em; text-transform:uppercase; color:var(--white); line-height:1.05; margin-bottom:.75rem; }
.section-sub { font-size:1rem; color:var(--muted); max-width:560px; }

/* ── INDEX: HERO ── */
.hero {
  position: relative;
  height: 100vh;
  min-height: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  text-align: center;
}
.hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.hero-overlay { position:absolute; inset:0; background:rgba(0,0,0,.62); }
.hero-scanline {
  position: absolute;
  left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(204,0,0,.55), transparent);
  animation: scanline 4s linear infinite;
  pointer-events: none;
  z-index: 2;
}
.hero-content { position:relative; z-index:3; }

/* corner brackets */
.hero-bracket { position:relative; display:inline-block; padding:1.5rem 2.5rem 2rem; }
.corner { position:absolute; width:26px; height:26px; border-color:var(--red); border-style:solid; }
.corner.tl { top:0; left:0;   border-width:2px 0 0 2px; }
.corner.tr { top:0; right:0;  border-width:2px 2px 0 0; }
.corner.bl { bottom:0; left:0;  border-width:0 0 2px 2px; }
.corner.br { bottom:0; right:0; border-width:0 2px 2px 0; }

.hero-eyebrow { font-family:var(--font); font-weight:700; font-size:.9rem; letter-spacing:.3em; text-transform:uppercase; color:var(--orange); margin-bottom:.75rem; animation:fadeUp .8s .1s both; }
.hero-title { font-family:var(--font); font-weight:700; font-size:clamp(4rem,12vw,9rem); letter-spacing:.06em; text-transform:uppercase; color:var(--white); line-height:.95; margin-bottom:.5rem; animation:fadeUp .8s .3s both; }
.hero-tagline { font-family:var(--font); font-weight:400; font-size:clamp(1rem,2.5vw,1.5rem); letter-spacing:.08em; color:rgba(255,255,255,.85); margin-bottom:1.2rem; animation:fadeUp .8s .5s both; }
.hero-rating { display:flex; align-items:center; justify-content:center; gap:.75rem; margin-bottom:2rem; animation:fadeUp .8s .65s both; }
.rating-badge { display:inline-flex; align-items:center; gap:.4rem; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); border-radius:100px; padding:.3rem .9rem; font-size:.9rem; font-weight:700; letter-spacing:.06em; }
.stars { color:var(--orange); }
.hero-cta { animation:fadeUp .8s .8s both; }

/* ── INDEX: STATS STRIP ── */
.stats-strip { position:relative; overflow:hidden; background:#0a0a0a; padding:4rem 0; }
.stats-strip::before {
  content:'';
  position:absolute; inset:0;
  background-image: repeating-linear-gradient(-45deg, transparent, transparent 10px, rgba(204,0,0,.04) 10px, rgba(204,0,0,.04) 11px);
  background-size:80px 80px;
  animation:diagMove 4s linear infinite;
}
.stats-inner { position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); }
.stat-item { text-align:center; padding:1.5rem 2rem; border-right:1px solid var(--border); }
.stat-item:last-child { border-right:none; }
.stat-number { font-family:var(--font); font-weight:700; font-size:clamp(2.5rem,6vw,4rem); color:var(--white); display:block; letter-spacing:.02em; line-height:1; }
.stat-accent { display:block; width:40px; height:3px; background:var(--red); margin:.6rem auto .4rem; }
.stat-label { font-family:var(--font); font-size:.85rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }

/* ── INDEX: SLIDESHOW ── */
.slideshow-section { padding:5rem 0; background:var(--bg-alt); }
.slideshow-header { margin-bottom:2.5rem; }
.slideshow-outer { position:relative; }
.slideshow-wrap { position:relative; width:100%; aspect-ratio:16/7; min-height:360px; overflow:hidden; border-radius:var(--radius-lg); background:#0d0d0d; }
.slide { position:absolute; inset:0; transform:translateX(100%); }
.slide.active      { transform:translateX(0); }
.slide.slide-out   { animation:slideOutLeft 500ms ease-in-out forwards; }
.slide.slide-in    { animation:slideInRight 500ms ease-in-out forwards; }
.slide-img { width:100%; height:100%; object-fit:cover; }
.slide-overlay { position:absolute; inset:0; background:rgba(0,0,0,.3); }
.slide-arrow {
  position:absolute; top:50%; transform:translateY(-50%); z-index:10;
  background:rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.2);
  color:var(--white); width:48px; height:48px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:1.3rem; transition:background .2s, border-color .2s; cursor:pointer;
}
.slide-arrow:hover { background:var(--red); border-color:var(--red); }
.slide-arrow.prev { left:1rem; }
.slide-arrow.next { right:1rem; }
@keyframes slideOutLeft { from { transform:translateX(0); }    to { transform:translateX(-100%); } }
@keyframes slideInRight  { from { transform:translateX(100%); } to { transform:translateX(0); } }

/* ── INDEX: ABOUT ── */
.about-section { position:relative; overflow:hidden; padding:5rem 0; }
.particles-layer { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.particle { position:absolute; border-radius:50%; background:var(--red); animation:floatUp 5s ease-in-out infinite; }
.about-inner { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.about-body { font-size:1.05rem; font-weight:400; color:rgba(255,255,255,.75); line-height:1.7; margin-bottom:1.2rem; }
.about-location { font-size:.9rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); }

/* geometric accent */
.geo-wrap { display:flex; align-items:center; justify-content:center; }
.geo { position:relative; width:240px; height:240px; display:flex; align-items:center; justify-content:center; }
.geo-ring { position:absolute; border-radius:50%; border:1px solid rgba(204,0,0,.25); }
.geo-ring-1 { inset:0;    animation:spin 20s linear infinite;    border-top-color:var(--red); }
.geo-ring-2 { inset:20px; animation:spinCCW 15s linear infinite; border-right-color:rgba(255,102,0,.6); }
.geo-ring-3 { inset:40px; animation:spin 10s linear infinite;    border-bottom-color:rgba(204,0,0,.5); }
.geo-diamond { position:absolute; width:80px; height:80px; border:2px solid var(--red); transform:rotate(45deg); box-shadow:0 0 30px var(--red-glow); }
.geo-center { position:relative; z-index:1; text-align:center; font-family:var(--font); font-weight:700; letter-spacing:.1em; }
.geo-center-fps { font-size:1.6rem; color:var(--red); display:block; }
.geo-center-label { font-size:.75rem; color:var(--muted); text-transform:uppercase; letter-spacing:.2em; }

/* ── PAGE HERO (products / contact) ── */
.page-hero { background:var(--bg); padding:6rem 0 4rem; position:relative; overflow:hidden; border-bottom:1px solid var(--border); }
.page-hero::after { content:''; position:absolute; bottom:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,var(--red),transparent); }
.page-hero-eyebrow { color:var(--red); }
.page-hero-h1 { font-family:var(--font); font-weight:700; font-size:clamp(2.5rem,8vw,5.5rem); letter-spacing:.06em; text-transform:uppercase; color:var(--white); line-height:1; }
.page-hero-underline { display:block; width:80px; height:4px; background:var(--red); margin-top:1rem; box-shadow:0 0 12px var(--red-glow); }

/* glitch */
.glitch { position:relative; }
.glitch::before, .glitch::after { content:attr(data-text); position:absolute; top:0; left:0; width:100%; height:100%; pointer-events:none; }
.glitch::before { color:var(--red);    animation:glitchClip1 5s infinite; }
.glitch::after  { color:var(--orange); animation:glitchClip2 5s infinite; }

/* ── PRODUCTS: BLASTER CARDS ── */
.blaster-section { padding:5rem 0; }
.blaster-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:3rem; }
.blaster-card {
  background:#1a1a1a;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  border-top:3px solid var(--red);
  padding:2rem;
  display:flex; flex-direction:column;
  transition:transform .25s, box-shadow .25s, border-color .25s;
}
.blaster-card:hover { transform:translateY(-6px); box-shadow:0 0 20px rgba(204,0,0,0.3); border-color:var(--red); }
.fps-glow-badge {
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(204,0,0,.15); border:1px solid var(--red); color:#ff9999;
  font-family:var(--font); font-weight:700; font-size:.85rem; letter-spacing:.1em; text-transform:uppercase;
  padding:.25rem .7rem; border-radius:var(--radius); box-shadow:0 0 10px rgba(204,0,0,.3);
  margin-bottom:1rem; width:fit-content;
}
.blaster-name { font-family:var(--font); font-weight:700; font-size:1.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--white); margin-bottom:.2rem; }
.blaster-sub-name { font-size:.9rem; color:var(--muted); letter-spacing:.08em; text-transform:uppercase; margin-bottom:1.25rem; }
.blaster-price { font-family:var(--font); font-weight:700; font-size:2.5rem; color:var(--red); letter-spacing:.02em; margin-bottom:.5rem; }
.ship-badge { display:inline-block; font-family:var(--font); font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--orange); border:1px solid var(--orange); padding:.15rem .5rem; border-radius:var(--radius); margin-bottom:1.5rem; }
.blaster-card .btn { margin-top:auto; display:block; text-align:center; }

/* ── PRODUCTS: ACCESSORIES ── */
.acc-section { padding:0 0 5rem; }
.acc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; margin-top:2rem; }
.acc-card { display:flex; justify-content:space-between; align-items:center; gap:1rem; background:var(--surface); padding:1.1rem 1.4rem; border-radius:16px; transition:background .15s, box-shadow .2s; }
.acc-card:hover { background:#222; box-shadow:0 0 20px rgba(204,0,0,0.3); }
.acc-name { font-family:var(--font); font-weight:700; font-size:1rem; letter-spacing:.04em; color:var(--white); margin-bottom:.1rem; }
.acc-detail { font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.acc-right { display:flex; flex-direction:column; align-items:flex-end; gap:.3rem; flex-shrink:0; }
.acc-price { font-family:var(--font); font-weight:700; font-size:1.15rem; color:var(--white); }
.acc-ship { font-size:.65rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--orange); }
.acc-buy { font-family:var(--font); font-weight:700; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--red); border:1px solid rgba(204,0,0,.3); padding:.25rem .7rem; border-radius:12px; transition:all .2s; white-space:nowrap; }
.acc-buy:hover { background:var(--red); color:var(--white); border-color:var(--red); }

/* ── PRODUCTS: CTA BANNER ── */
.cta-banner { background:var(--red); padding:3rem 0; text-align:center; }
.cta-banner-text { font-family:var(--font); font-weight:700; font-size:clamp(1.2rem,3vw,1.8rem); letter-spacing:.05em; color:var(--white); margin-bottom:1.25rem; text-transform:uppercase; }
.cta-banner .btn-outline { border-color:var(--white); color:var(--white); }
.cta-banner .btn-outline:hover { background:var(--white); color:var(--red); }

/* ── CONTACT: CARDS ── */
.contact-section { padding:5rem 0; }
.contact-cards { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:3rem; }
.contact-card {
  background:#1a1a1a; border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:2.5rem 2rem; text-align:center; display:block; color:inherit;
  transition:border-color .2s, box-shadow .2s, transform .2s;
}
.contact-card:hover { border-color:var(--red); box-shadow:0 0 20px rgba(204,0,0,0.3); transform:translateY(-4px); }
.contact-icon { font-size:2.5rem; margin-bottom:1rem; }
.contact-card-title { font-family:var(--font); font-weight:700; font-size:1.6rem; letter-spacing:.06em; text-transform:uppercase; color:var(--white); margin-bottom:.5rem; }
.contact-card-desc { font-size:.95rem; color:var(--muted); margin-bottom:1.5rem; line-height:1.6; font-weight:400; }

/* typing cursor */
.typed-cursor { display:inline-block; width:2px; height:.85em; background:var(--red); margin-left:2px; vertical-align:middle; animation:blink 1s step-start infinite; }
.page-hero-sub { margin-top:1.25rem; font-size:1.15rem; color:var(--muted); font-weight:400; letter-spacing:.03em; }

/* ── CONTACT: INFO ── */
.info-section { background:var(--bg-alt); border-top:1px solid var(--border); padding:4rem 0; }
.info-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; text-align:center; }
.info-icon { font-size:1.8rem; margin-bottom:.5rem; display:inline-block; }
.info-icon.pulse-icon { animation:pinPulse 2s ease-in-out infinite; }
.info-label { font-family:var(--font); font-size:.8rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--red); margin-bottom:.25rem; }
.info-value { font-family:var(--font); font-weight:700; font-size:1.1rem; color:var(--white); letter-spacing:.04em; }

/* ── RESPONSIVE ── */
@media (max-width: 900px) {
  .nav-links { display:none; }
  .hamburger { display:flex; }
  .blaster-grid { grid-template-columns:1fr; max-width:400px; }
  .acc-grid { grid-template-columns:1fr 1fr; }
  .about-inner { grid-template-columns:1fr; gap:3rem; }
  .geo-wrap { display:none; }
  .contact-cards { grid-template-columns:1fr; }
  .info-grid { grid-template-columns:1fr; gap:1.5rem; }
  .footer-inner { grid-template-columns:1fr; text-align:center; gap:1rem; }
  .footer-etsy { text-align:center; }
}
@media (max-width: 600px) {
  .hero-title { font-size:clamp(3rem,16vw,5rem); }
  .hero-bracket { padding:1rem 1.5rem 1.5rem; }
  .stats-inner { grid-template-columns:1fr; }
  .stat-item { border-right:none; border-bottom:1px solid var(--border); }
  .stat-item:last-child { border-bottom:none; }
  .acc-grid { grid-template-columns:1fr; }
  .acc-card { flex-direction:column; align-items:flex-start; }
  .acc-right { flex-direction:row; align-items:center; gap:.75rem; }
  .slideshow-wrap { aspect-ratio:4/3; min-height:260px; }
}

/* ── CREDENTIALS ── */
.creds { margin-top:1.25rem; }
.creds-row { display:flex; gap:1.5rem; flex-wrap:wrap; margin-top:.75rem; }
.cred-badge {
  display:flex; align-items:center; gap:.9rem;
  background:#1a1a1a;
  border-left:4px solid #CC0000;
  border-radius:12px;
  padding:1rem 1.5rem;
  flex:1; min-width:180px;
}
.cred-icon  { font-size:1.8rem; line-height:1; flex-shrink:0; }
.cred-title { font-family:var(--font); font-weight:700; font-size:1rem; color:#fff; text-transform:uppercase; letter-spacing:1px; line-height:1.2; }
.cred-sub   { font-family:var(--font); font-size:.85rem; color:#FF6600; margin-top:.2rem; }
@media (max-width:600px) { .creds-row { flex-direction:column; } }

/* ── RETICLE GRAPHIC ── */
.reticle {
  position: relative;
  width: 280px;
  height: 280px;
}
.reticle-arc {
  position: absolute;
  border-radius: 50%;
  border: 2px solid transparent;
}
.arc-cw  { inset:15px; border-top-color:#CC0000; animation:spinCW 6s linear infinite; box-shadow:0 0 8px rgba(204,0,0,0.25); }
.arc-ccw { inset:50px; border-bottom-color:#CC0000; animation:spinCCW 8s linear infinite; box-shadow:0 0 8px rgba(204,0,0,0.25); }
.reticle-line { position:absolute; background:#CC0000; left:50%; top:50%; opacity:.75; }
.line-n { width:1px; height:30px; transform:translateX(-50%) translateY(calc(-100% - 52px)); }
.line-s { width:1px; height:30px; transform:translateX(-50%) translateY(52px); }
.line-e { height:1px; width:30px; transform:translateX(52px) translateY(-50%); }
.line-w { height:1px; width:30px; transform:translateX(calc(-100% - 52px)) translateY(-50%); }
.reticle-center {
  position: absolute;
  width: 90px;
  height: 90px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #1a1a1a;
  border: 2px solid #CC0000;
  border-radius: 50%;
  box-shadow: 0 0 15px rgba(204,0,0,0.5);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  z-index: 2;
  animation: reticlePulse 2s ease-in-out infinite;
}
.reticle-fps   { font-family:var(--font); font-weight:700; font-size:18px; color:#fff; display:block; line-height:1; margin-bottom:3px; }
.reticle-label { font-family:var(--font); font-size:12px; color:#CC0000; letter-spacing:2px; text-transform:uppercase; display:block; }
@keyframes spinCW { to { transform:rotate(360deg); } }
@keyframes reticlePulse {
  0%,100% { transform:translate(-50%,-50%) scale(1);    box-shadow:0 0 15px rgba(204,0,0,0.5); }
  50%     { transform:translate(-50%,-50%) scale(1.05); box-shadow:0 0 28px rgba(204,0,0,0.75); }
}

/* ── SCROLL ANIMATIONS ── */
.blaster-card, .acc-card, .contact-card, .stat-item, .about-text, .section-header {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.6s ease;
}
.blaster-card.visible, .acc-card.visible, .contact-card.visible,
.stat-item.visible, .about-text.visible, .section-header.visible {
  opacity: 1;
  transform: translateY(0);
}
/* Restore hover lifts once cards are visible */
.blaster-card.visible:hover { transform: translateY(-6px); }
.contact-card.visible:hover { transform: translateY(-4px); }
