:root {
  --ink:#172033;
  --navy:#244766;
  --gold:#b6893f;
  --muted:#5f6b7a;
  --paper:#f5f6f8;
  --line:#dce2e9;
  --accent:#127e87;
  --white:#fff;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
a {
  color:var(--navy);
  text-underline-offset:4px;
}
button,input,select,textarea {
  font:inherit;
}
button,.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  padding:12px 20px;
  border:1px solid var(--navy);
  border-radius:9px;
  background:var(--navy);
  color:white;
  text-decoration:none;
  font-weight:650;
  cursor:pointer;
  line-height:1.4;
}
.button:hover,button:hover {
  filter:brightness(1.12);
}
button:disabled {
  opacity:.5;
  cursor:not-allowed;
}
.secondary {
  background:white;
  color:var(--navy);
  border-color:var(--line);
}
.quiet {
  background:transparent;
  border-color:var(--line);
  color:var(--navy);
  padding:8px 14px;
}
.small {
  padding:9px 14px;
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:3px;
}
.topbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:20px max(24px,calc((100vw - 1280px)/2));
  background:white;
  border-bottom:1px solid var(--line);
}
.brand {
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:var(--ink);
  font-size:15px;
  letter-spacing:.06em;
  font-weight:800;
  line-height:1.4;
}
.brand small {
  display:block;
  font-size:10px;
  letter-spacing:.03em;
  font-weight:500;
  color:var(--muted);
}
.brand-mark {
  display:grid;
  place-items:center;
  width:42px;
  height:46px;
  color:var(--gold);
  border:2px solid var(--gold);
  border-radius:6px 6px 18px 18px;
  font-size:26px;
}
.topbar nav {
  display:flex;
  align-items:center;
  gap:24px;
  font-size:14px;
}
.topbar form {
  margin:0;
}
.username {
  color:var(--muted);
}
main {
  max-width:1280px;
  min-height:70vh;
  margin:auto;
  padding:0 28px;
}
h1,h2,h3 {
  line-height:1.18;
  letter-spacing:-.025em;
  margin-top:0;
}
h1 {
  font-size:clamp(32px,4vw,48px);
}
h2 {
  font-size:28px;
}
h3 {
  font-size:20px;
}
p {
  margin:0 0 18px;
}
.eyebrow {
  color:var(--gold);
  font-size:12px;
  font-weight:750;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:20px;
}
.hero {
  display:grid;
  grid-template-columns:1.05fr 1fr;
  align-items:center;
  gap:36px;
  padding:76px 0 60px;
}
.hero h1 {
  font-size:clamp(42px,5vw,68px);
  letter-spacing:-.045em;
}
.hero em {
  font-style:normal;
  color:var(--gold);
}
.hero .lead {
  font-size:19px;
  line-height:1.7;
  color:var(--muted);
  max-width:600px;
}
.hero figure {
  margin:0;
  background:var(--ink);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 25px 60px #17203322;
}
.hero img {
  display:block;
  width:100%;
  height:350px;
  object-fit:cover;
}
.hero figcaption {
  padding:18px 24px;
  color:#dcc08b;
  font-size:10px;
  letter-spacing:.16em;
}
.actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:24px 0;
}
.muted {
  color:var(--muted);
  font-size:13px;
}
.pillars {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  padding:36px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.pillars span {
  font-size:11px;
  color:var(--accent);
  font-weight:700;
  letter-spacing:.1em;
}
.pillars h2 {
  font-size:21px;
  margin:16px 0;
}
.pillars p,.module p {
  color:var(--muted);
  font-size:14px;
}
.section {
  padding:70px 0;
}
.module-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
  margin-top:30px;
}
.module {
  display:flex;
  align-items:flex-start;
  gap:20px;
  background:white;
  border:1px solid var(--line);
  border-radius:12px;
  padding:24px;
}
.module img {
  width:76px;
  height:76px;
  object-fit:contain;
  border-radius:12px;
}
.module h3 {
  margin:0 0 8px;
}
.module strong {
  font-size:13px;
}
.module p {
  margin:12px 0 0;
}
.callout {
  background:var(--ink);
  border-radius:16px;
  color:white;
  text-align:center;
  padding:50px 28px;
  margin-bottom:60px;
}
.callout .button {
  background:var(--gold);
  border-color:var(--gold);
  color:var(--ink);
}
.card {
  padding:26px;
  background:white;
  border:1px solid var(--line);
  border-radius:12px;
  margin-bottom:20px;
  min-width:0;
}
.auth {
  max-width:460px;
  margin:72px auto;
}
.auth h1 {
  font-size:34px;
}
form label {
  display:block;
  font-size:14px;
  font-weight:600;
  margin-bottom:16px;
}
input:not([type=checkbox]),select,textarea {
  display:block;
  width:100%;
  padding:11px 12px;
  border:1px solid #c6cfda;
  border-radius:7px;
  background:white;
  color:var(--ink);
  margin-top:6px;
  min-width:0;
}
textarea {
  resize:vertical;
  min-height:80px;
}
.notice {
  padding:15px 18px;
  border-left:3px solid var(--gold);
  background:#fbf6e9;
  margin:0 0 24px;
  font-size:14px;
}
.error {
  border-color:#b43a39;
  background:#fff2f1;
}
.page-heading {
  padding:40px 0 24px;
  overflow-wrap:anywhere;
}
.page-heading h1 {
  margin-bottom:16px;
}
.page-heading .eyebrow {
  margin:22px 0 12px;
}
.back {
  font-size:14px;
}
.workspace {
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);
  gap:28px;
  margin-bottom:40px;
}
.section-label {
  display:flex;
  align-items:center;
  gap:15px;
  margin:10px 0 24px;
}
.section-label h2 {
  margin:0;
}
.badge {
  display:inline-block;
  background:#edf2f6;
  color:var(--navy);
  border-radius:6px;
  padding:4px 9px;
  font-size:12px;
  overflow-wrap:anywhere;
}
.case-card {
  display:block;
  text-decoration:none;
  background:white;
  border:1px solid var(--line);
  border-radius:12px;
  padding:24px;
  margin-bottom:16px;
  overflow-wrap:anywhere;
}
.case-card:hover {
  border-color:var(--gold);
}
.case-card .eyebrow {
  font-size:10px;
}
.case-card h3 {
  margin:10px 0;
}
.case-card p {
  font-size:14px;
  color:var(--muted);
}
.meta {
  display:flex;
  gap:20px;
  font-size:12px;
  color:var(--muted);
}
.empty {
  padding:36px 24px;
  text-align:center;
  background:white;
  border:1px dashed #c6cfda;
  border-radius:12px;
  color:var(--muted);
}
.case-nav {
  display:flex;
  gap:4px;
  border-bottom:1px solid var(--line);
  overflow-x:auto;
  padding:0 0 12px;
}
.case-nav a {
  padding:10px 15px;
  white-space:nowrap;
  text-decoration:none;
  border-radius:7px;
  font-size:14px;
}
.case-nav a[aria-current] {
  background:var(--navy);
  color:white;
}
.case-content {
  padding:30px 0;
}
.stats {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-bottom:28px;
}
.stats article {
  padding:22px;
  background:white;
  border:1px solid var(--line);
  border-radius:10px;
}
.stats strong {
  display:block;
  font-size:34px;
  line-height:1.3;
}
.stats span {
  font-size:12px;
  color:var(--muted);
}
.check {
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-weight:400;
}
.check input {
  width:18px;
  height:18px;
  margin-top:4px;
  accent-color:var(--navy);
}
hr {
  border:0;
  border-top:1px solid var(--line);
  margin:25px 0;
}
.upload {
  display:flex;
  align-items:flex-end;
  gap:20px;
  flex-wrap:wrap;
}
.upload label {
  flex:1;
  margin:0;
  min-width:200px;
}
.table-wrap {
  overflow-x:auto;
  background:white;
  border:1px solid var(--line);
  border-radius:10px;
}
table {
  border-collapse:collapse;
  width:100%;
  font-size:14px;
}
th,td {
  text-align:left;
  padding:16px;
  border-bottom:1px solid var(--line);
}
th {
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
}
td:first-child {
  overflow-wrap:anywhere;
}
blockquote {
  margin:16px 0;
  padding:14px 18px;
  border-left:3px solid var(--gold);
  background:var(--paper);
  font-size:14px;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
cite {
  display:block;
  font-style:normal;
  font-size:12px;
  margin-top:12px;
  color:var(--muted);
}
details summary {
  cursor:pointer;
  font-weight:650;
  overflow-wrap:anywhere;
}
.answer {
  border-top:1px solid var(--line);
  margin-top:24px;
  padding-top:24px;
}
.timeline {
  border-left:2px solid var(--gold);
  padding-left:24px;
}
.timeline time {
  color:var(--accent);
  font-weight:700;
}
.timeline h3 {
  margin:12px 0;
}
.case-footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-bottom:36px;
  font-size:13px;
}
.document-text {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  font:14px/1.8 system-ui;
  max-height:70vh;
  overflow:auto;
}
.preserve {
  white-space:pre-wrap;
}
.hash {
  font-family:monospace;
  overflow-wrap:anywhere;
  font-size:12px;
  margin:18px 0;
  color:var(--muted);
}
footer {
  padding:28px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  max-width:1280px;
  margin:auto;
  border-top:1px solid var(--line);
  font-size:12px;
  color:var(--muted);
}
@media(max-width:900px) {
  .hero {
    grid-template-columns:1fr;
    padding:45px 0;
  }
  .hero figure {
    max-width:650px;
  }
  .hero img {
    height:auto;
  }
  .workspace {
    grid-template-columns:1fr;
  }
  .module-grid {
    grid-template-columns:1fr;
  }
  .stats {
    grid-template-columns:repeat(2,1fr);
  }
  .username {
    display:none;
  }
}
@media(max-width:600px) {
  main {
    padding:0 16px;
  }
  .topbar {
    padding:16px;
    gap:12px;
    align-items:flex-start;
  }
  .topbar nav {
    gap:10px;
    flex-wrap:wrap;
    justify-content:flex-end;
  }
  .topbar nav>a:not(.button) {
    font-size:12px;
  }
  .brand {
    font-size:11px;
  }
  .brand small {
    font-size:8px;
  }
  .brand-mark {
    display:none;
  }
  .topbar .button,.topbar button {
    font-size:12px;
    padding:8px 10px;
  }
  .hero h1 {
    font-size:43px;
  }
  .hero .lead {
    font-size:17px;
  }
  .pillars {
    grid-template-columns:1fr;
    gap:14px;
  }
  .pillars article {
    border-bottom:1px solid var(--line);
    padding-bottom:10px;
  }
  .module {
    padding:18px;
    gap:14px;
  }
  .module img {
    width:55px;
    height:55px;
  }
  .card {
    padding:20px;
  }
  .page-heading {
    padding-top:26px;
  }
  .case-nav a {
    padding:9px 11px;
  }
  .stats {
    gap:10px;
  }
  .stats article {
    padding:17px;
  }
  .stats strong {
    font-size:28px;
  }
  .auth {
    margin:35px auto;
  }
  .actions .button {
    flex:1;
    white-space:nowrap;
  }
  .table-wrap {
    font-size:12px;
  }
  th,td {
    padding:12px;
  }
  footer {
    flex-direction:column;
    gap:6px;
  }
  .section {
    padding:45px 0;
  }
  .hash {
    font-size:10px;
  }
}
.brand-logo {
  width:150px;
  height:90px;
  object-fit:cover;
  border-radius:8px;
  margin-bottom:24px;
}
