/* Home page additions. style.css carries the system; this is only what the
   home page adds: the hero, the explainer pair, the example card. */

.visually-hidden {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

/* Hero ----------------------------------------------------------------- */

.hero {
  position: relative;
  padding: clamp(3rem, 10vw, 7rem) 0 clamp(2.5rem, 6vw, 4rem);
  overflow: hidden;
}

.hero h1 {
  font-size: clamp(2.75rem, 8vw, 5.5rem);
  line-height: .95;
  letter-spacing: -0.035em;
  max-width: 10em;
  position: relative;
}

.lede {
  font-size: clamp(1.125rem, 2.2vw, 1.375rem);
  max-width: 28em;
  margin: 1.25rem 0 1.75rem;
  position: relative;
}

.seek {
  position: relative;
  display: flex;
  align-items: center;
  max-width: 34rem;
  padding: .35rem .35rem .35rem 1.25rem;
  border: 2px solid var(--ink);
  border-radius: 999px;
  background: var(--paper);
}

.seek input {
  flex: 1;
  min-width: 0;
  border: 0;
  background: transparent;
  font: 500 1.125rem/1.4 var(--font-text);
  color: var(--ink);
  outline: none;
}

.seek input::placeholder { color: var(--ink-soft); }

.seek:focus-within { box-shadow: 0 0 0 4px var(--tint-deep); }

.seek button {
  border: 0;
  border-radius: 999px;
  padding: .75rem 1.25rem;
  background: var(--ink);
  color: #fff;
  font: 600 1rem/1 var(--font-text);
  cursor: pointer;
  white-space: nowrap;
}

.fine { position: relative; margin: .75rem 0 0 1.25rem; font-size: .9375rem; color: var(--ink-soft); }

/* The shapes: decorative, behind the text, placed by the hero's own box. */

.shapes { position: absolute; inset: 0; pointer-events: none; }

.shape { position: absolute; display: block; }

.s1 { right: -6%; top: -10%; width: 42%; aspect-ratio: 1; border-radius: 50%; background: var(--grade-a); }
.s2 { right: 22%; bottom: 6%; width: 16%; aspect-ratio: 2 / 1; border-radius: 999px 999px 0 0; background: var(--grade-b); }
.s3 { right: 6%; bottom: -4%; width: 10%; aspect-ratio: 1; border-radius: 22%; background: var(--grade-d); transform: rotate(-12deg); }
.s4 { right: 44%; top: 10%; width: 5%; aspect-ratio: 1; border-radius: 50%; background: var(--grade-c); }

@media (max-width: 640px) {
  .shapes { opacity: .35; }
  .seek { padding-left: 1rem; }
  .seek button { padding: .7rem 1rem; }
}

/* The pair ------------------------------------------------------------- */

section.pair, section.example, section.watch { margin-top: clamp(2.5rem, 6vw, 4rem); }

section.pair h2, section.example h2, section.watch h2 {
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
  margin-bottom: 1rem;
}

.score.explain { grid-template-rows: auto auto 1fr; align-items: start; }
.score.explain .number { font-size: 2.5rem; letter-spacing: -0.02em; color: var(--ink-soft); }
.score.explain p { margin: .5rem 0 0; grid-column: 1 / -1; }
.score.explain h3 { font-family: var(--font-text); font-weight: 500; font-size: .9375rem; color: var(--ink-soft); letter-spacing: 0; grid-column: 1 / -1; }
.score.recall.explain { grid-template-rows: auto auto 1fr auto; }
.score.explain .number.hiding { font-size: 1.5rem; color: var(--ink-soft); font-weight: 700; }

.notify {
  display: flex;
  gap: .4rem;
  margin-top: 1rem;
  padding: .3rem .3rem .3rem 1rem;
  border: 2px solid var(--ink);
  border-radius: 999px;
  background: var(--paper);
  max-width: 26rem;
}
.notify input { flex: 1; min-width: 0; border: 0; background: transparent; font: 500 .9375rem/1.4 var(--font-text); color: var(--ink); outline: none; }
.notify button { border: 0; border-radius: 999px; padding: .55rem .9rem; background: var(--ink); color: #fff; font: 600 .875rem/1 var(--font-text); cursor: pointer; white-space: nowrap; }
.notify:focus-within { box-shadow: 0 0 0 4px var(--tint-deep); }
.notified { margin: 1rem 0 0; font-weight: 600; }

/* The example ---------------------------------------------------------- */

section.example .card {
  background: var(--tint);
  border-radius: var(--radius);
  padding: 1.25rem;
}

section.example .subject { margin: 0 0 1rem; }

section.example .scores.compact .score { padding: 1rem 1.25rem; }
section.example .scores.compact .number { font-size: clamp(3rem, 7vw, 4.5rem); }
section.example .scores.compact .grade { width: clamp(3rem, 6vw, 3.75rem); font-size: clamp(1.75rem, 3.5vw, 2.25rem); }
section.example .scores.compact .score h3 { font-family: var(--font-text); font-weight: 500; font-size: .9375rem; color: var(--ink-soft); letter-spacing: 0; grid-column: 1 / -1; }
section.example .scores.compact .score.recall { grid-template-rows: auto auto; }

section.example .verdict { font-size: 1.125rem; margin: 1rem 0; }

section.example .categories { margin-bottom: 1rem; }
section.example .categories span {
  display: flex; align-items: baseline; justify-content: space-between; gap: .5rem;
  padding: .6rem .8rem; border-radius: var(--radius-small); background: var(--paper); font-size: .9rem;
}

section.example .findings { background: var(--paper); border-radius: var(--radius-small); padding: .25rem 1rem; }
section.example .finding.more { color: var(--ink-soft); }

/* Watch ---------------------------------------------------------------- */

section.watch p { max-width: 40em; font-size: 1.0625rem; }
