/* ═══════════════════════════════════════════════════╗
   PORTFOLIO  — VISUAL ENHANCEMENT  v2.0             ║
   Dark · Neon · Data Engineering Theme              ║
╚══════════════════════════════════════════════════ */

/* ── Base ── */
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

body {
  min-height: 100dvh;
  overflow-x: hidden;
}

/* ── Global smooth scroll ── */
html {
  scroll-behavior: smooth;
}

/* ══════════════════════════════════════════
   BACKGROUND LAYERS
   ══════════════════════════════════════════ */

/* Scanline texture */
.scanline {
  background: linear-gradient(to bottom, transparent 50%, rgba(67, 72, 78, 0.04) 51%, transparent 100%);
  background-size: 100% 4px;
}

/* Animated data-flow grid background */
.data-grid-bg {
  position: relative;
}

.data-grid-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0, 227, 253, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 227, 253, 0.04) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none;
  z-index: 0;
}

/* Particle canvas container */
#particle-canvas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  opacity: 0.35;
}

/* ══════════════════════════════════════════
   ANIMATED FLOATING CARDS
   ══════════════════════════════════════════ */
@keyframes float {

  0%,
  100% {
    transform: translateY(0px);
  }

  50% {
    transform: translateY(-12px);
  }
}

.float-card {
  animation: float 5s ease-in-out infinite;
}

.float-card-slow {
  animation: float 7s ease-in-out infinite 1s;
}

.float-card-xslow {
  animation: float 9s ease-in-out infinite 2s;
}

/* ══════════════════════════════════════════
   SECTION DIVIDERS  (wave / diagonal / glow)
   ══════════════════════════════════════════ */

.section-divider {
  position: relative;
  height: 60px;
  overflow: hidden;
  margin: 0;
}

/* Glowing horizontal rule */
.divider-glow {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, #00e3fd 30%, #d674ff 70%, transparent 100%);
  box-shadow: 0 0 12px rgba(0, 227, 253, 0.4), 0 0 24px rgba(214, 116, 255, 0.2);
  margin: 0 auto;
  opacity: 0.6;
}

/* Diagonal cut via clip-path */
.diagonal-cut {
  clip-path: polygon(0 0, 100% 0, 100% 60%, 0 100%);
}

/* Neon line separator */
.neon-separator {
  border: none;
  border-top: 1px solid transparent;
  background: linear-gradient(90deg, transparent, rgba(0, 227, 253, 0.5), rgba(202, 253, 0, 0.5), transparent) border-box;
  height: 1px;
  margin: 0;
  opacity: 0.5;
}

/* ══════════════════════════════════════════
   PIPELINE FLOW ANIMATION
   ══════════════════════════════════════════ */
@keyframes dash-flow {
  to {
    stroke-dashoffset: -24;
  }
}

.flow-animated {
  animation: dash-flow 1.5s linear infinite;
}

/* Animated data stream dots */
@keyframes data-stream {
  0% {
    transform: translateX(-100%);
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  90% {
    opacity: 1;
  }

  100% {
    transform: translateX(600%);
    opacity: 0;
  }
}

.data-dot {
  animation: data-stream 3s linear infinite;
}

.data-dot:nth-child(2) {
  animation-delay: 0.6s;
}

.data-dot:nth-child(3) {
  animation-delay: 1.2s;
}

.data-dot:nth-child(4) {
  animation-delay: 1.8s;
}

.data-dot:nth-child(5) {
  animation-delay: 2.4s;
}

/* ══════════════════════════════════════════
   GLOWS & PULSES
   ══════════════════════════════════════════ */
@keyframes pulse-glow {

  0%,
  100% {
    filter: drop-shadow(0 0 8px rgba(0, 227, 253, 0.3));
  }

  50% {
    filter: drop-shadow(0 0 20px rgba(0, 227, 253, 0.8));
  }
}

.pulse-glow {
  animation: pulse-glow 2s ease-in-out infinite;
}

@keyframes node-pulse {

  0%,
  100% {
    box-shadow: 0 0 8px rgba(0, 227, 253, 0.3);
  }

  50% {
    box-shadow: 0 0 24px rgba(0, 227, 253, 0.7);
  }
}

.node-pulse {
  animation: node-pulse 2s ease-in-out infinite;
}

@keyframes glow-border-cyan {

  0%,
  100% {
    box-shadow: 0 0 5px rgba(0, 227, 253, 0.15), inset 0 0 5px rgba(0, 227, 253, 0.05);
  }

  50% {
    box-shadow: 0 0 20px rgba(0, 227, 253, 0.4), inset 0 0 10px rgba(0, 227, 253, 0.1);
  }
}

.glow-border-cyan {
  animation: glow-border-cyan 3s ease-in-out infinite;
}

@keyframes glow-border-lime {

  0%,
  100% {
    box-shadow: 0 0 5px rgba(202, 253, 0, 0.15), inset 0 0 5px rgba(202, 253, 0, 0.05);
  }

  50% {
    box-shadow: 0 0 20px rgba(202, 253, 0, 0.4), inset 0 0 10px rgba(202, 253, 0, 0.1);
  }
}

.glow-border-lime {
  animation: glow-border-lime 3s ease-in-out infinite 1s;
}

/* ══════════════════════════════════════════
   ICON SYSTEM — hover animations
   ══════════════════════════════════════════ */
.skill-icon {
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), filter 0.3s ease;
}

