/* Ash MU landing: one screen, no scroll. Gold of the logo and the button, embers and lightning drawn by fx.js. */
:root {
  --gold: #e3bd62;
  --gold-hi: #f6dc94;
  --gold-lo: #9a7428;
  --ink: #0a0807;
  --fg: #f1ece2;
  --fg-2: rgba(241, 236, 226, .72);
  --fg-3: rgba(241, 236, 226, .45);
  --line: rgba(227, 189, 98, .28);
  --ease: cubic-bezier(.25, 1, .5, 1);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html, body { height: 100%; overflow: hidden; }

body {
  background: var(--ink);
  color: var(--fg);
  font: 400 15px/1.5 Inter, system-ui, sans-serif;
  display: flex;
  flex-direction: column;
  -webkit-font-smoothing: antialiased;
}

/* the art, darkened toward the content so the logo and the button read */
.bg {
  position: fixed;
  inset: -2%;
  background: url(bg.jpg) 45% 35% / cover no-repeat;
  transition: filter 120ms linear;
  animation: drift 40s var(--ease) infinite alternate;
}
.bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 34% 48% at 50% 62%, rgba(8, 6, 6, .78), rgba(8, 6, 6, 0) 80%),
    linear-gradient(to bottom, rgba(10, 8, 7, .35), rgba(10, 8, 7, 0) 25%, rgba(10, 8, 7, .45) 60%, var(--ink));
}
@keyframes drift { from { transform: scale(1); } to { transform: scale(1.06); } }

.hero {
  position: relative;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: clamp(12px, 2.6vh, 24px);
  padding: 9vh 16px 0; /* logo at the top, above the knight's face; the button at the bottom */
  text-align: center;
}

.logo {
  width: auto;
  height: clamp(140px, 30vh, 300px);
  max-width: 92vw;
  object-fit: contain;
  filter: drop-shadow(0 0 40px rgba(0, 0, 0, .85)) drop-shadow(0 8px 24px rgba(0, 0, 0, .7));
  margin-bottom: 0;
  animation: rise 800ms var(--ease) both;
}

.tagline {
  font: 600 clamp(15px, 2.2vh, 20px)/1.3 Cinzel, serif;
  letter-spacing: .08em;
  color: var(--fg-2);
  text-shadow: 0 2px 12px rgba(0, 0, 0, .8);
  animation: rise 800ms 120ms var(--ease) both;
}

.cta {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 16px 32px 16px 24px;
  border-radius: 4px;
  border: 1px solid var(--gold-hi);
  background: linear-gradient(to bottom, var(--gold-hi), var(--gold) 45%, var(--gold-lo));
  color: #1a1206;
  text-decoration: none;
  box-shadow: 0 0 0 4px rgba(227, 189, 98, .12), 0 8px 24px rgba(0, 0, 0, .55);
  transition: transform 150ms var(--ease), box-shadow 150ms var(--ease), filter 150ms var(--ease);
  animation: rise 800ms 220ms var(--ease) both;
}
.cta:hover { transform: translateY(-2px); filter: brightness(1.06); box-shadow: 0 0 0 6px rgba(227, 189, 98, .18), 0 12px 32px rgba(0, 0, 0, .6); }
.cta:active { transform: translateY(0); }
.cta:focus-visible { outline: 2px solid var(--fg); outline-offset: 4px; }
.cta svg { width: 26px; height: 26px; fill: currentColor; flex: none; }
.cta-text { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.2; }
.cta-text b { font: 700 clamp(17px, 2.4vh, 20px)/1.2 Cinzel, serif; letter-spacing: .06em; text-transform: uppercase; }
.cta-text small { font-size: 12px; font-weight: 500; opacity: .7; }

.steps {
  list-style: none;
  display: flex;
  gap: 8px 24px;
  flex-wrap: wrap;
  justify-content: center;
  font-size: 13px;
  color: var(--fg-2);
  animation: rise 800ms 320ms var(--ease) both;
}
.steps li { display: inline-flex; align-items: center; gap: 8px; }
.steps span {
  width: 20px;
  height: 20px;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  font: 600 11px/1 Cinzel, serif;
  color: var(--gold);
}

.foot {
  position: relative;
  padding: 16px;
  text-align: center;
  font-size: 11px;
  letter-spacing: .02em;
  color: var(--fg-3);
}

@keyframes rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
  .bg, .logo, .tagline, .cta, .steps { animation: none; }
}

/* short screens (landscape phones, small laptops): smaller logo, steps hidden before anything scrolls */
@media (max-height: 560px) {
  .logo { height: 38vh; }
  .steps { display: none; }
}

/* effects: embers and lightning drawn on the canvas, the flash lights the whole screen for a moment */
.fx { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.flash {
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at var(--fx, 50%) 10%, rgba(190, 215, 255, .35), rgba(190, 215, 255, 0) 70%);
  opacity: 0;
}

.bottom { margin-top: 2vh; display: flex; flex-direction: column; align-items: center; gap: clamp(12px, 2.6vh, 24px); }

