/* degen / number-go-up
   The meme, literally: the page is one chart going vertical. Pitch black, a faint grid,
   a fixed layer of giant green candles climbing to the top-right corner behind every
   pixel (a red one now and then, for realism), a crosshair on the pointer, the ticker
   tape along the top. The headline screams up the screen, each word bigger and higher
   than the last. The hero's floor: a trading-pit badge (photo + the ticker in huge
   letters, as pit badges carry their acronym) and green order buttons.
   Sections are candles: each hangs on a glowing green body with wicks, each a step up
   and to the right of the last. Type: tall condensed caps that shout + a tabular mono.
   Polarity: black + terminal green; nothing else in the catalog is a price chart. */

/* The shouting face: Impact where the machine has it, else the heaviest local sans; one
   family at one weight, so no browser fakes a bold on top of it. Local fonts only. */
@font-face { font-family: "NGU Shout"; src: local("Impact"), local("Haettenschweiler"), local("Arial Narrow Bold"), local("ArialNarrow-Bold"), local("Liberation Sans Narrow Bold"), local("LiberationSansNarrow-Bold"), local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold"), local("LiberationSans-Bold"), local("FreeSans Bold"), local("FreeSansBold"); }

:root {
  --ng-green: #16ff6e;
  --ng-green-2: #00c853;
  --ng-green-dk: #03351a;
  --ng-red: #ff2e4d;
  --ng-black: #020503;
  --ng-panel: rgb(3 10 6 / 0.86);
  --ng-white: #effff4;
  --ng-shout: "NGU Shout", Impact, Haettenschweiler, "Arial Narrow Bold", "Franklin Gothic Bold", "Helvetica Neue", "Liberation Sans", Arial, sans-serif;
  --ng-mono: "SF Mono", "Cascadia Mono", Consolas, "Liberation Mono", "DejaVu Sans Mono", monospace;
  --ng-tape-h: 42px;
  --ng-step: 0px;

  --v-bg: var(--ng-black);
  --v-fg: var(--ng-white);
  --v-soft: rgb(239 255 244 / 0.82);
  --v-faint: rgb(239 255 244 / 0.56);
  --v-line: rgb(22 255 110 / 0.2);
  --v-line-strong: rgb(22 255 110 / 0.5);
  --v-surface: var(--ng-panel);
  --v-surface-2: #0a1f12;
  --v-card-bg: var(--ng-panel);
  --v-accent: var(--ng-green);
  --v-accent-text: var(--ng-green);
  --v-on-accent: #001a09;
  --v-secondary: var(--ng-red);
  --v-seg-1: var(--ng-green);
  --v-seg-2: #0d7a3a;
  --v-seg-3: var(--wl-accent);
  --v-seg-4: #b6ffcf;
  --v-seg-5: var(--ng-red);
  --v-seg-6: #3a5a45;
  --v-font-body: var(--ng-mono);
  --v-font-display: var(--ng-shout);
  --v-font-mono: var(--ng-mono);
  --v-display-weight: 400;
  --v-display-tracking: 0;
  --v-display-case: uppercase;
  --v-display-lh: 0.88;
  --v-title-size: clamp(3rem, 7.4vw, 6.6rem);
  --v-body-size: clamp(0.95rem, 0.3vw + 0.88rem, 1.06rem);
  --v-radius: 2px;
  --v-radius-sm: 2px;
  --v-radius-lg: 4px;
  --v-border: 1px solid var(--v-line-strong);
  --v-maxw: 1080px;
  --v-sec-gap: clamp(60px, 8vw, 120px);
  --v-ease: cubic-bezier(0.2, 0.8, 0.2, 1);

  --wl-label-lore: "Thesis";
  --wl-label-features: "Catalysts";
  --wl-label-supply: "Float";
  --wl-label-flow: "Entry";
  --wl-label-timeline: "Tape";
  --wl-label-comparison: "Spread";
  --wl-label-stats: "Fundamentals";
  --wl-label-tweet: "Alpha leak";
  --wl-label-gallery: "Screenshots";
  --wl-label-facts: "Confirmed";
  --wl-label-quotes: "Heard in the pit";
  --wl-label-faq: "The pit asks";
  --wl-label-access: "Buy";
}

html { background: var(--ng-black); color-scheme: dark; }
body {
  background:
    linear-gradient(rgb(22 255 110 / 0.07) 1px, transparent 1px) 0 0 / 100% 64px,
    linear-gradient(90deg, rgb(22 255 110 / 0.07) 1px, transparent 1px) 0 0 / 64px 100%,
    radial-gradient(ellipse 80% 60% at 85% 10%, #062a14, var(--ng-black) 70%);
  background-attachment: fixed;
}

/* ------------------------------------------------------------ the chart behind everything */
.ng-chart { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.ng-chart__svg { position: absolute; left: 0; top: 8%; width: 100%; height: 90%; overflow: visible; }
.ng-chart__glow { position: absolute; right: -10%; top: -20%; width: 60%; height: 60%; background: radial-gradient(circle, rgb(22 255 110 / 0.22), transparent 65%); animation: ng-throb 1.6s ease-in-out infinite; }
.ng-c { transform-box: fill-box; transform-origin: 50% 100%; animation: ng-grow 0.34s cubic-bezier(0.3, 1.4, 0.5, 1) both; animation-delay: calc(var(--i) * 26ms); }
.ng-c__body { fill: var(--ng-green); }
.ng-c__wick { stroke: var(--ng-green); stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.ng-c--down .ng-c__body { fill: var(--ng-red); }
.ng-c--down .ng-c__wick { stroke: var(--ng-red); }
.ng-chart__svg g { opacity: 0.72; }
.ng-c--last .ng-c__body { animation: ng-last 0.9s ease-in-out infinite; }
.ng-line { fill: none; stroke: #b6ffcf; stroke-width: 2.4; vector-effect: non-scaling-stroke; opacity: 0.5; stroke-dasharray: var(--len) var(--len); stroke-dashoffset: var(--len); animation: ng-draw 1.4s ease-out 0.1s forwards; filter: drop-shadow(0 0 6px var(--ng-green)); }

.ng-cross { position: fixed; inset: 0; z-index: 1; pointer-events: none; opacity: 0; transition: opacity 0.2s; }
.ng-cross.is-on { opacity: 1; }
.ng-cross__h { position: absolute; left: 0; right: 0; top: var(--y, 50%); border-top: 1px dashed rgb(182 255 207 / 0.6); }
.ng-cross__v { position: absolute; top: 0; bottom: 0; left: var(--x, 50%); border-left: 1px dashed rgb(182 255 207 / 0.6); }
.ng-cross__tag { position: absolute; right: 0; top: var(--y, 50%); translate: 0 -50%; padding: 4px 10px 4px 14px; background: var(--ng-green); color: #001a09; font: 700 0.8rem/1 var(--ng-mono); clip-path: polygon(10px 0, 100% 0, 100% 100%, 10px 100%, 0 50%); }

.ng-page { z-index: 2; }

/* ------------------------------------------------------------ ticker tape */
.ng-tape { position: sticky; top: 0; z-index: 40; height: var(--ng-tape-h); display: flex; align-items: stretch; background: #000; border-bottom: 2px solid var(--ng-green); box-shadow: 0 0 24px rgb(22 255 110 / 0.3); }
.ng-tape__sym { flex: none; display: flex; align-items: center; gap: 8px; padding: 0 16px; background: var(--ng-green); color: #001a09; text-decoration: none; font: 400 1.35rem/1 var(--ng-shout); letter-spacing: 0.02em; }
.ng-tape__logo { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px #001a09; }
.ng-tape__up { font-size: 0.9rem; animation: ng-blink 0.7s steps(1, end) infinite; }
.ng-tape__run { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; color: var(--ng-green); font: 700 0.95rem/1 var(--ng-mono); text-transform: uppercase; letter-spacing: 0.06em; text-shadow: 0 0 8px rgb(22 255 110 / 0.7); }
.ng-tape__run .wl-marquee__track { animation-duration: calc(var(--wl-marquee-s, 40s) * 0.55); }
.ng-tape__run .wl-marquee__item::before { content: "\25B2  "; white-space: pre; color: var(--ng-green); }
.ng-tape__run .wl-marquee__item:nth-child(4n+3)::before { content: "\25B2\25B2  "; }

/* ------------------------------------------------------------ the open */
.ng-hero {
  position: relative;
  min-height: calc(100svh - var(--ng-tape-h));
  display: grid; grid-template-rows: auto 1fr auto; align-content: stretch;
  padding: clamp(18px, 3vh, 34px) clamp(16px, 4vw, 60px) clamp(18px, 3vh, 30px);
  overflow: hidden;
}
.ng-kicker {
  justify-self: start; margin: 0;
  padding: 6px 12px; background: var(--ng-red); color: #fff;
  font: 400 clamp(1.1rem, 1.8vw, 1.5rem)/1 var(--ng-shout); text-transform: uppercase; letter-spacing: 0.04em;
  animation: ng-blink 1.2s steps(1, end) infinite;
}
.ng-scream {
  align-self: center; margin: 0; max-width: 100%;
  display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 0.16em; row-gap: 0.04em;
  font: 400 clamp(3.4rem, 8.2vw, 8.4rem)/0.9 var(--ng-shout);
  text-transform: uppercase; letter-spacing: -0.005em;
  transform: rotate(-7deg) scaleY(1.18); transform-origin: 0 100%;
  padding: 0.3em 0 0.16em;
}
.ng-scream .wl-w {
  --k: min(var(--i, 0), 6);
  font-size: calc(1em + var(--k) * 0.08em);
  color: var(--ng-green);
  -webkit-text-stroke: 2px #001a09; paint-order: stroke fill;
  text-shadow: 0 0 18px rgb(22 255 110 / 0.75), 5px 5px 0 #001a09;
  animation: ng-slam 0.5s cubic-bezier(0.3, 1.6, 0.5, 1) both; animation-delay: calc(var(--i, 0) * 110ms + 250ms);
}
.ng-scream .wl-w:nth-child(3n+2) { color: var(--ng-white); }
.ng-hero[data-ng-len="l"] .ng-scream { font-size: clamp(2.8rem, 6.6vw, 6.6rem); }
.ng-hero[data-ng-len="xl"] .ng-scream { font-size: clamp(2.3rem, 5vw, 5rem); }

.ng-floor { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: end; gap: clamp(18px, 3vw, 40px); max-width: 58rem; }
.ng-badge {
  position: relative; width: clamp(150px, 15vw, 196px);
  padding: 22px 12px 12px; border-radius: 10px;
  background: linear-gradient(180deg, #ffe600, #ffd000); color: #111;
  box-shadow: 0 0 0 3px #111, 8px 10px 0 rgb(0 0 0 / 0.6);
  rotate: -4deg; text-align: center;
}
.ng-badge__clip { position: absolute; left: 50%; top: -14px; width: 46px; height: 26px; margin-left: -23px; border-radius: 6px; background: linear-gradient(180deg, #e8e8e8, #8a8a8a); box-shadow: inset 0 -3px 0 rgb(0 0 0 / 0.3); }
.ng-badge__clip::after { content: ""; position: absolute; left: 50%; top: 8px; width: 22px; height: 6px; margin-left: -11px; border-radius: 3px; background: #333; }
.ng-badge__photo { position: relative; aspect-ratio: 1; overflow: hidden; background: #111; border: 3px solid #111; }
.ng-badge__photo .wl-hero-img { width: 100%; height: 100%; object-fit: cover; }
.ng-badge__photo.wl-media--none { display: none; }
.ng-badge__photo.wl-media--post { aspect-ratio: auto; background: #fff; }
.ng-badge .wl-post--giant { padding: 8px; background: #fff; color: #111; border: 0; border-radius: 0; box-shadow: none; text-align: left; }
.ng-badge .wl-post--giant .wl-post__text { font: 700 0.8rem/1.3 var(--ng-mono); letter-spacing: 0; }
.ng-badge .wl-post__meta:empty { display: none; }
.ng-badge:has(.wl-media--post) { width: clamp(220px, 24vw, 300px); }
.ng-badge__sym { margin: 8px 0 0; max-width: 100%; font: 400 clamp(2.6rem, 4.2vw, 3.6rem)/0.9 var(--ng-shout); letter-spacing: 0.01em; overflow: hidden; }
.ng-badge__name { margin: 2px 0 0; font: 700 0.72rem/1.2 var(--ng-mono); text-transform: uppercase; letter-spacing: 0.1em; overflow-wrap: anywhere; }

.ng-order { display: grid; gap: 16px; padding: 18px 20px; background: var(--ng-panel); border: 1px solid var(--v-line-strong); border-left: 6px solid var(--ng-green); box-shadow: 0 0 40px rgb(0 0 0 / 0.6); }
.ng-sub { margin: 0; max-width: 40rem; font: 400 clamp(0.95rem, 1.1vw, 1.05rem)/1.55 var(--ng-mono); color: var(--v-soft); }
.ng-cta { display: flex; flex-wrap: wrap; gap: 10px; }
.ng-cta .wl-btn {
  padding: 12px 18px 11px; border: 0; border-radius: 2px;
  background: transparent; color: var(--ng-green);
  box-shadow: inset 0 0 0 2px var(--ng-green);
  font: 400 1.3rem/1 var(--ng-shout); text-transform: uppercase; letter-spacing: 0.04em;
}
.ng-cta .wl-btn:hover { background: rgb(22 255 110 / 0.14); transform: translateY(-3px); border: 0; }
.ng-cta .wl-btn--primary { background: var(--ng-green); color: #001a09; box-shadow: 0 0 0 2px var(--ng-green), 0 0 26px rgb(22 255 110 / 0.7); font-size: 1.55rem; padding: 12px 22px 11px; }
.ng-cta .wl-btn--primary:hover { background: #7dffad; box-shadow: 0 0 0 2px #7dffad, 0 0 40px rgb(22 255 110 / 0.9); }
.ng-cta .wl-btn__ca { font-family: var(--ng-mono); font-size: 0.62em; letter-spacing: 0; opacity: 0.8; }

.ng-last {
  position: absolute; right: 0; top: clamp(90px, 18vh, 170px); margin: 0;
  padding: 8px 16px 8px 26px;
  background: var(--ng-green); color: #001a09;
  font: 400 clamp(1.4rem, 2.4vw, 2.2rem)/1 var(--ng-shout); letter-spacing: 0.02em;
  clip-path: polygon(18px 0, 100% 0, 100% 100%, 18px 100%, 0 50%);
  box-shadow: 0 0 30px rgb(22 255 110 / 0.8);
  animation: ng-climb 2.8s ease-in-out infinite alternate;
}
.ng-last__arrow { font-size: 0.7em; vertical-align: 0.12em; }

/* ------------------------------------------------------------ sections: candles, stepping up */
.ng-flow { padding-bottom: clamp(70px, 9vw, 130px); }
.ng-flow .wl-sec { padding-left: clamp(16px, 4vw, 60px); padding-right: clamp(16px, 4vw, 60px); }
.ng-flow .wl-sec__inner {
  position: relative; max-width: var(--v-maxw);
  margin-left: calc(var(--ng-step) + clamp(22px, 3vw, 44px)); margin-right: auto;
  padding: clamp(24px, 3.4vw, 44px) clamp(20px, 3vw, 42px);
  background: var(--ng-panel);
  border: 1px solid var(--v-line);
  box-shadow: 0 30px 60px -20px #000;
}
.ng-flow .wl-sec__inner::before {
  content: ""; position: absolute; left: calc(-1 * clamp(22px, 3vw, 44px)); top: 12px; bottom: 12px; width: clamp(12px, 1.4vw, 18px);
  background: linear-gradient(180deg, #7dffad, var(--ng-green) 30%, var(--ng-green-2));
  box-shadow: 0 0 22px rgb(22 255 110 / 0.7);
}
.ng-flow .wl-sec__inner::after {
  content: ""; position: absolute; left: calc(-1 * clamp(22px, 3vw, 44px) + clamp(12px, 1.4vw, 18px) / 2 - 1px); top: -34px; bottom: -22px; width: 2px;
  background: var(--ng-green); z-index: -1;
}
.ng-flow .wl-sec__head { max-width: none; margin-bottom: clamp(22px, 3vw, 36px); }
.ng-flow .wl-kicker { margin: 0 0 12px; gap: 10px; color: var(--ng-green); font: 700 0.8rem/1 var(--ng-mono); letter-spacing: 0.18em; }
.ng-flow .wl-kicker .wl-ord { opacity: 1; padding: 3px 6px; background: var(--ng-green); color: #001a09; }
.ng-flow .wl-kicker .wl-ord::before { content: "\25B2 "; }
.ng-flow .wl-sec__title { color: var(--ng-white); transform: scaleY(1.12); transform-origin: 0 100%; text-shadow: 0 0 24px rgb(22 255 110 / 0.35); }

/* thesis */
.ng-flow .wl-lore { max-width: 50rem; }
.ng-flow .wl-lore__lead { font: 400 clamp(1.6rem, 3vw, 2.6rem)/1.02 var(--ng-shout); text-transform: uppercase; color: var(--ng-green); letter-spacing: 0.005em; }
.ng-flow .wl-lore__p { color: var(--v-soft); }

/* catalysts: a staircase of candles */
.ng-flow .wl-features { grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); align-items: end; gap: clamp(12px, 1.6vw, 20px); padding-top: 70px; }
.ng-flow .wl-feature {
  position: relative; min-height: 220px; padding: 22px 20px 20px;
  background: linear-gradient(180deg, rgb(22 255 110 / 0.2), rgb(22 255 110 / 0.06));
  border: 2px solid var(--ng-green); border-radius: 0;
  translate: 0 calc(var(--i, 0) * -34px);
  box-shadow: 0 0 30px rgb(22 255 110 / 0.18);
}
.ng-flow .wl-feature::before { content: ""; position: absolute; left: 50%; top: -30px; height: 28px; border-left: 2px solid var(--ng-green); }
.ng-flow .wl-feature::after { content: ""; position: absolute; left: 50%; bottom: -24px; height: 22px; border-left: 2px solid var(--ng-green); }
.ng-flow .wl-feature:hover { transform: translateY(-6px); border-color: #7dffad; }
.ng-flow .wl-feature .wl-ord { top: 16px; right: 16px; color: var(--ng-green); font-weight: 700; }
.ng-flow .wl-feature__icon { width: 46px; height: 46px; margin-bottom: 18px; border-radius: 0; background: var(--ng-green); color: #001a09; }
.ng-flow .wl-feature__icon .wl-glyph { width: 24px; height: 24px; stroke-width: 2.4; }
.ng-flow .wl-feature__title { font: 400 clamp(1.7rem, 2.4vw, 2.2rem)/0.95 var(--ng-shout); text-transform: uppercase; color: var(--ng-white); }
.ng-flow .wl-feature__text { color: var(--v-soft); }

/* float */
.ng-flow .wl-donut__track { stroke: #0a1f12; }
.ng-flow .wl-donut__ticks line { stroke: rgb(22 255 110 / 0.4); }
.ng-flow .wl-donut__value { font-family: var(--ng-shout); font-weight: 400; font-size: clamp(1.5rem, 3.6vw, 2.4rem); color: var(--ng-green); }
.ng-flow .wl-legend__item { border-bottom: 1px dashed var(--v-line-strong); font-family: var(--ng-mono); }
.ng-flow .wl-legend__value { font: 400 1.6rem/1 var(--ng-shout); color: var(--ng-green); }
.ng-flow .wl-ring__track { stroke: #0a1f12; }
.ng-flow .wl-ring__fill { stroke: var(--ng-green); }
.ng-flow .wl-ring__value { font-family: var(--ng-shout); font-weight: 400; color: var(--ng-green); }
.ng-flow .wl-stats { background: var(--v-line); border-color: var(--v-line-strong); border-radius: 0; }
.ng-flow .wl-stat { background: #020a05; }
.ng-flow .wl-stat__label { color: var(--ng-green); }
.ng-flow .wl-stat__value { font-family: var(--ng-shout); font-weight: 400; }
.ng-flow .wl-node__card { background: #020a05; border-color: var(--v-line-strong); border-radius: 0; }
.ng-flow .wl-node__card .wl-ord { border-radius: 0; }
.ng-flow .wl-node__title { font: 400 1.6rem/1 var(--ng-shout); text-transform: uppercase; }
.ng-flow .wl-bar__track { border-radius: 0; height: 22px; }
.ng-flow .wl-bar__bg { fill: #0a1f12; }
.ng-flow .wl-bar__value { font-family: var(--ng-shout); font-weight: 400; color: var(--ng-green); }
.ng-flow .wl-table-wrap { border-radius: 0; }
.ng-flow .wl-table thead th { color: var(--ng-green); }

/* tape (timeline) */
.ng-flow .wl-milestones { max-width: none; gap: 0; }
.ng-flow .wl-milestones::before { display: none; }
.ng-flow .wl-ms { grid-template-columns: 40px minmax(0, 1fr); gap: 16px; padding: 16px 0; border-bottom: 1px dashed var(--v-line-strong); }
.ng-flow .wl-ms__dot { width: 40px; height: 40px; background: transparent; border-radius: 0; }
.ng-flow .wl-ms__dot > * { display: none; }
.ng-flow .wl-ms__dot::before { content: "\25B2"; display: grid; place-items: center; width: 40px; height: 40px; background: var(--ng-green); color: #001a09; font-size: 1.1rem; }
.ng-flow .wl-ms:not(.wl-ms--done) .wl-ms__dot::before { background: transparent; color: var(--ng-green); box-shadow: inset 0 0 0 2px var(--ng-green); animation: ng-blink 1s steps(1, end) infinite; }
.ng-flow .wl-ms__when { color: var(--ng-green); font-weight: 700; }
.ng-flow .wl-ms__title { font: 400 clamp(1.6rem, 2.4vw, 2.1rem)/1 var(--ng-shout); text-transform: uppercase; }

/* alpha leak (the post) */
.ng-flow .wl-post { background: #020a05; border: 2px solid var(--ng-green); border-radius: 0; box-shadow: 0 0 40px rgb(22 255 110 / 0.2); }
.ng-flow .wl-post__text { font-family: var(--ng-mono); }
.ng-flow .wl-post__meta:empty { display: none; }
.ng-flow .wl-post__avatar--initial { border-radius: 0; }

/* screenshots */
.ng-flow .wl-shot { border-radius: 0; border: 2px solid var(--ng-green); }
.ng-flow .wl-shot::after { content: "\25B2"; position: absolute; right: 10px; top: 8px; color: var(--ng-green); font-size: 1.4rem; text-shadow: 0 0 10px #000; }
.ng-flow .wl-shot__caption { border-radius: 0; background: rgb(0 0 0 / 0.8); color: var(--ng-green); font-family: var(--ng-mono); backdrop-filter: none; left: 0; right: 0; bottom: 0; }

/* confirmed */
.ng-flow .wl-facts { max-width: none; gap: 0; }
.ng-flow .wl-fact { grid-template-columns: 36px 1fr; padding: 14px 0; border: 0; border-bottom: 1px dashed var(--v-line-strong); border-radius: 0; background: none; font: 400 clamp(1.4rem, 2.2vw, 1.9rem)/1.05 var(--ng-shout); text-transform: uppercase; letter-spacing: 0.01em; }
.ng-flow .wl-fact__mark { border-radius: 0; }

/* heard in the pit */
.ng-flow .wl-quotes { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.ng-flow .wl-quote { padding: 0; background: none; border: 0; border-radius: 0; max-width: 46rem; }
.ng-flow .wl-quote:nth-child(even) { justify-self: end; text-align: right; }
.ng-flow .wl-quote::before { content: none; }
.ng-flow .wl-quote__text { margin: 0 0 6px; font: 400 clamp(2rem, 4vw, 3.4rem)/0.95 var(--ng-shout); text-transform: uppercase; color: var(--ng-white); }
.ng-flow .wl-quote:nth-child(3n+1) .wl-quote__text { color: var(--ng-green); }
.ng-flow .wl-quote__who { color: var(--ng-green); font-weight: 700; }

/* the pit asks */
.ng-flow .wl-faq { max-width: none; gap: 0; }
.ng-flow .wl-qa { background: none; border: 0; border-bottom: 1px dashed var(--v-line-strong); border-radius: 0; }
.ng-flow .wl-qa__q { padding: 18px 0; font: 400 clamp(1.4rem, 2.2vw, 1.9rem)/1.05 var(--ng-shout); text-transform: uppercase; }
.ng-flow .wl-qa__q > span:first-child::before { content: "Q\25B2  "; white-space: pre; color: var(--ng-green); }
.ng-flow .wl-qa__a { padding: 0 0 18px; }

/* buy */
.ng-flow .wl-sec--access .wl-sec__inner { background: linear-gradient(135deg, rgb(22 255 110 / 0.22), rgb(3 10 6 / 0.9) 60%); border-color: var(--ng-green); }
.ng-flow .wl-sec--access .wl-sec__title { color: var(--ng-green); font-size: clamp(4rem, 12vw, 10rem); }
.ng-flow .wl-access { max-width: none; }
.ng-flow .wl-ca { border: 2px solid var(--ng-green); border-radius: 0; background: #000; }
.ng-flow .wl-ca__label { color: var(--ng-green); font-weight: 700; }
.ng-flow .wl-ca__value { font-size: clamp(0.8rem, 1.6vw, 1.1rem); }
.ng-flow .wl-copy { border-radius: 0; font: 400 1.3rem/1 var(--ng-shout); text-transform: uppercase; box-shadow: 0 0 24px rgb(22 255 110 / 0.7); }
.ng-flow .wl-link, .ng-foot .wl-link { border-radius: 0; border-color: var(--ng-green); background: #000; color: var(--ng-green); font-family: var(--ng-mono); }
.ng-flow .wl-link:hover, .ng-foot .wl-link:hover { border-color: #7dffad; background: rgb(22 255 110 / 0.15); }

/* ------------------------------------------------------------ foot */
.ng-foot { position: relative; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 22px; padding: 30px 20px 40px; background: #000; border-top: 2px solid var(--ng-green); text-align: center; }
.ng-foot__up { margin: 0; color: var(--ng-green); font-size: 1.4rem; letter-spacing: 0.2em; animation: ng-blink 0.8s steps(1, end) infinite; }
.ng-foot__name { margin: 0; font: 400 1.8rem/1 var(--ng-shout); text-transform: uppercase; }

/* ------------------------------------------------------------ motion */
@keyframes ng-grow { from { transform: scaleY(0); opacity: 0; } }
@keyframes ng-draw { to { stroke-dashoffset: 0; } }
@keyframes ng-last { 50% { fill: #b6ffcf; } }
@keyframes ng-throb { 50% { opacity: 0.55; transform: scale(1.1); } }
@keyframes ng-blink { 50% { opacity: 0.25; } }
@keyframes ng-slam { from { opacity: 0; transform: translateY(0.7em) scale(1.8); } }
@keyframes ng-climb { from { transform: translateY(40px); } to { transform: translateY(-20px); } }

/* ------------------------------------------------------------ phone */
@media (max-width: 860px) {
  .ng-hero { min-height: 0; grid-template-rows: auto auto auto; gap: 14px; padding-top: 18px; }
  .ng-scream, .ng-hero[data-ng-len] .ng-scream { font-size: clamp(2.8rem, 14vw, 4.4rem); margin: 40px 0 26px; }
  .ng-hero[data-ng-len="xl"] .ng-scream { font-size: clamp(2.2rem, 10vw, 3.2rem); }
  .ng-scream .wl-w { font-size: calc(1em + min(var(--i, 0), 3) * 0.06em); }
  .ng-floor { grid-template-columns: minmax(0, 1fr); justify-items: center; }
  .ng-badge { width: 170px; }
  .ng-order { width: 100%; }
  .ng-last { top: 70px; font-size: 1.2rem; }
  .ng-flow .wl-sec__inner { margin-left: 22px; }
  .ng-flow .wl-feature { translate: none; min-height: 0; }
  .ng-flow .wl-features { padding-top: 30px; row-gap: 56px; }
  .ng-flow .wl-quote:nth-child(even) { justify-self: start; text-align: left; }
}
