:root {
  --ink: #1d2230;
  --paper: #f2eee6;
  --white: #fffdf9;
  --line: #cbc3b6;
  --teal: #5260b8;
  --teal2: #e39a72;
  --lime: #f2d6a2;
  --muted: #6c6965;
  --dark: #252a3a;
}

body {
  background-image: linear-gradient(rgba(29, 34, 48, .025) 1px, transparent 1px);
  background-size: 100% 32px;
}

.topbar {
  background: rgba(242, 238, 230, .94);
}

.logo span {
  border-radius: 2px;
  background: var(--ink);
  color: var(--paper);
}

.primary {
  border: 1px solid var(--ink);
  border-radius: 0;
  box-shadow: 4px 4px 0 var(--teal2);
}

.primary:hover,
.primary:focus {
  box-shadow: 7px 7px 0 var(--teal2);
}

.hero::before {
  display: none;
}

.hero h1,
.how h2,
.signal-section h2,
.coach h2,
.question h2,
.results h2 {
  letter-spacing: -.045em;
}

.hero h1 span,
.how h2 span,
.coach h2 span {
  color: var(--teal);
}

.kicker i {
  border-radius: 0;
}

.readiness-card {
  top: 214px;
  border: 1px solid #343a4d;
  box-shadow: 10px 10px 0 var(--teal2);
  transform: none;
}

.card-head b,
.signal b {
  color: #f0b89a;
}

.signal {
  border-top-color: #484e61;
}

.odds small,
.odds span,
.readiness-card > p {
  color: #b5b8c2;
}

.odds strong {
  color: #f3d9a8;
}

.signal-section {
  background: var(--dark);
}

.signal-grid {
  background: #4c5160;
}

.signal-grid article {
  background: var(--dark);
}

.choice {
  background: var(--white);
}

.intake-shell {
  box-shadow: 12px 12px 0 var(--teal2);
}

.intake {
  background: rgba(25, 29, 41, .94);
}

.handoff {
  background: #d9dced;
  border: 1px solid #aeb4d5;
}

.handoff .primary {
  box-shadow: 4px 4px 0 var(--teal2);
}

.power-panel {
  margin: 22px 0 18px;
  padding: 22px;
  border: 1px solid var(--line);
  background: #fffdf9;
}

.power-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}

.power-title p {
  max-width: 470px;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.power-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 24px;
}

.power-grid article {
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}

.power-grid article > div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
}

.power-grid article > div strong {
  color: var(--teal);
}

