:root {
  color-scheme: light;
  --white: #f3f7f4;
  --ink: #183437;
  --teal: #173e41;
  --sand: #f0b889;
  --line: #9eafa9;
  background: var(--white);
  color: var(--ink);
  font: 100%/1.55 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
body, h1, h2, p, dl, dd, figure { margin: 0; }
a { color: inherit; text-underline-offset: .23em; }
a:focus-visible, summary:focus-visible, main:focus-visible { outline: 3px solid #9c4c1c; outline-offset: 4px; }
.shell { width: min(100% - 4rem, 75rem); margin-inline: auto; }
.skip { position: absolute; top: .5rem; left: .5rem; z-index: 1; padding: .5rem; color: var(--ink); background: var(--white); transform: translateY(-200%); }
.skip:focus { transform: none; }
.header, .opening { color: var(--white); background: var(--teal); }
.mast { min-height: 4.5rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .45rem 1.6rem; padding-block: .6rem; border-bottom: 1px solid #648281; }
.mark { display: inline-flex; align-items: center; gap: .6rem; font-weight: 750; text-decoration: none; }
.mast a:focus-visible, .opening a:focus-visible { outline-color: var(--sand); }
nav { display: flex; flex-wrap: wrap; gap: clamp(.75rem, 3vw, 2.5rem); }
nav a { display: inline-block; padding-block: .45rem; }
.opening { padding-block: clamp(1.75rem, 4vw, 3.5rem) 1rem; }
.title { display: flex; gap: 1rem 3rem; justify-content: space-between; align-items: end; padding-bottom: clamp(1.5rem, 4vw, 3rem); }
h1, h2 { font-family: 'Franklin Gothic Medium', 'Arial Narrow', 'Segoe UI', sans-serif; font-weight: 800; }
h1 { font-size: clamp(3.6rem, 9.4vw, 8.7rem); line-height: .88; letter-spacing: -.038em; }
.title p { max-width: 28ch; font-size: clamp(1rem, 1.8vw, 1.26rem); }
.title a { display: inline-block; margin-top: .75rem; color: var(--sand); font-weight: 700; }
.map img { display: block; width: 100%; height: auto; border: 1px solid #8db4a9; background: #234c4c; }
figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1rem; padding-block: .6rem .25rem; color: #d2e0da; font: .83rem/1.4 Consolas, monospace; }
section[id] { scroll-margin-top: 1rem; }
h2 { font-size: clamp(2rem, 5vw, 4rem); letter-spacing: -.046em; line-height: .97; }
.lesson { padding-block: clamp(2.75rem, 7vw, 5.5rem); }
.lesson dl { margin-top: 1.5rem; border-top: 1px solid var(--line); }
.lesson dl div { display: grid; grid-template-columns: minmax(9rem, 1fr) 2fr; gap: .45rem 1.25rem; padding-block: 1rem; border-bottom: 1px solid var(--line); }
dt { font-weight: 750; }
dd, .example p { max-width: 66ch; }
.example { background: #e8c7a9; }
.example-grid { display: grid; grid-template-columns: 1fr .85fr; gap: 1.25rem 3rem; align-items: start; padding-block: clamp(1.75rem, 5vw, 4rem); }
.example p { margin-top: .75rem; }
details { border: 1px solid #936d51; padding: .8rem 1rem; background: #f5e4d6; }
summary { cursor: pointer; font-weight: 750; }
.checklist { padding-block: clamp(2.5rem, 7vw, 5rem); }
.checklist ul { padding-inline-start: 1.25rem; margin: 1rem 0 0; }
.checklist li + li { margin-top: .35rem; }
.footer { border-top: 1px solid var(--line); display: flex; justify-content: space-between; flex-wrap: wrap; gap: .4rem 1rem; padding-block: 1.25rem; }
@media (max-width: 43rem) {
  .shell { width: calc(100% - 2rem); }
  .title { display: grid; }
  h1 { font-size: clamp(3.2rem, 14vw, 5.75rem); }
  .example-grid, .lesson dl div { grid-template-columns: 1fr; }
}