.skill-icon:hover,
.group:hover .skill-icon {
  transform: scale(1.18) rotate(-5deg);
  filter: drop-shadow(0 0 8px currentColor);
}

/* SVG tech icons */
.tech-icon-svg {
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), filter 0.3s ease;
  flex-shrink: 0;
}

.group:hover .tech-icon-svg {
  transform: scale(1.15);
  filter: drop-shadow(0 0 6px currentColor);
}

/* ══════════════════════════════════════════
   SKILL CARDS — visual upgrade
   ══════════════════════════════════════════ */
.skill-card {
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
}

.skill-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0, 227, 253, 0.03) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.skill-card:hover::before {
  opacity: 1;
}

.skill-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 227, 253, 0.1);
}

/* Skill progress bar */
.skill-bar-track {
  height: 3px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 99px;
  overflow: hidden;
  margin-top: 12px;
}

.skill-bar-fill {
  height: 100%;
  border-radius: 99px;
  transform-origin: left;
  transform: scaleX(0);
  transition: transform 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.skill-bar-fill.animated {
  transform: scaleX(1);
}

/* ══════════════════════════════════════════
   PROJECT CARDS — visual upgrade
   ══════════════════════════════════════════ */
.project-card {
  position: relative;
  overflow: hidden;
  transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    box-shadow 0.35s ease;
  transform-style: preserve-3d;
}

.project-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0, 227, 253, 0.04) 0%, rgba(214, 116, 255, 0.04) 100%);
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}

.project-card:hover::after {
  opacity: 1;
}

.project-card:hover {
  transform: translateY(-6px) perspective(600px) rotateX(1deg);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), 0 0 40px rgba(0, 227, 253, 0.08);
}

/* Corner accent */
.project-card .corner-accent {
  position: absolute;
  top: 0;
  right: 0;
  width: 60px;
  height: 60px;
  background: linear-gradient(225deg, rgba(0, 227, 253, 0.12) 0%, transparent 70%);
  pointer-events: none;
}

/* Tech badge pills */
.tech-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 3px;
  font-size: 10px;
  font-family: 'Space Grotesk', monospace;
  letter-spacing: 0.06em;
  font-weight: 600;
  text-transform: uppercase;
  transition: background 0.2s ease, border-color 0.2s ease;
}

/* ══════════════════════════════════════════
   ETL STAGE ICONS
   ══════════════════════════════════════════ */
.etl-stage-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.etl-stage-icon:hover {
  transform: scale(1.1);
}

.etl-extract-icon {
  background: rgba(0, 227, 253, 0.1);
  border: 1px solid rgba(0, 227, 253, 0.2);
  color: #00e3fd;
  box-shadow: 0 0 16px rgba(0, 227, 253, 0.15);
}

.etl-transform-icon {
  background: rgba(202, 253, 0, 0.1);
  border: 1px solid rgba(202, 253, 0, 0.2);
  color: #cafd00;
  box-shadow: 0 0 16px rgba(202, 253, 0, 0.15);
}

