/* CVL design tokens — voxel-neon identity v1.2 (2026-08-19, token slice)
   Sampled from ruled masters + mock-v1.1 neutrals. Import site-wide.
   Single source of truth: no color literals outside this file. */
:root {
  --cvl-bg: #000000;
  --cvl-surface: #0A0C07;
  --cvl-ink: #FFFFFF;
  --cvl-ink-dim: #B9BDB4;
  --cvl-muted: #737984;       /* AA mute floor: 4.8:1 on black */
  --cvl-border: #1C2018;
  --cvl-border-control: #555C68;
  --cvl-lime: #92FA11;        /* canonical accent (sampled core) */
  --cvl-lime-dim: #375E16;    /* DECORATIVE ONLY: 2.78:1 — never text/borders */
  --cvl-lime-glow: 0 0 24px rgba(146, 250, 17, 0.35);
  --cvl-voxel-1: #F0F0F0;     /* voxel light face */
  --cvl-voxel-2: #D0D0D0;     /* voxel mid face */
  --cvl-voxel-3: #B0B0B0;     /* voxel shade face */
  --cvl-font-display: "Pixelify Sans", monospace;   /* PROPOSED, unratified */
  --cvl-radius: 0px;          /* pixel aesthetic: square corners */
  --cvl-px: 4px;              /* base pixel unit for borders/steps */

  /* --- LIVE FONT ALIASES (hoisted from per-page :root, 2026-08-19) ---
     These are the names the site actually uses. Inter + IBM Plex Mono are
     self-hosted by /web/fonts/cvl-fonts.css; no external font import. */
  --cvl-font: Inter, system-ui, sans-serif;  /* live body alias — Inter IS the loaded face */
  --cvl-mono: "IBM Plex Mono", ui-monospace, monospace;  /* live mono alias — IBM Plex Mono IS the loaded face */

  /* --- LAYOUT (hoisted, was byte-identical in all five per-page :root) ---
     Centered composition — intentional negative space, no dead ultrawide gaps. */
  --cvl-max: 1600px;  /* max composition width */
  --cvl-gutter: clamp(2.5rem, 4vw, 4.5rem);  /* page gutter */
  --cvl-section-pad-y: clamp(4.5rem, 6.5vw, 6.5rem);  /* section vertical pad */
  --cvl-col-gap: clamp(3.5rem, 5vw, 6rem);  /* column gap */

  /* --- VISUAL MASTER GEOMETRY (2026-08-20) ---
     A compact spacing and component scale for the ruled technical-dossier
     composition. Page CSS consumes these values; no page-local dimensions. */
  --cvl-space-2: 0.5rem;
  --cvl-space-3: 0.75rem;
  --cvl-space-4: 1rem;
  --cvl-space-5: 1.5rem;
  --cvl-space-6: 2rem;
  --cvl-space-7: 2.5rem;
  --cvl-space-8: 3rem;
  --cvl-space-9: 4rem;
  --cvl-space-10: 5rem;
  --cvl-master-rule: 1px;
  --cvl-master-grid: 2rem;
  --cvl-master-nav-h: 4.375rem;
  --cvl-master-mark: 2.625rem;
  --cvl-master-control-h: 2.75rem;
  --cvl-master-hero-min: 30.25rem;
  --cvl-master-copy-col: 34rem;
  --cvl-master-art-col: 38rem;
  --cvl-master-art: clamp(17rem, 19vw, 20rem);
  --cvl-master-orbit-h: 26rem;
  --cvl-master-dossier-col: 13.5rem;
  --cvl-master-card-min: 18rem;
  --cvl-master-panel-min: 22rem;
  --cvl-master-reading: 58rem;
  --cvl-full: 100%;
  --cvl-track: 1fr;
  --cvl-ratio-square: 1;
  --cvl-leading-display: 1.05;
  --cvl-leading-tight: 1.2;
  --cvl-leading-body: 1.65;
  --cvl-tracking-nav: 0.08em;
  --cvl-tracking-label: 0.12em;
  --cvl-motion-fast: 180ms;
  --cvl-motion-orbit: 140s;

  /* --- HOME LAUNCH OBSERVATORY (2026-08-20) ---
     Geometry for the selected contained orbital-navigation composition. */
  --cvl-launch-shell-legacy: 100vh;
  --cvl-launch-shell-min: 100svh;
  --cvl-launch-shell-dynamic: 100dvh;
  --cvl-launch-shell-fill: -webkit-fill-available;
  --cvl-safe-area-top: env(safe-area-inset-top, 0px);
  --cvl-safe-area-right: env(safe-area-inset-right, 0px);
  --cvl-safe-area-bottom: env(safe-area-inset-bottom, 0px);
  --cvl-safe-area-left: env(safe-area-inset-left, 0px);
  --cvl-launch-nav-h: 6.875rem;
  --cvl-launch-gutter: clamp(2rem, 3.4vw, 3.375rem);
  --cvl-launch-word-tracking: 0.44em;
  --cvl-launch-mark: 3.375rem;
  --cvl-launch-cta-h: 3.25rem;
  --cvl-launch-cta-w: 15.25rem;
  --cvl-launch-observatory-h: 36.125rem;
  --cvl-launch-stage-mobile-h: 28rem;
  --cvl-launch-readout-track: 0.32fr;
  --cvl-launch-stage-track: 0.68fr;
  --cvl-launch-core: clamp(17rem, 22vw, 22rem);
  --cvl-launch-core-mobile: 15rem;
  --cvl-launch-grid: 2.125rem;
  --cvl-launch-index-gap: 3.25rem;
  --cvl-launch-index-min: 9.25rem;
  --cvl-launch-route-system-x: 15%;
  --cvl-launch-route-system-y: 16%;
  --cvl-launch-route-showcase-x: 11%;
  --cvl-launch-route-showcase-y: 23%;
  --cvl-launch-route-about-x: 18%;
  --cvl-launch-route-about-y: 25%;
  --cvl-launch-route-contact-x: 19%;
  --cvl-launch-route-contact-y: 24%;
  --cvl-launch-legal-h: 3rem;
  --cvl-launch-portal-duration: 2.6s;
  --cvl-launch-portal-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --cvl-launch-eye-duration: 700ms;
  --cvl-launch-orbit-system-period: 320s;
  --cvl-launch-orbit-showcase-period: 150s;
  --cvl-launch-orbit-about-period: 210s;
  --cvl-launch-orbit-contact-period: 96s;
  --cvl-launch-dash-system-period: 160s;
  --cvl-launch-dash-showcase-period: 140s;
  --cvl-launch-dash-about-period: 180s;
  --cvl-launch-dash-contact-period: 120s;
  --cvl-launch-impulse-decay: 0.92;
  --cvl-launch-nest-min-aspect: 0.60;
  --cvl-launch-nest-max-aspect: 0.88;
  --cvl-launch-nest-radius-pad: 1;
  --cvl-launch-nest-fit-pad: 2;
  --cvl-launch-tier-b-occlusion: 0.25;
  --cvl-launch-tier-a-step-ratio: 1.174;
  --cvl-launch-tier-b-step-ratio: 0.79;
  --cvl-launch-yield-guard: 0.44;
  --cvl-launch-yield-tier-a-sector: 0.0872664626;
  --cvl-launch-yield-tier-b-sector: 0.2094395102;
  --cvl-launch-yield-capture-pad: 0.001;
  --cvl-launch-yield-lookahead: 1.2;
  --cvl-launch-yield-relative-velocity: 0.00032;
  --cvl-launch-yield-recovery: 0.000003;
  --cvl-launch-yield-substep: 8.3333333333;
  --cvl-launch-yield-passes: 40;
  --cvl-launch-dash-mark: 5;
  --cvl-launch-dash-gap: 9;

  /* --- PANEL / INK / STATE (role-named; hoisted from page literals) --- */
  --cvl-danger: #c42b1c;  /* error / destructive marker — 5x */
  --cvl-ink-warm: #e8efe4;  /* warm near-white ink — 1x */
  --cvl-lime-light: #c8ff6a;  /* lifted lime — 10x */
  --cvl-lime-lighter: #d8ff6a;  /* lifted lime, one step up — 1x */
  --cvl-panel: #050705;  /* deepest panel ground — 24x */
  --cvl-panel-deep: #030503;  /* panel ground, one step under — 10x */
  --cvl-panel-raised: #070a06;  /* raised panel ground — 5x */
  --cvl-panel-tint: #0c1408;  /* panel ground, lime-tinted — 1x */
  --cvl-ink-ghost: rgba(180, 190, 180, 0.45);  /* ghosted body ink — 5x */
  --cvl-ink-glow-55: rgba(255, 255, 255, 0.55);  /* white glow shadow — 5x */
  --cvl-ink-soft: rgba(180, 200, 180, 0.78);  /* softened body ink — 5x */
  --cvl-ink-wash-03: rgba(255, 255, 255, 0.03);  /* white wash background — 10x */
  --cvl-ink-wash-035: rgba(255, 255, 255, 0.035);  /* white wash background — 10x */
  --cvl-lime-stroke: rgb(190, 255, 90);  /* stroke/color bright lime — 18x */
  --cvl-lime-stroke-hi: rgb(200, 255, 100);  /* stroke bright lime, hi — 4x */
  --cvl-panel-veil: rgba(5, 7, 5, 0.96);  /* panel veil, fill/bg — 5x */
  --cvl-panel-veil-2: rgba(5, 8, 4, 0.94);  /* panel veil, second — 5x */
  --cvl-scrim: rgba(0, 0, 0, 0.92);  /* modal/overlay scrim — 5x */
  --cvl-shadow-soft: rgba(0, 0, 0, 0.55);  /* soft drop shadow — 1x */
  --cvl-stroke-ghost: rgba(200, 220, 190, 0.55);  /* ghosted stroke — 1x */
  --cvl-surface-veil: rgba(10, 12, 7, 0.72);  /* --cvl-surface at 72% — 5x */

  /* --- LIME ALPHA-GLOW FAMILY (discrete, role-named from measured usage) ---
     wash=background fills · glow=box/text-shadow · edge=borders · ink=stroke/fill/color
     Acid-lime stays a meaningful marker: this family is alpha of the ONE lime. */
  --cvl-lime-edge-16: rgba(146, 250, 17, 0.16);  /* 24x */
  --cvl-lime-edge-18: rgba(146, 250, 17, 0.18);  /* 21x */
  --cvl-lime-edge-20: rgba(146, 250, 17, 0.2);  /* 5x */
  --cvl-lime-edge-22: rgba(146, 250, 17, 0.22);  /* 29x */
  --cvl-lime-edge-28: rgba(146, 250, 17, 0.28);  /* 26x */
  --cvl-lime-edge-55: rgba(146, 250, 17, 0.55);  /* 9x */
  --cvl-lime-edge-72: rgba(146, 250, 17, 0.72);  /* 6x */
  --cvl-lime-glow-05: rgba(146, 250, 17, 0.05);  /* 10x */
  --cvl-lime-glow-12: rgba(146, 250, 17, 0.12);  /* 25x */
  --cvl-lime-glow-35: rgba(146, 250, 17, 0.35);  /* 22x */
  --cvl-lime-glow-40: rgba(146, 250, 17, 0.4);  /* 26x */
  --cvl-lime-glow-45: rgba(146, 250, 17, 0.45);  /* 20x */
  --cvl-lime-glow-65: rgba(146, 250, 17, 0.65);  /* 5x */
  --cvl-lime-ink-07: rgba(146, 250, 17, 0.07);  /* 1x */
  --cvl-lime-ink-14: rgba(146, 250, 17, 0.14);  /* 1x */
  --cvl-lime-ink-32: rgba(146, 250, 17, 0.32);  /* 4x */
  --cvl-lime-ink-42: rgba(146, 250, 17, 0.42);  /* 1x */
  --cvl-lime-ink-70: rgba(146, 250, 17, 0.7);  /* 15x */
  --cvl-lime-ink-75: rgba(146, 250, 17, 0.75);  /* 5x */
  --cvl-lime-wash-02: rgba(146, 250, 17, 0.02);  /* 5x */
  --cvl-lime-wash-03: rgba(146, 250, 17, 0.03);  /* 10x */
  --cvl-lime-wash-04: rgba(146, 250, 17, 0.04);  /* 21x */
  --cvl-lime-wash-06: rgba(146, 250, 17, 0.06);  /* 20x */
  --cvl-lime-wash-08: rgba(146, 250, 17, 0.08);  /* 20x */
  --cvl-lime-wash-10: rgba(146, 250, 17, 0.1);  /* 5x */
  --cvl-lime-wash-95: rgba(146, 250, 17, 0.95);  /* 5x */

  /* --- TYPE SCALE (1:1 with measured sizes; NOT snapped — see report) --- */
  --cvl-fs-0p46rem: 0.46rem;  /* 1x */
  --cvl-fs-0p52rem: 0.52rem;  /* 4x */
  --cvl-fs-0p54rem: 0.54rem;  /* 1x */
  --cvl-fs-0p55rem: 0.55rem;  /* 5x */
  --cvl-fs-0p56rem: 0.56rem;  /* 1x */
  --cvl-fs-0p58rem: 0.58rem;  /* 15x */
  --cvl-fs-0p5rem: 0.5rem;  /* 1x */
  --cvl-fs-0p62rem: 0.62rem;  /* 10x */
  --cvl-fs-0p64rem: 0.64rem;  /* 5x */
  --cvl-fs-0p68rem: 0.68rem;  /* 11x */
  --cvl-fs-0p6rem: 0.6rem;  /* 2x */
  --cvl-fs-0p72rem: 0.72rem;  /* 21x */
  --cvl-fs-0p74rem: 0.74rem;  /* 6x */
  --cvl-fs-0p75rem: 0.75rem;  /* 36x */
  --cvl-fs-0p78rem: 0.78rem;  /* 16x */
  --cvl-fs-0p8125rem: 0.8125rem;  /* 10x */
  --cvl-fs-0p85rem: 0.85rem;  /* 5x */
  --cvl-fs-0p86rem: 0.86rem;  /* 5x */
  --cvl-fs-0p875rem: 0.875rem;  /* 10x */
  --cvl-fs-0p8rem: 0.8rem;  /* 10x */
  --cvl-fs-0p92rem: 0.92rem;  /* 1x */
  --cvl-fs-0p9375rem: 0.9375rem;  /* 10x */
  --cvl-fs-0p95rem: 0.95rem;  /* 15x */
  --cvl-fs-0p975rem: 0.975rem;  /* 25x */
  --cvl-fs-0p9em: 0.9em;  /* 10x */
  --cvl-fs-0p9rem: 0.9rem;  /* 10x */
  --cvl-fs-1p05rem: 1.05rem;  /* 15x */
  --cvl-fs-1p0625rem: 1.0625rem;  /* 5x */
  --cvl-fs-1p15rem: 1.15rem;  /* 15x */
  --cvl-fs-1p4rem: 1.4rem;  /* 5x */
  --cvl-fs-13px: 13px;  /* 1x */
  --cvl-fs-14px: 14px;  /* 1x */
  --cvl-fs-1em: 1em;  /* 1x */
  --cvl-fs-1rem: 1rem;  /* 10x */
  --cvl-fs-fluid-01: clamp(0.78rem, 1.05vw, 0.88rem);  /* 5x */
  --cvl-fs-fluid-02: clamp(0.82rem, 1.1vw, 0.92rem);  /* 5x */
  --cvl-fs-fluid-03: clamp(0.82rem, 1.3vw, 0.98rem);  /* 5x */
  --cvl-fs-fluid-04: clamp(0.92rem, 1.15vw, 1rem);  /* 6x */
  --cvl-fs-fluid-05: clamp(0.92rem, 1.2vw, 1.05rem);  /* 5x */
  --cvl-fs-fluid-06: clamp(0.92rem, 1.25vw, 1.05rem);  /* 5x */
  --cvl-fs-fluid-07: clamp(0.95rem, 1.2vw, 1.02rem);  /* 1x */
  --cvl-fs-fluid-08: clamp(1rem, 1.3vw, 1.1rem);  /* 5x */
  --cvl-fs-fluid-09: clamp(1rem, 1.4vw, 1.15rem);  /* 1x */
  --cvl-fs-fluid-10: clamp(1.05rem, 1.6vw, 1.25rem);  /* 5x */
  --cvl-fs-fluid-11: clamp(1.06rem, 1.6vw, 1.24rem);  /* 5x */
  --cvl-fs-fluid-12: clamp(1.15rem, 1.8vw, 1.35rem);  /* 5x */
  --cvl-fs-fluid-13: clamp(1.15rem, 1.8vw, 1.45rem);  /* 5x */
  --cvl-fs-fluid-14: clamp(1.15rem, 1.9vw, 1.45rem);  /* 1x */
  --cvl-fs-fluid-15: clamp(1.2rem, 5.8vw, 1.65rem);  /* 5x */
  --cvl-fs-fluid-16: clamp(1.35rem, 6.5vw, 1.85rem);  /* 5x */
  --cvl-fs-fluid-17: clamp(1.45rem, 2.4vw, 2rem);  /* 20x */
  --cvl-fs-fluid-18: clamp(1.55rem, 2.5vw, 2.1rem);  /* 5x */
  --cvl-fs-fluid-19: clamp(1.65rem, 2.8vw, 2.35rem);  /* 5x */
  --cvl-fs-fluid-20: clamp(1.7rem, 2.8vw, 2.35rem);  /* 20x */
  --cvl-fs-fluid-21: clamp(1.85rem, 3.4vw, 2.85rem);  /* 5x */
  --cvl-fs-fluid-22: clamp(1.85rem, 8.5vw, 2.6rem);  /* 5x */
  --cvl-fs-fluid-23: clamp(2.25rem, 4.5vw, 3.6rem);  /* 5x */
}
/* Accent budget: lime on <=10% of any viewport. Glitch: micro-interactions
   only, <=300ms, honor prefers-reduced-motion. Body text never lime. */
