/* ==========================================================================
   NEXUS DNM MIRROR — Cyberpunk CSS Framework (2026)
   Version: 1.0.0
   Architecture: CSS Cascade Layers + @property + Container Queries
   ========================================================================== */

/* --------------------------------------------------------------------------
   @property Declarations — Registered Custom Properties for Animation
   -------------------------------------------------------------------------- */

@property --gradient-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

@property --gradient-hue {
  syntax: "<number>";
  initial-value: 200;
  inherits: false;
}

@property --aurora-pos {
  syntax: "<percentage>";
  initial-value: 0%;
  inherits: false;
}

@property --glow-intensity {
  syntax: "<number>";
  initial-value: 0.5;
  inherits: false;
}

@property --border-progress {
  syntax: "<percentage>";
  initial-value: 0%;
  inherits: false;
}

/* --------------------------------------------------------------------------
   View Transitions API
   -------------------------------------------------------------------------- */

@view-transition {
  navigation: auto;
}

/* --------------------------------------------------------------------------
   Layer Order Declaration
   -------------------------------------------------------------------------- */

@layer reset, base, tokens, layout, components, sections, animations, utilities, responsive;

/* ==========================================================================
   LAYER: RESET
   Minimal modern reset — box model, margins, media defaults
   ========================================================================== */

@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }

  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    -moz-tab-size: 4;
    tab-size: 4;
    scroll-behavior: smooth;
    hanging-punctuation: first last;
  }

  body {
    min-height: 100dvh;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
  }

  img,
  picture,
  video,
  canvas,
  svg {
    display: block;
    max-width: 100%;
    height: auto;
  }

  input,
  button,
  textarea,
  select {
    font: inherit;
    color: inherit;
  }

  button {
    cursor: pointer;
    border: none;
    background: none;
  }

  a {
    color: inherit;
    text-decoration: none;
  }

  ul,
  ol {
    list-style: none;
  }

  h1, h2, h3, h4, h5, h6 {
    text-wrap: balance;
    overflow-wrap: break-word;
  }

  p {
    text-wrap: pretty;
    overflow-wrap: break-word;
  }

  table {
    border-collapse: collapse;
    border-spacing: 0;
  }

  :focus-visible {
    outline: 2px solid var(--neon-blue);
    outline-offset: 3px;
  }

  ::selection {
    background: var(--neon-blue);
    color: var(--bg-deep);
  }
}

/* ==========================================================================
   LAYER: BASE
   Typography foundation, body defaults, scrollbar styling
   ========================================================================== */

@layer base {
  @font-face {
    font-family: 'Rajdhani';
    font-display: swap;
    src: local('Rajdhani');
  }

  @font-face {
    font-family: 'Orbitron';
    font-display: swap;
    src: local('Orbitron');
  }

  @font-face {
    font-family: 'Share Tech Mono';
    font-display: swap;
    src: local('Share Tech Mono');
  }

  body {
    font-family: var(--font-primary);
    font-size: clamp(0.95rem, 0.9rem + 0.25vw, 1.1rem);
    color: var(--text-primary);
    background-color: var(--bg-deep);
    overflow-x: hidden;
  }

  h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display);
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    line-height: 1.2;
  }

  h1 {
    font-size: clamp(2rem, 1.5rem + 2.5vw, 4rem);
  }

  h2 {
    font-size: clamp(1.6rem, 1.2rem + 2vw, 3rem);
  }

  h3 {
    font-size: clamp(1.3rem, 1rem + 1.5vw, 2.2rem);
  }

  h4 {
    font-size: clamp(1.1rem, 0.9rem + 1vw, 1.6rem);
  }

  h5 {
    font-size: clamp(1rem, 0.85rem + 0.75vw, 1.3rem);
  }

  h6 {
    font-size: clamp(0.9rem, 0.8rem + 0.5vw, 1.1rem);
  }

  code, pre, kbd, samp {
    font-family: var(--font-mono);
  }

  a:not([class]) {
    color: var(--neon-blue);
    text-decoration-skip-ink: auto;
    transition: color var(--transition-fast), text-shadow var(--transition-fast);
  }

  a:not([class]):hover {
    color: var(--neon-blue-light);
    text-shadow: 0 0 8px var(--neon-blue-glow);
  }

  /* Scrollbar — Webkit + Firefox */
  ::-webkit-scrollbar {
    width: 8px;
    height: 8px;
  }

  ::-webkit-scrollbar-track {
    background: var(--bg-dark);
  }

  ::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--neon-blue), var(--neon-pink));
    border-radius: 4px;
  }

  ::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, var(--neon-blue-light), var(--neon-pink-light));
  }

  * {
    scrollbar-width: thin;
    scrollbar-color: var(--neon-blue) var(--bg-dark);
  }
}

/* ==========================================================================
   LAYER: TOKENS
   Design tokens — colors, spacing, typography scales, shadows
   ========================================================================== */

