@font-face {
  font-family: "PC Figures";
  src: url("/fonts/pc-figures.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+0020, U+0025, U+002C-002F, U+0030-0039, U+003A, U+00A3, U+2013, U+2212;
}
:root {
  --paper: #F6F3EA; --ink: #16191D; --muted: #55595F; --rule: #D8D1C0;
  --green: #1E6B57; --green-dark: #155243; --oxide: #A63D24;
  --serif: "PC Figures", Georgia, "Times New Roman", serif;
  --sans: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --s1: 8px; --s2: 16px; --s3: 24px; --s4: 40px; --s5: 64px; --s6: 104px;
  --page: 1128px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 18px/28px var(--sans); }
a { color: var(--green); text-decoration-thickness: 1px; text-underline-offset: 4px; }
a:hover { color: var(--green-dark); text-decoration-thickness: 2px; }
a:focus-visible, summary:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
img, video { display: block; max-width: 100%; height: auto; }
p, li { max-width: 34em; }
strong { font-weight: 600; }
.fig { font-variant-numeric: lining-nums tabular-nums; }
.extract .fig, .big, h1 .fig, h2 .fig { font-family: var(--serif); }
.wrap { max-width: calc(var(--page) + 2 * var(--s3)); margin: 0 auto; padding: 0 var(--s3); }
.skip-link { position: absolute; left: -9999px; top: 0; background: var(--ink); color: #fff; padding: var(--s1) var(--s2); z-index: 10; }
.skip-link:focus { left: var(--s2); top: var(--s2); color: #fff; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
h1, h2, h3 { font-family: Georgia, "Times New Roman", serif; font-weight: 400; margin: 0; }
h1, h2 { font-family: var(--serif); }
h1 { font-size: 35px; line-height: 40px; letter-spacing: -.01em; }
h2 { font-size: 28px; line-height: 36px; margin-bottom: var(--s4); }
h3 { font-size: 22px; line-height: 32px; margin: var(--s4) 0 var(--s2); }
.small { font-size: 14px; line-height: 20px; color: var(--muted); max-width: 34em; }
.measure { max-width: 34em; }

.site-header { border-bottom: 1px solid var(--ink); }
.site-header .wrap { display: flex; justify-content: space-between; align-items: center; min-height: 64px; }
.wordmark { font: 400 24px/28px Georgia, serif; color: var(--ink); text-decoration: none; border-left: 2px solid var(--oxide); padding-left: 12px; }
.wordmark:hover { color: var(--ink); }

.split { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s4); }
main { position: relative; }
@media (min-width: 960px) {
  h1 { font-size: 47px; line-height: 52px; }
  h2 { font-size: 35px; line-height: 40px; }
  .split { grid-template-columns: minmax(0, 1.618fr) minmax(0, 1fr); gap: 0; }
  .split > .words { padding-right: var(--s5); }
  .split > .figures { padding-left: var(--s4); }
  main::before {
    content: ""; position: absolute; top: 0; bottom: 0; z-index: -1; width: 4px;
    left: calc(50% - var(--page) / 2 + var(--page) * 0.618);
    border-left: 1px solid var(--oxide); border-right: 1px solid var(--oxide);
    transform-origin: top; animation: draw 900ms cubic-bezier(.2,.7,.2,1) both;
  }
}
@media (min-width: 960px) and (max-width: 1175px) { main::before { left: calc(var(--s3) + (100% - 2 * var(--s3)) * 0.618); } }
@keyframes draw { from { transform: scaleY(0); } to { transform: scaleY(1); } }

.hero { padding: var(--s5) 0; }
.hero h1 { max-width: 14em; margin-bottom: var(--s3); }
.lead { font-size: 22px; line-height: 32px; max-width: 30em; margin: 0 0 var(--s4); }
.lead em { font-family: Georgia, serif; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); margin-bottom: var(--s3); }
.btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 var(--s3); background: var(--green); color: #fff; font-weight: 600; text-decoration: none; border-radius: 0; box-shadow: 4px 4px 0 var(--ink); transition: transform 120ms, box-shadow 120ms; }
.btn:hover { background: var(--green-dark); color: #fff; transform: translate(2px, 2px); box-shadow: 2px 2px 0 var(--ink); }
.hero .small { margin: 0; }
@media (min-width: 960px) { .hero { padding: var(--s6) 0 var(--s5); } }

.extract { margin: 0; }
.extract table { width: 100%; border-collapse: collapse; }
.extract caption { text-align: left; font: 600 14px/20px var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--oxide); padding-bottom: var(--s1); }
.extract th, .extract td { padding: var(--s1) 0; border-bottom: 1px solid var(--rule); text-align: left; font-weight: 400; vertical-align: baseline; }
.extract thead th { font: 14px/20px var(--sans); color: var(--muted); border-bottom: 1px solid var(--ink); }
.extract td.amt, .extract th.amt { text-align: right; }
.extract tbody th { font: 14px/20px var(--mono); color: var(--muted); }
.extract td.amt { font-size: 22px; line-height: 28px; }
.extract tr.total td { font-size: 35px; line-height: 40px; padding-top: var(--s2); border-bottom: 4px double var(--ink); }
.extract figcaption { font: 14px/20px var(--mono); color: var(--muted); margin-top: var(--s1); }

.film { padding: 0 0 var(--s5); }
.film figure { margin: 0; border-top: 1px solid var(--ink); padding-top: var(--s3); background: var(--paper); }
.film video { width: 100%; aspect-ratio: 16 / 9; border: 1px solid var(--ink); background: #fff; }
.film figcaption, figcaption { font: 14px/20px var(--mono); color: var(--muted); margin-top: var(--s1); }

.ledger-section .wrap { padding-bottom: var(--s5); }
.ledger-section .wrap::before { content: ""; display: block; border-top: 1px solid var(--ink); margin-bottom: var(--s4); }
.post { list-style: none; margin: 0 0 var(--s3); padding: 0; }
.post > li { border-top: 1px solid var(--rule); padding: var(--s3) 0; display: flex; flex-direction: column; max-width: none; }
.post > li:last-child { border-bottom: 1px solid var(--rule); }
.post .line p { margin: 0; max-width: 34em; }
.post .line h3 { margin-top: 0; }
.post .line p + figure { margin-top: var(--s3); }
.post figure { margin: 0; }
.post figure img { width: 100%; border: 1px solid var(--ink); background: #fff; }
.post .big { display: block; order: -1; font-size: 47px; line-height: 52px; color: var(--ink); margin-bottom: var(--s1); }
.post .big.none { display: none; }
@media (min-width: 960px) {
  .post > li { display: grid; grid-template-columns: minmax(0, 1.618fr) minmax(0, 1fr); align-items: baseline; }
  .post .line { grid-column: 1; grid-row: 1; padding-right: var(--s5); }
  .post .big { grid-column: 2; grid-row: 1; font-size: 76px; line-height: 76px; padding-left: var(--s4); margin: 0; }
  .post .big.none { display: block; }
  .steps > li { align-items: start; }
}
@media (min-width: 960px) and (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .post .big { animation: post linear both; animation-timeline: view(); animation-range: entry 10% cover 30%; }
  }
}
@keyframes post { from { opacity: 0; transform: translateX(-16px); } to { opacity: 1; transform: none; } }

.table-wrap { overflow-x: auto; margin: 0 0 var(--s3); }
table { border-collapse: collapse; width: 100%; font-variant-numeric: lining-nums tabular-nums; }
caption { text-align: left; color: var(--muted); font-size: 14px; line-height: 20px; padding-bottom: var(--s1); }
th, td { text-align: left; vertical-align: top; padding: var(--s1) var(--s2) var(--s1) 0; border-bottom: 1px solid var(--rule); font-weight: 400; }
thead th { border-bottom: 1px solid var(--ink); font: 600 14px/20px var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
table.ledger tbody tr:last-child th, table.ledger tbody tr:last-child td { border-bottom: 4px double var(--ink); }
@media (min-width: 960px) {
  table.ledger th:first-child, table.ledger td:first-child { width: 30.9%; }
  table.ledger tr > :nth-child(2) { width: 30.9%; }
  table.ledger tr > :nth-child(3) { padding-left: var(--s4); }
}

@media (max-width: 640px) {
  table.compare, table.compare tbody, table.compare tr, table.compare th, table.compare td { display: block; width: auto; }
  table.compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  table.compare tbody tr { border-top: 1px solid var(--ink); padding: var(--s2) 0; }
  table.compare tbody tr:last-child { border-bottom: 4px double var(--ink); }
  table.compare tbody th, table.compare tbody td, table.compare tbody tr:last-child th, table.compare tbody tr:last-child td { border-bottom: 0; }
  table.compare tbody th { padding: 0; }
  table.compare tbody th { font-family: Georgia, serif; font-size: 22px; line-height: 32px; margin-bottom: var(--s1); }
  table.compare tbody td, table.compare tbody tr:last-child td { padding: var(--s1) 0 0 var(--s2); border-left: 1px solid var(--rule); font-size: 18px; line-height: 28px; }
  table.compare tbody td + td { margin-top: var(--s2); }
  table.compare td::before { content: attr(data-label); display: block; font: 600 14px/20px var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
  table.compare tbody td:nth-of-type(1)::before { color: var(--green); }
}

details { border-bottom: 1px solid var(--rule); }
details:first-of-type { border-top: 1px solid var(--ink); }
summary { cursor: pointer; list-style: none; padding: var(--s2) 40px var(--s2) 0; position: relative; font-family: Georgia, serif; font-size: 22px; line-height: 32px; }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; position: absolute; right: 0; top: var(--s2); font-family: var(--serif); font-size: 28px; color: var(--ink); }
details[open] > summary::after { content: "\2212"; }
.answer-text { padding: 0 0 var(--s3); }
.answer-text p { margin: 0 0 var(--s2); }
@media (min-width: 960px) {
  summary { padding-right: 0; max-width: 61.8%; }
  summary::after { right: auto; left: calc(100% + var(--s4)); }
  .answer-text { max-width: 61.8%; padding-right: var(--s5); }
}

.article { padding: var(--s5) 0 var(--s5); }
.article .words { max-width: 61.8%; padding-right: var(--s5); }
.article h1 { margin-bottom: var(--s3); }
.article h2 { margin: var(--s5) 0 var(--s2); padding-top: var(--s3); border-top: 1px solid var(--ink); font-size: 28px; line-height: 36px; }
.article h3 { margin: var(--s3) 0 var(--s1); }
.article ul, .article ol { padding-left: var(--s3); }
.article li { margin-bottom: var(--s1); }
.answer { font-size: 22px; line-height: 32px; }
.crumbs { font: 14px/20px var(--mono); color: var(--muted); margin: 0 0 var(--s3); }
.cite { font: 14px/20px var(--mono); }
.cta { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: var(--s3) 0; margin: var(--s5) 0 0; }
.cta p { margin-top: 0; }
.sources { font-size: 14px; line-height: 20px; }
@media (max-width: 959px) { .article .words { max-width: none; padding-right: 0; } }

.posted { margin: 0; }
.posted .big { display: block; font-size: 76px; line-height: 76px; color: var(--ink); }
.posted-caption { display: block; font: 14px/20px var(--mono); color: var(--muted); margin-top: var(--s1); max-width: 22em; }
.calc fieldset { border: 0; margin: 0 0 var(--s3); padding: 0; min-width: 0; }
.calc legend, .calc .field > label { display: block; font-weight: 600; padding: 0; margin-bottom: var(--s1); }
.calc .help { font-size: 14px; line-height: 20px; color: var(--muted); margin: 0 0 var(--s1); }
.calc .choice { display: flex; align-items: center; gap: 12px; min-height: 44px; border-bottom: 1px solid var(--rule); }
.calc .choice:first-of-type { border-top: 1px solid var(--rule); }
.calc input[type="radio"] { width: 20px; height: 20px; margin: 0; accent-color: var(--green); flex: none; }
.calc .choice label { flex: 1; padding: 8px 0; cursor: pointer; }
.calc .field { margin: 0 0 var(--s3); }
.calc input[type="text"] { display: block; width: 100%; max-width: 16em; min-height: 48px; padding: 8px 12px; font: 22px/28px var(--serif); font-variant-numeric: lining-nums tabular-nums; color: var(--ink); background: #fff; border: 1px solid var(--ink); border-radius: 0; }
.calc input[type="text"]:focus-visible, .calc input[type="radio"]:focus-visible, .calc .btn:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.calc input[aria-invalid="true"] { border: 2px solid var(--oxide); }
.calc .error { color: var(--oxide); font-weight: 600; margin: var(--s1) 0 0; }
.calc .btn { border: 0; font: 600 18px/28px var(--sans); cursor: pointer; }
.privacy-line { font-size: 14px; line-height: 20px; color: var(--muted); margin: var(--s3) 0 0; }
.noscript { border-left: 4px solid var(--oxide); padding-left: var(--s2); }
.result { border-top: 1px solid var(--ink); padding-top: var(--s2); outline: none; }
.result:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
#result-empty { color: var(--muted); margin-top: 0; }
.result-list { list-style: none; margin: 0; padding: 0; }
.result-list > li { padding: var(--s2) 0; border-bottom: 1px solid var(--rule); }
.result-list ul { list-style: none; margin: var(--s1) 0 0; padding: 0 0 0 var(--s2); border-left: 1px solid var(--rule); font-size: 16px; line-height: 24px; }
.result-list strong { font-family: var(--serif); font-weight: 400; font-size: 28px; line-height: 36px; white-space: nowrap; }
.result-list .r-main strong { display: block; font-size: 47px; line-height: 52px; }
.r-profit-line, .r-assumption, #r-low { margin: var(--s2) 0 0; }
.r-assumption { font-size: 14px; line-height: 20px; color: var(--muted); }
.taxyear { font: 14px/20px var(--mono); color: var(--muted); margin: var(--s2) 0 0; padding-top: var(--s1); border-top: 4px double var(--ink); }
.disclaimer { margin: var(--s3) 0 0; }
.panel { border: 1px solid var(--ink); background: #fff; padding: var(--s2) var(--s3); margin: var(--s3) 0; max-width: 40em; }
.panel p { margin: 0 0 var(--s2); }
.panel p:last-child { margin-bottom: 0; }
@media (min-width: 960px) { .calc-split > .figures { padding-top: 0; } .result-list .r-main strong { font-size: 76px; line-height: 76px; } }
@media (max-width: 959px) { .calc .btn { width: 100%; justify-content: center; } .posted .big { font-size: 47px; line-height: 52px; } }

.site-footer { border-top: 1px solid var(--ink); padding: var(--s4) 0 var(--s5); font-size: 14px; line-height: 20px; color: var(--muted); }
.site-footer p { margin: 0 0 var(--s2); }
.footer-disclaimer { color: var(--ink); }
.footer-heading { font: 600 14px/20px var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin: 0 0 var(--s1); }
.footer-links { list-style: none; padding: 0; margin: 0 0 var(--s2); }
.footer-links li { padding: var(--s1) 0; border-bottom: 1px solid var(--rule); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

@media (max-width: 959px) {
  main { border-left: 4px double var(--oxide); margin-left: 8px; }
  .wrap { padding: 0 var(--s2) 0 var(--s3); }
  .site-header .wrap, .site-footer .wrap { padding: 0 var(--s2); }
  .actions .btn { width: 100%; justify-content: center; }
  .hero { padding: var(--s4) 0; }
  .lead { font-size: 18px; line-height: 28px; }
  th, td { padding-right: var(--s1); font-size: 16px; line-height: 24px; }
  thead th { font-size: 14px; }
}
