:root {
  color-scheme: light;
  --canvas: #ffffff;
  --ink: #222222;
  --coral: #ff385c;
  --surface: #f2f2f2;
  --focused: #3f3f3f;
  --secondary: #6a6a6a;
  --border: #c1c1c1;
  --rare: #460479;
  --serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --card-shadow: 0 0 0 1px rgb(34 34 34 / 2%), 0 2px 6px rgb(34 34 34 / 4%), 0 4px 8px rgb(34 34 34 / 10%);
  --section-space: clamp(4rem, 8vw, 8rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 1.5rem; }
body { margin: 0; background: var(--canvas); color: var(--ink); font: 400 1rem/1.6 var(--serif); }
body, input, select, button { font-size: 1rem; }
img { display: block; max-width: 100%; height: auto; }
figure, blockquote, p, ul, ol, dl { margin: 0; }
p + p { margin-top: 1rem; }
h1, h2, h3 { margin: 0; font-weight: 600; line-height: 1.18; letter-spacing: -.44px; text-wrap: balance; }
h1 { font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 500; }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.375rem; }
button, input, select { font-family: inherit; color: inherit; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: var(--ink); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid var(--rare); outline-offset: 4px; }
[hidden] { display: none !important; }
main:focus { outline: none; }
.shell { width: min(100%, 1280px); margin-inline: auto; padding-inline: 1.5rem; }
.u-measure { max-width: 72ch; }
.section-gap { margin-top: var(--section-space); }
.eyebrow { font-size: 1rem; font-weight: 600; letter-spacing: .07em; line-height: 1.4; color: var(--focused); }
.coral-dot { display: inline-block; width: .625rem; height: .625rem; background: var(--coral); border-radius: 50%; flex: 0 0 auto; }
.skip-link { position: fixed; left: 1rem; top: -6rem; z-index: 10; padding: .75rem 1rem; background: var(--canvas); border: 2px solid var(--rare); border-radius: 8px; }
.skip-link:focus { top: 1rem; }
.masthead { min-height: 112px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--surface); }
.identity { display: inline-flex; align-items: center; gap: .75rem; min-height: 56px; text-decoration: none; font-size: 1.375rem; font-weight: 600; line-height: 1.15; }
.identity-sub { display: block; color: var(--secondary); font-size: 1rem; font-weight: 400; margin-top: .25rem; }
.identity-mark { position: relative; width: 28px; height: 38px; border: 2px solid var(--ink); border-radius: 6px; flex-shrink: 0; }
.identity-mark::before { content: ""; position: absolute; width: 9px; height: 9px; top: 6px; left: 7px; background: var(--coral); border-radius: 50%; }
.identity-mark::after { content: ""; position: absolute; width: 13px; height: 6px; bottom: 7px; left: 5px; border-block: 1px solid var(--ink); }
.directory-jump { display: inline-flex; align-items: center; justify-content: center; gap: .625rem; min-height: 48px; padding: .5rem .125rem; font-size: 1rem; }
.directory-jump span { font-family: var(--mono); }
.hero { display: grid; gap: 2rem; padding-top: 2.5rem; align-items: center; }
.hero-copy > .eyebrow { display: flex; align-items: center; gap: .625rem; margin-bottom: 1.25rem; }
.hero-copy h1 { max-width: 15ch; }
.hero-lead { margin-top: 1.5rem; color: var(--focused); max-width: 53ch; font-size: 1.125rem; line-height: 1.6; }
.hero-copy > .button { margin-top: 2rem; }
.hero-art { min-width: 0; }
.hero-art img { width: 100%; border-radius: 32px; background: var(--surface); }
.hero-art figcaption { margin-top: .875rem; color: var(--secondary); font-size: 1rem; }
.button { display: inline-flex; min-height: 48px; max-width: 100%; align-items: center; justify-content: center; gap: 1rem; padding: .8125rem 1.25rem; border: 1px solid var(--coral); border-radius: 8px; background: var(--coral); color: var(--ink); font-weight: 600; font-size: 1rem; line-height: 1.5; text-decoration: none; transition: transform 200ms ease, box-shadow 200ms ease; }
.button:hover { text-decoration: none; transform: translateY(-2px); box-shadow: 0 4px 8px rgb(34 34 34 / 10%); }
.button span { font-family: var(--mono); }
.button-outline { background: var(--canvas); border-color: var(--ink); }
.text-link { display: inline-flex; align-items: center; gap: .75rem; padding-block: .625rem; min-height: 48px; line-height: 1.5; font-weight: 600; }
.primer { display: grid; gap: 2rem; align-items: center; }
.primer-copy h2 { margin-top: .75rem; margin-bottom: 1.5rem; }
.primer-copy { max-width: 56ch; }
.conversation { padding: 1.5rem; border-radius: 20px; background: var(--surface); position: relative; }
.conversation::before { content: ""; display: block; width: 2rem; height: 3px; background: var(--coral); border-radius: 14px; margin-bottom: 1rem; }
.conversation .prompt-label { margin-top: 0; margin-bottom: .75rem; }
.prompt-label { display: block; font-weight: 600; color: var(--focused); font-size: 1rem; }
.conversation > p + p { margin-top: .75rem; }
.conversation > .text-link { margin-top: .5rem; }
.compact { margin-block: 1.5rem; padding: 1.5rem; }
.bridge-rules { margin-block: 1rem; padding-left: 1.25rem; }
.bridge-rules li + li { margin-top: .75rem; }
.section-intro { max-width: 64ch; margin-bottom: 2rem; }
.section-intro h2 { margin-top: .75rem; margin-bottom: 1rem; }
.checklist { list-style: none; padding: 0; border-top: 1px solid var(--border); }
.check-item { padding-block: 1.75rem; border-bottom: 1px solid var(--border); }
.check-heading label, .quote-checks label { display: flex; align-items: center; gap: .875rem; cursor: pointer; min-height: 48px; }
.check-heading label { align-items: flex-start; font-size: 1.375rem; font-weight: 600; line-height: 1.35; letter-spacing: -.44px; }
.check-heading label span { padding-top: .375rem; }
input[type="checkbox"] { appearance: none; -webkit-appearance: none; position: relative; display: inline-block; margin: 0; width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid var(--secondary); border-radius: 8px; background: var(--canvas); cursor: pointer; }
input[type="checkbox"]:checked { background: var(--coral); border-color: var(--coral); }
input[type="checkbox"]:checked::after { content: ""; position: absolute; width: 15px; height: 8px; left: 12px; top: 13px; border-left: 2px solid var(--ink); border-bottom: 2px solid var(--ink); transform: rotate(-45deg); }
.check-body { margin-top: 1rem; max-width: 72ch; }
.ask { margin-bottom: 1rem; padding-left: 1rem; border-left: 2px solid var(--coral); }
.ask .prompt-label { margin-bottom: .25rem; }
.attribution { color: var(--secondary); font-size: 1rem; margin-top: .75rem; }
.attribution a { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding-block: .625rem; font-size: 1rem; line-height: 1.5; color: var(--focused); }
.attribution + .attribution { margin-top: 0; }
.note-line { color: var(--focused); }
.closing-note { display: grid; gap: 1.5rem; padding: 2rem 1.5rem; background: var(--surface); border-radius: 32px; }
.closing-title { display: flex; align-items: flex-start; gap: 1rem; }
.closing-title h2 { max-width: 21ch; }
.note-symbol { display: inline-flex; align-items: center; justify-content: center; height: 44px; width: 44px; flex-shrink: 0; border: 1px solid var(--border); border-radius: 50%; color: var(--rare); font-size: 1.5rem; }
.question-row { display: grid; gap: 1.5rem; padding-top: 2rem; border-top: 1px solid var(--border); }
.question-label h2 { max-width: 22ch; }
.answer { min-width: 0; }
.claim-callouts { display: grid; gap: 1.5rem; }
.claim-note { padding: 1.5rem; border-radius: 20px; box-shadow: var(--card-shadow); }
.claim-note h3 { margin-bottom: 1rem; }
.cost-context { display: grid; gap: 1.5rem; }
.price-note { padding: 1.75rem 1.5rem; border-radius: 32px; background: var(--surface); }
.price-statement { font-size: 1.375rem; line-height: 1.45; letter-spacing: -.18px; }
.price-note .conversation { background: var(--canvas); }
.worksheet-layout { display: grid; gap: 2rem; align-items: start; }
.worksheet-form { min-width: 0; }
.field { margin-bottom: 1.5rem; }
.field label { display: block; font-weight: 600; margin-bottom: .5rem; }
select { display: block; width: 100%; min-height: 52px; padding: .75rem 2rem .75rem .875rem; border: 1px solid var(--secondary); border-radius: 8px; background: var(--canvas); font-size: 1rem; line-height: 1.5; }
.quote-checks { margin: 0 0 1.5rem; padding: 0; border: 0; }
.quote-checks legend { font-weight: 600; margin-bottom: .625rem; padding: 0; }
.quote-checks label { padding-block: .375rem; }
.question-sheet { position: relative; min-width: 0; background: var(--canvas); border-radius: 20px; padding: 1.75rem 1.5rem; box-shadow: var(--card-shadow); border: 1px solid var(--surface); }
.sheet-top { display: flex; gap: .75rem; align-items: flex-start; margin-bottom: 1rem; }
.sheet-mark { flex-shrink: 0; width: 16px; height: 22px; background: var(--coral); border-radius: 0 0 3px 3px; }
.question-sheet h3 { font-size: 1.5rem; }
.worksheet-status { margin-block: 1rem; color: var(--secondary); }
.sheet-questions { list-style: none; padding: 0; margin-block: 1.5rem; }
.sheet-questions li { position: relative; padding: 1rem 0 1rem 2rem; border-top: 1px solid var(--border); }
.sheet-questions li::before { content: ""; position: absolute; top: 1.375rem; left: 0; height: 14px; width: 14px; border: 1px solid var(--secondary); border-radius: 3px; }
.sheet-questions li:last-child { border-bottom: 1px solid var(--border); }
.site-footer { background: var(--surface); margin-top: var(--section-space); padding-block: 3rem 1.5rem; }
.footer-heading { margin-bottom: 1.75rem; }
.footer-heading h2 { margin-top: .75rem; }
.directory-list { list-style: none; padding: 0; display: grid; gap: .75rem; }
.directory-list a { display: flex; gap: 1rem; align-items: center; justify-content: space-between; min-height: 100px; padding: 1.25rem; background: var(--canvas); border-radius: 20px; text-decoration: none; transition: box-shadow 200ms ease; border: 1px solid transparent; }
.directory-list a:hover { box-shadow: var(--card-shadow); }
.directory-list a[aria-current="page"] { border-color: var(--border); }
.directory-list strong { display: block; font-size: 1.25rem; font-weight: 600; }
.directory-desc { display: block; margin-top: .25rem; color: var(--secondary); font-size: 1rem; }
.directory-status { color: var(--focused); font-size: 1rem; flex-shrink: 0; white-space: nowrap; }
.directory-arrow { font-size: 1.5rem; font-family: var(--mono); }
.footer-bottom { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: center; justify-content: space-between; }
.footer-bottom p { max-width: 68ch; font-size: 1rem; color: var(--focused); }
.footer-bottom a { display: inline-flex; align-items: center; gap: .75rem; min-height: 48px; padding-block: .625rem; font-size: 1rem; }
.missing-page { padding-block: 5rem 1rem; max-width: 64ch; }
.missing-page h1 { margin-block: 1rem 1.5rem; }
.missing-page .button { margin-top: 2rem; }

