:root {
  --acid: #eaff28;
  --acid-soft: #d2e952;
  --orange: #ff5b24;
  --paper: #f2eee5;
  --ink: #07090b;
  --sky: #9db6c9;
  --muted: rgba(242, 238, 229, 0.68);
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  color-scheme: dark;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

html, body { margin: 0; min-width: 320px; min-height: 100%; background: #050608; }

body { overflow: hidden; color: var(--paper); }

button, a { font: inherit; }

button { color: inherit; }

.viewport {
  position: fixed;
  inset: 0;
  overflow: hidden;
  background: #050608;
}

.stage {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1920px;
  height: 1080px;
  overflow: hidden;
  isolation: isolate;
  transform: translate(-50%, -50%) scale(var(--stage-scale, 1));
  transform-origin: center;
  background: #111820 url("assets/desert-road.jpg") center / cover no-repeat;
}

.stage::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(5, 7, 9, .94) 0%, rgba(5, 7, 9, .78) 32%, rgba(5, 7, 9, .18) 62%, rgba(5, 7, 9, .08) 100%),
    linear-gradient(0deg, rgba(5, 7, 9, .86) 0%, transparent 35%, rgba(5, 7, 9, .16) 100%);
}

.stage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 30;
  pointer-events: none;
  opacity: .2;
  mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.26'/%3E%3C/svg%3E");
}

.scene { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }

.sky-wash {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 63% 22%, rgba(132, 190, 223, .21), transparent 34%);
  mix-blend-mode: screen;
}

.sun-flare {
  position: absolute;
  right: 30px;
  top: 370px;
  width: 270px;
  height: 270px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 224, 156, .38), rgba(255, 122, 53, .08) 32%, transparent 69%);
  filter: blur(5px);
  animation: flare-breathe 4s ease-in-out infinite;
}

.speed-lines {
  position: absolute;
  inset: 390px 0 110px 0;
  opacity: .27;
  background: repeating-linear-gradient(174deg, transparent 0 34px, rgba(232, 255, 40, .55) 35px 37px, transparent 38px 72px);
  mask-image: linear-gradient(90deg, transparent, #000 48%, #000 85%, transparent);
  animation: road-rush 1.1s linear infinite;
}

.road-swipe {
  position: absolute;
  left: -25%;
  width: 150%;
  height: 6px;
  background: linear-gradient(90deg, transparent, var(--acid), transparent 72%);
  filter: blur(1px);
  opacity: .65;
  transform: rotate(-3deg);
  animation: swipe 2.8s ease-in-out infinite;
}

.road-swipe-a { bottom: 232px; }
.road-swipe-b { bottom: 170px; animation-delay: -1.4s; opacity: .3; }

.dust-particle {
  position: absolute;
  bottom: 145px;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  background: #d8b47b;
  filter: blur(var(--blur));
  opacity: 0;
  animation: dust-run var(--duration) linear var(--delay) infinite;
}

.topbar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
  height: 108px;
  display: flex;
  align-items: center;
  gap: 44px;
  padding: 22px 58px;
  border-bottom: 1px solid rgba(255,255,255,.16);
  background: linear-gradient(180deg, rgba(5,7,9,.72), rgba(5,7,9,.12));
  backdrop-filter: blur(4px);
}

.brand { display: flex; align-items: center; gap: 14px; color: var(--paper); text-decoration: none; min-width: 315px; }

.brand-mark {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border: 2px solid var(--acid);
  border-radius: 50%;
  color: var(--acid);
  font: 900 22px/1 Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  letter-spacing: .06em;
  box-shadow: inset 0 0 0 5px var(--ink), 0 0 24px rgba(234,255,40,.23);
  transform: rotate(-8deg);
}

.brand-copy { display: grid; line-height: .9; letter-spacing: .06em; }
.brand-copy b { font-size: 18px; }
.brand-copy em { color: var(--acid); font: 900 24px/1 Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-style: normal; }

