/* Additional cyberpunk styling for the app.js file */

/* Add this CSS to the styles.css file */
.scanline {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    to bottom,
    transparent 50%,
    rgba(0, 0, 0, 0.3) 50%
  );
  background-size: 100% 4px;
  z-index: 2;
  pointer-events: none;
  opacity: 0.15;
}

.overlay-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--primary-color);
  font-size: 2rem;
  text-transform: uppercase;
  letter-spacing: 3px;
  text-shadow: 0 0 10px var(--primary-color);
  opacity: 0;
  z-index: 5;
  pointer-events: none;
  animation: blink 1.5s infinite alternate;
  font-family: var(--font-display), 'Courier New', monospace;
}

@keyframes blink {
  0%, 49% {
    opacity: 0;
  }
  50%, 100% {
    opacity: 1;
  }
}

/* Custom Chart.js styling - only apply to specific chart containers, not all canvases */
.chart-container canvas,
#track-chart-container canvas,
.radiacode-section .chart-container canvas {
  border: 1px solid var(--border-medium);
  background-color: var(--bg-surface);
}

/* Mapbox custom styling */
.mapboxgl-ctrl-bottom-right,
.mapboxgl-ctrl-bottom-left {
  color: var(--primary);
}

.mapboxgl-ctrl button {
  background-color: var(--bg-base) !important;
  border: 1px solid var(--border-medium) !important;
}

.mapboxgl-ctrl button:hover {
  background-color: var(--bg-elevated) !important;
}

.mapboxgl-ctrl button span {
  filter: invert(100%) sepia(100%) saturate(1000%) hue-rotate(0deg) brightness(100%) contrast(100%);
}

/* Terminal cursor effect */
.terminal-cursor::after {
  content: "_";
  animation: blink 1s infinite;
}

@keyframes blink {
  0%, 49% {
    opacity: 0;
  }
  50%, 100% {
    opacity: 1;
  }
}

/* Glitch effect for headings (faithful to original clock-based implementation) */
.glitch { position: relative; overflow: hidden; }
/* Scanline overlay like original .glitch:before background stripes */
.glitch::before {
  content: '';
  position: absolute;
  z-index: 1;
  inset: 0;
  background-size: 100% 8px;
  background-image: linear-gradient(0deg, rgba(255,255,255,.05) 10%, transparent 10%, transparent 50%, rgba(255,255,255,.05) 50%, rgba(255,255,255,.05) 60%, transparent 60%, transparent);
  animation: bg-move 2s linear infinite;
  pointer-events: none;
}
/* Container for the text that will get sliced layers */
.glitch .glitch-text { position: relative; display: inline-block; z-index: 2; }
/* Duplicate text layers, offset and sliced */
.glitch .glitch-text::before,
.glitch .glitch-text::after {
  content: attr(data-text);
  position: absolute;
  top: 0; left: 0; width: 100%; height: 100%;
  color: var(--primary-color);
  overflow: hidden;
  clip: rect(0, 900px, 0, 0); /* will be animated */
}
.glitch .glitch-text::before {
  left: -2px; /* $offset-c2 */
  text-shadow: 2px 0 blue; /* $lay-c2 and $color-c2 */
  animation: c2 1s infinite linear alternate-reverse;
}
.glitch .glitch-text::after {
  left: 3px; /* $offset-c1 */
  text-shadow: -2px 0 red; /* $lay-c1 and $color-c1 */
  animation: c1 2s infinite linear alternate-reverse;
}
/* Subtle jitter/skew pulses similar to original clock/tr-bag */
.glitch .glitch-text {
  transform: skewX(0deg) scaleY(1);
  animation: clock-bag-lite 4s linear infinite;
}

/* Social Controls Container */
.social-controls {
    display: block;
    flex-wrap: wrap; /* Allow buttons to wrap if space is limited */
    gap: 10px; /* Space between buttons */
    justify-content: center; /* Center the buttons */
    margin-top: 15px; /* Add some space above the buttons */
    margin-bottom: 15px; /* Add some space below the buttons */
}


