*,
:after,
:before {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
  margin: 0;
}
:root {
  --min-width: 412; /* smallest viewport */
  --max-width: 1280; /* largest viewport */
  --text-dark: #000;
  --text-muted: #bbb;
  --font-main: "Inter", sans-serif;
}

/* Global */
body {
  margin: 0;
  height: 100vh;
  display: grid;
  grid-template-rows: 1fr auto 1fr;
  grid-template-areas:
    "top"
    "middle"
    "bottom";
  justify-items: center;
  align-items: center;
  font-family: var(--font-main);
  text-align: center;
  color: var(--text-dark);
}

/* Fluid typography */
h1,
h2 {
  font-weight: 800;
  line-height: 1.1;
  margin: 0;
}

/* H1: 36px → 96px */
h1 {
  font-size: clamp(
    36px,
    calc(36px + (96 - 36) * ((100vw - 412px) / (1280 - 412))),
    96px
  );
}

/* H2: 24px → 48px */
h2 {
  font-size: clamp(
    24px,
    calc(24px + (48 - 24) * ((100vw - 412px) / (1280 - 412))),
    48px
  );
}

/* Top section */
.top {
  grid-area: top;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  font-size: 0.9rem;
  color: var(--text-muted);
  text-transform: uppercase;
  margin-top: 3rem;
  margin-bottom: 3rem;
}

/* Middle section */
.middle {
  grid-area: middle;
  margin-bottom: 6rem;
}

.middle img {
  width: clamp(60px, 10vw, 100px);
  height: auto;
  margin: 1.5rem 0;
}

/* Bottom section */
.bottom {
  grid-area: bottom;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 700;
  letter-spacing: 1px;
}

.bottom .status {
  font-size: clamp(
    24px,
    calc(24px + (64 - 24) * ((100vw - 412px) / (1280 - 412))),
    64px
  );
  color: var(--text-muted);
  font-weight: 800;
  opacity: 0.4;
  text-transform: uppercase;
}

.bottom small {
  margin-top: 0.75rem;
  font-size: 0.85rem;
  text-transform: uppercase;
}

.bottom span {
  display: block;
  color: var(--text-muted);
  font-weight: 600;
  margin-top: 2px;
}
