*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-block-start: 1.5rem; }
body { margin: 0; }
button, input, textarea { font: inherit; }
button, a, label, textarea { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
.tp-masthead { max-inline-size: 72rem; margin-inline: auto; padding: 1.5rem 2rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; }
.tp-name { display: flex; gap: 1rem; align-items: center; min-block-size: 2.75rem; }
.tp-name-detail { padding-inline-start: 1rem; }
.tp-breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; list-style: none; padding: 0; margin: 0; }
.tp-breadcrumbs li { display: flex; align-items: center; min-inline-size: 0; }
.tp-breadcrumbs li + li::before { content: ''; inline-size: .4rem; block-size: .4rem; transform: rotate(-45deg); margin-inline: .35rem .6rem; border-inline-end: 1px solid currentColor; border-block-end: 1px solid currentColor; }
.tp-breadcrumbs span, .tp-crumb-link { display: inline-flex; align-items: center; min-block-size: 2.75rem; padding: .35rem .65rem; }
.tp-main { max-inline-size: 46rem; margin-inline: auto; padding: 2.5rem 2rem 5rem; }
.tp-intro { margin-block-end: 3.75rem; }
.tp-intro h1 { margin: 0 0 1.5rem; max-inline-size: 19ch; }
.tp-intro p { margin-block: 0 1.15rem; }
.tp-section, .tp-reading, .tp-worksheet { margin-block: 3.25rem; }
.tp-section p, .tp-reading p, .tp-worksheet p { margin-block: 1rem; }
.tp-heading { margin: 0 0 1.1rem; }
.tp-list { padding-inline-start: 1.25rem; margin-block: 1rem; }
.tp-list li { margin-block: .7rem; padding-inline-start: .25rem; }
.tp-button { min-block-size: 3.2rem; min-inline-size: 2.75rem; padding: .8rem 1.25rem; display: inline-flex; align-items: center; justify-content: center; text-align: center; cursor: pointer; }
.tp-next { margin-block-start: 3.5rem; padding-block-start: 1.25rem; }
.tp-next p { margin-block: .7rem; }
.tp-next-link, .tp-source-link, .tp-footer-link, .tp-link { display: inline-flex; align-items: center; min-block-size: 2.75rem; min-inline-size: 2.75rem; padding-block: .45rem; }
.tp-next-link::after { content: ''; display: inline-block; inline-size: .55rem; block-size: .55rem; flex: none; margin-inline: 1rem .25rem; border-inline-end: 2px solid currentColor; border-block-start: 2px solid currentColor; transform: rotate(45deg); }
.tp-reading { padding-block-start: 1.5rem; }
.tp-reading-list { list-style: none; padding: 0; margin: 0; }
.tp-reading-list li { padding-block: .85rem; }
.tp-reading-list p { margin-block: .3rem .8rem; }
.tp-footer { max-inline-size: 46rem; padding: 1.5rem 2rem 3rem; margin-inline: auto; }
.tp-footer p { margin-block: .5rem; }
.tp-skip { position: absolute; inset-block-start: .5rem; inset-inline-start: 1rem; padding: .75rem 1rem; transform: translateY(-180%); z-index: 10; min-block-size: 2.75rem; }
.tp-skip:focus { transform: translateY(0); }
.tp-route { margin: 2.75rem 0 3.5rem; padding: 1.75rem 1.25rem; }
.tp-route figcaption { margin-block-start: 1.5rem; text-align: center; }
.tp-route-line { display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; padding: 0; margin: 0; }
.tp-route-line li { text-align: center; position: relative; padding-block-start: 2.25rem; }
.tp-route-line li::before { content: ''; position: absolute; inset-block-start: .1rem; inset-inline-start: calc(50% - .5rem); inline-size: 1rem; block-size: 1rem; border-radius: 50%; z-index: 1; }
.tp-route-line li:not(:last-child)::after { content: ''; position: absolute; inset-block-start: .58rem; inset-inline-start: 50%; inline-size: 100%; block-size: 1px; }
.tp-route-root { margin-inline: auto; max-inline-size: 12rem; text-align: center; padding: .6rem 1rem; }
.tp-route-branches { position: relative; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin: 2.5rem 0 0; padding: 0; }
.tp-route-branches::before { content: ''; position: absolute; inset-block-start: -1.25rem; inset-inline-start: 16.7%; inline-size: 66.6%; block-size: 1px; }
.tp-route-root::after { content: ''; display: block; inline-size: 1px; block-size: 1.3rem; margin-inline: auto; position: absolute; inset-inline-start: 50%; margin-block-start: .6rem; }
.tp-route-branches li { text-align: center; position: relative; padding: 1rem .35rem; }
.tp-route-branches li::before { content: ''; position: absolute; inset-block-start: -1.25rem; inset-inline-start: 50%; inline-size: 1px; block-size: 1.25rem; }
.tp-home .tp-main { max-inline-size: 66rem; }
.tp-home .tp-intro { text-align: center; margin-block-end: 1.75rem; padding-block-start: 1.75rem; }
.tp-home .tp-intro h1 { margin-inline: auto; max-inline-size: 18ch; }
.tp-home .tp-intro p { margin-inline: auto; max-inline-size: 37rem; }
.tp-home .tp-lead { max-inline-size: 34rem; }
.tp-home-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.tp-home .tp-section, .tp-home-routes, .tp-home .tp-route { max-inline-size: 42rem; margin-inline: auto; }
.tp-home .tp-route { margin-block: 3.5rem 4.5rem; }
.tp-route-rows { list-style: none; padding: 0; margin: 0; }
.tp-route-rows li { padding-block: 1rem; }
.tp-row-link { display: flex; align-items: center; justify-content: space-between; min-block-size: 2.75rem; padding-block: .4rem; gap: 1rem; }
.tp-row-link::after { content: ''; inline-size: .55rem; block-size: .55rem; flex: none; border-inline-end: 2px solid currentColor; border-block-start: 2px solid currentColor; transform: rotate(45deg); margin-inline-end: .4rem; }
.tp-route-rows p { margin-block: .35rem .65rem; max-inline-size: 38rem; }
.tp-worksheet { padding: 1.5rem; }
.tp-fieldset { min-inline-size: 0; padding: 0; border: 0; margin: 1.75rem 0; }
.tp-fieldset legend { padding: 0; margin-block-end: .65rem; }
.tp-topics { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.tp-choice { display: flex; align-items: center; gap: .75rem; min-block-size: 3.25rem; padding: .65rem .8rem; cursor: pointer; }
.tp-choice input { inline-size: 2.75rem; block-size: 2.75rem; flex: none; margin: 0; }
.tp-note-label { display: block; margin-block-end: .5rem; }
.tp-note { display: block; inline-size: 100%; max-inline-size: 100%; padding: .75rem; resize: vertical; min-block-size: 8rem; }
.tp-sheet-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-block: 1.25rem; }
.tp-sheet { padding-block-start: .75rem; }
.tp-sheet h3 { margin: 1rem 0; }
.tp-print-note { white-space: pre-wrap; overflow-wrap: anywhere; padding: 1rem; }
@media (max-width: 640px) {
  .tp-masthead { padding: 1rem 1.25rem .75rem; flex-direction: column; align-items: flex-start; gap: .5rem; }
  .tp-main { padding: 1.75rem 1.25rem 3rem; }
  .tp-intro { margin-block-end: 2.75rem; }
  .tp-home .tp-intro { padding-block-start: .75rem; }
  .tp-footer { padding-inline: 1.25rem; }
  .tp-section, .tp-reading, .tp-worksheet { margin-block: 2.75rem; }
  .tp-route { padding: 1.5rem .75rem; }
  .tp-route-home .tp-route-line { gap: .7rem; }
  .tp-route-branches { grid-template-columns: 1fr; gap: .75rem; padding-inline-start: 1.25rem; margin-block-start: 1.25rem; }
  .tp-route-branches::before { inset-block-start: -.25rem; inset-inline-start: .25rem; inline-size: 1px; block-size: calc(100% - 1.35rem); }
  .tp-route-root { margin-inline: 0; }
  .tp-route-root::after { display: none; }
  .tp-route-branches li { text-align: start; padding: .85rem; }
  .tp-route-branches li::before { inset-inline-start: -1rem; inset-block-start: 50%; inline-size: 1rem; block-size: 1px; }
  .tp-topics { grid-template-columns: 1fr; }
  .tp-worksheet { padding: 1rem; }
  .tp-home-actions .tp-button { flex: 1 1 15rem; }
}
@media print {
  .tp-masthead, .tp-footer, .tp-skip, .tp-next, .tp-sheet-actions, noscript { display: none; }
  .tp-main { max-inline-size: none; padding: 0; }
  .tp-worksheet { border: 0; padding: 0; }
  .tp-printing .tp-intro, .tp-printing .tp-section, .tp-printing .tp-worksheet > p, .tp-printing .tp-worksheet-form, .tp-printing .tp-sheet-status { display: none; }
  .tp-printing .tp-worksheet { margin: 0; }
  .tp-sheet { break-inside: avoid; }
}