@layer tokens {
  :root {
    /* --- Core Neon Palette --- */
    --neon-blue: #25E1ED;
    --neon-blue-light: #03D8F3;
    --neon-blue-glow: rgba(37, 225, 237, 0.5);
    --neon-pink: #ED1E79;
    --neon-pink-light: #FF2D8A;
    --neon-pink-glow: rgba(237, 30, 121, 0.5);
    --neon-yellow: #FCEE0C;
    --neon-yellow-glow: rgba(252, 238, 12, 0.5);
    --neon-purple: #9D4EDD;
    --neon-green: #39FF14;
    --neon-green-glow: rgba(57, 255, 20, 0.5);

    /* --- Status Colors --- */
    --warning-red: #FF3333;
    --warning-red-glow: rgba(255, 51, 51, 0.5);
    --danger: #FF0040;
    --danger-glow: rgba(255, 0, 64, 0.6);
    --success: #00FF88;
    --success-glow: rgba(0, 255, 136, 0.5);

    /* --- OKLCH Color Variants --- */
    --neon-blue-oklch: oklch(0.82 0.17 195);
    --neon-pink-oklch: oklch(0.58 0.25 350);
    --neon-yellow-oklch: oklch(0.93 0.2 100);
    --neon-purple-oklch: oklch(0.55 0.22 300);

    /* --- Color Mix Utilities --- */
    --blue-pink-mix: color-mix(in oklch, var(--neon-blue) 50%, var(--neon-pink));
    --blue-faded: color-mix(in srgb, var(--neon-blue) 30%, transparent);
    --pink-faded: color-mix(in srgb, var(--neon-pink) 30%, transparent);
    --surface-neon: color-mix(in srgb, var(--neon-blue) 5%, var(--surface));
    --surface-danger: color-mix(in srgb, var(--danger) 8%, var(--surface));

    /* --- Backgrounds --- */
    --bg-deep: #000000;
    --bg-dark: #0A0A0F;
    --bg-light: #12121A;
    --surface: #1A1A24;
    --surface-light: #22222E;
    --surface-hover: #2A2A38;

    /* --- Text --- */
    --text-primary: #E8E8F0;
    --text-secondary: #A0A0B0;
    --text-muted: #606075;

    /* --- Borders --- */
    --border: rgba(37, 225, 237, 0.15);
    --border-hover: rgba(37, 225, 237, 0.4);
    --border-warning: rgba(255, 51, 51, 0.3);

    /* --- Gradients --- */
    --gradient-neon: linear-gradient(135deg, var(--neon-blue) 0%, var(--neon-pink) 100%);
    --gradient-warning: linear-gradient(135deg, var(--warning-red) 0%, var(--neon-yellow) 100%);
    --gradient-danger: linear-gradient(135deg, #FF0040 0%, #FF3333 50%, #FCEE0C 100%);
    --gradient-cyber: linear-gradient(135deg, var(--neon-blue) 0%, var(--neon-purple) 50%, var(--neon-pink) 100%);

    /* --- Shadows --- */
    --shadow-neon-blue: 0 0 30px var(--neon-blue-glow);
    --shadow-neon-pink: 0 0 30px var(--neon-pink-glow);
    --shadow-card: 0 10px 40px rgba(0, 0, 0, 0.5);
    --shadow-card-hover: 0 20px 60px rgba(0, 0, 0, 0.7), 0 0 40px var(--neon-blue-glow);
    --shadow-neon-text: 0 0 10px var(--neon-blue-glow), 0 0 40px var(--neon-blue-glow);

    /* --- Typography --- */
    --font-primary: 'Rajdhani', 'Exo 2', sans-serif;
    --font-display: 'Orbitron', 'Audiowide', sans-serif;
    --font-mono: 'Share Tech Mono', 'Fira Code', monospace;

    /* --- Border Radius --- */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 20px;

    /* --- Transitions --- */
    --transition-fast: 0.15s ease;
    --transition-normal: 0.3s ease;
    --transition-slow: 0.5s ease;

    /* --- Z-Index Scale --- */
    --z-background: -1;
    --z-content: 1;
    --z-overlay: 100;
    --z-header: 1000;
    --z-dropdown: 1500;
    --z-modal: 2000;
    --z-toast: 3000;

    /* --- Spacing Scale --- */
    --space-xs: 0.25rem;
    --space-sm: 0.5rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    --space-3xl: 4rem;
    --space-4xl: 6rem;
  }
}

/* ==========================================================================
   LAYER: LAYOUT
   Container, grid, bento, subgrid
   ========================================================================== */

@layer layout {
  .container {
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: var(--space-lg);
  }

  .container-wide {
    max-width: 1440px;
    margin-inline: auto;
    padding-inline: var(--space-lg);
  }

  .container-narrow {
    max-width: 800px;
    margin-inline: auto;
    padding-inline: var(--space-lg);
  }

  /* --- Bento Grid --- */
  .bento-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-lg);
    padding: var(--space-lg) 0;
  }

  .bento-item {
    min-height: 200px;
  }

  .bento-item--span-2 {
    grid-column: span 2;
  }

  .bento-item--span-3 {
    grid-column: span 3;
  }

  .bento-item--span-4 {
    grid-column: span 4;
  }

  .bento-item--tall {
    grid-row: span 2;
  }

  /* --- Flex Utilities --- */
  .flex {
    display: flex;
  }

  .flex-col {
    display: flex;
    flex-direction: column;
  }

  .flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .flex-between {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .flex-wrap {
    flex-wrap: wrap;
  }

  .gap-sm {
    gap: var(--space-sm);
  }

  .gap-md {
    gap: var(--space-md);
  }

  .gap-lg {
    gap: var(--space-lg);
  }

  .gap-xl {
    gap: var(--space-xl);
  }

  /* --- Subgrid Layout --- */
  .subgrid-row {
    display: grid;
    grid-template-columns: subgrid;
    grid-column: 1 / -1;
  }

  .subgrid-col {
    display: grid;
    grid-template-rows: subgrid;
  }

  /* --- Section Spacing --- */
  .cyber-section {
    padding-block: var(--space-4xl);
    position: relative;
  }
}

/* ==========================================================================
   LAYER: COMPONENTS
   Cards, buttons, badges, accordions, forms, widgets
   ========================================================================== */