/* Slice animations using legacy clip: rect(...) to mirror the original */
@keyframes c1 {
  0% { clip: rect(31px, 9999px, 94px, 0); }
  5% { clip: rect(70px, 9999px, 71px, 0); }
  10% { clip: rect(29px, 9999px, 83px, 0); }
  15% { clip: rect(16px, 9999px, 91px, 0); }
  20% { clip: rect(2px, 9999px, 23px, 0); }
  25% { clip: rect(60px, 9999px, 73px, 0); }
  30% { clip: rect(14px, 9999px, 56px, 0); }
  35% { clip: rect(89px, 9999px, 25px, 0); }
  40% { clip: rect(32px, 9999px, 12px, 0); }
  45% { clip: rect(67px, 9999px, 48px, 0); }
  50% { clip: rect(36px, 9999px, 53px, 0); }
  55% { clip: rect(72px, 9999px, 69px, 0); }
  60% { clip: rect(20px, 9999px, 33px, 0); }
  65% { clip: rect(54px, 9999px, 84px, 0); }
  70% { clip: rect(97px, 9999px, 95px, 0); }
  75% { clip: rect(62px, 9999px, 17px, 0); }
  80% { clip: rect(23px, 9999px, 46px, 0); }
  85% { clip: rect(19px, 9999px, 96px, 0); }
  90% { clip: rect(61px, 9999px, 36px, 0); }
  95% { clip: rect(83px, 9999px, 91px, 0); }
  100% { clip: rect(76px, 9999px, 40px, 0); }
}
@keyframes c2 {
  0% { clip: rect(65px, 9999px, 100px, 0); }
  5% { clip: rect(52px, 9999px, 74px, 0); }
  10% { clip: rect(79px, 9999px, 85px, 0); }
  15% { clip: rect(75px, 9999px, 5px, 0); }
  20% { clip: rect(67px, 9999px, 61px, 0); }
  25% { clip: rect(14px, 9999px, 79px, 0); }
  30% { clip: rect(1px, 9999px, 66px, 0); }
  35% { clip: rect(86px, 9999px, 30px, 0); }
  40% { clip: rect(23px, 9999px, 98px, 0); }
  45% { clip: rect(85px, 9999px, 72px, 0); }
  50% { clip: rect(71px, 9999px, 75px, 0); }
  55% { clip: rect(2px, 9999px, 48px, 0); }
  60% { clip: rect(30px, 9999px, 16px, 0); }
  65% { clip: rect(59px, 9999px, 50px, 0); }
  70% { clip: rect(41px, 9999px, 62px, 0); }
  75% { clip: rect(2px, 9999px, 82px, 0); }
  80% { clip: rect(47px, 9999px, 73px, 0); }
  85% { clip: rect(3px, 9999px, 27px, 0); }
  90% { clip: rect(26px, 9999px, 55px, 0); }
  95% { clip: rect(42px, 9999px, 97px, 0); }
  100% { clip: rect(38px, 9999px, 49px, 0); }
}

/* Jitter/scale/skew pulses, toned for header */
@keyframes clock-bag-lite {
  1%   { transform: scaleY(1) skewX(0deg); }
  1.5% { transform: scaleY(1.6) skewX(-30deg); }
  2%   { transform: scaleY(1) skewX(0deg); }
  51%  { transform: scaleX(1) scaleY(1) skewX(0deg); }
  52%  { transform: scaleX(1.2) scaleY(.6) skewX(40deg); }
  53%  { transform: scaleX(1) scaleY(1) skewX(0deg); }
}

/* Slight glow on header title’s overlay */
header h1.glitch .glitch-text { filter: drop-shadow(0 0 2px rgba(var(--primary-color-rgb), .35)); }

/* Header-specific: keep glitch inline with icon (no vertical scaling) */
header h1.glitch .glitch-text {
  animation: header-glitch-jitter 3.6s infinite ease-in-out !important; /* override global clock-bag-lite */
  transform: none; /* baseline */
}
@keyframes header-glitch-jitter {
  0%, 100% { transform: none; }
  8%  { transform: skewX(0.7deg); }
  10% { transform: none; }
  32% { transform: translateX(0.6px); }
  34% { transform: none; }
  58% { transform: skewX(-0.6deg); }
  60% { transform: none; }
  82% { transform: translateX(-0.5px); }
  84% { transform: none; }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .glitch,
  .glitch::before,
  .glitch .glitch-text,
  .glitch .glitch-text::before,
  .glitch .glitch-text::after { animation: none !important; transform: none !important; clip: auto !important; }
}

/* Social Buttons */
.social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px; /* Space between icon and text */
    padding: 10px 15px; /* Adjust padding for horizontal layout */
    border-radius: 5px;
    font-weight: bold;
    text-transform: uppercase;
    transition: all 0.3s ease;
    text-decoration: none;
    color: white;
    flex: 1; /* Allow buttons to take equal width */
    width: 50% !important;
    float: left;
    height: 45px;
    box-shadow: none;
}

/* When only one social button remains, let it occupy full width */
.social-controls .social-btn:only-child {
  width: 100% !important;
  float: none;
}

.social-btn .mdi {
    font-size: 2em; /* Adjust icon size for horizontal layout */
    margin-bottom: 0; /* Remove bottom margin for horizontal layout */
}

.social-btn:hover {
    transform: translateY(-3px); /* More pronounced hover effect */
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4); /* Stronger shadow */
}

.discord-btn {
    background-color: #5865F2; /* Official Discord blue */
    border: 1px solid #4752C4;
}

.discord-btn:hover {
    background-color: #4E5AD6;
    border-color: #3B45A8;
}


