@page {
  size: letter portrait;
  margin: 0.5in;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  background: #fff;
  color: var(--ink);
  font-family: var(--font-body);
}

.screen-only {
  width: min(100% - 2rem, 46rem);
  margin: 1.5rem auto 0;
}

.screen-only h1 {
  margin: 0 0 0.4rem;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.8rem;
  letter-spacing: -0.03em;
}

.screen-only p,
.screen-only li {
  color: var(--muted);
  line-height: 1.55;
}

.screen-only a {
  color: var(--blue);
}

.sheet {
  width: 7.5in;
  margin: 0.55in auto 0.8in;
}

.sheet-title {
  margin: 0 0 0.28in;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}

.row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.5in;
}

.slot {
  width: 3.5in;
}

.label {
  margin: 0 0 0.14in;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.crop {
  --mark: 0.14in;
  --gap: 0.06in;
  position: relative;
  width: 3.5in;
  height: 2in;
}

.crop::before {
  content: "";
  position: absolute;
  inset: calc((var(--mark) + var(--gap)) * -1);
  pointer-events: none;
  background:
    linear-gradient(#1b1b1b, #1b1b1b) left top var(--mark) / var(--mark) 1px no-repeat,
    linear-gradient(#1b1b1b, #1b1b1b) left var(--mark) top / 1px var(--mark) no-repeat,
    linear-gradient(#1b1b1b, #1b1b1b) right top var(--mark) / var(--mark) 1px no-repeat,
    linear-gradient(#1b1b1b, #1b1b1b) right var(--mark) top / 1px var(--mark) no-repeat,
    linear-gradient(#1b1b1b, #1b1b1b) left bottom var(--mark) / var(--mark) 1px no-repeat,
    linear-gradient(#1b1b1b, #1b1b1b) left var(--mark) bottom / 1px var(--mark) no-repeat,
    linear-gradient(#1b1b1b, #1b1b1b) right bottom var(--mark) / var(--mark) 1px no-repeat,
    linear-gradient(#1b1b1b, #1b1b1b) right var(--mark) bottom / 1px var(--mark) no-repeat;
}

.card {
  position: relative;
  z-index: 1;
  width: 3.5in;
  height: 2in;
  overflow: hidden;
  background: var(--cream);
}

.card img.card-front-art {
  width: 3.75in;
  height: 2.25in;
  margin: -0.125in;
  display: block;
}

.back {
  display: grid;
  grid-template-columns: 0.16in 0.07in 1fr;
  height: 100%;
}

.back-blue {
  background: var(--blue);
}

.back-line {
  background: var(--ink);
}

.back-body {
  padding: 0.26in 0.26in 0.2in 0.2in;
  display: flex;
  flex-direction: column;
}

.back-name {
  margin: 0;
  max-width: 2.2in;
  font-family: var(--font-display);
  font-size: 13pt;
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: -0.02em;
}

.rule {
  width: 0.72in;
  height: 0.035in;
  margin: 0.11in 0 0.11in;
  background: var(--ink);
}

.back-summary {
  margin: 0;
  font-size: 8pt;
  color: var(--muted);
}

.back-contact {
  margin-top: auto;
}

.back-contact p {
  margin: 0 0 0.035in;
  font-size: 9pt;
  font-weight: 500;
}

.back-contact .web {
  color: var(--muted);
  font-weight: 400;
  font-size: 8pt;
}

.mini {
  position: absolute;
  right: 0.18in;
  bottom: 0.16in;
  width: 0.34in;
  height: 0.28in;
  border: 3px solid var(--ink);
  display: grid;
  grid-template-columns: 0.14in 1fr;
  grid-template-rows: 0.12in 1fr;
}

.back-qr {
  position: absolute;
  right: 0.3in;
  top: 0.28in;
  width: 0.6in;
  height: 0.6in;
  display: block;
}

.mini .y {
  background: var(--yellow);
  grid-row: 1 / 3;
}

.mini .r {
  background: var(--terracotta);
}

.mini .c {
  background: var(--cream);
}

.notes {
  font-size: 0.78rem;
  color: var(--muted);
}

@media print {
  .screen-only,
  .label,
  .sheet-title,
  .notes {
    display: none;
  }

  body {
    background: white;
  }

  .sheet {
    margin: 0;
    width: 7.5in;
  }

  a {
    text-decoration: none;
    color: inherit;
  }
}