.power-grid article > span {
  display: block;
  min-height: 34px;
  margin: 6px 0 10px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.power-grid article > i {
  display: block;
  height: 4px;
  background: #ddd8cf;
}

.power-grid article > i em {
  display: block;
  height: 100%;
  background: var(--teal);
}

@media(max-width:620px) {
  .power-grid { grid-template-columns: 1fr; }
  .power-title { align-items: flex-start; flex-direction: column; }
}

.lender-section {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 8vw;
  padding: 96px 5vw;
  border-top: 1px solid var(--line);
  background: #e9e6f2;
}

.routing-section { padding: 96px 5vw; border-top: 1px solid var(--line); background: var(--paper); }
.binary-section { padding: 96px 5vw; background: #171b28; color: white; }
.binary-thesis { display: grid; grid-template-columns: .7fr 1.15fr 1fr; gap: 4vw; align-items: end; margin-bottom: 42px; }
.binary-thesis h2 { margin: 0; font: 400 clamp(44px,5vw,72px)/.95 Georgia,"Times New Roman",serif; letter-spacing: -.05em; }
.binary-thesis h2 span { color: #f0b89a; }
.binary-thesis > p:last-child { margin: 0; color: #b9bcc7; line-height: 1.65; }
.binary-key { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: #4d5263; border: 1px solid #4d5263; }
.binary-key article { min-height: 210px; padding: 24px; background: #252a3a; }
.binary-key strong { display: block; margin-bottom: 30px; color: var(--lime); font: 400 42px/1 Georgia,"Times New Roman",serif; }
.binary-key .arc strong,.binary-key .drag strong { color: #f0b89a; }
.binary-key h3 { margin: 0 0 9px; font-size: 17px; }
.binary-key p { margin: 0; color: #b9bcc7; font-size: 11px; line-height: 1.55; }
.binary-section blockquote { margin: 28px 0 16px; padding: 4px 0 4px 22px; border-left: 4px solid var(--teal2); font: italic 400 clamp(21px,2.5vw,32px)/1.35 Georgia,"Times New Roman",serif; }
.binary-note { max-width: 760px; margin: 0; color: #888d9c; font-size: 9px; line-height: 1.55; }
.binary-result { display: grid; grid-template-columns: 190px 1fr; gap: 24px; margin: 18px 0; padding: 22px; background: #171b28; color: white; }
.binary-mark { display: flex; align-items: center; justify-content: center; min-height: 130px; border: 1px solid #4d5263; color: var(--lime); font: 400 42px/1 Georgia,"Times New Roman",serif; }
.binary-result h3 { margin: 9px 0 7px; }
.binary-result p { margin: 0; color: #b9bcc7; font-size: 11px; line-height: 1.6; }
.binary-axes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.binary-axes span { padding: 6px 8px; border: 1px solid #4d5263; color: #f0b89a; font-size: 9px; }
.routing-intro { display: grid; grid-template-columns: .7fr 1.15fr 1fr; gap: 4vw; align-items: end; margin-bottom: 48px; }
.routing-intro h2 { margin: 0; font: 400 clamp(44px,5vw,72px)/.95 Georgia,"Times New Roman",serif; letter-spacing: -.05em; }
.routing-intro h2 span { color: var(--teal); }
.routing-intro > p:last-child { margin: 0; color: var(--muted); line-height: 1.65; }
.routing-flow { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.routing-flow article { position: relative; min-height: 245px; padding: 24px; background: var(--white); }
.routing-flow article:not(:last-child)::after { content: "→"; position: absolute; right: -13px; top: 28px; z-index: 2; width: 25px; height: 25px; background: var(--teal2); color: var(--ink); text-align: center; line-height: 24px; font-weight: 900; }
.routing-flow article > b { color: var(--teal); font: 400 38px/1 Georgia,"Times New Roman",serif; }
.routing-flow article > span { display: block; margin: 28px 0 8px; color: var(--muted); font-size: 9px; letter-spacing: 1.5px; font-weight: 800; }
.routing-flow h3 { margin: 0 0 10px; font-size: 20px; }
.routing-flow p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.routing-rule { margin: 18px 0 0; padding: 16px 18px; border-left: 4px solid var(--teal2); background: #e5e3ef; color: var(--muted); font-size: 12px; }
.routing-rule b { color: var(--ink); }
.partner-link { margin: 22px 0 0; }
.partner-link a { color: var(--teal); font-weight: 800; text-decoration: none; }
.partner-page { padding-top: 150px; }
.payout-engine { margin-top: 54px; padding-top: 42px; border-top: 1px solid var(--line); }
.payout-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 5vw; align-items: end; margin-bottom: 24px; }
.payout-heading h3 { margin: 10px 0 0; font: 400 clamp(30px,3.5vw,48px)/1 Georgia,"Times New Roman",serif; letter-spacing: -.035em; }
.payout-heading > p { margin: 0; color: var(--muted); line-height: 1.65; }
.payout-ladder { display: grid; grid-template-columns: repeat(5,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.payout-ladder article { position: relative; min-height: 205px; padding: 20px; background: var(--dark); color: white; }
.payout-ladder article:nth-child(2) { background: #303648; }
.payout-ladder article:nth-child(3) { background: #3b4053; }
.payout-ladder article:nth-child(4) { background: #464b60; }
.payout-ladder article:nth-child(5) { background: var(--teal); }
.payout-ladder article > b { color: #f0b89a; font-size: 10px; letter-spacing: 1px; }
.payout-ladder article > span { display: block; margin: 28px 0 8px; color: #cbcdd5; font-size: 9px; letter-spacing: 1.2px; font-weight: 800; }
.payout-ladder h4 { min-height: 38px; margin: 0 0 20px; font-size: 15px; }
.payout-ladder strong { display: block; color: var(--lime); font: 400 25px/1 Georgia,"Times New Roman",serif; }
.payout-ladder small { display: block; margin-top: 7px; color: #c5c7d0; font-size: 9px; }
.economics-formula { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-top: 16px; padding: 16px 18px; background: #e5e3ef; }
.economics-formula span { margin-right: 8px; color: var(--teal); font-size: 9px; letter-spacing: 1.2px; font-weight: 900; }
.economics-formula b { font-size: 11px; }
.economics-formula i { color: var(--teal2); font-style: normal; font-weight: 900; }
.payout-note { margin: 12px 0 0; color: var(--muted); font-size: 9px; line-height: 1.55; }

.routing-receipt { margin: 20px 0; padding: 24px; border: 1px solid #b8b5ca; background: #f3f1f8; }
.receipt-head { display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.receipt-head h3 { margin: 8px 0 0; font-size: 24px; }
.receipt-head p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; text-align: right; }
.receipt-head p b { color: var(--teal); font-size: 18px; }
.waterfall { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; margin: 16px 0; }
.waterfall-row { display: grid; grid-template-columns: 108px 1fr 52px; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid #d8d4df; font-size: 10px; }
.waterfall-row i { height: 4px; background: #d7d4dc; }
.waterfall-row i em { display: block; height: 100%; background: var(--teal); }
.waterfall-row b { color: var(--muted); font-size: 9px; text-align: right; }
.rank-logic { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }
.rank-logic span,.rank-logic b { padding: 7px 9px; font-size: 9px; letter-spacing: .6px; }
.rank-logic span { background: var(--dark); color: white; }
.rank-logic b { border: 1px solid #b8b5ca; color: var(--ink); }
.receipt-note { margin: 14px 0 0; color: var(--muted); font-size: 10px; }

.lender-intro h2 {
  margin: 22px 0;
  font: 400 clamp(44px,5vw,72px)/.95 Georgia,"Times New Roman",serif;
  letter-spacing: -.05em;
}

.lender-intro h2 span { color: var(--teal); }
.lender-intro > p:last-child,.lender-note { color: var(--muted); line-height: 1.65; }
.lender-output { padding: 28px; border: 1px solid #b8b5ca; background: var(--white); }
.output-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 18px 0; background: var(--line); }
.output-grid p { margin: 0; padding: 18px; background: var(--white); }
.output-grid b,.output-grid span { display: block; }
.output-grid span { margin-top: 5px; color: var(--muted); font-size: 12px; }
.lender-note { margin: 16px 0 0; font-size: 10px; }
.gpa-card .score-main strong { font-size: 48px; }
.gpa-card .score-main { flex: 0 0 190px; }
.gpa-visual { display: grid; grid-template-columns: 1.2fr .8fr; gap: 24px; align-items: center; }
.radar-wrap { text-align: center; }
.radar-wrap canvas { width: 100%; max-width: 330px; height: auto; }
.radar-wrap > span { display: block; margin-top: -8px; color: var(--muted); font-size: 9px; letter-spacing: 1.4px; font-weight: 800; }
.lender-result { margin: 18px 0; padding: 22px; background: var(--dark); color: white; }
.lender-result h3 { margin: 10px 0 7px; }
.lender-result p { color: #c4c7d0; font-size: 12px; line-height: 1.6; }
.reason-codes { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.reason-codes span { padding: 7px 9px; border: 1px solid #5a6073; color: #f2d6a2; font-size: 10px; }

@media(max-width:900px) {
  .lender-section,.gpa-visual,.routing-intro,.binary-thesis { grid-template-columns: 1fr; }
  .binary-key { grid-template-columns: 1fr 1fr; }
  .routing-flow { grid-template-columns: 1fr 1fr; }
  .routing-flow article:nth-child(2)::after { display: none; }
  .payout-ladder { grid-template-columns: repeat(3,1fr); }
  .payout-heading { grid-template-columns: 1fr; }
}

@media(max-width:620px) {
  .lender-section,.routing-section { padding: 72px 22px; }
  .routing-flow { grid-template-columns: 1fr; }
  .routing-flow article { min-height: auto; }
  .routing-flow article::after { display: none; }
  .payout-ladder { grid-template-columns: 1fr; }
  .payout-ladder article { min-height: auto; }
  .binary-section { padding: 72px 22px; }
  .binary-key,.binary-result { grid-template-columns: 1fr; }
  .receipt-head { align-items: flex-start; flex-direction: column; }
  .receipt-head p { text-align: left; }
  .waterfall { grid-template-columns: 1fr; }
  .output-grid { grid-template-columns: 1fr; }
}
