:root { color-scheme: dark; }
* { box-sizing: border-box; }
html, body { width:100%; height:100%; margin:0; overflow:hidden; background:#000; }
body { font-family: Arial, Helvetica, sans-serif; color:#fff; }
button, a { -webkit-tap-highlight-color: transparent; }
#viewport { position:fixed; inset:0; overflow:hidden; background:#000; }
#stage {
  position:absolute; width:800px; height:600px; left:50%; top:50%;
  transform-origin:center center; overflow:hidden; background:#000;
  box-shadow:0 0 40px rgba(140,0,20,.22);
}
.stage-bg { position:absolute; inset:0; width:800px; height:600px; object-fit:cover; pointer-events:none; user-select:none; }
.hidden { visibility:hidden; opacity:0; }
#site { position:absolute; inset:0; transition:opacity .35s ease; }

/* Preloader/intro reconstructed from the opening Flash timeline. */
#intro { position:absolute; inset:0; background:#000; z-index:50; transition:opacity .45s ease; }
#intro.out { opacity:0; pointer-events:none; }
.intro-title {
  position:absolute; left:270px; top:250px; width:264px; text-align:center;
  font:26px Georgia,serif; letter-spacing:1px; color:#fff;
  text-shadow:0 0 8px #8e0018, 2px 2px 0 #220007;
  animation:introTitle .75s ease-out both;
}
.intro-horse { position:absolute; left:380px; top:292px; font-size:62px; color:#5a0012; opacity:.35; transform:skewX(-15deg); }
.loader { position:absolute; left:334px; top:332px; width:132px; height:4px; border:1px solid #33000b; background:#0b0002; overflow:hidden; }
.loader span { display:block; height:100%; width:100%; transform:translateX(-100%); background:linear-gradient(90deg,#250006,#c4002f,#fff); animation:loadbar 1.35s ease-out forwards; }
.loading-text { position:absolute; left:344px; top:344px; width:112px; text-align:center; font:26px Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif; color:#fff; letter-spacing:1px; }
#skipIntro { position:absolute; right:18px; bottom:14px; border:0; background:transparent; color:#777; font:10px Arial,sans-serif; cursor:pointer; }
#skipIntro:hover { color:#fff; }
@keyframes loadbar { to { transform:translateX(0); } }
@keyframes introTitle { from { transform:scaleX(.05); opacity:0; } to { transform:scaleX(1); opacity:1; } }

/* Keep the clickable drag banner above the full-stage scene layers. */
.banner { position:absolute; left:282px; top:2px; width:514px; height:112px; overflow:hidden; cursor:pointer; z-index:30; background:#020002; }
.banner img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; user-select:none; }
#bannerStatic { opacity:.92; }
#bannerFrame { opacity:0; transition:opacity .2s linear; }
#bannerStatus {
  position:absolute; left:0; right:0; bottom:2px; text-align:center; color:#bbb;
  font:10px Arial,sans-serif; letter-spacing:.9px; text-shadow:1px 1px #000;
  opacity:.8; pointer-events:none;
}
.banner:hover #bannerStatus { color:#ffef55; }

.main-menu { position:absolute; left:8px; top:174px; width:130px; height:230px; z-index:15; }
.menu-item {
  position:absolute; left:0; width:128px; height:46px; border:0; margin:0; padding:5px 2px;
  background:transparent; color:#fff; text-decoration:none; cursor:pointer; text-align:center;
  font:14px Georgia,'Times New Roman',serif; line-height:15px;
  text-shadow:1px 1px 0 #000, 0 0 3px #000;
  opacity:0; transform:scale(.04); transform-origin:center center;
  animation:menuGrow .78s cubic-bezier(.2,.95,.23,1.15) forwards;
}
.menu-item span { display:block; }
.menu-item:nth-child(1){ top:0; animation-delay:.08s; }
.menu-item:nth-child(2){ top:60px; animation-delay:.17s; }
.menu-item:nth-child(3){ top:120px; animation-delay:.26s; }
.menu-item:nth-child(4){ top:180px; animation-delay:.35s; }
.menu-item:hover, .menu-item.active { color:#fff400; transform:scale(1.04); }
@keyframes menuGrow { from { opacity:.15; transform:scale(.04); } to { opacity:1; transform:scale(1); } }

.scene { position:absolute; inset:0; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .28s ease, transform .35s ease; transform:translateX(18px); z-index:8; }
.scene.active { opacity:1; visibility:visible; pointer-events:auto; transform:translateX(0); }
.content-scene h1 { position:absolute; margin:0; color:#fff; font:12px Arial,sans-serif; font-weight:normal; text-align:center; text-shadow:1px 1px #000; }

.welcome-window { position:absolute; left:218px; top:157px; width:516px; height:258px; overflow:hidden; clip-path:inset(0 0 0 0); }
.welcome-text { position:absolute; left:0; top:42px; width:500px; color:#fff; font:14px Arial,sans-serif; line-height:20px; text-shadow:1px 1px #000; transition:transform .22s ease; }
.welcome-text p { margin:0 0 13px; }
.scroll-arrow { position:absolute; width:22px; height:24px; border:0; background:rgba(0,0,0,.18); color:#fff; font-size:10px; cursor:pointer; z-index:12; }
.scroll-arrow:hover { color:#fff400; background:rgba(80,0,15,.5); }
.scroll-arrow.left { left:186px; } .scroll-arrow.right { left:734px; }
.scroll-arrow.up { top:185px; } .scroll-arrow.down { top:258px; }

/* Original Pics sprite placement, reconstructed from SWF coordinates. */
#picsScene h1 { left:395px; top:153px; width:140px; }
.event-links a { position:absolute; color:#fff; text-decoration:none; font:14px Arial,sans-serif; text-shadow:1px 1px #000; white-space:nowrap; }
.event-links a:hover, .event-links a.hot { color:#fff400; }
.event-links a:nth-child(1){ left:247px; top:181px; }
.event-links a:nth-child(2){ left:295px; top:212px; }
.event-links a:nth-child(3){ left:279px; top:243px; }
.event-links a:nth-child(4){ left:254px; top:273px; }
.event-preview { position:absolute; left:566px; top:179px; width:180px; height:120px; display:flex; align-items:center; justify-content:center; }
.event-preview img { max-width:100%; max-height:100%; object-fit:contain; box-shadow:0 0 9px rgba(0,0,0,.8); opacity:.95; transition:opacity .15s ease, transform .2s ease; }
.event-preview img.swap { opacity:.15; transform:scale(.92); }

#carsScene h1 { left:405px; top:153px; width:134px; }
.car-card { position:absolute; text-align:center; }
.car-card img { display:block; object-fit:cover; border:0; margin:0 auto 7px; box-shadow:0 0 8px #000; opacity:.92; }
.car-card a { color:#fff; text-decoration:none; font:14px Arial,sans-serif; text-shadow:1px 1px #000; white-space:nowrap; }
.car-card a:hover { color:#fff400; }
.car-88 { left:197px; top:201px; width:190px; } .car-88 img { width:188px; height:127px; }
.car-02 { left:397px; top:205px; width:205px; } .car-02 img { width:204px; height:73px; margin-bottom:45px; }
.car-other { left:614px; top:201px; width:168px; } .car-other img { width:159px; height:112px; margin-bottom:16px; }

.links-scene h1 { left:182px; top:145px; width:50px; }
.logo-link { position:absolute; display:block; filter:brightness(.85); transition:filter .15s, transform .15s; }
.logo-link:hover { filter:brightness(1.25); transform:scale(1.03); }
.logo-link img { display:block; max-width:100%; height:auto; }
.logo-link.upr { left:536px; top:183px; width:240px; }
.logo-link.mirc { left:202px; top:290px; width:85px; }
.logo-link.adsubtract { left:207px; top:354px; width:55px; }
.logo-link.jms { left:515px; top:235px; width:250px; }
.logo-link.zone { left:206px; top:427px; width:80px; }
.logo-link.corral { left:500px; top:294px; width:125px; }
.friend-title { position:absolute; left:498px; top:365px; width:95px; color:#fff; text-align:center; font:12px Arial,sans-serif; line-height:14px; }
.friend-title span { letter-spacing:3px; }
.friend, .email { position:absolute; color:#fff; text-decoration:none; text-align:center; font:14px Arial,sans-serif; line-height:16px; text-shadow:1px 1px #000; }
.friend:hover, .email:hover { color:#fff400; }
.email { left:190px; top:238px; width:60px; font-size:12px; }
.f1 { left:372px; top:417px; width:120px; } .f2 { left:509px; top:417px; width:84px; }
.f3 { left:610px; top:417px; width:125px; } .f4 { left:493px; top:470px; width:120px; }
.f5 { left:392px; top:470px; width:78px; } .f6 { left:625px; top:470px; width:115px; }

.back-button { position:absolute; left:7px; top:423px; width:42px; height:24px; border:0; background:transparent; color:#fff; font:16px Georgia,serif; cursor:pointer; z-index:18; opacity:0; pointer-events:none; transform:scale(.1); transition:.35s ease; text-shadow:1px 1px #000; }
.back-button.show { opacity:1; pointer-events:auto; transform:scale(1); }
.back-button:hover { color:#fff400; }

.ford-ring { position:absolute; left:375px; top:401px; width:419px; height:189px; z-index:10; outline:none; }
.ford-ring > img { position:absolute; left:110px; top:18px; width:200px; height:130px; object-fit:contain; filter:brightness(.8); opacity:.76; transition:.25s ease; }
.ford-ring:hover > img, .ford-ring:focus > img { filter:brightness(1.15); opacity:1; transform:scale(1.03); }
.ring-links { position:absolute; inset:4px 4px 4px 4px; opacity:0; pointer-events:none; transition:.22s ease; }
.ford-ring:hover .ring-links, .ford-ring:focus-within .ring-links { opacity:1; pointer-events:auto; }
.ring-links a { position:absolute; color:#fff; text-decoration:none; font:12px Arial,sans-serif; text-shadow:1px 1px #000; }
.ring-links a:hover { color:#fff400; }
.ring-links a:nth-child(1){ left:8px; top:15px; }.ring-links a:nth-child(2){ left:8px; top:38px; }
.ring-links a:nth-child(3){ left:5px; top:64px; }.ring-links a:nth-child(4){ left:20px; top:91px; }
.ring-links a:nth-child(5){ right:10px; top:15px; }.ring-links a:nth-child(6){ right:8px; top:38px; }
.ring-links a:nth-child(7){ right:4px; top:64px; }.ring-links a:nth-child(8){ right:7px; top:91px; }

.terms-link { position:absolute; left:10px; top:485px; width:125px; color:#fff; text-decoration:none; text-align:center; font:10px Georgia,serif; line-height:13px; text-shadow:1px 1px #000; z-index:12; }
.terms-link:hover { color:#fff400; }
.sound-toggle { position:absolute; left:694px; top:575px; width:94px; height:18px; border:0; background:rgba(0,0,0,.55); color:#777; font:9px Arial,sans-serif; cursor:pointer; z-index:20; }
.sound-toggle:hover { color:#ddd; }
.sound-toggle.on { color:#fff400; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