@layer components {

  /* ------------------------------------------------------------------
     1. Glassmorphism 2.0 Card
     ------------------------------------------------------------------ */
  .glass-card {
    background: rgba(10, 10, 15, 0.6);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid rgba(37, 225, 237, 0.1);
    border-radius: var(--radius-lg);
    padding: var(--space-xl);
    box-shadow: var(--shadow-card);
    transition:
      transform var(--transition-normal),
      box-shadow var(--transition-normal),
      border-color var(--transition-normal);
    position: relative;
    overflow: hidden;
    animation: revealUp linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 30%;
  }

  .glass-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--gradient-neon);
    opacity: 0;
    transition: opacity var(--transition-normal);
  }

  .glass-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-card-hover);
    border-color: var(--border-hover);
  }

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

  /* ------------------------------------------------------------------
     2. Animated Gradient Border Card
     ------------------------------------------------------------------ */
  .gradient-border-card {
    position: relative;
    background: var(--bg-dark);
    border-radius: var(--radius-lg);
    padding: var(--space-xl);
    isolation: isolate;
    overflow: hidden;
  }

  .gradient-border-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 2px;
    background: conic-gradient(
      from var(--gradient-angle),
      var(--neon-blue),
      var(--neon-pink),
      var(--neon-yellow),
      var(--neon-blue)
    );
    -webkit-mask:
      linear-gradient(#fff 0 0) content-box,
      linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask:
      linear-gradient(#fff 0 0) content-box,
      linear-gradient(#fff 0 0);
    mask-composite: exclude;
    animation: rotateGradient 4s linear infinite;
    z-index: -1;
  }

  .gradient-border-card::after {
    content: '';
    position: absolute;
    inset: 2px;
    background: var(--bg-dark);
    border-radius: calc(var(--radius-lg) - 2px);
    z-index: -1;
  }

  /* ------------------------------------------------------------------
     3. 3D Card Transforms
     ------------------------------------------------------------------ */
  .card-3d {
    perspective: 1000px;
    transform-style: preserve-3d;
  }

  .card-3d-inner {
    transition: transform var(--transition-slow);
    transform-style: preserve-3d;
  }

  .card-3d:hover .card-3d-inner {
    transform: rotateY(5deg) rotateX(-3deg);
  }

  .card-3d::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
      135deg,
      rgba(37, 225, 237, 0.1) 0%,
      transparent 50%,
      rgba(237, 30, 121, 0.1) 100%
    );
    border-radius: inherit;
    opacity: 0;
    transition: opacity var(--transition-normal);
    pointer-events: none;
  }

  .card-3d:hover::after {
    opacity: 1;
  }

  /* ------------------------------------------------------------------
     4. Buttons
     ------------------------------------------------------------------ */

  /* Cyber Button — Gradient with clipped corners */
  .btn-cyber {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 0.75em 1.5em;
    font-family: var(--font-display);
    font-size: clamp(0.8rem, 0.75rem + 0.25vw, 1rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--bg-deep);
    background: var(--gradient-neon);
    clip-path: polygon(
      0 0,
      calc(100% - 12px) 0,
      100% 12px,
      100% 100%,
      12px 100%,
      0 calc(100% - 12px)
    );
    border: none;
    cursor: pointer;
    position: relative;
    transition:
      transform var(--transition-fast),
      filter var(--transition-fast),
      box-shadow var(--transition-fast);
  }

  .btn-cyber:hover {
    transform: translateY(-2px);
    filter: brightness(1.15);
    box-shadow: 0 0 25px var(--neon-blue-glow), 0 0 50px rgba(37, 225, 237, 0.2);
  }

  .btn-cyber:active {
    transform: translateY(0);
    filter: brightness(0.95);
  }

  /* Neon Button — Outline with glow */
  .btn-neon {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 0.7em 1.4em;
    font-family: var(--font-display);
    font-size: clamp(0.8rem, 0.75rem + 0.25vw, 1rem);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--neon-blue);
    background: transparent;
    border: 1px solid var(--neon-blue);
    border-radius: var(--radius-sm);
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition:
      color var(--transition-fast),
      background var(--transition-fast),
      box-shadow var(--transition-fast),
      border-color var(--transition-fast);
  }

  .btn-neon::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--neon-blue);
    opacity: 0;
    transition: opacity var(--transition-fast);
    z-index: -1;
  }

  .btn-neon:hover {
    color: var(--bg-deep);
    border-color: var(--neon-blue-light);
    box-shadow: 0 0 20px var(--neon-blue-glow), inset 0 0 20px rgba(37, 225, 237, 0.1);
  }

  .btn-neon:hover::before {
    opacity: 1;
  }

  .btn-neon--pink {
    color: var(--neon-pink);
    border-color: var(--neon-pink);
  }

  .btn-neon--pink::before {
    background: var(--neon-pink);
  }

  .btn-neon--pink:hover {
    color: var(--bg-deep);
    border-color: var(--neon-pink-light);
    box-shadow: 0 0 20px var(--neon-pink-glow), inset 0 0 20px rgba(237, 30, 121, 0.1);
  }

  .btn-neon--danger {
    color: var(--danger);
    border-color: var(--danger);
  }

  .btn-neon--danger::before {
    background: var(--danger);
  }

  .btn-neon--danger:hover {
    border-color: var(--warning-red);
    box-shadow: 0 0 20px var(--danger-glow);
  }

  /* ------------------------------------------------------------------
     5. Accordion with @starting-style
     ------------------------------------------------------------------ */
  .accordion-item {
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-sm);
    overflow: hidden;
    background: rgba(10, 10, 15, 0.4);
    backdrop-filter: blur(10px);
    transition: border-color var(--transition-normal);
  }

  .accordion-item:hover {
    border-color: var(--border-hover);
  }

  .accordion-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-md) var(--space-lg);
    font-family: var(--font-display);
    font-size: 0.95rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-primary);
    background: transparent;
    border: none;
    cursor: pointer;
    transition: color var(--transition-fast);
  }

  .accordion-trigger:hover {
    color: var(--neon-blue);
  }

  .accordion-trigger::after {
    content: '+';
    font-size: 1.4em;
    color: var(--neon-blue);
    transition: transform var(--transition-normal);
  }

  .accordion-item[open] .accordion-trigger::after {
    transform: rotate(45deg);
  }

  .accordion-content {
    padding: 0 var(--space-lg) var(--space-lg);
    color: var(--text-secondary);
    line-height: 1.7;
    opacity: 1;
    transform: translateY(0);
    transition:
      opacity var(--transition-normal),
      transform var(--transition-normal);
  }

  @starting-style {
    .accordion-content {
      opacity: 0;
      transform: translateY(-8px);
    }
  }

  /* ------------------------------------------------------------------
     6. Status Badges
     ------------------------------------------------------------------ */
  .status-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    padding: 0.3em 0.8em;
    font-family: var(--font-mono);
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-radius: 100px;
    line-height: 1;
  }

  .status-badge::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
  }

  .status-badge.online {
    color: var(--success);
    background: rgba(0, 255, 136, 0.1);
    border: 1px solid rgba(0, 255, 136, 0.3);
  }

  .status-badge.online::before {
    background: var(--success);
    box-shadow: 0 0 8px var(--success-glow);
    animation: pulse 2s ease-in-out infinite;
  }

  .status-badge.offline {
    color: var(--warning-red);
    background: rgba(255, 51, 51, 0.1);
    border: 1px solid rgba(255, 51, 51, 0.3);
  }

  .status-badge.offline::before {
    background: var(--warning-red);
    box-shadow: 0 0 8px var(--warning-red-glow);
    animation: pulse 2s ease-in-out infinite;
  }

  .status-badge.warning {
    color: var(--neon-yellow);
    background: rgba(252, 238, 12, 0.1);
    border: 1px solid rgba(252, 238, 12, 0.3);
  }

  .status-badge.warning::before {
    background: var(--neon-yellow);
    box-shadow: 0 0 8px var(--neon-yellow-glow);
    animation: pulse 1.5s ease-in-out infinite;
  }

  /* ------------------------------------------------------------------
     7. :has() Selector — Context-Aware Cards
     ------------------------------------------------------------------ */
  .glass-card:has(.status-badge.offline) {
    border-color: var(--border-warning);
    box-shadow: var(--shadow-card), inset 0 0 30px rgba(255, 51, 51, 0.05);
  }

  .glass-card:has(.status-badge.online) {
    border-color: rgba(0, 255, 136, 0.2);
  }

  .glass-card:has(.danger-alert) {
    border-color: var(--danger);
    box-shadow: var(--shadow-card), 0 0 30px rgba(255, 0, 64, 0.15);
  }

  .glass-card:has(img:hover) {
    border-color: var(--border-hover);
    box-shadow: var(--shadow-card-hover);
  }

  .glass-card:has(:focus-visible) {
    border-color: var(--neon-blue);
    box-shadow: var(--shadow-card), var(--shadow-neon-blue);
  }

  /* ------------------------------------------------------------------
     8. Container Queries
     ------------------------------------------------------------------ */
  .card-container {
    container-type: inline-size;
    container-name: card;
  }

  @container card (min-width: 400px) {
    .card-container .glass-card {
      padding: var(--space-2xl);
    }

    .card-container .card-title {
      font-size: 1.4rem;
    }

    .card-container .card-meta {
      display: flex;
      gap: var(--space-md);
    }
  }

  @container card (min-width: 600px) {
    .card-container .glass-card {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--space-xl);
    }

    .card-container .card-title {
      font-size: 1.6rem;
      grid-column: 1 / -1;
    }
  }

  @container card (max-width: 399px) {
    .card-container .card-meta {
      flex-direction: column;
      gap: var(--space-xs);
    }

    .card-container .btn-cyber,
    .card-container .btn-neon {
      width: 100%;
      justify-content: center;
    }
  }

  /* ------------------------------------------------------------------
     9. Onion Link Display
     ------------------------------------------------------------------ */
  .onion-display {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    background: rgba(10, 10, 15, 0.7);
    backdrop-filter: blur(12px);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-md) var(--space-lg);
    font-family: var(--font-mono);
    font-size: clamp(0.7rem, 0.6rem + 0.5vw, 0.95rem);
    color: var(--neon-blue);
    word-break: break-all;
    position: relative;
    overflow: hidden;
    transition: border-color var(--transition-normal);
  }

  .onion-display:hover {
    border-color: var(--border-hover);
  }

  .onion-display::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: var(--gradient-neon);
  }

  .onion-display .onion-icon {
    font-size: 1.3em;
    flex-shrink: 0;
  }

  .onion-display .onion-url {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .onion-display .copy-btn {
    flex-shrink: 0;
    padding: 0.4em 0.8em;
    font-family: var(--font-mono);
    font-size: 0.8em;
    color: var(--text-secondary);
    background: rgba(37, 225, 237, 0.1);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition:
      color var(--transition-fast),
      background var(--transition-fast),
      border-color var(--transition-fast);
  }

  .onion-display .copy-btn:hover {
    color: var(--neon-blue);
    background: rgba(37, 225, 237, 0.2);
    border-color: var(--border-hover);
  }

  .onion-display .copy-btn.copied {
    color: var(--success);
    border-color: rgba(0, 255, 136, 0.4);
  }

  /* ------------------------------------------------------------------
     10. Code Blocks
     ------------------------------------------------------------------ */
  .code-block {
    position: relative;
    background: rgba(6, 6, 12, 0.8);
    backdrop-filter: blur(10px);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    overflow: hidden;
  }

  .code-block-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-sm) var(--space-md);
    background: rgba(37, 225, 237, 0.05);
    border-bottom: 1px solid var(--border);
  }

  .code-block-lang {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--neon-blue);
    text-transform: uppercase;
    letter-spacing: 0.1em;
  }

  .code-copy {
    padding: 0.3em 0.7em;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--text-muted);
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition:
      color var(--transition-fast),
      border-color var(--transition-fast);
  }

  .code-copy:hover {
    color: var(--neon-blue);
    border-color: var(--border);
  }

  .code-block pre {
    padding: var(--space-lg);
    overflow-x: auto;
    font-size: 0.85rem;
    line-height: 1.7;
    color: var(--text-secondary);
  }

  .code-block code {
    font-family: var(--font-mono);
  }

  /* ------------------------------------------------------------------
     11. Danger Alert
     ------------------------------------------------------------------ */
  .danger-alert {
    position: relative;
    padding: var(--space-lg);
    background: rgba(255, 0, 64, 0.05);
    border: 1px solid rgba(255, 0, 64, 0.3);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--danger);
    color: var(--text-primary);
    overflow: hidden;
  }

  .danger-alert::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 150px;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 0, 64, 0.05));
    pointer-events: none;
  }

  .danger-alert-title {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
    color: var(--danger);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: var(--space-sm);
  }

  .danger-alert-title::before {
    content: '\26A0';
    font-size: 1.2em;
  }

  .danger-alert p {
    color: var(--text-secondary);
    line-height: 1.7;
  }

  /* ------------------------------------------------------------------
     12. Checklist Items
     ------------------------------------------------------------------ */
  .check-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
  }

  .check-item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-md);
    padding: var(--space-sm) 0;
    color: var(--text-secondary);
    line-height: 1.6;
  }

  .check-item::before {
    content: '\2713';
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--bg-deep);
    background: var(--neon-blue);
    border-radius: 50%;
    margin-top: 0.15em;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
    box-shadow: 0 0 10px var(--neon-blue-glow);
  }

  .check-item--pending::before {
    content: '';
    background: transparent;
    border: 2px solid var(--text-muted);
    box-shadow: none;
  }

  .check-item--warning::before {
    content: '!';
    background: var(--neon-yellow);
    box-shadow: 0 0 10px var(--neon-yellow-glow);
  }

  /* ------------------------------------------------------------------
     13. Timeline
     ------------------------------------------------------------------ */
  .timeline {
    position: relative;
    padding: var(--space-xl) 0;
  }

  .timeline::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 100%;
    background: linear-gradient(
      180deg,
      transparent 0%,
      var(--neon-blue) 10%,
      var(--neon-pink) 50%,
      var(--neon-blue) 90%,
      transparent 100%
    );
    animation: glowPulse 3s ease-in-out infinite;
  }

  .timeline-item {
    position: relative;
    width: 50%;
    padding: var(--space-lg);
    animation: revealUp linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 30%;
  }

  .timeline-item:nth-child(odd) {
    margin-left: 0;
    padding-right: var(--space-2xl);
    text-align: right;
  }

  .timeline-item:nth-child(even) {
    margin-left: 50%;
    padding-left: var(--space-2xl);
  }

  .timeline-item::before {
    content: '';
    position: absolute;
    top: calc(var(--space-lg) + 0.6em);
    width: 14px;
    height: 14px;
    background: var(--neon-blue);
    border: 3px solid var(--bg-dark);
    border-radius: 50%;
    box-shadow: 0 0 12px var(--neon-blue-glow);
    z-index: 2;
  }

  .timeline-item:nth-child(odd)::before {
    right: calc(-7px);
  }

  .timeline-item:nth-child(even)::before {
    left: calc(-7px);
  }

  .timeline-date {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--neon-blue);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: var(--space-xs);
  }

  .timeline-title {
    font-family: var(--font-display);
    font-size: 1.1rem;
    color: var(--text-primary);
    margin-bottom: var(--space-sm);
  }

  .timeline-desc {
    color: var(--text-secondary);
    font-size: 0.9rem;
    line-height: 1.7;
  }

  /* ------------------------------------------------------------------
     14. Crypto Widget
     ------------------------------------------------------------------ */
  .crypto-widget {
    background: rgba(10, 10, 15, 0.6);
    backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-lg);
    display: flex;
    align-items: center;
    gap: var(--space-lg);
    transition: border-color var(--transition-normal), box-shadow var(--transition-normal);
  }

  .crypto-widget:hover {
    border-color: var(--border-hover);
    box-shadow: var(--shadow-card-hover);
  }

  .crypto-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    background: rgba(37, 225, 237, 0.1);
    border-radius: 50%;
    flex-shrink: 0;
  }

  .crypto-info {
    flex: 1;
    min-width: 0;
  }

  .crypto-name {
    font-family: var(--font-display);
    font-size: 0.85rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.1em;
  }

  .crypto-price {
    font-family: var(--font-mono);
    font-size: clamp(1.2rem, 1rem + 1vw, 1.8rem);
    font-weight: 700;
    color: var(--text-primary);
  }

  .crypto-change {
    font-family: var(--font-mono);
    font-size: 0.85rem;
  }

  .crypto-change.up {
    color: var(--success);
  }

  .crypto-change.down {
    color: var(--warning-red);
  }

  /* ------------------------------------------------------------------
     15. Section Counter
     ------------------------------------------------------------------ */
  .section-counter {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
    margin-bottom: var(--space-xl);
  }

  .section-counter-number {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 2rem + 2vw, 4rem);
    font-weight: 900;
    color: transparent;
    -webkit-text-stroke: 1px var(--neon-blue);
    line-height: 1;
    opacity: 0.4;
  }

  .section-counter-line {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, var(--neon-blue), transparent);
  }

  .section-counter-title {
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 1rem + 1vw, 1.8rem);
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }

  /* ------------------------------------------------------------------
     16. Nav Links
     ------------------------------------------------------------------ */
  .nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: var(--space-sm) var(--space-md);
    font-family: var(--font-display);
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-secondary);
    transition: color var(--transition-fast);
  }

  .nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: var(--space-md);
    right: var(--space-md);
    height: 2px;
    background: var(--gradient-neon);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform var(--transition-normal);
  }

  .nav-link:hover {
    color: var(--neon-blue);
  }

  .nav-link:hover::after {
    transform: scaleX(1);
    transform-origin: left;
  }

  .nav-link.active {
    color: var(--neon-blue);
    text-shadow: 0 0 8px var(--neon-blue-glow);
  }

  .nav-link.active::after {
    transform: scaleX(1);
  }

  /* ------------------------------------------------------------------
     Card Title / Meta / Content (shared)
     ------------------------------------------------------------------ */
  .card-title {
    font-family: var(--font-display);
    font-size: clamp(1rem, 0.9rem + 0.5vw, 1.3rem);
    color: var(--text-primary);
    margin-bottom: var(--space-sm);
  }

  .card-meta {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--text-muted);
    margin-bottom: var(--space-md);
  }

  .card-content {
    color: var(--text-secondary);
    line-height: 1.7;
  }

  /* ------------------------------------------------------------------
     Tables
     ------------------------------------------------------------------ */
  .cyber-table {
    width: 100%;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    overflow: hidden;
    background: rgba(10, 10, 15, 0.4);
  }

  .cyber-table th {
    padding: var(--space-md) var(--space-lg);
    font-family: var(--font-display);
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--neon-blue);
    background: rgba(37, 225, 237, 0.05);
    border-bottom: 1px solid var(--border);
    text-align: left;
  }

  .cyber-table td {
    padding: var(--space-md) var(--space-lg);
    font-size: 0.9rem;
    color: var(--text-secondary);
    border-bottom: 1px solid rgba(37, 225, 237, 0.05);
  }

  .cyber-table tr:last-child td {
    border-bottom: none;
  }

  .cyber-table tr:hover td {
    background: rgba(37, 225, 237, 0.03);
    color: var(--text-primary);
  }

  /* ------------------------------------------------------------------
     Form Inputs
     ------------------------------------------------------------------ */
  .cyber-input {
    width: 100%;
    padding: 0.7em 1em;
    font-family: var(--font-mono);
    font-size: 0.9rem;
    color: var(--text-primary);
    background: rgba(10, 10, 15, 0.6);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    outline: none;
    transition:
      border-color var(--transition-fast),
      box-shadow var(--transition-fast);
  }

  .cyber-input:focus {
    border-color: var(--neon-blue);
    box-shadow: 0 0 15px rgba(37, 225, 237, 0.15);
  }

  .cyber-input::placeholder {
    color: var(--text-muted);
  }
}