.case-file {
  margin: 0 auto;
  display: flex;
  align-items: center;
  padding: 12px 18px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 999px;
  color: rgba(255,255,255,.7);
  font: 800 13px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .12em;
  background: rgba(4,5,6,.32);
}

.pulse-dot { width: 8px; height: 8px; margin-right: 12px; border-radius: 50%; background: var(--acid); box-shadow: 0 0 16px var(--acid); animation: pulse 1.4s ease-in-out infinite; }

.socials { display: flex; gap: 10px; }
.social-link {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 17px;
  border: 1px solid rgba(255,255,255,.23);
  color: var(--paper);
  text-decoration: none;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .07em;
  background: rgba(4,5,6,.42);
  transition: transform .2s ease, color .2s ease, background .2s ease, border-color .2s ease;
}

.social-link:hover, .social-link:focus-visible { transform: translateY(-3px) rotate(-1deg); border-color: var(--acid); color: var(--acid); outline: none; }
.social-link-hot { color: #111; background: var(--acid); border-color: var(--acid); }
.social-link-hot:hover, .social-link-hot:focus-visible { color: #111; background: var(--paper); }
.social-icon { font-size: 20px; line-height: 1; }
.bolt { font-size: 26px; }

.hero { position: absolute; inset: 108px 0 68px; z-index: 5; }

.hero-copy { position: absolute; z-index: 9; left: 78px; top: 78px; width: 950px; }

.eyebrow { display: flex; align-items: center; gap: 18px; margin-bottom: 14px; color: var(--acid); font-size: 14px; font-weight: 900; letter-spacing: .18em; }
.eyebrow b { padding: 8px 12px; border: 1px solid var(--acid); color: var(--ink); background: var(--acid); letter-spacing: .08em; transform: rotate(-2deg); }

h1 { margin: 0; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-weight: 900; line-height: .78; letter-spacing: -.025em; text-transform: uppercase; }

.title-small { display: block; font-size: 118px; color: var(--paper); text-shadow: 8px 8px 0 rgba(0,0,0,.5); }

.title-big {
  position: relative;
  display: block;
  width: max-content;
  margin-top: 13px;
  color: var(--acid);
  font-size: 170px;
  -webkit-text-stroke: 2px var(--ink);
  text-shadow: 9px 9px 0 var(--orange), 16px 16px 0 rgba(0,0,0,.58);
  transform: skew(-5deg) rotate(-1deg);
}

.title-big::after {
  content: attr(data-text);
  position: absolute;
  left: 0;
  top: 0;
  color: transparent;
  -webkit-text-stroke: 1px rgba(255,255,255,.24);
  transform: translate(5px, -5px);
  clip-path: polygon(0 45%, 100% 33%, 100% 42%, 0 55%);
  animation: title-glitch 4.5s steps(1) infinite;
}

.manifesto { margin: 32px 0 24px; color: var(--paper); font: 900 23px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .11em; }

.lore-card {
  position: relative;
  width: 690px;
  padding: 22px 27px 22px 30px;
  border-left: 5px solid var(--acid);
  background: linear-gradient(90deg, rgba(6,8,10,.88), rgba(6,8,10,.52));
  box-shadow: 18px 18px 50px rgba(0,0,0,.22);
  backdrop-filter: blur(8px);
}

.lore-card::after { content: ""; position: absolute; inset: 8px -8px -8px 8px; z-index: -1; border: 1px solid rgba(234,255,40,.35); }
.lore-kicker { display: block; margin-bottom: 9px; color: var(--acid); font: 900 13px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .15em; }
.lore-card p { margin: 0 0 7px; max-width: 610px; color: rgba(255,255,255,.78); font-size: 17px; line-height: 1.48; }
.lore-card p:last-child { margin-bottom: 0; }
.lore-card strong { color: #fff; }

.actions { display: flex; gap: 14px; margin-top: 29px; }
.ca-button, .rev-button {
  position: relative;
  min-height: 64px;
  padding: 0 25px;
  border: 0;
  cursor: pointer;
  font-weight: 1000;
  letter-spacing: .08em;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.ca-button { min-width: 254px; color: var(--ink); background: var(--acid); box-shadow: 8px 8px 0 var(--orange); }
.ca-button:hover, .ca-button:focus-visible { transform: translate(-3px, -3px); box-shadow: 12px 12px 0 var(--orange); outline: 2px solid #fff; outline-offset: 4px; }
.ca-button.copied { background: #fff; transform: rotate(-1deg) scale(1.03); }
.ca-label { opacity: .55; margin-right: 6px; }
.copy-glyph { margin-left: 15px; font-size: 24px; }

.rev-button { color: var(--paper); border: 1px solid rgba(255,255,255,.42); background: rgba(5,7,9,.64); backdrop-filter: blur(7px); }
.rev-button:hover, .rev-button:focus-visible { transform: translateY(-3px); border-color: var(--orange); box-shadow: 0 0 30px rgba(255,91,36,.24); outline: none; }
.rev-dot { display: inline-block; width: 10px; height: 10px; margin-right: 9px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 12px var(--orange); }

.character-zone {
  --card-size: 850px;
  position: absolute;
  z-index: 6;
  right: 46px;
  top: 20px;
  width: var(--card-size);
  height: calc(var(--card-size) + 72px);
  margin: 0;
  perspective: 1200px;
}

.character-float { width: var(--card-size); height: var(--card-size); animation: character-float 3.1s ease-in-out infinite; }

.character-tilt {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 3px solid var(--paper);
  background: #91a9bb;
  box-shadow: 28px 32px 0 rgba(7,9,11,.78), 31px 35px 0 var(--acid), 0 38px 70px rgba(0,0,0,.46);
  transform: rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) rotate(1.5deg);
  transform-style: preserve-3d;
  transition: transform .16s ease-out;
}

.character-image { display: block; width: 100%; height: 100%; object-fit: cover; user-select: none; filter: saturate(.98) contrast(1.04); }

.warning-strip {
  position: absolute;
  z-index: 4;
  left: -30px;
  top: -12px;
  width: 395px;
  padding: 10px 12px;
  overflow: hidden;
  white-space: nowrap;
  color: var(--ink);
  background: var(--acid);
  font: 1000 13px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .09em;
  transform: rotate(-5deg);
  box-shadow: 7px 7px 0 rgba(0,0,0,.68);
}

.wheel-spin {
  position: absolute;
  border: 4px dashed rgba(234,255,40,.72);
  border-radius: 50%;
  box-shadow: 0 0 21px rgba(234,255,40,.35), inset 0 0 16px rgba(234,255,40,.2);
  mix-blend-mode: screen;
  animation: wheel-spin .46s linear infinite;
}

.wheel-front { left: 18.7%; top: 58.1%; width: 31%; aspect-ratio: 1; }
.wheel-rear { left: 61.7%; top: 54.8%; width: 25%; aspect-ratio: 1; animation-direction: reverse; }

.kick-spark { position: absolute; width: 80px; height: 9px; background: var(--acid); filter: drop-shadow(0 0 8px var(--acid)); opacity: .7; clip-path: polygon(0 40%, 72% 40%, 100% 0, 83% 52%, 100% 100%, 70% 60%, 0 60%); animation: spark-pop .7s steps(2) infinite; }
.kick-left { left: 2%; top: 33%; transform: rotate(7deg); }
.kick-right { right: 0%; top: 37%; transform: scaleX(-1) rotate(5deg); animation-delay: -.35s; }

.vroom {
  position: absolute;
  right: 30px;
  top: 78px;
  color: var(--orange);
  font: 900 58px/.8 Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  letter-spacing: .03em;
  -webkit-text-stroke: 2px #111;
  text-shadow: 5px 5px 0 var(--acid);
  opacity: 0;
  transform: rotate(9deg) scale(.2);
}

.character-hitbox { position: absolute; inset: 0 0 72px; z-index: 8; border: 0; background: transparent; cursor: crosshair; }
.character-hitbox:focus-visible { outline: 4px solid var(--acid); outline-offset: 7px; }

figcaption {
  position: absolute;
  left: 14px;
  right: -2px;
  bottom: 8px;
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 13px 15px;
  border: 1px solid rgba(255,255,255,.3);
  color: rgba(255,255,255,.74);
  background: rgba(5,7,9,.76);
  font: 800 12px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .07em;
}

.speed-readout {
  position: absolute;
  z-index: 12;
  right: 848px;
  bottom: 98px;
  width: 138px;
  height: 138px;
  display: grid;
  place-content: center;
  border: 2px solid rgba(255,255,255,.34);
  border-radius: 50%;
  text-align: center;
  background: rgba(5,7,9,.38);
  backdrop-filter: blur(5px);
  transform: rotate(-8deg);
}

.speed-readout::after { content: ""; position: absolute; inset: 8px; border-top: 5px solid var(--orange); border-right: 5px solid transparent; border-radius: 50%; animation: wheel-spin 4s linear infinite; }
.speed-number { color: var(--acid); font: 900 58px/.74 Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; }
.speed-unit { font-size: 13px; font-weight: 1000; letter-spacing: .13em; }
.speed-readout small { margin-top: 7px; color: rgba(255,255,255,.5); font: 700 9px/1 ui-monospace, monospace; letter-spacing: .08em; }

.ticker {
  position: absolute;
  z-index: 25;
  left: 0;
  right: 0;
  bottom: 0;
  height: 68px;
  overflow: hidden;
  border-top: 2px solid var(--ink);
  color: var(--ink);
  background: var(--acid);
  transform: translateZ(0);
}

.ticker-track { display: flex; align-items: center; width: max-content; height: 100%; animation: ticker-run 18s linear infinite; }
.ticker-track span { margin: 0 34px; font: 900 29px/1 Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; letter-spacing: .045em; }
.ticker-track i { color: var(--orange); font-size: 22px; font-style: normal; }

.spark-trail { position: absolute; inset: 0; z-index: 40; pointer-events: none; }
.cursor-spark { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: var(--acid); box-shadow: 0 0 12px var(--acid); opacity: 0; animation: cursor-spark .55s ease-out forwards; }

.toast {
  position: absolute;
  z-index: 50;
  left: 50%;
  top: 128px;
  min-width: 330px;
  padding: 16px 22px;
  color: var(--ink);
  background: var(--acid);
  text-align: center;
  font-weight: 1000;
  letter-spacing: .07em;
  transform: translate(-50%, -30px) rotate(-1deg);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
  box-shadow: 8px 8px 0 var(--orange);
}

.toast.show { opacity: 1; transform: translate(-50%, 0) rotate(-1deg); }

.stage.is-revving .character-float { animation: rev-shake .09s linear infinite; }
.stage.is-revving .wheel-spin { animation-duration: .09s; opacity: 1; }
.stage.is-revving .speed-lines { animation-duration: .16s; opacity: .75; }
.stage.is-revving .vroom { animation: vroom-pop 1.1s cubic-bezier(.17,.84,.31,1.3) both; }
.stage.is-revving .speed-number { animation: number-flip .18s steps(2) infinite; }

noscript { position: fixed; z-index: 999; left: 12px; bottom: 12px; padding: 10px; color: #111; background: var(--acid); }

@keyframes character-float { 0%, 100% { transform: translateY(0) rotate(-.35deg); } 50% { transform: translateY(-13px) rotate(.35deg); } }
@keyframes wheel-spin { to { transform: rotate(360deg); } }
@keyframes flare-breathe { 50% { opacity: .52; transform: scale(1.08); } }
@keyframes road-rush { to { transform: translateX(-130px); } }
@keyframes swipe { 0%,100% { transform: translateX(-32%) rotate(-3deg); opacity: 0; } 35%,70% { opacity: .6; } 50% { transform: translateX(25%) rotate(-3deg); } }
@keyframes pulse { 50% { opacity: .3; transform: scale(.66); } }
@keyframes spark-pop { 50% { opacity: .2; transform: translateX(-12px) scaleX(.7); } }
@keyframes ticker-run { to { transform: translateX(-50%); } }
@keyframes title-glitch { 0%,91%,100% { transform: translate(5px,-5px); } 92% { transform: translate(-13px,3px); } 94% { transform: translate(19px,-2px); } 96% { transform: translate(5px,-5px); } }
@keyframes dust-run { 0% { transform: translate3d(2100px,0,0) scale(.3); opacity: 0; } 10% { opacity: .38; } 100% { transform: translate3d(-260px,var(--lift),0) scale(1.8); opacity: 0; } }
@keyframes cursor-spark { to { transform: translate(var(--dx), var(--dy)) scale(.1); opacity: 0; } 15% { opacity: .9; } }
@keyframes rev-shake { 0% { transform: translate(0,0) rotate(-.5deg); } 25% { transform: translate(7px,-3px) rotate(.5deg); } 50% { transform: translate(-4px,5px) rotate(-.7deg); } 75% { transform: translate(4px,2px) rotate(.3deg); } }
@keyframes vroom-pop { 0% { opacity: 0; transform: rotate(9deg) scale(.2); } 22% { opacity: 1; transform: rotate(4deg) scale(1.15); } 72% { opacity: 1; transform: rotate(7deg) scale(1); } 100% { opacity: 0; transform: translate(100px,-70px) rotate(18deg) scale(1.4); } }
@keyframes number-flip { 50% { color: var(--orange); transform: translateY(-2px); } }

@media (max-width: 899px) {
  body { overflow: auto; }
  .viewport { position: relative; min-height: 100dvh; overflow: hidden; }
  .stage { position: relative; left: auto; top: auto; width: 100%; height: auto; min-height: 100dvh; transform: none; background-position: 58% center; }
  .topbar { position: relative; height: auto; padding: 16px 18px; gap: 12px; flex-wrap: wrap; }
  .brand { min-width: 0; margin-right: auto; }
  .brand-mark { width: 48px; height: 48px; }
  .case-file { order: 3; width: 100%; justify-content: center; font-size: 10px; }
  .social-link { min-height: 43px; padding: 0 13px; }
  .social-link span:last-child { display: none; }
  .hero { position: relative; inset: auto; min-height: 1040px; padding-top: 52px; }
  .hero-copy { position: relative; left: auto; top: auto; width: auto; padding: 0 20px; }
  .eyebrow { font-size: 10px; letter-spacing: .1em; }
  .title-small { font-size: clamp(62px, 19vw, 108px); }
  .title-big { font-size: clamp(72px, 21vw, 122px); text-shadow: 5px 5px 0 var(--orange), 10px 10px 0 rgba(0,0,0,.58); }
  .manifesto { font-size: 16px; line-height: 1.25; }
  .lore-card { width: 100%; padding: 19px 18px; }
  .lore-card p { font-size: 16px; }
  .actions { flex-wrap: wrap; }
  .ca-button, .rev-button { flex: 1 1 220px; }
  .character-zone { --card-size: min(94vw, 620px); right: auto; left: 50%; top: 650px; height: calc(var(--card-size) + 84px); transform: translateX(-50%); }
  .speed-readout { display: none; }
  figcaption { flex-wrap: wrap; justify-content: center; line-height: 1.45; }
  .ticker { position: relative; height: 58px; }
  .ticker-track span { font-size: 24px; }
  .toast { position: fixed; top: 90px; min-width: 280px; }
}

@media (max-width: 520px) {
  .hero { min-height: 960px; }
  .character-zone { top: 635px; }
  .warning-strip { width: 310px; }
  .lore-card p:last-child { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .spark-trail { display: none; }
}