@media (max-width: 440px) {
  .masthead { gap: .625rem; min-height: 104px; }
  .identity { gap: .5rem; font-size: 1.25rem; }
  .identity-sub { max-width: 15ch; }
  .directory-jump { max-width: 7.5rem; text-align: right; line-height: 1.3; }
  .directory-list a { align-items: flex-start; }
  .directory-status { max-width: 4ch; white-space: normal; text-align: right; }
}

@media (min-width: 700px) {
  .hero { gap: 3rem; padding-top: 3.5rem; grid-template-columns: 1fr .85fr; }
  .hero-copy h1 { max-width: 15ch; }
  .hero-art figcaption { text-align: right; }
  .primer { grid-template-columns: 1fr 1fr; gap: 4rem; }
  .question-row { grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr); gap: 3rem; }
  .claim-callouts { grid-template-columns: 1fr 1fr; }
  .claim-note-wide { grid-column: 1 / -1; max-width: 82ch; margin-left: 12%; }
  .closing-note { grid-template-columns: 1fr 1.35fr; gap: 3rem; padding: 2.5rem; }
  .cost-context { grid-template-columns: .7fr 1.3fr; gap: 3rem; }
  .cost-context .section-intro { margin-bottom: 0; }
  .price-note { padding: 2rem; }
  .worksheet-layout { grid-template-columns: 1fr 1fr; gap: 3rem; }
  .worksheet-section .section-intro { max-width: 72ch; }
  .directory-list a { padding-inline: 1.75rem; }
}

