:root {
  --rsa-road-black:   #0B0B0C;
  --rsa-night:        #000000;
  --rsa-surface:      #161618;
  --rsa-raised:       #1C1C1F;
  --rsa-tile:         #131315;
  --rsa-track:        #26262A;
  --rsa-navy-black:   #0A141C;
  --rsa-white:        #FFFFFF;
  --rsa-chalk:        #F4F4F2;
  --rsa-fog:          #D6D6D8;
  --rsa-mist:         #C4C4C7;
  --rsa-haze:         #B5B5B8;
  --rsa-smoke:        #A6A6AB;
  --rsa-ash:          #8A8A8F;
  --rsa-slate:        #5C5C62;
  --rsa-graphite:     #3A3A3F;
  --rsa-wordmark:     rgba(255,255,255,.14);
  --rsa-red:          #DA2A23;
  --rsa-red-hover:    #F03A32;
  --rsa-plate-red:    #E32119;
  --rsa-go-green:     #8EDB4F;
  --rsa-go-green-hover: #A6EA6E;
  --rsa-amber:        #FFAE3B;
  --rsa-sign-green:   #00703C;
  --rsa-sign-ink:     #D5EADD;
  --rsa-sign-yellow:  #FFD100;
  --rsa-avatar-blue:  #2E7DBF;
  --rsa-avatar-brown: #6B4433;
  --rsa-line-08: rgba(255,255,255,.08);
  --rsa-line-10: rgba(255,255,255,.10);
  --rsa-line-12: rgba(255,255,255,.12);
  --rsa-line-16: rgba(255,255,255,.16);
  --rsa-line-22: rgba(255,255,255,.22);
  --rsa-line-25: rgba(255,255,255,.25);
  --color-bg:            var(--rsa-road-black);
  --color-bg-deep:       var(--rsa-night);
  --color-panel:         var(--rsa-surface);
  --color-panel-raised:  var(--rsa-raised);
  --color-text:          var(--rsa-chalk);
  --color-text-strong:   var(--rsa-white);
  --color-text-body:     var(--rsa-mist);
  --color-text-lede:     var(--rsa-fog);
  --color-text-muted:    var(--rsa-smoke);
  --color-text-faint:    var(--rsa-ash);
  --color-accent:        var(--rsa-go-green);
  --color-eyebrow:       var(--rsa-amber);
  --color-star:          var(--rsa-amber);
  --color-action:        var(--rsa-red);
  --color-on-action:     var(--rsa-white);
  --color-on-accent:     var(--rsa-road-black);
  --color-action-hover:  #C0261F;
  --color-text-red:      #FF5A52;
  --color-on-red-muted:  var(--rsa-white);
  --color-on-red-accent: var(--rsa-night);
  --color-field-border:  #7A7A80;
  --color-placeholder:   var(--rsa-ash);
  --color-track-text:    #9A9AA0;
  --color-avatar-blue:   #2A72AF;
  --color-sign-text:     var(--rsa-sign-ink);
  --focus-ring: 0 0 0 3px var(--rsa-go-green), 0 0 0 5px var(--rsa-night);
  --font-display: Poppins, sans-serif;
  --font-body:    'DM Sans', sans-serif;
  --font-mono:    'JetBrains Mono', monospace;
  --fw-regular: 400;
  --fw-medium:  500;
  --fw-semi:    600;
  --fw-bold:    700;
  --fw-black:   800;
  --fw-plate:   900;
  --fs-mega:     clamp(110px, 12vw, 160px);
  --fs-wordmark: min(10.5vw, 136px);
  --fs-hero-c:   clamp(52px, 7vw, 100px);
  --fs-hero-b:   clamp(48px, min(7.6vw, 8.5vw - 20px), 104px);
  --fs-hero-a:   clamp(50px, 6.4vw, 92px);
  --fs-h1:       clamp(34px, 4.6vw, 64px);
  --fs-stat:     clamp(48px, 5vw, 68px);
  --fs-h2:       clamp(32px, 3.6vw, 50px);
  --fs-h2-sm:    clamp(28px, 3.2vw, 44px);
  --fs-num-xl:   96px;
  --fs-num-lg:   84px;
  --fs-num-md:   64px;
  --fs-num-sm:   56px;
  --fs-num-xs:   40px;
  --fs-h3:       22px;
  --fs-h4:       18px;
  --fs-lede:     19px;
  --fs-body-lg:  17px;
  --fs-body:     16.5px;
  --fs-body-sm:  15px;
  --fs-small:    14px;
  --fs-label:    13px;
  --fs-caption:  12.5px;
  --fs-eyebrow:  12px;
  --fs-micro:    11px;
  --fs-nano:     10.5px;
  --lh-display:  1.02;
  --lh-tight:    .9;
  --lh-snug:     1.1;
  --lh-heading:  1.2;
  --lh-body:     1.6;
  --lh-relaxed:  1.7;
  --lh-lede:     1.55;
  --ls-display:  -.03em;
  --ls-tight:    -.04em;
  --ls-tighter:  -.05em;
  --ls-button:   -.01em;
  --ls-nav:      .06em;
  --ls-label:    .08em;
  --ls-eyebrow:  .2em;
  --ls-eyebrow-sm: .16em;
  --ls-stars:    2px;
  --radius-xs:   2px;
  --radius-sm:   3px;
  --radius-md:   4px;
  --radius-lg:   6px;
  --radius-sign: 8px;
  --radius-sign-lg: 12px;
  --radius-sign-xl: 14px;
  --radius-round: 50%;
  --container:   1280px;
  --gutter:      40px;
  --gutter-mobile: 20px;
  --space-1: 2px;  --space-2: 4px;  --space-3: 6px;  --space-4: 8px;
  --space-5: 10px; --space-6: 12px; --space-7: 14px; --space-8: 16px;
  --space-9: 18px; --space-10: 20px; --space-11: 22px; --space-12: 24px;
  --space-14: 28px; --space-16: 32px; --space-20: 40px; --space-24: 48px;
  --space-28: 56px; --space-section: 96px;
  --pad-btn:     15px 20px;
  --pad-btn-lg:  20px 26px 18px;
  --pad-badge:   7px 10px 6px;
  --pad-card:    26px;
  --pad-panel:   30px;
  --hero-min-h:  640px;
  --hero-form-band: 104px;
  --scroll-offset: 110px;
  --rule-header: 3px solid var(--rsa-red);
  --rule-green:  2px solid var(--rsa-go-green);
  --rule-green-top: 5px solid var(--rsa-go-green);
  --heading-underline:
    linear-gradient(var(--rsa-go-green), var(--rsa-go-green)) 0 100% / 54px 2px no-repeat,
    linear-gradient(var(--rsa-line-22), var(--rsa-line-22)) 0 100% / 100% 2px no-repeat;
  --road-dash-h: repeating-linear-gradient(90deg, var(--rsa-go-green) 0 16px, transparent 16px 26px);
  --road-dash-v: repeating-linear-gradient(180deg, var(--rsa-graphite) 0 18px, transparent 18px 30px);
  --stroke-numeral: 2px var(--rsa-red);
  --clip-rsa-tag:   polygon(0 0, 100% 0, 94% 100%, 0 100%);
  --clip-slant-c:   polygon(19% 0, 100% 0, 100% 100%, 3% 100%);
  --clip-slant-a:   polygon(16% 0, 100% 0, 100% 100%, 0 100%);
  --tilt-sign-l:    rotate(-2deg);
  --tilt-sign-r:    rotate(1.2deg);
  --tilt-card:      rotate(6deg);
  --shadow-header:  0 2px 18px rgba(0,0,0,.5);
  --shadow-card:    0 10px 24px rgba(0,0,0,.25);
  --shadow-card-hover: 0 24px 50px rgba(0,0,0,.5);
  --shadow-lift:    0 20px 44px rgba(0,0,0,.2);
  --shadow-float:   0 30px 56px rgba(0,0,0,.32);
  --shadow-panel:   0 4px 44px rgba(0,0,0,.5);
  --shadow-sign:    0 10px 22px rgba(0,0,0,.22);
  --shadow-red-glow: 0 14px 30px rgba(218,42,35,.35);
  --ring-green:     0 0 0 3px var(--rsa-go-green);
  --ring-white:     0 0 0 3px var(--rsa-white);
  --ring-roundel:   0 0 0 3px var(--rsa-go-green), 0 0 0 5px var(--rsa-navy-black);
  --ring-gap:       0 0 0 6px var(--rsa-road-black);
  --inset-red:      inset 0 0 0 3px var(--rsa-red);
  --photo-lift:          brightness(1.45) contrast(1.05);
  --photo-lift-soft:     brightness(1.45);
  --photo-lift-strong:   brightness(1.5);
  --photo-pass:          none;
  --overlay-hero:   linear-gradient(90deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.72) 32%, rgba(0,0,0,.34) 56%, rgba(0,0,0,.2) 76%, rgba(0,0,0,.16) 100%);
  --overlay-hero-a: linear-gradient(90deg, rgba(0,0,0,.93) 0%, rgba(0,0,0,.74) 36%, rgba(0,0,0,.3) 62%, rgba(0,0,0,.14) 100%);
  --overlay-hero-floor: linear-gradient(0deg, rgba(0,0,0,.55), rgba(0,0,0,0));
  --overlay-ticket: linear-gradient(0deg, rgba(0,0,0,.97) 0%, rgba(0,0,0,.82) 45%, rgba(0,0,0,0) 78%);
  --overlay-panel:  linear-gradient(90deg, rgba(11,11,12,.95), rgba(11,11,12,.35) 62%, rgba(11,11,12,.2));
  --overlay-edge:   linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,0) 45%);
  --overlay-ticket-fix: linear-gradient(0deg, rgba(0,0,0,.97) 0%, rgba(0,0,0,.9) 55%, rgba(0,0,0,.35) 85%, rgba(0,0,0,0) 100%);
  --ease-reveal: cubic-bezier(.2,.7,.2,1);
  --ease-roll:   cubic-bezier(.6,0,.15,1);
  --dur-fast:  .2s;
  --dur-base:  .3s;
  --dur-hero:  .9s;
  --dur-roll:  1.6s;
  --lift-sm: translateY(-2px); --lift-md: translateY(-4px); --lift-lg: translateY(-6px); --lift-xl: translateY(-8px);
  --nudge-x: translateX(6px);
  --z-base:   1;
  --z-sticky-cta: 40;
  --z-hero-ui: 30;
  --z-header: 50;
  --z-overlay: 60;
  --bp-sm: 480px;
  --bp-md: 768px;
  --bp-lg: 1100px;
  --bp-xl: 1280px;
}
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--rsa-go-green);
  outline-offset: 2px;
  box-shadow: 0 0 0 7px var(--rsa-night);
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
  html { scroll-behavior: auto; }
}