/* ==========================================================================
   LAYER: SECTIONS
   Page-level sections — hero, header, footer, backgrounds
   ========================================================================== */

@layer sections {

  /* ------------------------------------------------------------------
     1. Aurora Background
     ------------------------------------------------------------------ */
  .aurora-bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -2;
    overflow: hidden;
    pointer-events: none;
  }

  .aurora-blob {
    position: absolute;
    border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
    filter: blur(100px);
    opacity: 0.3;
    mix-blend-mode: screen;
  }

  .aurora-blob:nth-child(1) {
    width: 600px;
    height: 600px;
    background: var(--neon-blue);
    top: -15%;
    left: -10%;
    animation: morphBlob 15s ease-in-out infinite, auroraDrift 20s ease-in-out infinite;
  }

  .aurora-blob:nth-child(2) {
    width: 500px;
    height: 500px;
    background: var(--neon-pink);
    top: 30%;
    right: -10%;
    animation: morphBlob 18s ease-in-out infinite reverse, auroraDrift 25s ease-in-out infinite reverse;
  }

  .aurora-blob:nth-child(3) {
    width: 450px;
    height: 450px;
    background: var(--neon-purple);
    bottom: -10%;
    left: 25%;
    animation: morphBlob 20s ease-in-out infinite 3s, auroraDrift 22s ease-in-out infinite 5s;
  }

  /* ------------------------------------------------------------------
     2. Cyber Background (Grid + Scanline + Orbs)
     ------------------------------------------------------------------ */
  .cyber-bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: var(--z-background);
    pointer-events: none;
    overflow: hidden;
  }

  .cyber-bg::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
      linear-gradient(rgba(37, 225, 237, 0.03) 1px, transparent 1px),
      linear-gradient(90deg, rgba(37, 225, 237, 0.03) 1px, transparent 1px);
    background-size: 60px 60px;
    mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black 40%, transparent 100%);
  }

  .cyber-bg::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: rgba(37, 225, 237, 0.08);
    animation: scanline 8s linear infinite;
  }

  .cyber-bg-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.15;
  }

  .cyber-bg-orb:nth-child(1) {
    width: 400px;
    height: 400px;
    background: var(--neon-blue);
    top: 10%;
    left: -5%;
    animation: float 12s ease-in-out infinite;
  }

  .cyber-bg-orb:nth-child(2) {
    width: 350px;
    height: 350px;
    background: var(--neon-pink);
    bottom: 10%;
    right: -5%;
    animation: float 15s ease-in-out infinite reverse;
  }

  /* ------------------------------------------------------------------
     3. Cyber Hero
     ------------------------------------------------------------------ */
  .cyber-hero {
    position: relative;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: var(--space-4xl) var(--space-lg);
    overflow: hidden;
  }

  .cyber-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
      linear-gradient(rgba(37, 225, 237, 0.02) 1px, transparent 1px),
      linear-gradient(90deg, rgba(37, 225, 237, 0.02) 1px, transparent 1px);
    background-size: 40px 40px;
    pointer-events: none;
  }

  .cyber-hero::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: rgba(37, 225, 237, 0.06);
    animation: scanline 6s linear infinite;
    pointer-events: none;
  }

  .hero-title {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 2rem + 4vw, 6rem);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    background: var(--gradient-neon);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0 30px var(--neon-blue-glow));
    margin-bottom: var(--space-md);
    animation: fadeInUp 0.8s ease-out both;
  }

  .hero-subtitle {
    font-family: var(--font-primary);
    font-size: clamp(1rem, 0.8rem + 1vw, 1.6rem);
    color: var(--text-secondary);
    max-width: 600px;
    margin-bottom: var(--space-2xl);
    animation: fadeInUp 0.8s ease-out 0.2s both;
  }

  .hero-actions {
    display: flex;
    gap: var(--space-md);
    flex-wrap: wrap;
    justify-content: center;
    animation: fadeInUp 0.8s ease-out 0.4s both;
  }

  .hero-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-sm) var(--space-md);
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--neon-blue);
    background: rgba(37, 225, 237, 0.08);
    border: 1px solid rgba(37, 225, 237, 0.2);
    border-radius: 100px;
    margin-bottom: var(--space-lg);
    animation: fadeInUp 0.8s ease-out 0.1s both;
  }

  /* ------------------------------------------------------------------
     4. Section Headers
     ------------------------------------------------------------------ */
  .section-header {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
    margin-bottom: var(--space-2xl);
    animation: revealUp linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 25%;
  }

  .section-number {
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 1rem + 2vw, 3rem);
    font-weight: 900;
    color: transparent;
    -webkit-text-stroke: 1px var(--neon-blue);
    opacity: 0.5;
    line-height: 1;
    flex-shrink: 0;
  }

  .section-header-line {
    width: 60px;
    height: 2px;
    background: var(--gradient-neon);
    flex-shrink: 0;
  }

  .section-header-text {
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 1rem + 1vw, 2rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-primary);
  }

  /* ------------------------------------------------------------------
     5. Cyber Header
     ------------------------------------------------------------------ */
  .cyber-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: var(--z-header);
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(20px) saturate(150%);
    -webkit-backdrop-filter: blur(20px) saturate(150%);
    border-bottom: 1px solid var(--border);
    transition: background var(--transition-normal), box-shadow var(--transition-normal);
  }

  .cyber-header::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 1px;
    background: conic-gradient(
      from var(--gradient-angle),
      var(--neon-blue),
      var(--neon-pink),
      var(--neon-blue)
    );
    animation: rotateGradient 4s linear infinite;
    opacity: 0.6;
  }

  .cyber-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--space-md) var(--space-lg);
  }

  .header-logo {
    font-family: var(--font-display);
    font-size: clamp(1rem, 0.8rem + 0.5vw, 1.3rem);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--neon-blue);
    text-shadow: 0 0 10px var(--neon-blue-glow);
  }

  .header-nav {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
  }

  .header-status {
    margin-left: var(--space-lg);
  }

  .mobile-menu-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    padding: var(--space-sm);
    cursor: pointer;
  }

  .mobile-menu-toggle span {
    width: 24px;
    height: 2px;
    background: var(--neon-blue);
    transition: transform var(--transition-normal), opacity var(--transition-fast);
  }

  /* ------------------------------------------------------------------
     6. Cyber Footer
     ------------------------------------------------------------------ */
  .cyber-footer {
    position: relative;
    background: rgba(6, 6, 12, 0.8);
    backdrop-filter: blur(20px);
    border-top: 1px solid var(--border);
    padding: var(--space-4xl) 0 var(--space-xl);
    margin-top: var(--space-4xl);
  }

  .cyber-footer::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--gradient-neon);
    opacity: 0.5;
  }

  .footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: var(--space-2xl);
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-lg);
    margin-bottom: var(--space-2xl);
  }

  .footer-brand {
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 900;
    color: var(--neon-blue);
    text-shadow: 0 0 8px var(--neon-blue-glow);
    margin-bottom: var(--space-md);
    text-transform: uppercase;
    letter-spacing: 0.1em;
  }

  .footer-desc {
    color: var(--text-muted);
    font-size: 0.9rem;
    line-height: 1.7;
    max-width: 300px;
  }

  .footer-heading {
    font-family: var(--font-display);
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-primary);
    margin-bottom: var(--space-md);
  }

  .footer-links {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
  }

  .footer-links a {
    font-size: 0.9rem;
    color: var(--text-muted);
    transition: color var(--transition-fast), padding-left var(--transition-fast);
  }

  .footer-links a:hover {
    color: var(--neon-blue);
    padding-left: var(--space-sm);
  }

  .footer-bottom {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--space-lg) var(--space-lg) 0;
    border-top: 1px solid rgba(37, 225, 237, 0.08);
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.8rem;
    color: var(--text-muted);
    font-family: var(--font-mono);
  }

  /* ------------------------------------------------------------------
     7. Bento Section
     ------------------------------------------------------------------ */
  .bento-section {
    padding-block: var(--space-4xl);
  }

  .bento-section .bento-grid {
    grid-template-rows: auto;
  }

  .bento-section .bento-item .glass-card {
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  /* ------------------------------------------------------------------
     8. Stat Cards
     ------------------------------------------------------------------ */
  .stat-card {
    background: rgba(10, 10, 15, 0.6);
    backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-xl);
    text-align: center;
    transition:
      border-color var(--transition-normal),
      box-shadow var(--transition-normal),
      transform var(--transition-normal);
    animation: revealUp linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 30%;
  }

  .stat-card:hover {
    border-color: var(--border-hover);
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-4px);
  }

  .stat-value {
    font-family: var(--font-display);
    font-size: clamp(2rem, 1.5rem + 2vw, 3.5rem);
    font-weight: 900;
    color: var(--neon-blue);
    text-shadow: var(--shadow-neon-text);
    line-height: 1;
    margin-bottom: var(--space-sm);
  }

  .stat-value--pink {
    color: var(--neon-pink);
    text-shadow: 0 0 10px var(--neon-pink-glow), 0 0 40px var(--neon-pink-glow);
  }

  .stat-value--yellow {
    color: var(--neon-yellow);
    text-shadow: 0 0 10px var(--neon-yellow-glow), 0 0 40px var(--neon-yellow-glow);
  }

  .stat-label {
    font-family: var(--font-display);
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--text-muted);
  }

  .stat-sublabel {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: var(--space-xs);
    opacity: 0.7;
  }

  /* ------------------------------------------------------------------
     Warning / Info Banner
     ------------------------------------------------------------------ */
  .cyber-banner {
    background: rgba(37, 225, 237, 0.05);
    border: 1px solid var(--border);
    border-left: 4px solid var(--neon-blue);
    border-radius: var(--radius-md);
    padding: var(--space-lg);
    margin-bottom: var(--space-xl);
  }

  .cyber-banner--warning {
    background: rgba(252, 238, 12, 0.05);
    border-color: rgba(252, 238, 12, 0.2);
    border-left-color: var(--neon-yellow);
  }

  .cyber-banner--danger {
    background: rgba(255, 0, 64, 0.05);
    border-color: rgba(255, 0, 64, 0.2);
    border-left-color: var(--danger);
  }
}