.etl-load-icon {
  background: rgba(214, 116, 255, 0.1);
  border: 1px solid rgba(214, 116, 255, 0.2);
  color: #d674ff;
  box-shadow: 0 0 16px rgba(214, 116, 255, 0.15);
}

/* ETL pipeline connector */
.etl-connector {
  flex: 1;
  height: 2px;
  background: linear-gradient(90deg, rgba(0, 227, 253, 0.3), rgba(202, 253, 0, 0.3));
  position: relative;
  overflow: hidden;
}

.etl-connector::after {
  content: '';
  position: absolute;
  left: -100%;
  top: 0;
  width: 50%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0, 227, 253, 0.8), transparent);
  animation: connector-sweep 2s linear infinite;
}

@keyframes connector-sweep {
  from {
    left: -50%;
  }

  to {
    left: 150%;
  }
}

/* Data particle dots for ETL display */
@keyframes raw-wobble {

  0%,
  100% {
    transform: translate(0, 0) rotate(0deg);
  }

  25% {
    transform: translate(2px, -2px) rotate(5deg);
  }

  75% {
    transform: translate(-2px, 2px) rotate(-5deg);
  }
}

.raw-data-dot {
  animation: raw-wobble 1.5s ease-in-out infinite;
}

.raw-data-dot:nth-child(2) {
  animation-delay: 0.3s;
}

.raw-data-dot:nth-child(3) {
  animation-delay: 0.6s;
}

/* ══════════════════════════════════════════
   MINI CHART VISUALIZATIONS
   ══════════════════════════════════════════ */
.mini-bar-chart {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 28px;
}

.mini-bar {
  flex: 1;
  border-radius: 2px 2px 0 0;
  transform-origin: bottom;
  animation: bar-grow 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
  transform: scaleY(0);
}

@keyframes bar-grow {
  to {
    transform: scaleY(1);
  }
}

.mini-bar:nth-child(1) {
  animation-delay: 0.1s;
  height: 60%;
}

.mini-bar:nth-child(2) {
  animation-delay: 0.2s;
  height: 80%;
}

.mini-bar:nth-child(3) {
  animation-delay: 0.3s;
  height: 45%;
}

.mini-bar:nth-child(4) {
  animation-delay: 0.4s;
  height: 95%;
}

.mini-bar:nth-child(5) {
  animation-delay: 0.5s;
  height: 70%;
}

.mini-bar:nth-child(6) {
  animation-delay: 0.6s;
  height: 55%;
}

.mini-bar:nth-child(7) {
  animation-delay: 0.7s;
  height: 88%;
}

/* Mini sparkline */
.mini-sparkline {
  width: 60px;
  height: 24px;
}

/* ══════════════════════════════════════════
   NETWORK NODES (hero decoration)
   ══════════════════════════════════════════ */
.network-node {
  position: absolute;
  border-radius: 50%;
  background: rgba(0, 227, 253, 0.6);
  pointer-events: none;
}

@keyframes node-appear {
  0% {
    opacity: 0;
    transform: scale(0);
  }

  50% {
    opacity: 1;
    transform: scale(1.2);
  }

  100% {
    opacity: 0.6;
    transform: scale(1);
  }
}

.network-node {
  animation: node-appear 1s ease forwards;
}

/* ══════════════════════════════════════════
   COUNTER ANIMATION
   ══════════════════════════════════════════ */
.counter-value {
  font-variant-numeric: tabular-nums;
}

/* ══════════════════════════════════════════
   SECTION HEADER CHIP
   ══════════════════════════════════════════ */
.section-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  background: rgba(0, 227, 253, 0.08);
  border: 1px solid rgba(0, 227, 253, 0.2);
  border-radius: 99px;
  font-size: 11px;
  font-family: 'Space Grotesk', monospace;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #00e3fd;
  margin-bottom: 16px;
}

.section-chip .chip-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #00e3fd;
  animation: pulse-dot 2s ease-in-out infinite;
}

@keyframes pulse-dot {

  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: 0.5;
    transform: scale(0.8);
  }
}

/* ══════════════════════════════════════════
   ILLUSTRATION WRAPPERS
   ══════════════════════════════════════════ */
