:root { --red: #e84040; --gold: #ffd24a; --bg: #0a0a0e; }
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--bg);
  color: #e6ecf7;
  font-family: 'VT323', 'Courier New', monospace;
  display: flex; flex-direction: column; align-items: center;
  min-height: 100vh; padding: 40px 24px; text-align: center;
  background-image: repeating-linear-gradient(0deg, rgba(255,255,255,0.018) 0 1px, transparent 1px 3px);
}

/* ---- product hero ---- */
.product { width: 100%; max-width: 680px; margin: 0 auto; }
.title { color: var(--red); font-size: clamp(44px, 12vw, 120px); line-height: 1;
         letter-spacing: 6px; text-shadow: 0 0 24px rgba(232,64,64,0.5); margin: 0; }
.title .ed { color: var(--gold); font-size: 0.5em; letter-spacing: 4px; vertical-align: 0.32em;
             text-shadow: 0 0 16px rgba(255,210,74,0.4); }
.subtitle { color: #e6ecf7; font-size: clamp(20px, 5vw, 38px); letter-spacing: 8px; margin: 4px 0 0 10px; opacity: 0.92; }
.kicker { color: var(--red); font-size: clamp(15px, 3.6vw, 26px); letter-spacing: 12px;
          margin: 6px 0 0 12px; opacity: 0.85; text-shadow: 0 0 16px rgba(232,64,64,0.4); }
.tagline { margin: 20px auto 0; max-width: 560px; color: #c3c9d4; font-size: clamp(19px, 3.4vw, 26px); line-height: 1.35; letter-spacing: 0.5px; }
.tagline b { color: var(--gold); font-weight: normal; }
.campaign { margin-top: 12px; color: #9aa0ac; font-size: clamp(17px, 3vw, 22px); letter-spacing: 0.5px; }
.meta { margin-top: 18px; color: #9aa0ac; font-size: clamp(17px, 3vw, 22px); letter-spacing: 1px; }
.meta .v { color: var(--gold); }
.downloads { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.btn {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  min-width: 140px; padding: 14px 20px; text-decoration: none;
  color: #e6ecf7; background: #16161c; border: 1px solid #2a2a34; border-radius: 8px;
  font-size: 24px; letter-spacing: 1px; transition: border-color .15s, background .15s, transform .05s;
}
.btn small { font-size: 15px; color: #7a8090; letter-spacing: 0.5px; }
.btn:hover:not(.disabled) { border-color: var(--red); background: #1d1d25; }
.btn:active:not(.disabled) { transform: translateY(1px); }
.btn.disabled { opacity: 0.4; cursor: not-allowed; pointer-events: none; }
.btn.disabled small { color: #5a5f6a; }

/* ---- cross-link banner (home <-> 2D) ---- */
.crosslink { width: 100%; max-width: 680px; margin: 30px auto 0; }
.crosslink a {
  display: inline-flex; align-items: center; gap: 12px; padding: 12px 22px; text-decoration: none;
  color: #c3c9d4; background: #121218; border: 1px solid #262633; border-radius: 999px;
  font-size: clamp(16px, 3vw, 21px); letter-spacing: 1px; transition: border-color .15s, color .15s, background .15s;
}
.crosslink a:hover { border-color: var(--gold); color: #fff; background: #17171f; }
.crosslink a b { color: var(--gold); font-weight: normal; }

/* ---- informative sections ---- */
.info { width: 100%; max-width: 940px; margin: 66px auto 0; padding-top: 50px; border-top: 1px solid #20202a; }
.ih { color: var(--red); font-size: clamp(28px, 6vw, 50px); line-height: 1.05; letter-spacing: 3px; margin: 0 0 10px; text-shadow: 0 0 16px rgba(232,64,64,0.35); }
.lead { color: #c3c9d4; font-size: clamp(18px, 3vw, 25px); line-height: 1.4; max-width: 740px; margin: 0 auto; }
.lead b { color: var(--gold); font-weight: normal; }
.noco { color: #e6ecf7; font-size: clamp(19px, 3.6vw, 28px); line-height: 1.4; max-width: 760px; margin: 4px auto 0; }
.noco b { color: var(--gold); font-weight: normal; }
.features { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 16px; margin-top: 30px; text-align: left; }
.feature { background: #121218; border: 1px solid #22222c; border-radius: 10px; padding: 16px 18px; color: #a7adba; font-size: 17px; line-height: 1.36; }
.feature b { display: block; color: #e6ecf7; font-size: 22px; letter-spacing: 0.5px; margin: 0 0 5px; }

/* ---- screenshots: landscape cells that follow each shot's own aspect ratio — full image,
       never cropped, no letterbox. No captions. ---- */
.gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; margin-top: 30px; align-items: start; }
.gallery img { display: block; width: 100%; height: auto; cursor: zoom-in;
               border: 1px solid #22222c; border-radius: 10px; background: #000;
               transition: border-color .15s, transform .05s; }
.gallery img:hover { border-color: var(--gold); }

/* ---- lightbox (click a screenshot to open it large; X / backdrop / Esc to close) ---- */
.lightbox { position: fixed; inset: 0; z-index: 100; display: none; align-items: center; justify-content: center;
            background: rgba(0,0,0,0.93); padding: 3vmin; cursor: zoom-out; }
.lightbox.open { display: flex; }
.lightbox img { max-width: 96vw; max-height: 92vh; width: auto; height: auto; cursor: default;
                border: 1px solid #333; border-radius: 8px; box-shadow: 0 12px 70px rgba(0,0,0,0.7); }
.lightbox .lb-close { position: fixed; top: 14px; right: 22px; color: #cfd4de; font-size: 40px; line-height: 1;
                      cursor: pointer; text-shadow: 0 2px 8px #000; user-select: none; }
.lightbox .lb-close:hover { color: #fff; }

.foot { margin-top: 64px; color: #555; font-size: 16px; letter-spacing: 1px; }
.foot a { color: #8a8f9a; text-decoration: none; }
.foot a:hover { color: #cfd4de; }
