/* ==========================================================================
   Classic Neon Poly polish layer.
   Loaded after the archived Astro CSS. Pushes the site toward the game's
   neon-tube look: Harrowprint wordmark, heavier bloom, thicker strokes.
   ========================================================================== */

@font-face {
  font-family: "Harrowprint";
  src: url("/classic/fonts/Harrowprint.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

:root {
  --font-logo: "Harrowprint", "Comic Sans MS", cursive;
  --font-body: "Liberation Sans", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --tube-glow-green: 0 0 6px #04e425, 0 0 18px rgba(4, 228, 37, 0.75), 0 0 42px rgba(4, 228, 37, 0.35);
  --tube-glow-pink: 0 0 6px #e753b1, 0 0 18px rgba(231, 83, 177, 0.75), 0 0 42px rgba(231, 83, 177, 0.35);
  --tube-glow-cyan: 0 0 6px #10aeef, 0 0 16px rgba(16, 174, 239, 0.7), 0 0 36px rgba(16, 174, 239, 0.3);
}

body {
  font-family: var(--font-body);
}

/* Logo / hero titles read as bent neon tubes */
.section--hero h1,
.hero-copy h1,
.contact-hero h1,
.hero-wordmark,
.text-glow-green,
.text-glow-magenta {
  font-family: var(--font-logo);
  letter-spacing: 0.02em;
}

.hero-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.hero-logo {
  width: min(148px, 38vw);
  height: auto;
  border-radius: 22%;
  margin-bottom: 14px;
  filter:
    drop-shadow(0 0 12px rgba(4, 228, 37, 0.4))
    drop-shadow(0 0 22px rgba(231, 83, 177, 0.3));
}

.hero-wordmark {
  margin: 0 0 10px;
  font-size: clamp(2.4rem, 1.6rem + 3vw, 3.6rem);
  line-height: 1;
  font-weight: normal;
}

.section--hero h1,
.hero-copy h1 {
  font-weight: normal;
  line-height: 1.05;
  font-size: clamp(2.2rem, 1.5rem + 2.6vw, 3.4rem);
}

.hero-copy h1 .hero-plain {
  color: #ffffff;
  text-shadow: none;
  font-family: var(--font-logo);
}

.section--hero h1 .text-glow-green,
.hero-copy h1 .text-glow-green,
.hero-wordmark .text-glow-green {
  text-shadow: var(--tube-glow-green);
}

.section--hero h1 .text-glow-magenta,
.hero-copy h1 .text-glow-magenta,
.hero-wordmark .text-glow-magenta {
  text-shadow: var(--tube-glow-pink);
}

.text-glow-green {
  color: #04e425;
  text-shadow: var(--tube-glow-green);
}

.text-glow-magenta {
  color: #e753b1;
  text-shadow: var(--tube-glow-pink);
}

.text-glow-cyan {
  color: #10aeef;
  text-shadow: var(--tube-glow-cyan);
}

/* Buttons: same outline + soft glow language (match secondary / "See features") */
.btn--primary,
.btn--secondary {
  border-width: 2px;
  border-radius: 10px;
  background: transparent;
  transform: none;
}

.btn--primary {
  color: var(--neon-magenta-soft, #f07ac5);
  border-color: rgba(231, 83, 177, 0.55);
  box-shadow: 0 0 16px rgba(231, 83, 177, 0.28);
}

.btn--secondary {
  color: var(--neon-cyan);
  border-color: rgba(16, 174, 239, 0.55);
  box-shadow: 0 0 16px rgba(16, 174, 239, 0.28);
}

.btn--primary:hover,
.btn--primary:focus-visible {
  transform: translateY(-2px);
  background: rgba(231, 83, 177, 0.12);
  border-color: var(--neon-magenta, #e753b1);
  color: #f07ac5;
  box-shadow: 0 0 22px rgba(231, 83, 177, 0.4);
  text-shadow: none;
  filter: none;
}

.btn--secondary:hover,
.btn--secondary:focus-visible {
  transform: translateY(-2px);
  background: rgba(16, 174, 239, 0.12);
  border-color: var(--neon-cyan, #10aeef);
  color: var(--neon-cyan-soft, #4fc4f5);
  box-shadow: 0 0 22px rgba(16, 174, 239, 0.4);
  text-shadow: none;
  filter: none;
}

.card,
.shape-tile,
.feature-card {
  border-width: 2px;
  border-radius: 12px;
  box-shadow: 0 0 22px rgba(231, 83, 177, 0.12), inset 0 0 24px rgba(4, 228, 37, 0.04);
}

/* Game-authentic neon clusters (from Corona cached shape PNGs) */
.shape-art {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 108px;
  height: 108px;
  margin-inline: auto;
}

.shape-art img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.feature-icon {
  border-width: 2.5px;
  border-radius: 10px;
}

/* Float pieces use game neon PNGs (glow baked in); drop CSS bloom filters */
.fs.fs-square[data-astro-cid-pyureleg],
.fs.fs-hex[data-astro-cid-pyureleg],
.fs.fs-tri[data-astro-cid-pyureleg],
.fs.fs-square2[data-astro-cid-pyureleg],
.fs.fs-hex2[data-astro-cid-pyureleg] {
  filter: none;
  height: auto;
}

.fs.fs-square[data-astro-cid-pyureleg] {
  width: 56px;
  opacity: 0.72;
}

.fs.fs-hex[data-astro-cid-pyureleg] {
  width: 64px;
  opacity: 0.72;
}

.fs.fs-tri[data-astro-cid-pyureleg] {
  width: 52px;
  opacity: 0.72;
}

.fs.fs-square2[data-astro-cid-pyureleg] {
  width: 40px;
  opacity: 0.65;
}

.fs.fs-hex2[data-astro-cid-pyureleg] {
  width: 46px;
  opacity: 0.45;
}

/* Phone frames: soft multi-color tube bloom like splash particles */
.phone img {
  filter:
    drop-shadow(0 0 10px rgba(4, 228, 37, 0.35))
    drop-shadow(0 0 18px rgba(231, 83, 177, 0.28))
    drop-shadow(0 8px 18px rgba(0, 0, 0, 0.55));
}

/* Section heads use logo font for key words only via existing glow spans;
   keep body h2 in sans for readability, bump weight of glow spans */
.section-head h2 .text-glow-green,
.section-head h2 .text-glow-magenta,
.section-head h2 .text-glow-cyan {
  font-family: var(--font-logo);
  font-weight: normal;
}

/* Footer brand logo already uses image; strengthen stripe like tube light */
.neon-stripe {
  height: 3px;
  opacity: 1;
  filter: blur(0.2px);
  box-shadow: 0 0 14px rgba(231, 83, 177, 0.55), 0 0 28px rgba(4, 228, 37, 0.35);
}

/* Hexgrid dots a bit stronger for bulb-room atmosphere */
.hexgrid {
  background-image: radial-gradient(circle at 1px 1px, rgba(231, 83, 177, 0.12) 1.2px, transparent 0);
  background-size: 36px 36px;
}

.glow-bg::before {
  opacity: 0.45;
  filter: blur(90px);
}
.glow-bg::after {
  opacity: 0.38;
  filter: blur(90px);
}
