/* Agent School. Shared Rivalatch sheet stays the system.
   Gold remains the seal. Navy is the room. Aqua is the verify filament.
   No fonts, no CDNs. Motion is transform and opacity only. */

body.school::before {
  background:
    radial-gradient(920px 540px at 8% -8%, rgba(126, 224, 240, 0.16), transparent 58%),
    radial-gradient(840px 620px at 110% 8%, rgba(14, 36, 72, 0.85), transparent 55%),
    radial-gradient(720px 480px at 70% 110%, rgba(226, 192, 114, 0.14), transparent 60%),
    linear-gradient(185deg, #071018 0%, #08080a 46%, #0a1018 100%);
}

.school {
  --navy: #0c1a2e;
  --navy-2: #10243d;
  --aqua: #7ee0f0;
  --aqua-dim: rgba(126, 224, 240, 0.16);
}

.school .wrapx { padding-bottom: 72px; }

.school-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, 0.7fr);
  gap: 36px;
  align-items: end;
  padding: 36px 0 28px;
}

.school h1.display { max-width: 14ch; }
.school .lede { max-width: 46ch; }

.filament {
  height: 1px;
  margin: 8px 0 18px;
  background: linear-gradient(90deg, var(--aqua), transparent 70%);
  transform-origin: left center;
  animation: filament 1.1s var(--ease-settle) both;
}

.seal-card {
  position: relative;
  padding: 22px 22px 18px;
  border-radius: 6px;
  background:
    linear-gradient(180deg, rgba(16, 36, 61, 0.72), rgba(8, 12, 18, 0.88));
  border: 1px solid rgba(126, 224, 240, 0.28);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
  overflow: hidden;
}

.seal-card::after {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(226, 192, 114, 0.35);
  pointer-events: none;
}

.seal {
  width: 84px;
  height: 84px;
  margin-bottom: 12px;
  color: var(--gold);
  filter: drop-shadow(0 0 12px rgba(226, 192, 114, 0.35));
  animation: seal-in 0.9s var(--ease-settle) both;
}

.seal svg { width: 100%; height: 100%; display: block; }

.seal-kicker {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--aqua);
}

.seal-card strong {
  display: block;
  margin-top: 4px;
  font: 400 28px/1.1 var(--serif);
  color: var(--gold);
}

.roster, .card-list { list-style: none; margin: 0; padding: 0; }

.roster li, .attempt {
  border: 1px solid rgba(126, 224, 240, 0.18);
  background: rgba(12, 26, 46, 0.72);
  border-radius: 4px;
  padding: 16px 18px;
  margin: 0 0 10px;
  animation: row-in 0.7s var(--ease-settle) both;
}

.roster li:nth-child(2) { animation-delay: 0.06s; }
.roster li:nth-child(3) { animation-delay: 0.12s; }
.roster li:nth-child(4) { animation-delay: 0.18s; }

.rank {
  font: 500 12px var(--mono);
  letter-spacing: 0.14em;
  color: var(--gold);
}

.agent-name {
  font: 400 28px/1.15 var(--serif);
  margin: 4px 0;
}

.meta-row, .grade-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  color: var(--ink-2);
  font-size: 13px;
}

.meta-row b, .grade-row b { color: var(--ink); font-weight: 600; }

.pill {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid rgba(226, 192, 114, 0.4);
  color: var(--gold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 10px;
}

.pill.fail { color: var(--fail); border-color: rgba(215, 109, 97, 0.5); }
.pill.mock { color: var(--aqua); border-color: rgba(126, 224, 240, 0.45); }
.pill.partial { color: var(--contested); border-color: rgba(211, 156, 92, 0.5); }

.report {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 22px;
}

.report-side {
  padding: 16px;
  background: rgba(12, 26, 46, 0.8);
  border-left: 2px solid var(--gold);
}

.attempt h3 { margin: 0 0 6px; font: 400 22px/1.2 var(--serif); }
.attempt.fail { border-color: rgba(215, 109, 97, 0.45); }
.attempt.graduate { border-color: rgba(226, 192, 114, 0.55); }

.cert {
  position: relative;
  padding: 28px 28px 22px;
  background:
    linear-gradient(180deg, rgba(16, 36, 61, 0.55), rgba(8, 10, 14, 0.9));
  border: 1px solid rgba(226, 192, 114, 0.45);
}

.cert-status {
  font: 400 64px/0.95 var(--serif);
  letter-spacing: -0.03em;
  margin: 8px 0 12px;
}

.cert-status.VERIFIED { color: var(--gold); }
.cert-status.PARTIAL { color: var(--contested); }
.cert-status.FAIL { color: var(--fail); }

.sig {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--mute);
  word-break: break-all;
}

.reasons { margin: 8px 0 0; padding-left: 18px; color: var(--ink-2); }
.empty {
  padding: 28px;
  border: 1px dashed rgba(126, 224, 240, 0.35);
  color: var(--ink-2);
}

.school footer.site-foot { margin-top: 48px; }

@keyframes seal-in {
  from { opacity: 0; transform: scale(0.86) rotate(-8deg); }
  to { opacity: 1; transform: none; }
}
@keyframes filament {
  from { opacity: 0; transform: scaleX(0.2); }
  to { opacity: 1; transform: none; }
}
@keyframes row-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 800px) {
  .school-hero, .report { grid-template-columns: 1fr; }
  .cert-status { font-size: 46px; }
}

@media (prefers-reduced-motion: reduce) {
  .seal, .filament, .roster li, .attempt { animation: none; }
}

html.is-tab-hidden .seal,
html.is-tab-hidden .filament,
html.is-tab-hidden .roster li,
html.is-tab-hidden .attempt {
  animation-play-state: paused;
}

.agent-name .agent-id { font-size: 0.72em; opacity: 0.6; font-family: ui-monospace, monospace; margin-left: 0.4em; }
h2.label-sm { margin: 2.2rem 0 0.8rem; }
.roster.classes li .agent-name { font-size: 1.1rem; }

/* Footer wordmark: size the inline SVG like the header one. */
.site-foot .foot-brand svg { width: 18px; height: 22px; flex: none; color: var(--gold); vertical-align: middle; margin-right: 0.4em; }
.howto-code { white-space: pre-wrap; font-family: ui-monospace, monospace; font-size: 0.82rem; line-height: 1.6; margin: 0; overflow-x: auto; }
.btn[download] { display: inline-block; margin-top: 0.6rem; }
