/* Fleetkeur redesign layer — full-bleed shader hero + pinned canal-draw scrub.
   Loads AFTER styles.css; overrides only the hero + adds canal/live blocks.
   Aesthetic: brutalist amber-on-charcoal, ~3 colours, type directly on canvas. */

/* ── FULL-BLEED SHADER HERO ─────────────────────────────────────────── */
.hero-canvas{
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 90vh;            /* reserve height → no layout shift on load */
  overflow: hidden;
  background:
    radial-gradient(130% 100% at 18% 12%, rgba(255,178,55,0.10), transparent 55%),
    var(--ink);                /* JS-off / no-WebGL fallback: still intentional */
  border-bottom: 1px solid var(--hair);
}
.hero-shader{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  display: block; z-index: 0;
}
.hero-veil{
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(14,14,16,0.30) 0%, rgba(14,14,16,0.10) 32%, rgba(14,14,16,0.82) 100%),
    radial-gradient(120% 90% at 12% 30%, transparent 34%, rgba(14,14,16,0.55) 100%);
}
.hero-statusbar{
  position: relative; z-index: 2;
  background: rgba(20,20,24,0.72);
  backdrop-filter: blur(6px);
}
.hero-copy2{
  position: relative; z-index: 2;
  flex: 1;
  display: flex; flex-direction: column; justify-content: center;
  width: 100%; max-width: 1240px; margin: 0 auto;
  padding: clamp(40px,7vw,90px) clamp(20px,4vw,48px) clamp(56px,9vh,120px);
}
.hero-copy2 .label{ margin: 0 0 18px; color: var(--amber) }
.hero-canvas h1{
  font-size: clamp(40px, 8vw, 108px);
  line-height: 0.96;
  letter-spacing: -0.015em;
  text-transform: uppercase;
  max-width: 16ch;
  margin: 0 0 26px;
  text-shadow: 0 2px 44px rgba(0,0,0,0.55);
}
.hero-sub2{
  color: var(--paper);
  font-size: clamp(14px, 1.5vw, 17px);
  line-height: 1.6;
  max-width: 46ch;
  margin: 0 0 32px;
  text-shadow: 0 1px 18px rgba(0,0,0,0.6);
}
.split-char{ display: inline-block }
/* keep char-split H1 from breaking mid-word: each word is a nowrap group */
.hero-canvas h1 .hw{ white-space: nowrap }

/* ── LIVE block (ticker + van grid, engine preserved) ───────────────── */
.live-block{
  max-width: 1240px; margin: 0 auto;
  padding: clamp(40px,5vw,72px) clamp(20px,4vw,48px);
  border-bottom: 1px dashed var(--hair);
}
.livewrap{
  display: grid; grid-template-columns: 1fr 1.5fr; gap: 0;
  border: 1px solid var(--hair); background: var(--console);
}
.livewrap .ticker-wrap{ background: var(--ink-2) }
.livewrap .van-grid{ border-left: 1px solid var(--hair) }
@media (max-width: 820px){
  .livewrap{ grid-template-columns: 1fr }
  .livewrap .ticker-wrap{ border-right: 0; border-bottom: 1px solid var(--hair) }
  .livewrap .van-grid{ border-left: 0; flex-direction: row; flex-wrap: wrap }
  .livewrap .van{ flex: 1 1 220px }
}

/* ── PINNED CANAL-DRAW SCRUB ────────────────────────────────────────── */
.canal{
  position: relative;
  background:
    linear-gradient(90deg, rgba(255,178,55,0.04) 1px, transparent 1px) 0 0 / 64px 64px,
    linear-gradient(0deg,  rgba(255,178,55,0.04) 1px, transparent 1px) 0 0 / 64px 64px,
    var(--ink);
  border-top: 1px dashed var(--hair);
  border-bottom: 1px dashed var(--hair);
}
.canal-pin{
  min-height: 100vh;
  display: flex; flex-direction: column; justify-content: center;
  max-width: 1240px; margin: 0 auto;
  padding: clamp(40px,6vw,80px) clamp(20px,4vw,48px);
}
.canal-svg{ width: 100%; height: auto; overflow: visible }
.canal-path{
  fill: none;
  stroke: var(--amber);
  stroke-width: 3;
  stroke-linecap: round;
  filter: drop-shadow(0 0 10px rgba(255,178,55,0.35));
}
.canal-node{ fill: var(--ink); stroke: var(--amber); stroke-width: 3 }
.canal-node-core{ fill: var(--amber) }
.canal-label{
  fill: var(--paper);
  font-family: var(--type-mono);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.canal-caption{
  margin: clamp(20px,3vw,36px) 0 0;
  text-align: center;
  color: var(--amber-dim);
}
@media (max-width: 640px){
  .canal-label{ font-size: 15px }
  .canal-path{ stroke-width: 4 }
}

/* ── reduced motion / no-WebGL: static, fully legible ───────────────── */
@media (prefers-reduced-motion: reduce){
  .hero-shader{ display: none }
  .hero-canvas{
    background:
      radial-gradient(130% 100% at 18% 12%, rgba(255,178,55,0.14), transparent 55%),
      linear-gradient(180deg, #16161a, var(--ink));
  }
  .canal-pin{ min-height: auto }
}
