@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@400;700&display=swap");

:root {
  /* Typography */
  --font-family: "Outfit", sans-serif;
  --font-size-heading: calc(22 / 16 * 1rem);
  --font-size-body: calc(15 / 16 * 1rem);
  --line-height-heading: 1.2;
  --line-height-body: 1.4;
  --letter-spacing-heading: 0;
  --letter-spacing-body: calc(0.2 / 16 * 1rem);

  /* Colors */
  --color-background: hsl(212, 45%, 89%);
  --color-card-background: hsl(0, 0%, 100%);
  --color-text-heading: hsl(218, 44%, 22%);
  --color-text-body: hsl(216, 15%, 48%);

  /* Spacing */
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2.5rem;

  /* Border Radius */
  --radius-qr: calc(10 / 16 * 1rem);
  --radius-card: calc(20 / 16 * 1rem);

  /* Shadows */
  --shadow-card: 0 calc(25 / 16 * 1rem) calc(25 / 16 * 1rem)
    rgba(0, 0, 0, 0.0477);

  /* Sizes */
  --width-card: calc(320 / 16 * 1rem);
  --width-qr: calc(288 / 16 * 1rem);
}

html,
body {
  height: 100%;
}

body {
  font-family: var(--font-family);
  background-color: var(--color-background);
}

main {
  display: grid;
  place-items: center;
  min-height: 100vh;
  padding: var(--space-sm);
}

h1 {
  font-size: var(--font-size-heading);
  line-height: var(--line-height-heading);
  letter-spacing: var(--letter-spacing-heading);
  color: var(--color-text-heading);
  margin-bottom: var(--space-sm);
}

p {
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  letter-spacing: var(--letter-spacing-body);
  color: var(--color-text-body);
}

.card {
  background-color: var(--color-card-background);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: var(--space-sm) var(--space-sm) var(--space-lg);
  border-radius: var(--radius-card);
  width: min(var(--width-card), 100%);
  box-shadow: var(--shadow-card);
  text-align: center;
}

.qr-code {
  width: min(var(--width-qr), 100%);
  border-radius: var(--radius-qr);
  margin-bottom: var(--space-md);
}

.description {
  padding: 0 var(--space-sm);
}