.illustration-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.illustration-wrapper svg {
  filter: drop-shadow(0 0 30px rgba(0, 227, 253, 0.15));
}

/* Pipeline illustration flow */
@keyframes pipe-flow {
  0% {
    stroke-dashoffset: 200;
    opacity: 0.3;
  }

  50% {
    opacity: 1;
  }

  100% {
    stroke-dashoffset: 0;
    opacity: 0.3;
  }
}

.pipe-animated {
  animation: pipe-flow 3s ease-in-out infinite;
}

/* ══════════════════════════════════════════
   TOOLTIP
   ══════════════════════════════════════════ */
.node-tooltip {
  display: none;
}

.pipeline-node:hover .node-tooltip {
  display: block;
}

.pipeline-node {
  cursor: pointer;
}

/* ══════════════════════════════════════════
   ERROR / SHAKE
   ══════════════════════════════════════════ */
@keyframes shake {

  0%,
  100% {
    transform: translateX(0);
  }

  25% {
    transform: translateX(-5px);
  }

  50% {
    transform: translateX(5px);
  }

  75% {
    transform: translateX(-5px);
  }
}

.shake {
  animation: shake 0.4s ease-in-out;
}

/* ══════════════════════════════════════════
   EASTER EGG OVERLAY
   ══════════════════════════════════════════ */
@keyframes glitch {

  0%,
  100% {
    transform: none;
  }

  10% {
    transform: skew(-2deg);
  }

  20% {
    transform: skew(2deg);
  }

  30% {
    transform: translateX(-4px);
  }

  40% {
    transform: translateX(4px);
  }

  50% {
    transform: skew(-1deg) translateX(2px);
  }
}

.glitch {
  animation: glitch 0.3s steps(1) 3;
}

#easter-egg-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(0, 0, 0, 0.95);
  align-items: center;
  justify-content: center;
}

#easter-egg-overlay.active {
  display: flex;
}

/* ══════════════════════════════════════════
   ETL GAME STATES
   ══════════════════════════════════════════ */
.data-source-btn {
  transition: all 0.2s;
}

.data-source-btn.selected {
  border-color: #00e3fd;
  background: rgba(0, 227, 253, 0.1);
}

.data-source-btn.selected .check-icon {
  display: block;
}

.check-icon {
  display: none;
}

.transform-btn.applied {
  border-color: #cafd00;
  background: rgba(202, 253, 0, 0.1);
  color: #cafd00;
}

.target-btn.selected {
  border-color: #cafd00;
  background: rgba(202, 253, 0, 0.1);
}

#stage-extract,
#stage-transform,
#stage-load,
#result-screen {
  display: none;
}

#stage-extract.active,
#stage-transform.active,
#stage-load.active {
  display: block;
}

#result-screen.active {
  display: flex;
}

#intro-screen {
  display: block;
}

#intro-screen.hidden {
  display: none;
}

/* ══════════════════════════════════════════
   GRADIENT TEXT
   ══════════════════════════════════════════ */
