* { box-sizing: border-box; }
html { --guide-header-height: 5rem; font-size: var(--type-root); scroll-padding-top: calc(var(--guide-header-height) + var(--space-6)); }
body { margin: 0; font-family: var(--font-body); color: var(--color-text); background: var(--color-paper); line-height: var(--type-line-copy); }
a { color: var(--color-ink); text-underline-offset: .2em; }
a:hover { color: var(--color-ink-hover); }
a:focus-visible, [tabindex]:focus-visible { outline: var(--control-focus-width) solid var(--color-ink); outline-offset: var(--control-focus-offset); }
main { width: min(100% - var(--space-12), 72rem); margin-inline: auto; }
.site-header { position: sticky; top: 0; z-index: 8; background: var(--color-paper); border-bottom: var(--control-border-width) solid var(--color-rule); }
.header-inner { min-height: 5rem; padding: var(--space-4) var(--gutter); display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: var(--space-6); }
.site-header img { width: 9rem; height: auto; display: block; }
.header-links { display: flex; align-items: center; gap: var(--space-6); }
.site-header a { min-height: var(--control-target-min); display: inline-flex; align-items: center; text-decoration: none; font-size: var(--type-navigation); color: var(--color-text); }
.site-header a:hover { text-decoration: underline; }
.header-actions { justify-self: end; display: flex; align-items: center; gap: var(--space-4); }
.guide-language { display: flex; gap: var(--space-1); }
.site-header .guide-language a { justify-content: center; min-width: var(--control-target-min); font-size: var(--type-label); color: var(--color-text-soft); }
.site-header .guide-language a[aria-current="page"] { color: var(--color-text); font-weight: var(--type-weight-medium); text-decoration: underline; text-underline-offset: .3em; }
.site-header .header-cta { padding: var(--control-button-padding-block) var(--control-button-padding-inline); border-radius: var(--control-radius); font-size: var(--type-label); background: var(--color-ink); color: var(--color-paper); }
.guide-menu { display: none; }
.guide-menu summary { display: flex; align-items: center; min-height: var(--control-target-min); cursor: pointer; list-style: none; font-size: var(--type-navigation); }
.guide-menu summary::-webkit-details-marker { display: none; }
.guide-menu summary:focus-visible { outline: var(--control-focus-width) solid var(--color-ink); outline-offset: var(--control-focus-offset); }
.guide-menu nav { position: absolute; top: 100%; left: 0; right: 0; padding: var(--space-4) var(--gutter); background: var(--color-paper); border-bottom: var(--control-border-width) solid var(--color-rule); display: grid; }
.guide-hero { padding: var(--space-20) 0 var(--space-10); border-bottom: var(--control-border-width) solid var(--color-rule); }
.eyebrow { display: flex; align-items: center; gap: var(--space-3); text-transform: uppercase; letter-spacing: var(--type-tracking-label); font-size: var(--type-label); color: var(--color-ink); font-weight: var(--type-weight-medium); }
.eyebrow a { text-decoration: none; }
.guide-number { margin-left: auto; color: var(--color-text-soft); }
h1 { max-width: 56rem; font-size: var(--type-heading); line-height: var(--type-line-heading); letter-spacing: var(--type-tracking-display); font-weight: var(--type-weight-medium); margin: var(--space-6) 0; }
.lede { max-width: 48rem; font-size: var(--type-lede); color: var(--color-text-soft); }
.guide-meta { display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-8); margin-top: var(--space-8); font-size: var(--type-body-small); color: var(--color-text-soft); }
.guide-meta a { margin-left: auto; }
.guide-layout { display: grid; grid-template-columns: 12rem minmax(0, 1fr); gap: var(--space-16); padding-top: var(--space-12); }
.guide-aside { align-self: start; position: sticky; top: calc(var(--guide-header-height) + var(--space-6)); font-size: var(--type-body-small); max-height: calc(100dvh - var(--guide-header-height) - var(--space-12)); overflow-y: auto; }
.guide-aside .eyebrow { margin-top: 0; }
.guide-aside ol { padding-left: var(--space-5); }
.guide-aside li { padding-left: var(--space-1); margin-block: var(--space-3); color: var(--color-text-soft); }
.guide-aside a { text-decoration: none; }
.guide-aside a[aria-current="location"] { color: var(--color-text); font-weight: var(--type-weight-medium); text-decoration: underline; text-decoration-color: var(--color-ink); text-decoration-thickness: 2px; text-underline-offset: .3em; }
.download-link { display: block; border-top: var(--control-border-width) solid var(--color-rule); padding-top: var(--space-5); margin-top: var(--space-8); }
.download-link small { display: block; color: var(--color-text-soft); margin-top: var(--space-1); }
article { min-width: 0; }
.guide-body > p, .guide-body > ul { max-width: 43rem; }
p { margin: 0 0 var(--space-5); }
h2 { font-size: var(--type-step-title); line-height: var(--type-line-heading); font-weight: var(--type-weight-medium); letter-spacing: var(--type-tracking-display); margin: var(--space-16) 0 var(--space-6); }
.guide-body > h2:first-of-type { margin-top: var(--space-10); }
blockquote { margin: var(--space-8) 0; padding: var(--space-5) var(--space-6); border-left: 3px solid var(--color-ink); background: var(--color-ink-faint); font-size: var(--type-body-small); }
blockquote p:last-child { margin-bottom: 0; }
ul { padding-left: var(--space-6); }
li { margin-block: var(--space-3); }
.process-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); padding: 0; margin: var(--space-8) 0; list-style: none; border: var(--control-border-width) solid var(--color-rule); }
.process-strip li { position: relative; margin: 0; padding: var(--space-5) var(--space-3); font-size: var(--type-body-small); background: var(--color-surface); }
.process-strip li + li { border-left: var(--control-border-width) solid var(--color-rule); }
.process-strip span { display: block; color: var(--color-ink); font-size: var(--type-caption); margin-bottom: var(--space-3); }
.process-strip strong { display: block; font-weight: var(--type-weight-medium); }
.process-strip small { color: var(--color-text-soft); font-size: var(--type-caption); }
.table-scroll { max-width: 100%; overflow-x: auto; margin-block: var(--space-6); background: var(--color-surface); border: var(--control-border-width) solid var(--color-rule); }
table { width: 100%; border-collapse: collapse; font-size: var(--type-body-small); line-height: var(--type-line-body); }
th, td { padding: var(--space-4); text-align: left; vertical-align: top; min-width: 7rem; }
th { font-weight: var(--type-weight-medium); background: var(--color-surface-muted); }
td { border-top: var(--control-border-width) solid var(--color-rule); }
td:first-child { font-weight: var(--type-weight-medium); }
.guide-contact { background: var(--color-ink-faint); padding: var(--space-8); margin: var(--space-12) 0 var(--space-16); }
.guide-contact h2 { margin-top: 0; }
.guide-contact p:last-child { margin-bottom: 0; font-size: var(--type-body-small); color: var(--color-text-soft); }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--space-8); min-height: var(--control-target-min); padding: var(--control-button-padding-block) var(--control-button-padding-inline); background: var(--color-ink); color: var(--color-white); text-decoration: none; font-size: var(--type-button); }
.button:hover { background: var(--color-ink-hover); color: var(--color-white); }
.site-footer { padding: var(--space-9) var(--gutter) var(--space-4); border-top: var(--control-border-width) solid var(--color-rule); display: grid; gap: var(--space-5); font-size: var(--type-body-small); }
.site-footer a { color: var(--color-text-soft); text-decoration: none; min-height: var(--control-target-min); display: inline-flex; align-items: center; }
.site-footer a:hover { color: var(--color-ink); }
.footer-main { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: var(--space-8); align-items: center; }
.footer-contact { display: grid; justify-items: start; gap: var(--space-detail-gap); }
.site-footer .footer-lettering { font: var(--type-weight-medium) var(--type-footer-wordmark)/1 var(--font-brand); letter-spacing: -.04em; color: var(--color-text); }
.footer-mail { font-size: var(--type-body); }
.footer-nav { display: grid; grid-template-columns: repeat(2,auto); gap: 0 var(--space-8); }
.footer-perch { position: relative; width: 6rem; justify-self: end; }
.footer-perch::before { content: ''; position: absolute; left: 37%; right: calc(-1 * var(--gutter)); top: 57.143%; border-top: var(--control-border-width) solid var(--color-rule); }
.footer-character { position: relative; aspect-ratio: 580 / 770; overflow: hidden; }
.footer-character img { position: absolute; top: -24.675%; left: 0; display: block; width: 100%; height: auto; }
.footer-bottom { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: var(--space-1) var(--space-8); padding-top: var(--space-3); border-top: var(--control-border-width) solid var(--color-rule); color: var(--color-text-soft); font-size: var(--type-caption); }
.footer-bottom > a { justify-self: end; gap: var(--space-2); }
.footer-legal { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--space-1) var(--space-4); }
.skip { position: absolute; z-index: 10; left: var(--space-4); top: var(--space-4); padding: var(--space-3); background: var(--color-paper); transform: translateY(-200%); }
.skip:focus { transform: none; }
@media (max-width: 900px) {
  .header-inner { grid-template-columns: minmax(0,1fr) auto; }
  .header-links, .site-header .header-cta { display: none; }
  .guide-menu { display: block; }
  .guide-layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
  .guide-aside { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); max-height: none; overflow: visible; }
  .guide-aside ol { columns: 2; column-gap: var(--space-8); }
  .guide-aside li { break-inside: avoid; }
  .download-link { align-self: end; }
}
@media (max-width: 600px) {
  html { --guide-header-height: 4.6rem; font-size: var(--type-root-mobile); }
  main { width: calc(100% - var(--space-8)); }
  .header-inner { min-height: 4.6rem; }
  .site-header img { width: 7rem; }
  .guide-hero { padding-top: var(--space-10); }
  .guide-meta a { margin-left: 0; width: 100%; }
  .guide-layout { padding-top: var(--space-8); }
  .guide-aside { display: block; }
  .download-link { margin-top: var(--space-4); }
  .process-strip { grid-template-columns: 1fr; }
  .process-strip li { display: grid; grid-template-columns: 2rem 1fr 1.3fr; gap: var(--space-2); padding: var(--space-3); align-items: center; }
  .process-strip li + li { border-left: 0; border-top: var(--control-border-width) solid var(--color-rule); }
  .process-strip span { margin-bottom: 0; }
  .process-strip small { font-size: var(--type-body-detail); }
  h2 { margin-top: var(--space-12); }
  .guide-contact { padding: var(--space-6); }
  .button { gap: var(--space-3); }
  th, td { padding: var(--space-3); }
  .footer-main { grid-template-columns: minmax(0,1fr) 5.5rem; gap: var(--space-4); }
  .footer-contact { grid-column: 1; grid-row: 1; }
  .footer-perch { grid-column: 2; grid-row: 1; width: 100%; }
  .footer-nav { grid-column: 1 / -1; grid-row: 2; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 var(--space-4); }
  .footer-bottom { grid-template-columns: minmax(0,1fr) auto; gap: var(--space-1) var(--space-4); }
  .footer-bottom > span:first-child { grid-column: 1 / -1; }
}
@media print {
  .site-header { position: static; }
  .site-header nav, .header-actions, .guide-aside, .guide-meta a, .button, .site-footer, .skip { display: none; }
  .guide-hero { padding-top: 0; }
  .guide-layout { display: block; }
  .table-scroll { overflow: visible; }
  th, td { min-width: 0; }
  h2 { break-after: avoid; }
  tr, blockquote { break-inside: avoid; }
}