/* ==========================================================================
   LAYER: ANIMATIONS
   Keyframes, scroll-driven, glitch, morphing, reveals
   ========================================================================== */

@layer animations {

  /* ------------------------------------------------------------------
     1. Scroll-Driven Reveals
     ------------------------------------------------------------------ */
  .scroll-reveal {
    animation: revealUp linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 30%;
  }

  .scroll-reveal-left {
    animation: fadeInLeft linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 30%;
  }

  .scroll-reveal-right {
    animation: fadeInRight linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 30%;
  }

  .scroll-reveal-scale {
    animation: revealScale linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 35%;
  }

  /* ------------------------------------------------------------------
     2. Word-by-Word Reveal
     ------------------------------------------------------------------ */
  .word-reveal {
    animation-timeline: view();
  }

  .word-reveal span {
    display: inline-block;
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 40%;
  }

  .word-reveal span:nth-child(2) { animation-delay: 0.05s; }
  .word-reveal span:nth-child(3) { animation-delay: 0.1s; }
  .word-reveal span:nth-child(4) { animation-delay: 0.15s; }
  .word-reveal span:nth-child(5) { animation-delay: 0.2s; }
  .word-reveal span:nth-child(6) { animation-delay: 0.25s; }
  .word-reveal span:nth-child(7) { animation-delay: 0.3s; }
  .word-reveal span:nth-child(8) { animation-delay: 0.35s; }

  /* ------------------------------------------------------------------
     3. Glitch Text
     ------------------------------------------------------------------ */
  .glitch-text {
    position: relative;
    display: inline-block;
    font-family: var(--font-display);
    font-weight: 900;
    text-transform: uppercase;
  }

  .glitch-text::before,
  .glitch-text::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  .glitch-text::before {
    color: var(--neon-blue);
    animation: glitch-1 3s infinite linear alternate-reverse;
    clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%);
    transform: translate(-2px, -1px);
  }

  .glitch-text::after {
    color: var(--neon-pink);
    animation: glitch-2 2.5s infinite linear alternate-reverse;
    clip-path: polygon(0 55%, 100% 55%, 100% 100%, 0 100%);
    transform: translate(2px, 1px);
  }

  @keyframes glitch-1 {
    0% { clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%); transform: translate(-2px, -1px); }
    20% { clip-path: polygon(0 15%, 100% 15%, 100% 55%, 0 55%); transform: translate(2px, 0); }
    40% { clip-path: polygon(0 30%, 100% 30%, 100% 70%, 0 70%); transform: translate(-1px, 1px); }
    60% { clip-path: polygon(0 5%, 100% 5%, 100% 35%, 0 35%); transform: translate(1px, -2px); }
    80% { clip-path: polygon(0 50%, 100% 50%, 100% 85%, 0 85%); transform: translate(-2px, 1px); }
    100% { clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%); transform: translate(2px, -1px); }
  }

  @keyframes glitch-2 {
    0% { clip-path: polygon(0 55%, 100% 55%, 100% 100%, 0 100%); transform: translate(2px, 1px); }
    25% { clip-path: polygon(0 65%, 100% 65%, 100% 95%, 0 95%); transform: translate(-2px, -1px); }
    50% { clip-path: polygon(0 40%, 100% 40%, 100% 80%, 0 80%); transform: translate(1px, 2px); }
    75% { clip-path: polygon(0 70%, 100% 70%, 100% 100%, 0 100%); transform: translate(-1px, 0); }
    100% { clip-path: polygon(0 55%, 100% 55%, 100% 100%, 0 100%); transform: translate(2px, -1px); }
  }

  /* ------------------------------------------------------------------
     4. Morphing Blobs
     ------------------------------------------------------------------ */
  @keyframes morphBlob {
    0%   { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }
    25%  { border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%; }
    50%  { border-radius: 50% 60% 30% 60% / 30% 50% 70% 50%; }
    75%  { border-radius: 40% 60% 50% 40% / 60% 40% 60% 30%; }
    100% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }
  }

  /* ------------------------------------------------------------------
     5. Aurora Drift
     ------------------------------------------------------------------ */
  @keyframes auroraDrift {
    0%   { transform: translate(0, 0) scale(1); }
    25%  { transform: translate(80px, -40px) scale(1.1); }
    50%  { transform: translate(-30px, 60px) scale(0.95); }
    75%  { transform: translate(50px, 30px) scale(1.05); }
    100% { transform: translate(0, 0) scale(1); }
  }

  /* ------------------------------------------------------------------
     6. Gradient Rotation
     ------------------------------------------------------------------ */
  @keyframes rotateGradient {
    to {
      --gradient-angle: 360deg;
    }
  }

  /* ------------------------------------------------------------------
     7. Float
     ------------------------------------------------------------------ */
  @keyframes float {
    0%   { transform: translateY(0); }
    50%  { transform: translateY(-20px); }
    100% { transform: translateY(0); }
  }

  /* ------------------------------------------------------------------
     8. Pulse
     ------------------------------------------------------------------ */
  @keyframes pulse {
    0%   { transform: scale(1); opacity: 1; }
    50%  { transform: scale(1.5); opacity: 0.5; }
    100% { transform: scale(1); opacity: 1; }
  }

  /* ------------------------------------------------------------------
     9. Scanline
     ------------------------------------------------------------------ */
  @keyframes scanline {
    0%   { top: -4px; }
    100% { top: 100%; }
  }

  /* ------------------------------------------------------------------
     10. Fade In Directions
     ------------------------------------------------------------------ */
  @keyframes fadeInUp {
    from {
      opacity: 0;
      transform: translateY(30px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @keyframes fadeInDown {
    from {
      opacity: 0;
      transform: translateY(-30px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @keyframes fadeInLeft {
    from {
      opacity: 0;
      transform: translateX(-30px);
    }
    to {
      opacity: 1;
      transform: translateX(0);
    }
  }

  @keyframes fadeInRight {
    from {
      opacity: 0;
      transform: translateX(30px);
    }
    to {
      opacity: 1;
      transform: translateX(0);
    }
  }

  @keyframes revealUp {
    from {
      opacity: 0;
      transform: translateY(40px) scale(0.98);
    }
    to {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }

  @keyframes revealScale {
    from {
      opacity: 0;
      transform: scale(0.9);
    }
    to {
      opacity: 1;
      transform: scale(1);
    }
  }

  /* ------------------------------------------------------------------
     11. Glow Pulse
     ------------------------------------------------------------------ */
  @keyframes glowPulse {
    0%   { box-shadow: 0 0 5px var(--neon-blue-glow); opacity: 0.6; }
    50%  { box-shadow: 0 0 20px var(--neon-blue-glow), 0 0 40px rgba(37, 225, 237, 0.2); opacity: 1; }
    100% { box-shadow: 0 0 5px var(--neon-blue-glow); opacity: 0.6; }
  }

  @keyframes glowPulsePink {
    0%   { box-shadow: 0 0 5px var(--neon-pink-glow); }
    50%  { box-shadow: 0 0 20px var(--neon-pink-glow), 0 0 40px rgba(237, 30, 121, 0.2); }
    100% { box-shadow: 0 0 5px var(--neon-pink-glow); }
  }

  /* ------------------------------------------------------------------
     12. Blink (Type Cursor)
     ------------------------------------------------------------------ */
  @keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
  }

  .type-cursor::after {
    content: '|';
    color: var(--neon-blue);
    animation: blink 1s step-end infinite;
    margin-left: 2px;
  }

  .type-cursor--pink::after {
    color: var(--neon-pink);
  }

  /* ------------------------------------------------------------------
     13. Counter Roll
     ------------------------------------------------------------------ */
  @keyframes counterRoll {
    from {
      transform: translateY(100%);
      opacity: 0;
    }
    to {
      transform: translateY(0);
      opacity: 1;
    }
  }

  .counter-roll {
    display: inline-block;
    overflow: hidden;
  }

  .counter-roll span {
    display: inline-block;
    animation: counterRoll 0.6s ease-out both;
  }

  .counter-roll span:nth-child(1) { animation-delay: 0.05s; }
  .counter-roll span:nth-child(2) { animation-delay: 0.1s; }
  .counter-roll span:nth-child(3) { animation-delay: 0.15s; }
  .counter-roll span:nth-child(4) { animation-delay: 0.2s; }
  .counter-roll span:nth-child(5) { animation-delay: 0.25s; }
  .counter-roll span:nth-child(6) { animation-delay: 0.3s; }

  /* ------------------------------------------------------------------
     Shimmer / Loading
     ------------------------------------------------------------------ */
  @keyframes shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
  }

  .shimmer {
    background: linear-gradient(
      90deg,
      transparent 0%,
      rgba(37, 225, 237, 0.05) 50%,
      transparent 100%
    );
    background-size: 200% 100%;
    animation: shimmer 3s ease-in-out infinite;
  }

  /* ------------------------------------------------------------------
     Neon Flicker
     ------------------------------------------------------------------ */
  @keyframes neonFlicker {
    0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% {
      text-shadow:
        0 0 4px var(--neon-blue-glow),
        0 0 11px var(--neon-blue-glow),
        0 0 19px var(--neon-blue-glow),
        0 0 40px var(--neon-blue),
        0 0 80px var(--neon-blue);
    }
    20%, 24%, 55% {
      text-shadow: none;
    }
  }

  .neon-flicker {
    animation: neonFlicker 4s infinite alternate;
  }

  /* ------------------------------------------------------------------
     Border Flow
     ------------------------------------------------------------------ */
  @keyframes borderFlow {
    to { --border-progress: 100%; }
  }

  /* ------------------------------------------------------------------
     Gradient Hue Shift
     ------------------------------------------------------------------ */
  @keyframes hueShift {
    to { --gradient-hue: 360; }
  }
}

/* ==========================================================================
   LAYER: UTILITIES
   Helper classes — text, spacing, display, performance
   ========================================================================== */

@layer utilities {
  /* --- Text --- */
  .text-neon {
    color: var(--neon-blue);
    text-shadow: 0 0 8px var(--neon-blue-glow);
  }

  .text-neon-pink {
    color: var(--neon-pink);
    text-shadow: 0 0 8px var(--neon-pink-glow);
  }

  .text-warning {
    color: var(--warning-red);
    text-shadow: 0 0 8px var(--warning-red-glow);
  }

  .text-danger {
    color: var(--danger);
    text-shadow: 0 0 8px var(--danger-glow);
  }

  .text-success {
    color: var(--success);
    text-shadow: 0 0 8px var(--success-glow);
  }

  .text-yellow {
    color: var(--neon-yellow);
    text-shadow: 0 0 8px var(--neon-yellow-glow);
  }

  .text-center {
    text-align: center;
  }

  .text-right {
    text-align: right;
  }

  .text-mono {
    font-family: var(--font-mono);
  }

  .text-display {
    font-family: var(--font-display);
  }

  .text-gradient {
    background: var(--gradient-neon);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }

  .text-sm {
    font-size: 0.85rem;
  }

  .text-xs {
    font-size: 0.75rem;
  }

  .text-lg {
    font-size: 1.2rem;
  }

  .text-muted {
    color: var(--text-muted);
  }

  .text-secondary {
    color: var(--text-secondary);
  }

  /* --- Spacing --- */
  .mt-1 { margin-top: var(--space-sm); }
  .mt-2 { margin-top: var(--space-md); }
  .mt-3 { margin-top: var(--space-lg); }
  .mt-4 { margin-top: var(--space-xl); }

  .mb-1 { margin-bottom: var(--space-sm); }
  .mb-2 { margin-bottom: var(--space-md); }
  .mb-3 { margin-bottom: var(--space-lg); }
  .mb-4 { margin-bottom: var(--space-xl); }

  .pt-1 { padding-top: var(--space-sm); }
  .pt-2 { padding-top: var(--space-md); }
  .pt-3 { padding-top: var(--space-lg); }
  .pt-4 { padding-top: var(--space-xl); }

  .pb-1 { padding-bottom: var(--space-sm); }
  .pb-2 { padding-bottom: var(--space-md); }
  .pb-3 { padding-bottom: var(--space-lg); }
  .pb-4 { padding-bottom: var(--space-xl); }

  .p-1 { padding: var(--space-sm); }
  .p-2 { padding: var(--space-md); }
  .p-3 { padding: var(--space-lg); }
  .p-4 { padding: var(--space-xl); }

  /* --- Display --- */
  .hidden {
    display: none !important;
  }

  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .block {
    display: block;
  }

  .inline-block {
    display: inline-block;
  }

  .overflow-hidden {
    overflow: hidden;
  }

  .relative {
    position: relative;
  }

  /* --- Performance --- */
  .cyber-section {
    content-visibility: auto;
    contain-intrinsic-size: auto 800px;
  }

  /* --- Decorative --- */
  .neon-line {
    height: 2px;
    background: var(--gradient-neon);
    border: none;
    opacity: 0.5;
  }

  .neon-line--vertical {
    width: 2px;
    height: 100%;
    background: var(--gradient-neon);
    opacity: 0.5;
  }

  .glow-box {
    box-shadow: var(--shadow-neon-blue);
  }

  .glow-box--pink {
    box-shadow: var(--shadow-neon-pink);
  }

  /* --- Width --- */
  .w-full {
    width: 100%;
  }

  .max-w-prose {
    max-width: 65ch;
  }

  /* --- Border --- */
  .border-neon {
    border: 1px solid var(--border);
  }

  .border-neon-hover:hover {
    border-color: var(--border-hover);
  }

  .rounded-sm { border-radius: var(--radius-sm); }
  .rounded-md { border-radius: var(--radius-md); }
  .rounded-lg { border-radius: var(--radius-lg); }
}

/* ==========================================================================
   LAYER: RESPONSIVE
   Breakpoints, reduced motion, container queries
   ========================================================================== */

@layer responsive {

  /* ------------------------------------------------------------------
     1024px — Tablet landscape
     ------------------------------------------------------------------ */
  @media (max-width: 1024px) {
    .bento-grid {
      grid-template-columns: repeat(2, 1fr);
    }

    .bento-item--span-3 {
      grid-column: span 2;
    }

    .bento-item--span-4 {
      grid-column: span 2;
    }

    .footer-grid {
      grid-template-columns: 1fr 1fr;
      gap: var(--space-xl);
    }

    h1 {
      font-size: clamp(1.8rem, 1.4rem + 2vw, 3rem);
    }

    h2 {
      font-size: clamp(1.4rem, 1.1rem + 1.5vw, 2.4rem);
    }

    .hero-title {
      font-size: clamp(2rem, 1.6rem + 3vw, 4rem);
    }

    .cyber-header-inner {
      padding: var(--space-sm) var(--space-md);
    }

    .stat-value {
      font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.5rem);
    }

    .timeline::before {
      left: 20px;
    }

    .timeline-item {
      width: 100%;
      padding-left: 50px;
      padding-right: 0;
      text-align: left;
    }

    .timeline-item:nth-child(odd) {
      padding-right: 0;
      text-align: left;
    }

    .timeline-item:nth-child(even) {
      margin-left: 0;
      padding-left: 50px;
    }

    .timeline-item::before {
      left: 13px !important;
      right: auto !important;
    }
  }

  /* ------------------------------------------------------------------
     768px — Tablet portrait / Mobile
     ------------------------------------------------------------------ */
  @media (max-width: 768px) {
    .bento-grid {
      grid-template-columns: 1fr;
    }

    .bento-item--span-2,
    .bento-item--span-3,
    .bento-item--span-4 {
      grid-column: span 1;
    }

    .footer-grid {
      grid-template-columns: 1fr;
      gap: var(--space-lg);
    }

    .header-nav {
      display: none;
      position: absolute;
      top: 100%;
      left: 0;
      right: 0;
      flex-direction: column;
      background: rgba(0, 0, 0, 0.95);
      backdrop-filter: blur(20px);
      border-top: 1px solid var(--border);
      padding: var(--space-md);
    }

    .header-nav.open {
      display: flex;
    }

    .mobile-menu-toggle {
      display: flex;
    }

    .header-status {
      margin-left: 0;
      margin-top: var(--space-sm);
    }

    .cyber-hero {
      min-height: 80dvh;
      padding: var(--space-2xl) var(--space-md);
    }

    .hero-title {
      font-size: clamp(1.8rem, 1.5rem + 2vw, 3rem);
    }

    .hero-subtitle {
      font-size: clamp(0.9rem, 0.8rem + 0.5vw, 1.2rem);
    }

    .hero-actions {
      flex-direction: column;
      width: 100%;
      max-width: 300px;
    }

    .hero-actions .btn-cyber,
    .hero-actions .btn-neon {
      width: 100%;
      justify-content: center;
    }

    .section-header {
      flex-wrap: wrap;
    }

    .section-counter {
      flex-wrap: wrap;
    }

    .onion-display {
      flex-wrap: wrap;
      font-size: 0.7rem;
    }

    .onion-display .copy-btn {
      width: 100%;
      text-align: center;
      margin-top: var(--space-sm);
    }

    .cyber-table {
      display: block;
      overflow-x: auto;
    }

    .glass-card {
      padding: var(--space-lg);
    }

    .stat-card {
      padding: var(--space-lg);
    }

    .footer-bottom {
      flex-direction: column;
      gap: var(--space-sm);
      text-align: center;
    }

    .crypto-widget {
      flex-direction: column;
      text-align: center;
    }

    .aurora-blob:nth-child(1) { width: 300px; height: 300px; }
    .aurora-blob:nth-child(2) { width: 250px; height: 250px; }
    .aurora-blob:nth-child(3) { width: 200px; height: 200px; }
  }

  /* ------------------------------------------------------------------
     480px — Small mobile
     ------------------------------------------------------------------ */
  @media (max-width: 480px) {
    .container,
    .container-wide,
    .container-narrow {
      padding-inline: var(--space-md);
    }

    .hero-title {
      font-size: clamp(1.5rem, 1.2rem + 2vw, 2.2rem);
    }

    .section-counter-number {
      font-size: 2rem;
    }

    .btn-cyber,
    .btn-neon {
      padding: 0.6em 1.2em;
      font-size: 0.8rem;
    }

    .glass-card {
      padding: var(--space-md);
      border-radius: var(--radius-md);
    }

    .code-block pre {
      padding: var(--space-md);
      font-size: 0.75rem;
    }

    .accordion-trigger {
      padding: var(--space-sm) var(--space-md);
      font-size: 0.85rem;
    }

    .accordion-content {
      padding: 0 var(--space-md) var(--space-md);
    }
  }

  /* ------------------------------------------------------------------
     Reduced Motion
     ------------------------------------------------------------------ */
  @media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }

    .aurora-blob {
      animation: none !important;
      opacity: 0.15;
    }

    .cyber-bg::after {
      animation: none !important;
    }

    .glitch-text::before,
    .glitch-text::after {
      animation: none !important;
    }

    .gradient-border-card::before {
      animation: none !important;
      background: var(--gradient-neon);
    }

    .scroll-reveal,
    .scroll-reveal-left,
    .scroll-reveal-right,
    .scroll-reveal-scale,
    .word-reveal span,
    .glass-card,
    .stat-card,
    .timeline-item,
    .section-header {
      animation: none !important;
      opacity: 1 !important;
      transform: none !important;
    }

    .type-cursor::after {
      animation: none !important;
      opacity: 1;
    }

    .neon-flicker {
      animation: none !important;
    }

    .status-badge::before {
      animation: none !important;
    }
  }

  /* ------------------------------------------------------------------
     Prefers Color Scheme (light override — minimal)
     ------------------------------------------------------------------ */
  @media (prefers-color-scheme: light) {
    /* Intentionally empty — darknet mirror is always dark */
  }

  /* ------------------------------------------------------------------
     High contrast mode
     ------------------------------------------------------------------ */
  @media (prefers-contrast: high) {
    :root {
      --border: rgba(37, 225, 237, 0.4);
      --border-hover: rgba(37, 225, 237, 0.8);
      --text-muted: #8080A0;
    }

    .glass-card,
    .stat-card,
    .accordion-item,
    .crypto-widget {
      border-width: 2px;
    }

    .aurora-blob {
      opacity: 0.1;
    }
  }

  /* ------------------------------------------------------------------
     Print
     ------------------------------------------------------------------ */
  @media print {
    .aurora-bg,
    .cyber-bg,
    .cyber-header,
    .mobile-menu-toggle {
      display: none !important;
    }

    body {
      color: #000;
      background: #fff;
    }

    .glass-card,
    .stat-card {
      background: #f5f5f5;
      border: 1px solid #ccc;
      box-shadow: none;
      backdrop-filter: none;
    }

    .text-neon,
    .text-neon-pink,
    .hero-title {
      color: #000 !important;
      -webkit-text-fill-color: #000 !important;
      text-shadow: none !important;
    }
  }
}