.gradient-text-cyan {
  background: linear-gradient(135deg, #00e3fd 0%, #d674ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.gradient-text-lime {
  background: linear-gradient(135deg, #cafd00 0%, #00e3fd 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ══════════════════════════════════════════
   GLASSMORPHISM CARD BASE
   ══════════════════════════════════════════ */
.glass-card {
  background: rgba(14, 20, 25, 0.7);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

/* ══════════════════════════════════════════
   SCROLL REVEAL ANIMATIONS
   ══════════════════════════════════════════ */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-left {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal-left.visible {
  opacity: 1;
  transform: translateX(0);
}

.reveal-right {
  opacity: 0;
  transform: translateX(30px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal-right.visible {
  opacity: 1;
  transform: translateX(0);
}

/* Staggered children */
.stagger-children>* {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.stagger-children.visible>*:nth-child(1) {
  opacity: 1;
  transform: none;
  transition-delay: 0.05s;
}

.stagger-children.visible>*:nth-child(2) {
  opacity: 1;
  transform: none;
  transition-delay: 0.12s;
}

.stagger-children.visible>*:nth-child(3) {
  opacity: 1;
  transform: none;
  transition-delay: 0.19s;
}

.stagger-children.visible>*:nth-child(4) {
  opacity: 1;
  transform: none;
  transition-delay: 0.26s;
}

.stagger-children.visible>*:nth-child(5) {
  opacity: 1;
  transform: none;
  transition-delay: 0.33s;
}

.stagger-children.visible>*:nth-child(6) {
  opacity: 1;
  transform: none;
  transition-delay: 0.40s;
}

/* ══════════════════════════════════════════
   CIRCUIT PATTERN (About section bg)
   ══════════════════════════════════════════ */
.circuit-pattern {
  background-image:
    radial-gradient(circle at 1px 1px, rgba(0, 227, 253, 0.15) 1px, transparent 0),
    linear-gradient(rgba(0, 227, 253, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 227, 253, 0.05) 1px, transparent 1px);
  background-size: 20px 20px, 20px 20px, 20px 20px;
}

/* ══════════════════════════════════════════
   CONTACT ICON LINKS
   ══════════════════════════════════════════ */
.contact-icon-btn {
  transition: transform 0.2s ease, filter 0.2s ease;
}

.contact-icon-btn:hover {
  transform: scale(1.12) translateY(-2px);
  filter: drop-shadow(0 0 8px currentColor);
}

/* ══════════════════════════════════════════
   DATA FLOW ILLUSTRATION (SVG animations)
   ══════════════════════════════════════════ */
@keyframes flow-line {
  0% {
    stroke-dashoffset: 300;
  }

  100% {
    stroke-dashoffset: 0;
  }
}

.flow-line-anim {
  stroke-dasharray: 300;
  animation: flow-line 4s linear infinite;
}

@keyframes server-blink {

  0%,
  100% {
    opacity: 0.7;
  }

  50% {
    opacity: 1;
  }
}

.server-blink {
  animation: server-blink 2s ease-in-out infinite;
}

/* Radar ping */
@keyframes radar-ping {
  0% {
    transform: scale(1);
    opacity: 0.8;
  }

  100% {
    transform: scale(2.5);
    opacity: 0;
  }
}

.radar-ping {
  animation: radar-ping 2s ease-out infinite;
}

/* ══════════════════════════════════════════
   TYPING CURSOR
   ══════════════════════════════════════════ */
@keyframes blink-cursor {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0;
  }
}

.typing-cursor::after {
  content: '|';
  animation: blink-cursor 1s step-end infinite;
  color: #00e3fd;
  margin-left: 2px;
}

/* ══════════════════════════════════════════
   HERO NETWORK CANVAS
   ══════════════════════════════════════════ */
#hero-network-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  opacity: 0.4;
}

/* ══════════════════════════════════════════
   STATS COUNTER BAR
   ══════════════════════════════════════════ */
.stats-bar-section {
  position: relative;
  overflow: hidden;
}

.stats-bar-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg,
      rgba(0, 227, 253, 0.03) 0%,
      rgba(202, 253, 0, 0.03) 50%,
      rgba(214, 116, 255, 0.03) 100%);
  pointer-events: none;
}

/* ══════════════════════════════════════════
   SCROLL INDICATOR BOUNCE
   ══════════════════════════════════════════ */
@keyframes scroll-bounce {

  0%,
  100% {
    transform: translateY(0) translateX(-50%);
    opacity: 0.3;
  }

  50% {
    transform: translateY(8px) translateX(-50%);
    opacity: 0.6;
  }
}

.scroll-indicator {
  animation: scroll-bounce 2s ease-in-out infinite;
}

/* ══════════════════════════════════════════
   STATUS BADGE
   ══════════════════════════════════════════ */
.status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  background: rgba(0, 227, 253, 0.08);
  border: 1px solid rgba(0, 227, 253, 0.2);
  border-radius: 99px;
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #00e3fd;
}

.status-badge .status-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #00e3fd;
  animation: pulse-dot 2s ease-in-out infinite;
}

/* ══════════════════════════════════════════
   HEXAGON GRID (hero bg element)
   ══════════════════════════════════════════ */
.hex-container {
  position: absolute;
  pointer-events: none;
}

.hex {
  width: 40px;
  height: 40px;
  background: rgba(0, 227, 253, 0.03);
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  animation: hex-pulse 4s ease-in-out infinite;
}

@keyframes hex-pulse {

  0%,
  100% {
    opacity: 0.3;
  }

  50% {
    opacity: 0.8;
  }
}

/* ══════════════════════════════════════════
   PIPELINE NODE (timeline)
   ══════════════════════════════════════════ */
.timeline-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #00e3fd;
  box-shadow: 0 0 0 4px rgba(0, 227, 253, 0.15);
  flex-shrink: 0;
  position: relative;
}

.timeline-dot::after {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 1px solid rgba(0, 227, 253, 0.3);
  animation: radar-ping 3s ease-out infinite;
}

/* ══════════════════════════════════════════
   GRADIENT UNDERLINE (section titles)
   ══════════════════════════════════════════ */
.grad-underline {
  position: relative;
  display: inline-block;
}

.grad-underline::after {
  content: '';
  position: absolute;
  bottom: -6px;
  left: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, #00e3fd, #d674ff);
  border-radius: 99px;
}

/* ══════════════════════════════════════════
   MULTI-PAGE NAV LINKS
   ══════════════════════════════════════════ */
.nav-link {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #a7abb2;
  padding: 6px 12px;
  border-radius: 6px;
  transition: color 0.2s, background 0.2s;
  text-decoration: none;
}

.nav-link:hover { color: #00e3fd; background: rgba(0,227,253,0.06); }

.nav-link-active {
  color: #00e3fd !important;
  background: rgba(0,227,253,0.08) !important;
}

.nav-link-cta {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #cafd00;
  padding: 6px 14px;
  border-radius: 6px;
  border: 1px solid rgba(202,253,0,0.3);
  transition: all 0.2s;
  text-decoration: none;
}
.nav-link-cta:hover { background: rgba(202,253,0,0.08); box-shadow: 0 0 20px rgba(202,253,0,0.2); }

.mobile-nav-link {
  display: block;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #a7abb2;
  padding: 10px 0;
  border-bottom: 1px solid rgba(67,72,78,0.2);
  text-decoration: none;
  transition: color 0.2s;
}
.mobile-nav-link:hover { color: #00e3fd; }

/* ══════════════════════════════════════════
   PAGE HERO (inner pages)
   ══════════════════════════════════════════ */
.page-hero {
  padding: 140px 0 80px;
  position: relative;
  overflow: hidden;
}
.page-hero-glow {
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 600px; height: 300px;
  background: radial-gradient(ellipse at center, rgba(0,227,253,0.06) 0%, transparent 70%);
  pointer-events: none;
}

/* ══════════════════════════════════════════
   SYSTEM DESIGN DIAGRAM NODES
   ══════════════════════════════════════════ */
.arch-node {
  cursor: pointer;
  transition: all 0.2s ease;
  border-radius: 12px;
  border: 1px solid rgba(67,72,78,0.3);
}
.arch-node:hover { border-color: #00e3fd; box-shadow: 0 0 24px rgba(0,227,253,0.2); }
.arch-node.selected { border-color: #cafd00; box-shadow: 0 0 30px rgba(202,253,0,0.25); }

.arch-connector {
  stroke-dasharray: 6 3;
  animation: dash-flow 2s linear infinite;
}

/* ══════════════════════════════════════════
   TOOLS PAGE
   ══════════════════════════════════════════ */
.tool-textarea {
  background: #0a0f14;
  border: 1px solid rgba(67,72,78,0.3);
  border-radius: 8px;
  color: #eaeef6;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  padding: 12px;
  width: 100%;
  resize: vertical;
  min-height: 160px;
  outline: none;
  transition: border-color 0.2s;
}
.tool-textarea:focus { border-color: #00e3fd; }
.tool-output {
  background: #060b0f;
  border: 1px solid rgba(0,227,253,0.15);
  border-radius: 8px;
  color: #a7abb2;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  padding: 12px;
  min-height: 100px;
  max-height: 300px;
  overflow: auto;
}
.tool-output .ok  { color: #cafd00; }
.tool-output .err { color: #ff716c; }
.tool-output .pre { color: #00e3fd; }

/* ══════════════════════════════════════════
   EXPERIENCE TIMELINE
   ══════════════════════════════════════════ */
.exp-card {
  position: relative;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(67,72,78,0.25);
  border-radius: 16px;
  padding: 28px;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.exp-card:hover {
  border-color: rgba(0,227,253,0.3);
  box-shadow: 0 0 30px rgba(0,227,253,0.06);
}
.exp-dot {
  width: 14px; height: 14px;
  border-radius: 50%;
  background: #00e3fd;
  box-shadow: 0 0 0 3px rgba(0,227,253,0.2), 0 0 12px rgba(0,227,253,0.4);
  flex-shrink: 0;
}

/* ══════════════════════════════════════════
   ABOUT PAGE
   ══════════════════════════════════════════ */
.mindset-card {
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(67,72,78,0.2);
  border-radius: 14px;
  padding: 24px;
  transition: all 0.3s;
}
.mindset-card:hover {
  background: rgba(0,227,253,0.03);
  border-color: rgba(0,227,253,0.2);
  transform: translateY(-3px);
}

/* ══════════════════════════════════════════
   GAME — full page
   ══════════════════════════════════════════ */
.game-fullpage {
  min-height: calc(100vh - 64px);
  padding-top: 80px;
}
.stagger-children.visible>*:nth-child(7) {
  opacity: 1;
  transform: none;
  transition-delay: 0.45s;
}

.stagger-children.visible>*:nth-child(8) {
  opacity: 1;
  transform: none;
  transition-delay: 0.50s;
}

.stagger-children.visible>*:nth-child(9) {
  opacity: 1;
  transform: none;
  transition-delay: 0.55s;
}

.stagger-children.visible>*:nth-child(10) {
  opacity: 1;
  transform: none;
  transition-delay: 0.60s;
}

.stagger-children.visible>*:nth-child(11) {
  opacity: 1;
  transform: none;
  transition-delay: 0.65s;
}

.stagger-children.visible>*:nth-child(12) {
  opacity: 1;
  transform: none;
  transition-delay: 0.70s;
}

.stagger-children.visible>*:nth-child(13) {
  opacity: 1;
  transform: none;
  transition-delay: 0.75s;
}

.stagger-children.visible>*:nth-child(14) {
  opacity: 1;
  transform: none;
  transition-delay: 0.80s;
}

.stagger-children.visible>*:nth-child(15) {
  opacity: 1;
  transform: none;
  transition-delay: 0.85s;
}

.stagger-children.visible>*:nth-child(16) {
  opacity: 1;
  transform: none;
  transition-delay: 0.90s;
}

.stagger-children.visible>*:nth-child(17) {
  opacity: 1;
  transform: none;
  transition-delay: 0.95s;
}

.stagger-children.visible>*:nth-child(18) {
  opacity: 1;
  transform: none;
  transition-delay: 1.00s;
}

.stagger-children.visible>*:nth-child(19) {
  opacity: 1;
  transform: none;
  transition-delay: 1.05s;
}

.stagger-children.visible>*:nth-child(20) {
  opacity: 1;
  transform: none;
  transition-delay: 1.10s;
}


.stagger-children.visible>*:nth-child(21) {
  opacity: 1;
  transform: none;
  transition-delay: 1.15s;
}

.stagger-children.visible>*:nth-child(22) {
  opacity: 1;
  transform: none;
  transition-delay: 1.20s;
}

.stagger-children.visible>*:nth-child(23) {
  opacity: 1;
  transform: none;
  transition-delay: 1.25s;
}

.stagger-children.visible>*:nth-child(24) {
  opacity: 1;
  transform: none;
  transition-delay: 1.30s;
}

.stagger-children.visible>*:nth-child(25) {
  opacity: 1;
  transform: none;
  transition-delay: 1.35s;
}

.stagger-children.visible>*:nth-child(26) {
  opacity: 1;
  transform: none;
  transition-delay: 1.40s;
}

.stagger-children.visible>*:nth-child(27) {
  opacity: 1;
  transform: none;
  transition-delay: 1.45s;
}

.stagger-children.visible>*:nth-child(28) {
  opacity: 1;
  transform: none;
  transition-delay: 1.50s;
}

.stagger-children.visible>*:nth-child(29) {
  opacity: 1;
  transform: none;
  transition-delay: 1.55s;
}

.stagger-children.visible>*:nth-child(30) {
  opacity: 1;
  transform: none;
  transition-delay: 1.60s;
}