@media (min-width: 1000px) {
  .masthead { min-height: 112px; }
  .hero { grid-template-columns: 1.1fr 1fr; gap: 4.5rem; padding-top: 4rem; }
  .hero-home h1 { font-size: clamp(2.5rem, 4.4vw, 4rem); }
  .hero-art { padding-left: 1rem; }
  .primer { grid-template-columns: 1.1fr 1fr; gap: 5.5rem; }
  .checklist-section { display: grid; grid-template-columns: .7fr 1.5fr; gap: 4rem; align-items: start; }
  .checklist-section .section-intro { position: sticky; top: 2rem; }
  .check-item { padding-block: 2rem; }
  .check-body { margin-left: 3.625rem; }
  .question-row { grid-template-columns: .7fr 1.5fr; gap: 4rem; }
  .question-label { padding-top: .25rem; }
  .question-label h2 { font-size: 1.75rem; }
  .claim-note { padding: 2rem; }
  .worksheet-layout { grid-template-columns: .85fr 1.15fr; gap: 5rem; }
  .question-sheet { padding: 2rem 2.25rem; }
  .site-footer { padding-block: 4rem 2rem; }
  .footer-heading { display: flex; align-items: baseline; gap: 3rem; margin-bottom: 2rem; }
  .footer-heading h2 { margin-top: 0; }
  .directory-list { max-width: 1080px; }
  .directory-list li:nth-child(2) { margin-left: 6%; }
  .directory-list li:nth-child(3) { margin-left: 12%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .button:hover { transform: none; }
}

@media print {
  @page { margin: 18mm; }
  html { scroll-behavior: auto; }
  body { font-size: 12pt; color: #222222; background: #ffffff; }
  .shell { width: 100%; padding: 0; }
  .masthead { border-bottom: 1px solid #c1c1c1; min-height: auto; padding-bottom: 12pt; }
  .directory-jump, .site-footer, .hero-art, .skip-link, .button, .text-link { display: none !important; }
  .hero { display: block; padding-top: 16pt; }
  h1 { font-size: 28pt !important; }
  h2 { font-size: 18pt; }
  .hero-lead { font-size: 12pt; }
  .section-gap { margin-top: 24pt; }
  .checklist-section, .question-row, .primer, .closing-note, .cost-context, .worksheet-layout { display: block; }
  .checklist-section .section-intro { position: static; }
  .check-item { break-inside: avoid; padding-block: 12pt; }
  .check-body { margin-left: 3.625rem; }
  .conversation, .price-note, .question-sheet, .claim-note { background: #ffffff; border: 1px solid #c1c1c1; box-shadow: none; }
  .question-row .answer { margin-top: 12pt; }
  .closing-note { padding: 0; background: #ffffff; }
  .cost-page .hero, .cost-page .cost-context, .cost-page .question-row, .cost-page .closing-note { display: none; }
  .cost-page .worksheet-section { margin-top: 18pt; }
  .cost-page .worksheet-form { display: none; }
  .cost-page .question-sheet { border: 0; padding: 0; }
  .cost-page .worksheet-status { display: none; }
  .sheet-questions li { break-inside: avoid; }
}
