/* Lootbox RPG website – static, no external requests.
   Fonts are self-hosted (SIL Open Font License): Pixelify Sans, Alegreya. */

@font-face { font-family: "Pixelify Sans"; src: url("fonts/pixelify-sans-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Pixelify Sans"; src: url("fonts/pixelify-sans-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Alegreya"; src: url("fonts/alegreya-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Alegreya"; src: url("fonts/alegreya-latin-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Alegreya"; src: url("fonts/alegreya-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-display: swap; }

:root {
  --abyss: #17100b;      /* unlit dungeon */
  --stone: #251b14;      /* dungeon wall */
  --stone-2: #342619;
  --parchment: #ead9b2;  /* the game's UI panels */
  --parchment-2: #dcc697;
  --ink: #34200f;
  --ember: #e2a63c;      /* torchlight */
  --ember-dim: #b98a3c;
  --blood: #c0341f;      /* health bar red */
  --text: #eadfc8;
  --text-dim: #b9a88b;
  --measure: 68ch;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--abyss);
  color: var(--text);
  font: 1.15rem/1.62 "Alegreya", Georgia, serif;
}
img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--ember); text-underline-offset: 3px; }
a:hover { color: #f3c46a; }
:focus-visible { outline: 3px solid var(--ember); outline-offset: 3px; border-radius: 2px; }

h1, h2, h3, .pixel {
  font-family: "Pixelify Sans", "Courier New", monospace;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .01em;
}
h2 { font-size: clamp(1.8rem, 4vw, 2.6rem); margin: 0 0 .6em; color: var(--ember); }
h3 { font-size: 1.3rem; margin: 0 0 .3em; color: var(--text); }
p { margin: 0 0 1em; max-width: var(--measure); }

.wrap { max-width: 1120px; margin: 0 auto; padding: 0 20px; }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 12px; top: 12px; z-index: 10; background: var(--parchment); color: var(--ink); padding: 8px 12px; }

/* ---------- top bar ---------- */
.topbar {
  position: absolute; inset: 0 0 auto 0; z-index: 3;
  display: flex; justify-content: flex-end; gap: 18px; align-items: center;
  padding: 16px 20px;
  font-family: "Pixelify Sans", monospace; font-size: 1rem;
}
.topbar a { color: var(--text); text-decoration: none; }
.topbar a:hover, .topbar a[aria-current="true"] { color: var(--ember); }

/* ---------- hero: gameplay seen through torchlight ---------- */
.hero {
  position: relative; min-height: min(92vh, 900px);
  display: grid; align-items: end;
  overflow: hidden; isolation: isolate;
  --x: 68%; --y: 42%;
}
.hero video, .hero .poster {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; z-index: -2;
  image-rendering: pixelated;
}
.hero .fog {
  position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(circle min(34vw, 340px) at var(--x) var(--y),
      rgba(23,16,11,0) 0%, rgba(23,16,11,.35) 45%, rgba(23,16,11,.9) 78%, rgba(23,16,11,.97) 100%),
    linear-gradient(to top, var(--abyss) 0%, rgba(23,16,11,0) 35%);
}
.hero-content { padding: 0 20px 9vh; max-width: 1120px; margin: 0 auto; width: 100%; }
.hero .logo { width: min(520px, 86vw); height: auto; margin: 0 0 .6rem -6px; image-rendering: pixelated; }
.hero .tagline { font-size: clamp(1.25rem, 2.4vw, 1.6rem); font-style: italic; color: var(--text); margin: 0 0 1.4rem; }
.hero .release {
  font-family: "Pixelify Sans", monospace; font-size: 1.05rem; color: var(--parchment);
  margin: 0 0 1.4rem;
}
.hero .release strong { color: var(--ember); font-weight: 700; }

.stores { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; padding: 0; list-style: none; }
.store {
  display: inline-flex; flex-direction: column; justify-content: center;
  min-width: 170px; padding: 10px 18px 11px;
  background: var(--parchment); color: var(--ink); text-decoration: none;
  border: 3px solid #6b4428; box-shadow: inset 0 0 0 2px #f6ead0, 4px 4px 0 #0007;
  font-family: "Pixelify Sans", monospace;
}
.store small { font-size: .78rem; opacity: .75; }
.store span { font-size: 1.15rem; font-weight: 700; }
.store:hover { background: #f4e6c4; color: var(--ink); transform: translate(-1px,-1px); box-shadow: inset 0 0 0 2px #f6ead0, 5px 5px 0 #0007; }

/* ---------- sections ---------- */
section { padding: clamp(64px, 9vw, 120px) 0; }
.intro p:first-of-type { font-size: 1.3rem; }

.chapter { display: grid; grid-template-columns: 1fr minmax(240px, 340px); gap: clamp(28px, 5vw, 72px); align-items: start; }
.chapter ul { padding: 0; margin: 0 0 1.4em; list-style: none; max-width: var(--measure); }
.chapter li { padding: .45em 0 .45em 1.6em; position: relative; border-bottom: 1px solid #ffffff12; }
.chapter li::before {
  content: ""; position: absolute; left: 0; top: .95em; width: 10px; height: 10px;
  background: var(--ember); box-shadow: 2px 2px 0 #0008;   /* a single pixel-square bullet */
}
.chapter li strong { color: var(--parchment); }
.trailer { position: sticky; top: 24px; }
.trailer video {
  width: 100%; aspect-ratio: 886 / 1920; background: #000;
  border: 4px solid #6b4428; box-shadow: inset 0 0 0 2px #000, 6px 6px 0 #0009;
}
.trailer p { font-size: .95rem; color: var(--text-dim); margin-top: .7em; }

/* screenshots: a strip you scroll sideways, like walking a corridor */
.shots { background: var(--stone); }
.strip {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(200px, 250px);
  gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory;
  padding: 6px 20px 22px; margin: 0 -20px;
  scrollbar-color: var(--ember-dim) var(--stone-2);
}
.strip figure { margin: 0; scroll-snap-align: start; }
.strip img { width: 100%; aspect-ratio: 1320 / 2868; object-fit: cover; border: 3px solid #0009; background: #000; }
.strip figcaption { font-size: .95rem; color: var(--text-dim); margin-top: .5em; }

/* features: plain term / description pairs, two columns */
.features dl { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 28px 56px; margin: 0; }
.features dt { font-family: "Pixelify Sans", monospace; font-weight: 700; font-size: 1.2rem; color: var(--parchment); margin-bottom: .25em; }
.features dd { margin: 0; color: var(--text); max-width: 46ch; }

/* FAQ written on a parchment scroll – the game's own UI material */
.faq .scroll {
  background: var(--parchment); color: var(--ink);
  padding: clamp(28px, 5vw, 56px);
  border: 4px solid #6b4428; box-shadow: inset 0 0 0 3px var(--parchment-2), 8px 8px 0 #000a;
  max-width: 860px; margin: 0 auto;
}
.faq h2 { color: var(--ink); }
.faq dl { margin: 0; }
.faq dt { font-family: "Pixelify Sans", monospace; font-weight: 700; font-size: 1.15rem; margin-top: 1.3em; color: #5a2d12; }
.faq dt:first-child { margin-top: 0; }
.faq dd { margin: .2em 0 0; }
.faq a { color: #8a3a12; }

/* get it + community */
.get .stores { margin-top: 1.4rem; }
.community ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 12px 32px; }
.community a { font-family: "Pixelify Sans", monospace; font-size: 1.15rem; }

footer {
  border-top: 1px solid #ffffff14; padding: 34px 0 48px; color: var(--text-dim); font-size: .95rem;
}
footer .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 28px; }
footer nav { display: flex; flex-wrap: wrap; gap: 8px 22px; }
footer a { color: var(--text); }

/* legal pages */
.legal { padding: 110px 0 80px; }
.legal h1 { font-size: clamp(2rem, 5vw, 2.8rem); color: var(--ember); margin: 0 0 .8em; }
.legal h2 { font-size: 1.4rem; margin-top: 1.8em; color: var(--parchment); }
.legal address { font-style: normal; }
.legal .back { font-family: "Pixelify Sans", monospace; }

@media (max-width: 820px) {
  .chapter { grid-template-columns: 1fr; }
  .trailer { position: static; max-width: 320px; }
  .features dl { grid-template-columns: 1fr; }
  .hero { min-height: 88vh; }
  .hero .fog {
    background:
      radial-gradient(circle 55vw at 55% 22%, rgba(23,16,11,0) 0%, rgba(23,16,11,.45) 55%, rgba(23,16,11,.9) 90%),
      linear-gradient(to top, var(--abyss) 0%, rgba(23,16,11,.88) 55%, rgba(23,16,11,0) 80%);
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero video { display: none; }
  .store:hover { transform: none; }
}
