@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root {
  --nx-primary: #4646c8;
  --nx-secondary: #030308;
  --nx-accent: #3b3bb4;
  --nx-background: #030308;
  --nx-surface: #282855;
  --nx-text: #ffffff;
  --nx-muted: #a1a1aa;
  --nx-border: #27272a;
  --nx-line: rgba(146, 146, 196, .20);
  --nx-glow: rgba(70, 70, 200, .38);
}

html { scroll-behavior: smooth; overflow-x: clip; }
body,
body:not(.order-page) {
  background: var(--nx-background);
  color: var(--nx-text);
  font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif;
}
button, input, select, textarea { font-family: inherit; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid #aaaaff;
  outline-offset: 4px;
}
::selection { background: #6e6ee0; color: #fff; }

/* Global shell */
body nav {
  min-height: 78px;
  padding: 13px clamp(20px, 4vw, 72px);
  background: rgba(3,3,8,.82);
  border-bottom: 1px solid var(--nx-line);
  backdrop-filter: blur(22px);
  box-shadow: 0 12px 34px rgba(0,0,0,.16);
}
body .nav-logo {
  gap: 12px;
  color: #fff;
  font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .025em;
}
body .nav-logo img { width: 38px; height: 38px; filter: drop-shadow(0 0 9px rgba(160,160,255,.28)); }
body .nav-links { align-items: center; }
body .nav-links a {
  color: #c6c6d6;
  font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  border: 0;
  padding: 10px 14px;
}
body .nav-links a:hover, body .nav-links a.active { color: #fff; }
body .nav-links a.nav-cta, body .nav-cta {
  background: var(--nx-primary);
  color: #fff;
  border-radius: 8px;
  box-shadow: 0 7px 26px rgba(70,70,200,.26);
  font-size: 13px;
  font-weight: 700;
  padding: 12px 22px;
}
body .nav-links a.nav-cta:hover, body .nav-cta:hover { background: #5c5cdb; color: #fff; }
body .nav-mobile { top: 78px; background: #080811; border-top-color: var(--nx-border); }
body .nav-mobile ul li a { font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif; color: #efeffb; border-bottom-color: var(--nx-border); }
body .nav-mobile .nav-cta-mobile { background: var(--nx-primary); color: #fff; border-radius: 8px; font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif; }
body .nav-hamburger span { background: #fff; }

/* Home: cinematic interface */
.home {
  --bg: #030308;
  --dark: #030308;
  --purple: #101022;
  --yellow: #9292ff;
  --yellow2: #b3b3ff;
  --white: #fff;
  --text-rgb: 255,255,255;
  --accent-rgb: 114,114,255;
  --surface-rgb: 16,16,34;
  --border-rgb: 148,148,208;
}
.home main { overflow: clip; }
.home .marquee-wrap {
  margin-top: 78px;
  padding: 9px 0;
  background: #0b0b15;
  border-bottom: 1px solid var(--nx-border);
}
.home .mtext { color: #aaaaba; font-family: 'JetBrains Mono', 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .1em; }
.home .msep { color: #8282ed; }

.home .hero.nexus-hero {
  position: relative;
  display: block;
  min-height: 760px;
  height: auto;
  overflow: hidden;
  background: #030308;
}
.home .hero.nexus-hero::before { display: none; }
.home .hero.nexus-hero::after {
  z-index: 1;
  background: linear-gradient(180deg, rgba(3,3,8,.08) 0%, rgba(3,3,8,.14) 64%, #030308 100%);
  pointer-events: none;
}
.nexus-field { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; opacity: .3; pointer-events: none; }
.home .hero-shell {
  position: relative;
  z-index: 2;
  width: min(100%, 1580px);
  min-height: 760px;
  margin: auto;
  display: flex;
  align-items: center;
  padding: 100px clamp(24px, 5vw, 84px) 105px;
}
.home .hero-content { width: min(100%, 760px); max-width: none; margin: 0; padding: 0; }
.home .hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 29px;
  padding: 0;
  border: 0;
  color: #a9a9f8;
  font: 600 11px/1.4 'JetBrains Mono', 'IBM Plex Mono', monospace;
  letter-spacing: .12em;
}
.signal-dot { width: 7px; height: 7px; flex: none; border-radius: 50%; background: #9d9dff; box-shadow: 0 0 0 5px rgba(120,120,255,.10), 0 0 15px #8c8cff; }
.home .hero-title {
  max-width: 720px;
  margin: 0 0 25px;
  color: #fff;
  font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif;
  font-size: clamp(54px, 5.9vw, 89px);
  font-weight: 700;
  line-height: 1.09;
  letter-spacing: -.045em;
  text-shadow: 0 4px 34px rgba(0,0,0,.92);
}
.home .hero-title span { color: #a2a2ff; }
.home .hero-sub {
  max-width: 545px;
  margin-bottom: 34px;
  color: #dedee8;
  font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif;
  font-size: clamp(16px, 1.35vw, 19px);
  font-weight: 400;
  line-height: 1.75;
}
.home .hero-sub b { color: #fff; font-weight: 600; }
.home .hero-btns { gap: 12px; }
.home .btn-primary, .home .btn-ghost {
  min-height: 55px;
  padding: 13px 23px;
  border-radius: 8px;
  font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif;
  font-size: 15px;
  font-weight: 700;
  transition: background .25s, border-color .25s, transform .25s, box-shadow .25s;
}
.home .btn-primary { background: var(--nx-primary); color: #fff; box-shadow: 0 12px 35px rgba(70,70,200,.27); }
.home .btn-primary:hover { background: #5e5ee0; color: #fff; transform: translateY(-3px); box-shadow: 0 16px 40px rgba(70,70,200,.34); }
.home .btn-ghost { border: 1px solid rgba(255,255,255,.48); background: rgba(3,3,8,.38); color: #fff; backdrop-filter: blur(10px); }
.home .btn-ghost:hover { background: #1d1d36; border-color: #8888d5; color: #fff; transform: translateY(-3px); }
.home .hero-note { display: flex; align-items: center; flex-wrap: wrap; gap: 11px; margin-top: 34px; color: #bebecd; font: 500 11px/1.6 'JetBrains Mono', 'IBM Plex Mono', monospace; letter-spacing: .025em; text-shadow: 0 2px 18px #000; }
.hero-note-divider { display: inline-block; width: 28px; height: 1px; background: #51516a; }
.hero-art {
  position: relative;
  min-height: 555px;
  overflow: hidden;
  border: 1px solid #42427b;
  border-radius: 8px;
  background: radial-gradient(circle at 55% 37%, #303071, #090913 63%);
  box-shadow: 0 35px 110px rgba(0,0,0,.42), 0 0 90px rgba(70,70,200,.15);
}
.hero-art-grid {
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: .6;
  background-image: linear-gradient(rgba(171,171,255,.075) 1px, transparent 1px), linear-gradient(90deg, rgba(171,171,255,.075) 1px, transparent 1px);
  background-size: 40px 40px;
  mask-image: linear-gradient(to bottom, #000, transparent 65%);
}
.hero-art-photo {
  position: absolute;
  inset: 14% -40% -10% -16%;
  background: linear-gradient(0deg, #070712 4%, rgba(24,24,80,.15) 75%), url('images/hero-cyclists.jpg') 67% center / cover;
  filter: saturate(.44) hue-rotate(26deg) contrast(1.14);
  opacity: .82;
  transform: scale(1.04);
}
.hero-art::after { content: ''; position: absolute; inset: 0; z-index: 3; background: linear-gradient(180deg, rgba(7,7,20,.54), transparent 33%, transparent 55%, rgba(4,4,12,.92)); pointer-events: none; }
.hero-art-orbit { position: absolute; z-index: 3; border: 1px solid rgba(175,175,255,.46); border-radius: 50%; pointer-events: none; }
.orbit-one { width: 410px; height: 410px; top: 28px; right: -132px; box-shadow: inset 0 0 60px rgba(70,70,200,.08), 0 0 55px rgba(70,70,200,.08); }
.orbit-two { width: 240px; height: 240px; top: 112px; right: -44px; border-color: rgba(175,175,255,.23); }
.hero-art-top, .hero-art-bottom { position: absolute; z-index: 4; right: 28px; left: 28px; color: #e9e9ff; font-family: 'JetBrains Mono', 'IBM Plex Mono', monospace; }
.hero-art-top { top: 25px; display: flex; align-items: center; gap: 10px; font-size: 10px; letter-spacing: .11em; }
.hero-art-bottom { bottom: 24px; display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; font-size: 12px; letter-spacing: .06em; }
.hero-art-bottom strong { font-size: 39px; font-weight: 600; letter-spacing: -.07em; line-height: 1; }
.hero-art-bottom small { font-size: 12px; font-weight: 500; letter-spacing: 0; }

.home .stat-row { padding: 0 clamp(24px, 5vw, 84px); background: #090911; border-top: 1px solid var(--nx-border); border-bottom: 1px solid var(--nx-border); }
.home .stat-cell { padding: 30px 22px; border-right: 1px solid var(--nx-border); }
.home .stat-num { color: #fff; font: 600 clamp(31px, 3vw, 44px)/1.1 'Geist', 'IBM Plex Sans Thai', sans-serif; }
.home .stat-label { color: #9a9aaa; font: 500 11px/1.5 'JetBrains Mono', 'IBM Plex Mono', monospace; letter-spacing: .08em; text-transform: uppercase; }
.home .countdown-section { padding: 27px clamp(24px, 5vw, 84px); background: #0c0c17; border-bottom: 1px solid var(--nx-border); }
.home .cd-label { color: #e6e6f7; font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif; font-size: 15px; }
.home .cd-date-line, .home .cd-unit { color: #9292ad; }
.home .cd-num { color: #c0c0ff; font-family: 'JetBrains Mono', 'IBM Plex Mono', monospace; }
.home .cd-sep { color: #5252a4; }

/* Chapters */
.home .section-wrap { padding: clamp(90px, 10vw, 150px) clamp(24px, 5vw, 84px); }
.home .section-title, .home .route-headline, .home .cta-title {
  font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif;
  font-weight: 600;
  letter-spacing: -.045em;
}
.home .section-title { color: #fff; font-size: clamp(41px, 5vw, 72px); line-height: 1.15; }
.home .eyebrow { color: #9999ed; font: 600 11px/1.5 'JetBrains Mono', 'IBM Plex Mono', monospace; letter-spacing: .12em; }
.home .route-section { background: #05050d; color: #fff; border-bottom: 1px solid var(--nx-border); }
.home .route-section .eyebrow { color: #9999ed; }
.home .route-headline { color: #fff; font-size: clamp(56px, 6vw, 92px); line-height: 1.05; }
.home .route-intro-copy { color: #a9a9bb; font-size: 18px; line-height: 1.75; }
.home .route-total-num { color: #9d9dff; font-family: 'Geist', sans-serif; font-weight: 600; }
.home .route-total-sub { color: #9a9aaa; }
.home .route-row { margin-bottom: 8px; padding: 18px 17px; border: 1px solid var(--nx-border); border-radius: 8px; background: linear-gradient(112deg, #121225, #0b0b16); transition: border-color .25s, background .25s, transform .25s; }
.home .route-row:hover { border-color: #5d5da8; background: #191932; transform: translateX(3px); }
.home .day-lbl, .home .day-date, .home .route-en { color: #8585a1; }
.home .route-city { color: #f7f7ff; font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif; font-weight: 600; }
.home .route-km, .home .route-row.last .route-km { color: #c1c1ff; font-family: 'JetBrains Mono', monospace; }
.home .route-km span, .home .route-row.last .route-km span { color: #9696b9; }
.home .prog-track { height: 3px; background: #22223a; }
.home .prog-fill { background: linear-gradient(90deg, #3838a8, #9b9bff); }
.home .prog-label { color: #8b8ba3; }
.home .route-link { background: #232355; border: 1px solid #4d4d94; color: #fff; border-radius: 8px; }
.home .route-link:hover { background: #36368a; color: #fff; }

.home .registration-section { background: radial-gradient(circle at 87% 18%, rgba(70,70,200,.15), transparent 35%), #080810; border-bottom: 1px solid var(--nx-border); }
.home .reg-grid { gap: 16px; border: 0; }
.home .reg-card { border: 1px solid var(--nx-border); border-radius: 8px; background: #111120; }
.home .reg-card.expired { opacity: .75; }
.home .reg-card.feat { border: 1px solid #6868d5; background: linear-gradient(142deg, #3939a8, #24246a); color: #fff; box-shadow: 0 22px 70px rgba(38,38,138,.22); }
.home .reg-card.feat .reg-tag { background: #fff; color: #303096; }
.home .reg-card.feat .reg-period, .home .reg-card.feat .reg-sub, .home .reg-card.feat .reg-dl-label, .home .reg-card.feat .reg-dl-date { color: #ddddff; }
.home .reg-card.feat .reg-price { color: #fff; }
.home .reg-price { color: #fff; font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif; font-weight: 600; }
.home .reg-tag { background: #35354a; color: #c1c1ce; border-radius: 8px; }
.home .reg-btn { background: #fff; color: #272781; border-radius: 8px; }
.home .reg-btn:hover { background: #e9e9ff; color: #272781; }
.home .reg-deadline { border-color: rgba(255,255,255,.18); }
.home .reg-dl-date { color: #b6b6ff; }
.home .includes-box { border: 1px solid var(--nx-border); border-radius: 8px; background: #10101e; }
.home .includes-label { color: #ababff; }
.home .pill { border: 1px solid #424262; border-radius: 8px; background: #1a1a31; color: #e4e4f5; }

.home .faq-section { background: #05050c; border-bottom: 1px solid var(--nx-border); }
.home .faq-grid { gap: 12px; background: none; }
.home .faq-item { min-height: 245px; border: 1px solid var(--nx-border) !important; border-radius: 8px; background: #10101d; transition: border-color .25s, transform .25s; }
.home .faq-item:hover { border-color: #6262ae !important; transform: translateY(-3px); }
.home .faq-q { color: #b4b4ff; font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif; font-size: 16px; }
.home .faq-a { color: #b4b4c3; }
.home .faq-a strong { color: #fff; }

.home .testimonial-section { background: radial-gradient(circle at 15% 80%, rgba(70,70,200,.15), transparent 35%), #090911; color: #fff; border-bottom: 1px solid var(--nx-border); }
.home .testimonial-section .eyebrow { color: #a6a6ff; }
.home .testi-carousel { border: 1px solid #35355e; border-radius: 8px; background: linear-gradient(130deg, #17172f, #0d0d1b); box-shadow: 0 25px 90px rgba(0,0,0,.18); }
.home .quote { color: #fff; font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif; font-weight: 500; }
.home .quote::before { color: #6868c4; }
.home .byline-name, .home .qa-a { color: #fff; }
.home .byline-role, .home .qa-a { color: #b6b6c6; }
.home .qa-q { color: #a6a6ff; }
.home .testi-dot { background: #45455f; }
.home .testi-dot.active { background: #9292ff; }
.home .testi-playpause { color: #d6d6ef; border-color: #5c5c78; }

.home .participate-section { background: #05050d; border-bottom: 1px solid var(--nx-border); }
.home .cta-strip { gap: 16px; border: 0; }
.home .cta-card { border: 1px solid var(--nx-border); border-radius: 8px; background: linear-gradient(140deg, #15152a, #0d0d18); }
.home .cta-card:last-child { border-right: 1px solid var(--nx-border); }
.home .cta-card:hover, .home .cta-card:focus-visible { background: linear-gradient(140deg, #242461, #15152e); border-color: #6868c0; }
.home .cta-card::after { background: radial-gradient(circle, rgba(109,109,250,.18), transparent 65%); }
.home .cta-tag { color: #a5a5ff; font-family: 'JetBrains Mono', 'IBM Plex Mono', monospace; font-size: 11px; }
.home .cta-title { color: #fff; font-size: clamp(31px, 3vw, 47px); }
.home .cta-desc { color: #b4b4c2; }
.home .cta-arrow { color: #a7a7ff; }

.home .about-section { background: radial-gradient(circle at 80% 20%, rgba(70,70,200,.14), transparent 33%), #080811; }
.home .about-body { color: #d3d3e2; }
.home .about-stats { border-color: var(--nx-border); }
.home .about-stats > div { border-color: var(--nx-border); }
.home .organizers-section { background: #080811; }
.home .organizers-section img { background: #f6f5ff; border-radius: 8px; padding: 10px; filter: none; }
.home .footer-marquee { background: #292966; }
.home .footer-marquee .mtext { color: #e6e6ff; }
.home .footer-marquee .msep { color: #a8a8ff; }
.home footer { background: #030308; border-top: 1px solid var(--nx-border); }
.home .footer-logo { color: #c7c7ff; }
.home .footer-social a, .home .footer-copy { color: #9a9aaa; }
.home .line-float { box-shadow: 0 8px 28px rgba(6,199,85,.22); }
.home .scroll-top { border-color: #515194; color: #c7c7ff; background: #101025; }

/* All interior pages */
.interior {
  --dark: #030308;
  --dark2: #0d0d1d;
  --purple: #4646c8;
  --yellow: #9a9aff;
  --yellow2: #c1c1ff;
  --white: #fff;
  --muted: #a1a1aa;
  --border: #27272a;
  --card: #121222;
  --paper: #05050c;
  --surface: #121223;
  --ink: #fff;
  --ink2: #b1b1c1;
  --line: #34344d;
  --focus: #9a9aff;
}
.interior, .interior:not(.order-page) { background: #05050c; color: #fff; }
.interior .page-header {
  max-width: 100% !important;
  min-height: 280px;
  padding: clamp(70px, 7vw, 112px) max(40px, calc((100vw - 1120px)/2)) clamp(58px, 6vw, 94px);
  margin: 0;
  border: 0;
  border-bottom: 1px solid #32324b;
  background: radial-gradient(circle at 78% 28%, rgba(70,70,200,.27), transparent 35%), linear-gradient(145deg, #101023, #05050c 70%);
}
.interior .page-header::before { background-image: linear-gradient(rgba(171,171,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(171,171,255,.035) 1px, transparent 1px); background-size: 42px 42px; opacity: .7; }
.interior .page-eyebrow { color: #aaaaff; font: 600 11px/1.5 'JetBrains Mono', 'IBM Plex Mono', monospace; letter-spacing: .12em; }
.interior .page-eyebrow::before { color: #7676cd; }
.interior .page-title { max-width: 1050px; color: #fff; font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif; font-size: clamp(44px, 5.5vw, 75px); font-weight: 600; line-height: 1.15; letter-spacing: -.045em; }
.interior .page-sub, .interior .page-subtitle { color: #b1b1c1; font-size: 17px; line-height: 1.7; }
.interior .main, .interior:not(.order-page) .main { padding-top: clamp(40px, 5vw, 72px); padding-bottom: 100px; }
.interior footer, .interior:not(.order-page) footer { max-width: none !important; background: #030308; border-top: 1px solid #27272a !important; }
.interior footer p { color: #878797 !important; }

/* Route details */
.route-page .day-tabs { gap: 8px; margin-bottom: 36px; }
.route-page .day-tab { min-height: 45px; border: 1px solid #39394f; border-radius: 8px; background: #10101c; color: #a9a9bd; font-family: 'JetBrains Mono', 'IBM Plex Mono', monospace; font-size: 11px; }
.route-page .day-tab:hover { border-color: #7171be; color: #fff; }
.route-page .day-tab.active { background: #4646c8; color: #fff; border-color: #6262e1; }
.route-page .day-route-title { color: #fff; font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif; font-weight: 600; letter-spacing: -.03em; }
.route-page .day-km-num { color: #aaaaff; }
.route-page .day-km-sub { color: #a3a3bc; }
.route-page .map-wrap { border: 1px solid #33334e; border-radius: 8px; background: #10101b; }
.route-page .map-open-link { background: #4646c8; color: #fff; border-radius: 8px; }
.route-page .map-open-link:hover { background: #6060d8; color: #fff; }
.route-page .table-label { color: #aaaaff; }
.route-page .cp-table-wrap { border: 1px solid #33334e; border-radius: 8px; }
.route-page .cp-table th { background: #1a1a32; color: #c1c1ff; }
.route-page .cp-table td { border-color: #292940; }
.route-page .cp-num { color: #b0b0f5; }
.route-page .cp-note { color: #9b9baa; }

/* Order and forms */
.order-page .page-header { border-bottom: 1px solid #343457; }
.order-page .order-step { background: #121225; border-color: #33334a; color: #c6c6d6; border-radius: 8px; }
.order-page .order-step-num, .order-page .form-section-label::before { background: #4646c8; color: #fff; }
.order-page .section-title, .order-page .form-section-label { color: #fff; font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif; font-weight: 600; }
.order-page .section-help, .order-page .form-note { color: #aaaabb; }
.order-page .section-eyebrow { color: #aaaaff; }
.order-page .pc { background: #111121; border: 1px solid #373751; border-radius: 8px; box-shadow: 0 12px 35px rgba(0,0,0,.18); }
.order-page .pc:hover { border-color: #7474d5; box-shadow: 0 18px 45px rgba(70,70,200,.16); }
.order-page .pc-ref-num, .order-page .pc-sub, .order-page .pc-price, .order-page .pc-price-unit, .order-page .pc-size-guide::after { color: #aaaaff; }
.order-page .pc-name { font-family: 'Geist', 'IBM Plex Sans Thai', sans-serif; color: #fff; }
.order-page .pc-size-guide { background: #4646c8; color: #fff; border-radius: 8px; }
.order-page .pc-size-guide:hover { background: #6060de; }
.order-page .gender-tag-f { color: #b5b5ff; border-color: #515181; background: #22223f; }
.order-page .size-row { border-color: #414156; background: #171728; }
.order-page .size-row.has-qty { border-color: #8383e5; background: #222248; }
.order-page .qty-btn { border-color: #55556e; color: #fff; }
.order-page .qty-btn:hover { border-color: #aaaaff; color: #aaaaff; }
.order-page .qty-num.nz { color: #b8b8ff; }
.order-page .total-bar { background: rgba(18,18,39,.97); border: 1px solid #7676d7; border-radius: 8px; box-shadow: 0 14px 35px rgba(0,0,0,.32); }
.order-page .total-amount { color: #c0c0ff; }
.order-page .order-summary { background: #191935; border: 1px solid #5a5aa5; color: #fff; border-radius: 8px; }
.order-page .summary-label { color: #c5c5ff; }
.order-page .form-section { background: #111121; border: 1px solid #343451; border-radius: 8px; box-shadow: 0 20px 55px rgba(0,0,0,.18); }
.order-page .form-label { color: #e9e9f4; }
.order-page .form-input, .order-page .ship-opt { background: #0b0b18; border: 1px solid #44445e; color: #fff; border-radius: 8px; }
.order-page .form-input:hover { border-color: #7777b0; }
.order-page .form-input:focus { border-color: #9999ff; box-shadow: 0 0 0 4px rgba(70,70,200,.2); }
.order-page .form-input::placeholder { color: #77778b; }
.order-page .ship-opt:has(input:checked) { background: #202047; border-color: #8989e3; }
.order-page .ship-opt-text { color: #e0e0ed; }
.order-page .payment-box { background: #191932; border: 1px solid #4f4f8c; border-radius: 8px; }
.order-page .payment-title, .order-page .payment-sub { color: #ededf8; }
.order-page .payment-acct { color: #bcbcff; }
.order-page .payment-warn { color: #ff9d9d; }
.order-page .file-wrap { background: #111124; border-color: #61618c; color: #fff; border-radius: 8px; }
.order-page .file-wrap:hover { background: #1d1d3e; border-color: #9999ff; }
.order-page .file-wrap-text { color: #dadaeb; }
.order-page .file-wrap-text span { color: #bbbaff; }
.order-page .btn-submit { background: #4646c8; color: #fff; border-radius: 8px; }
.order-page .btn-submit:hover { background: #5d5dda; }
.order-page .form-error { background: #381c27; color: #ffc9c9; }

/* Donation, search, riders */
.donate-page .payment-card, .donate-page .receipt-section, .donate-page .sponsor-contact-card,
.status-page .search-box, .status-page .result-card, .status-page .state-box,
.riders-page .card, .riders-page .state-box {
  background: linear-gradient(145deg, #16162c, #0e0e1b);
  border: 1px solid #34344e;
  border-radius: 8px;
}
.donate-page .payment-card-label, .donate-page .payment-account, .donate-page .section-label,
.donate-page .receipt-section-title, .donate-page .sponsor-contact-label,
.status-page .search-label, .status-page .card-total,
.riders-page .counter, .riders-page .card-name { color: #b4b4ff; }
.donate-page .amount-wrap, .donate-page .form-input, .status-page .search-input, .riders-page .filter-input, .riders-page .filter-select { background: #0c0c1a; border: 1px solid #41415d; border-radius: 8px; color: #fff; }
.donate-page .amount-prefix { background: #1f1f48; color: #b7b7ff; border-color: #41415d; }
.donate-page .toggle-btn { background: #131327; border-color: #41415d; border-radius: 8px; color: #b8b8c8; }
.donate-page .toggle-btn.active { background: #242455; border-color: #8585dd; color: #fff; }
.donate-page .btn-submit, .status-page .btn-search { background: #4646c8; color: #fff; border-radius: 8px; }
.donate-page .btn-submit:hover, .status-page .btn-search:hover { background: #5e5ed9; }
.donate-page .sponsor-btn-download { background: #1b1b36; border-color: #6363b0; color: #c2c2ff; border-radius: 8px; }
.donate-page .sponsor-btn-download:hover { background: #29295b; }
.riders-page .grid { gap: 15px; }
.riders-page .card { overflow: hidden; transition: transform .25s, border-color .25s; }
.riders-page .card:hover { border-color: #6666af; transform: translateY(-3px); }
.riders-page .tag-faculty { background: #4646c8; color: #fff; }
.riders-page .tag-date { color: #b1b1ff; border-color: #4c4c86; background: #202043; }

.missing-page .num { color: #aaaaff; }
.missing-page .btn-home { background: #4646c8; color: #fff; border-radius: 8px; }
.missing-page .btn-home:hover { background: #5e5ed9; }

@media (max-width: 1100px) {
  body .nav-links a { padding: 9px 8px; font-size: 12px; }
  .home .hero-shell { grid-template-columns: minmax(0,1fr) minmax(330px,.8fr); gap: 25px; }
  .home .hero-title { font-size: clamp(55px, 6vw, 75px); }
}
@media (max-width: 900px) {
  body nav { min-height: 68px; }
  body .nav-mobile { top: 68px; }
  .home .marquee-wrap { margin-top: 68px; }
  .home .hero-shell { min-height: 680px; grid-template-columns: minmax(0,1fr) minmax(260px,.72fr); gap: 20px; }
  .hero-art { min-height: 470px; }
}
@media (max-width: 700px) {
  .home .hero.nexus-hero { min-height: 0; }
  .home .hero-shell { min-height: 0; grid-template-columns: 1fr; gap: 45px; padding: 95px 23px 65px; }
  .home .hero-content { order: 1; }
  .home .hero-title { font-size: clamp(48px, 12vw, 72px); }
  .home .hero-sub { font-size: 16px; }
  .hero-art { order: 2; min-height: 330px; }
  .hero-art-photo { inset: 7% -22% -12% -10%; }
  .orbit-one { width: 300px; height: 300px; top: 12px; right: -105px; }
  .orbit-two { width: 180px; height: 180px; top: 74px; right: -40px; }
  .home .hero-note { font-size: 10px; }
  .home .section-wrap { padding: 84px 22px; }
  .home .reg-grid { gap: 12px; }
  .home .cta-strip { display: grid; gap: 12px; }
  .home .cta-card, .home .cta-card:nth-child(2), .home .cta-card:nth-child(3) { position: static; min-height: 270px; }
  .interior .page-header { min-height: 0; padding: 64px 22px 55px; }
  .interior .page-title { font-size: clamp(42px, 10vw, 62px); }
  .interior .main, .interior:not(.order-page) .main { padding-top: 40px; }
}
@media (max-width: 430px) {
  .home .hero-shell { padding-top: 80px; }
  .home .hero-badge { font-size: 9px; }
  .home .hero-title { font-size: 48px; }
  .home .hero-btns { display: grid; grid-template-columns: 1fr; }
  .home .btn-primary, .home .btn-ghost { width: 100%; }
  .hero-art { min-height: 285px; }
  .home .stat-cell { padding: 22px 13px; }
  .home .stat-num { font-size: 27px; }
  .route-page .day-tabs { gap: 5px; }
  .route-page .day-tab { min-height: 40px; font-size: 10px; padding: 8px 10px; }
  .order-page .page-header { padding: 62px 22px 50px; }
}
@media (prefers-reduced-motion: reduce) {
  .nexus-field { display: none; }
  .home .cta-card, .home .faq-item, .home .route-row, .riders-page .card { transition: none; }
}

/* Muted YouTube video fills the hero while a dark treatment keeps text legible. */
.hero-art-video {
  position: absolute;
  inset: 0;
  z-index: 0;
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: linear-gradient(rgba(3,3,8,.62), rgba(3,3,8,.82)), url('images/hero-cyclists.jpg') center / cover;
  box-shadow: none;
  pointer-events: none;
}
.hero-art-video::before,
.hero-art-video::after { display: none; }
.hero-art-video .hero-video-screen {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: linear-gradient(rgba(3,3,8,.62), rgba(3,3,8,.78)), url('images/hero-cyclists.jpg') center / cover;
}
.hero-art-video iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  transform: translate(-50%, -50%);
  filter: brightness(.28) saturate(.72) contrast(1.08);
}
.hero-art-video:not(.video-active) iframe { visibility: hidden; }
@media (max-width: 700px) {
  .hero-art-video iframe { filter: brightness(.22) saturate(.65) contrast(1.08); }
}
