:root {
  --ink: #102f2a;
  --river: #123f36;
  --river-2: #1f5a4b;
  --paper: #f3efdf;
  --paper-light: #fbf9f1;
  --reed: #d8d0b6;
  --orange: #e85b28;
  --orange-dark: #a83b16;
  --slate: #4a5d59;
  --line: rgba(16, 47, 42, .18);
  --serif: Georgia, 'Times New Roman', serif;
  --sans: 'Aptos', 'Segoe UI', system-ui, sans-serif;
  --shadow: 0 20px 60px rgba(18, 63, 54, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper-light); font: 17px/1.65 var(--sans); text-rendering: optimizeLegibility; }
body::before { content: ''; position: fixed; inset: 0; pointer-events: none; opacity: .22; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E"); z-index: 20; }
a { color: inherit; text-underline-offset: .18em; }
p, li { max-width: 70ch; }
img, svg { max-width: 100%; }
h1, h2, h3 { margin: 0 0 .55em; font-family: var(--serif); font-weight: 500; line-height: 1.04; letter-spacing: -.025em; }
h1 { font-size: clamp(3rem, 6.6vw, 6.5rem); }
h2 { font-size: clamp(2.25rem, 4vw, 4rem); }
h3 { font-size: 1.45rem; }
.shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.skip-link { position: fixed; left: 16px; top: 10px; z-index: 100; padding: 10px 16px; background: white; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }
.eyebrow { margin: 0 0 1.15rem; color: var(--orange-dark); font-size: .75rem; font-weight: 750; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow.light { color: #f7b697; }
.lede { max-width: 760px; margin: 0 0 2rem; color: var(--slate); font: clamp(1.2rem, 2vw, 1.55rem)/1.55 var(--sans); }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: .8rem 1.25rem; border: 0; border-radius: 2px; color: white; background: var(--orange-dark); font: 700 .93rem/1 var(--sans); text-decoration: none; cursor: pointer; box-shadow: 5px 5px 0 rgba(16,47,42,.12); }
.button:hover { background: #7f2c10; transform: translateY(-1px); }
.button.pale { color: var(--river); background: var(--paper); box-shadow: 5px 5px 0 rgba(0,0,0,.17); }
.text-link { font-weight: 750; text-decoration-thickness: 1px; }
.actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.4rem; }

.utility { color: #d9e5df; background: #0a2a24; font-size: .73rem; letter-spacing: .055em; }
.utility .shell { padding-block: 7px; }
.utility span { color: #ee855c; margin-inline: .4rem; }
.site-header { position: relative; z-index: 30; border-bottom: 1px solid var(--line); background: rgba(251,249,241,.95); }
.header-inner { min-height: 76px; display: flex; align-items: center; gap: 2.2rem; }
.brand { display: inline-flex; align-items: center; gap: .65rem; font: 700 1.38rem/1 var(--serif); text-decoration: none; }
.brand svg { width: 40px; fill: none; stroke: var(--orange); stroke-width: 1.7; }
.site-header nav { margin-left: auto; }
.site-header nav ul { display: flex; gap: clamp(.8rem, 2vw, 2rem); margin: 0; padding: 0; list-style: none; }
.site-header nav a { font-size: .9rem; font-weight: 650; text-decoration: none; }
.site-header nav a:hover { color: var(--orange-dark); }
.header-cta { min-height: 42px; display: inline-flex; align-items: center; padding: .5rem .85rem; border: 1px solid var(--river); font-size: .82rem; font-weight: 750; text-decoration: none; }
.menu-button { display: none; width: 46px; height: 46px; margin-left: auto; border: 0; background: transparent; }
.menu-button span:not(.sr-only) { display: block; width: 23px; height: 2px; margin: 6px auto; background: var(--ink); }
.mobile-menu { padding: 0 20px 25px; background: var(--paper-light); }
.mobile-menu nav { display: grid; margin: 0; }
.mobile-menu a { padding: 12px 0; border-bottom: 1px solid var(--line); font: 500 1.35rem var(--serif); }

.hero { position: relative; min-height: 690px; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 40px; padding-block: 90px; overflow: hidden; }
.hero-copy { position: relative; z-index: 2; }
.hero h1 { max-width: 750px; }
.hero .lede { max-width: 600px; }
.waterside { position: relative; align-self: stretch; min-height: 520px; margin-right: -10vw; overflow: hidden; background: linear-gradient(#dce8da 0 47%, #90aca0 47% 50%, #265c50 50%); clip-path: polygon(8% 0,100% 0,100% 100%,0 100%,0 20%); }
.waterside::after { content: ''; position: absolute; inset: 50% 0 0; opacity: .3; background: repeating-linear-gradient(0deg, transparent 0 20px, rgba(255,255,255,.3) 21px, transparent 22px); }
.sun { position: absolute; width: 84px; height: 84px; left: 22%; top: 14%; border-radius: 50%; background: #efae6a; }
.far-bank { position: absolute; left: 0; right: 0; top: 39%; height: 12%; background: var(--river-2); clip-path: polygon(0 70%,12% 10%,21% 60%,32% 0,45% 70%,58% 20%,74% 75%,89% 15%,100% 50%,100% 100%,0 100%); }
.bank { position: absolute; inset: auto 0 0 0; height: 23%; background: #0d332b; clip-path: polygon(0 55%,15% 27%,35% 41%,54% 10%,71% 43%,88% 0,100% 26%,100% 100%,0 100%); }
.float { position: absolute; left: 48%; top: 38%; z-index: 3; width: 8px; height: 120px; border-radius: 5px; background: #eee6ce; transform-origin: bottom center; animation: float 4s ease-in-out infinite; }
.float i { display: block; width: 8px; height: 43px; border-radius: 5px 5px 0 0; background: var(--orange); }
.ripple { position: absolute; left: 48%; top: 61%; z-index: 2; width: 110px; height: 25px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; transform: translate(-50%,-50%); animation: ripple 4s ease-out infinite; }
.ripple-b { animation-delay: 2s; }
@keyframes float { 0%,100%{transform:rotate(-1deg) translateY(0)} 50%{transform:rotate(1deg) translateY(3px)} }
@keyframes ripple { 0%{opacity:0; transform:translate(-50%,-50%) scale(.3)} 30%{opacity:.7} 100%{opacity:0; transform:translate(-50%,-50%) scale(2.3)} }

.quick { padding-block: 100px; }
.route-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 42px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.route-grid a { min-height: 260px; display: grid; grid-template-rows: auto auto 1fr; padding: 30px 34px; border-right: 1px solid var(--line); text-decoration: none; }
.route-grid a:first-child { border-left: 1px solid var(--line); }
.route-grid a:hover { color: white; background: var(--river); }
.route-grid span { color: var(--orange); font: 700 .75rem var(--sans); }
.route-grid strong { align-self: end; margin: 2rem 0 .65rem; font: 500 1.85rem/1.1 var(--serif); }
.route-grid small { font-size: .96rem; line-height: 1.55; }

.briefing-promo { padding-block: 95px; color: white; background: var(--river); }
.split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 10%; }
.split p:not(.eyebrow) { color: #c7d8d1; }
.field-list { margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.25); list-style: none; }
.field-list li { display: flex; gap: 1.4rem; padding: 1.1rem 0; border-bottom: 1px solid rgba(255,255,255,.25); font: 500 1.25rem var(--serif); }
.field-list span { color: #f39a72; font: 700 .75rem var(--sans); }

.journey, .methods { padding-block: 110px; }
.section-heading { display: grid; grid-template-columns: 1.15fr .85fr; gap: 8%; align-items: end; }
.section-heading > p { color: var(--slate); }
.journey-line { display: grid; grid-template-columns: repeat(4,1fr); margin: 70px 0 0; padding: 0; border-top: 2px solid var(--river); list-style: none; }
.journey-line li { position: relative; padding: 32px 26px 0 0; }
.journey-line li > span { position: absolute; top: -17px; left: 0; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--orange-dark); font-size: .73rem; }
.journey-line strong { display: block; font: 500 1.42rem var(--serif); }
.journey-line p { color: var(--slate); font-size: .92rem; }
.methods { border-top: 1px solid var(--line); }
.method-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin-top: 50px; }
.method-grid a { display: block; padding-bottom: 24px; border-bottom: 2px solid var(--river); text-decoration: none; }
.method-grid strong { display: block; margin: 22px 0 4px; font: 500 2rem var(--serif); }
.method-grid p { margin: 0; color: var(--slate); }
.scene { position: relative; display: block; height: 220px; overflow: hidden; background: linear-gradient(#cfdccf 0 52%,#5f8b7d 52%); }
.scene::before { content:''; position:absolute; inset:auto 0 42% 0; height:30%; background:#285c4e; clip-path:polygon(0 76%,14% 15%,31% 75%,46% 10%,60% 72%,78% 0,100% 65%,100% 100%,0 100%); }
.scene::after { content:''; position:absolute; inset:auto 0 0; height:28%; opacity:.35; background:repeating-linear-gradient(0deg,transparent 0 12px,rgba(255,255,255,.6) 13px,transparent 14px); }
.scene.lake { background:linear-gradient(#e4d5b8 0 50%,#6d9386 50%); }
.scene.upland::before { height:50%; background:#416e5e; clip-path:polygon(0 100%,0 76%,24% 15%,42% 71%,65% 0,100% 78%,100% 100%); }
.trust { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; padding-block: 90px; border-top: 1px solid var(--line); }
.trust-copy { padding-top: 34px; }
.home-library { padding-block: 110px; border-top: 1px solid var(--line); }
.library-door-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-top: 55px; }
.library-door-grid a { min-height: 230px; display: flex; flex-direction: column; justify-content: end; padding: 24px; border: 1px solid var(--line); color: white; background: var(--river); text-decoration: none; }
.library-door-grid a:nth-child(2) { background: #315c52; }
.library-door-grid a:nth-child(3) { color: var(--ink); background: var(--paper); }
.library-door-grid a:nth-child(4) { background: #9d441f; }
.library-door-grid a:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.library-door-grid span { margin-bottom: auto; color: #f5b091; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.library-door-grid a:nth-child(3) span { color: var(--orange-dark); }
.library-door-grid strong { font: 500 2rem var(--serif); }
.library-door-grid p { margin: 5px 0 0; font-size: .9rem; }

.tool-hero { padding-block: 90px 55px; }
.tool-hero h1 { max-width: 950px; font-size: clamp(3rem,6vw,5.8rem); }
.tool-layout { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(280px,.7fr); gap: 60px; padding-bottom: 110px; }
.checker { padding: 8px 45px 45px; border: 1px solid var(--line); background: #fffdf6; box-shadow: var(--shadow); }
.checker fieldset { margin: 0; padding: 42px 0; border: 0; border-bottom: 1px solid var(--line); }
.checker legend { width: 100%; margin-bottom: 22px; font: 500 1.7rem var(--serif); }
.checker legend span { display: inline-block; margin-right: 14px; color: var(--orange-dark); font: 700 .72rem var(--sans); }
.hint { margin-top: -16px; color: var(--slate); font-size: .87rem; }
.choices { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }
.choices label { cursor: pointer; }
.choices input { position: absolute; opacity: 0; }
.choices span { min-height: 52px; display: flex; align-items: center; padding: 10px 14px; border: 1px solid var(--line); font-weight: 650; }
.choices input:checked + span { color: white; border-color: var(--river); background: var(--river); box-shadow: inset 5px 0 var(--orange); }
.choices input:focus-visible + span { outline: 3px solid var(--orange); outline-offset: 3px; }
.compact-fields { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.compact-fields legend { grid-column: 1/-1; }
.compact-fields label { font-size: .85rem; font-weight: 700; }
.compact-fields input { width: 100%; min-height: 50px; display: block; margin-top: 7px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 0; background: white; font: inherit; }
.checker > .button { margin-top: 30px; }
.form-error { margin-top: 22px; color: #8b270d; font-weight: 700; }
.tool-aside { position: sticky; top: 30px; align-self: start; padding: 35px 0; }
.tool-aside h2 { font-size: 2.4rem; }
.water-note { position: relative; margin: 45px 0; padding: 28px 28px 25px; border: 1px solid var(--line); background: var(--paper); box-shadow: 6px 6px 0 rgba(18,63,54,.08); }
.water-note::before { content:''; position:absolute; top:-8px; left:42%; width:75px; height:18px; background:rgba(213,198,158,.75); transform:rotate(-2deg); }
.water-note p { margin: 0; }
.note-label { display: block; margin-bottom: 10px; color: var(--orange-dark); font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.result { margin-bottom: 110px; padding: 55px; color: white; background: var(--river); box-shadow: var(--shadow); }
.result .eyebrow { color: #ffb18e; }
.result-head { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.condition-label { display: inline-block; padding: 7px 10px; border: 1px solid rgba(255,255,255,.25); color: #cce0d8; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.print-link { padding: 8px 0; border: 0; border-bottom: 1px solid white; color: white; background: transparent; cursor: pointer; }
.result-list { margin: 50px 0 0; padding: 0; list-style: none; }
.result-list li { display: grid; grid-template-columns: 46px 1fr; gap: 20px; padding: 28px 0; border-top: 1px solid rgba(255,255,255,.24); }
.result-list li > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: var(--river); background: #eedfc0; font-size: .75rem; font-weight: 800; }
.result-list h3 { margin-bottom: 8px; }
.result-list p { margin: 0 0 8px; color: #d4e2dc; }
.result-list a { color: white; font-weight: 700; }
.result-list .permit { margin-inline: -18px; padding-inline: 18px; border: 1px dashed #f0a27e; background: rgba(232,91,40,.12); }
.result .water-note { color: var(--ink); }

.article { max-width: 920px; padding-block: 90px 120px; }
.article header { margin-bottom: 60px; }
.article h1 { font-size: clamp(3rem,6vw,5.7rem); }
.article section { margin-block: 70px; }
.article section h2 { margin-top: 1.5em; }
.article h3 { margin-top: 1.8em; }
.article p, .article li { font-size: 1.05rem; }
.checked { display: inline-block; padding-top: 12px; border-top: 1px solid var(--line); color: var(--slate); font-size: .8rem; }
.numbered { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
.numbered > div { padding-top: 20px; border-top: 2px solid var(--river); }
.numbered span { color: var(--orange-dark); font-size: .75rem; font-weight: 800; }
.source-list { padding: 0; list-style: none; border-top: 1px solid var(--line); }
.source-list li { padding: 14px 0; border-bottom: 1px solid var(--line); }
.date-band { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 40px 0; padding: 20px 24px; color: white; background: var(--river); }
.date-band strong { font-family: var(--serif); font-size: 1.25rem; }
.date-band span { color: #ffb694; font-weight: 800; }
.source-note { padding: 20px; border-left: 4px solid var(--orange); background: var(--paper); }
.steps { margin: 35px 0; padding: 0; counter-reset: steps; list-style: none; }
.steps li { position: relative; padding: 24px 0 24px 66px; border-top: 1px solid var(--line); }
.steps li::before { counter-increment: steps; content: counter(steps); position: absolute; left: 0; top: 21px; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--river); font-size: .8rem; }
.steps strong, .steps span { display: block; }
.steps span { color: var(--slate); }
.packing > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.packing p { padding: 20px; border: 1px solid var(--line); background: var(--paper); }
.topic-hero { padding-block: 100px; color: white; background: var(--river); }
.topic-hero .eyebrow { color: #ffb18e; }
.topic-hero .lede { color: #d2e0db; }
.coarse-topic { background: linear-gradient(110deg,#123f36 0 70%,#ca5a2e 70%); }
.carp-topic { background: linear-gradient(110deg,#263e3d 0 70%,#c79f5e 70%); }
.fly-topic { background: linear-gradient(110deg,#1e5662 0 70%,#a7bd9e 70%); }
.guide-links { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; margin-top: 40px; }
.guide-links a { padding: 24px; border: 1px solid var(--line); text-decoration: none; }
.guide-links strong, .guide-links span { display: block; }
.guide-links strong { font: 500 1.35rem var(--serif); }
.guide-links span { color: var(--slate); font-size: .9rem; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 14px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
th { background: var(--paper); }
.hub-hero { padding-block: 100px 65px; }
.hub-hero h1 { max-width: 950px; }
.library { padding-bottom: 120px; }
.library-group { display: grid; grid-template-columns: .72fr 1.28fr; gap: 8%; padding-block: 65px; border-top: 1px solid var(--line); }
.library-group h2 { font-size: clamp(2rem, 3vw, 3.25rem); }
.library-group > div:first-child > p:last-child { color: var(--slate); }
.library-links { border-top: 1px solid var(--line); }
.library-links a { position: relative; display: grid; grid-template-columns: 1fr 1.5fr 24px; gap: 20px; align-items: center; padding: 22px 4px; border-bottom: 1px solid var(--line); text-decoration: none; }
.library-links a:hover strong, .library-links a:hover i { color: var(--orange-dark); }
.library-links strong { font: 500 1.17rem var(--serif); }
.library-links span { color: var(--slate); font-size: .85rem; }
.library-links i { font-style: normal; }
.all-guides { display: grid; grid-template-columns: repeat(2,1fr); gap: 0 36px; padding-bottom: 120px; border-top: 1px solid var(--line); }
.all-guides a { display: grid; grid-template-columns: 1fr 24px; gap: 7px 18px; padding: 22px 4px; border-bottom: 1px solid var(--line); text-decoration: none; }
.all-guides strong { font: 500 1.22rem var(--serif); }
.all-guides span { grid-column: 1/-1; color: var(--slate); font-size: .86rem; }
.all-guides i { color: var(--orange-dark); font-style: normal; }
.guide-search { max-width: 620px; display: block; margin-top: 38px; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.guide-search input { width: 100%; min-height: 56px; display: block; margin-top: 9px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 0; color: var(--ink); background: white; font: 1rem var(--sans); letter-spacing: 0; text-transform: none; }
.search-status { margin: 10px 0 0; color: var(--slate); font-size: .82rem; }
.mini-tool { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(280px,.8fr); gap: 60px; align-items: start; padding-bottom: 120px; }
.tool-card { padding: 38px; border: 1px solid var(--line); background: white; box-shadow: var(--shadow); }
.tool-card > label { display: block; margin-bottom: 22px; font-weight: 700; }
.tool-card input:not([type="checkbox"]), .tool-card select { width: 100%; min-height: 52px; display: block; margin-top: 7px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 0; color: var(--ink); background: white; font: inherit; }
.tool-card fieldset { margin: 0 0 24px; padding: 20px; border: 1px solid var(--line); }
.tool-card legend { padding-inline: 8px; font-family: var(--serif); font-size: 1.2rem; }
.tool-card .check { display: block; padding: 7px 0; }
.split-input { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.tool-output { display: grid; gap: 5px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.tool-output:empty { display: none; }
.tool-output strong { color: var(--orange-dark); font: 500 2rem var(--serif); }
.tool-output span { color: var(--slate); }
.checklist-output ul { margin: 15px 0 0; padding: 0; list-style: none; }
.checklist-output li { padding: 9px 0; border-bottom: 1px solid var(--line); }
.checklist-output input { margin-right: 9px; }
.glossary dl { display: grid; grid-template-columns: minmax(130px,.35fr) 1fr; margin: 0; border-top: 1px solid var(--line); }
.glossary dt, .glossary dd { margin: 0; padding: 15px 0; border-bottom: 1px solid var(--line); }
.glossary dt { padding-right: 20px; font-weight: 800; }

footer { padding: 70px 0 24px; color: #d5e2dc; background: #092922; }
.footer-grid { display: grid; grid-template-columns: 2fr repeat(3,1fr); gap: 45px; }
.footer-brand { color: white; font-size: 1.8rem; }
.footer-grid h2 { margin-bottom: 16px; color: #ffb08c; font: 800 .7rem var(--sans); letter-spacing: .16em; text-transform: uppercase; }
.footer-grid a:not(.brand) { display: block; margin: 8px 0; color: #d5e2dc; font-size: .9rem; text-decoration: none; }
.footer-note { color: #91aaa0; font-size: .84rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 50px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.15); color: #91aaa0; font-size: .74rem; }

@media (max-width: 900px) {
  .site-header nav, .header-cta { display: none; }
  .menu-button { display: block; }
  .hero { min-height: auto; grid-template-columns: 1fr; padding-top: 70px; }
  .waterside { min-height: 380px; margin: 20px -20px -1px; clip-path: none; }
  .route-grid, .method-grid, .numbered { grid-template-columns: 1fr; }
  .route-grid a { min-height: 190px; border-left: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .split, .section-heading, .trust, .tool-layout { grid-template-columns: 1fr; }
  .journey-line { grid-template-columns: repeat(2,1fr); row-gap: 40px; }
  .tool-aside { position: static; order: -1; }
  .packing > div { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: repeat(2,1fr); }
  .library-door-grid { grid-template-columns: repeat(2,1fr); }
  .library-group, .mini-tool { grid-template-columns: 1fr; }
  .all-guides { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  body { font-size: 16px; }
  .shell { width: min(100% - 28px, 1180px); }
  .utility { display: none; }
  .header-inner { min-height: 66px; }
  h1 { font-size: 3.05rem; }
  h2 { font-size: 2.25rem; }
  .hero { padding-top: 50px; }
  .hero .lede { font-size: 1.1rem; }
  .waterside { min-height: 300px; }
  .quick, .journey, .methods { padding-block: 75px; }
  .split { gap: 50px; }
  .journey-line { grid-template-columns: 1fr; margin-left: 14px; padding-left: 28px; border-top: 0; border-left: 2px solid var(--river); }
  .journey-line li { padding: 0 0 20px; }
  .journey-line li > span { left: -45px; top: 0; }
  .checker { padding: 0 20px 32px; }
  .choices, .compact-fields { grid-template-columns: 1fr; }
  .result { width: 100%; padding: 40px 20px; }
  .result-head { display: block; }
  .print-link { margin-top: 20px; }
  .article { padding-block: 60px 90px; }
  .article h1, .tool-hero h1 { font-size: 3.1rem; }
  .date-band { align-items: start; flex-direction: column; }
  .guide-links { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1/-1; }
  .footer-bottom { flex-direction: column; }
  .library-door-grid { grid-template-columns: 1fr; }
  .library-links a { grid-template-columns: 1fr 24px; }
  .library-links span { grid-column: 1/-1; grid-row: 2; }
  .split-input { grid-template-columns: 1fr; }
  .glossary dl { grid-template-columns: 1fr; }
  .glossary dt { padding-bottom: 0; border-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media print {
  .utility, .site-header, footer, .tool-hero, .tool-layout, .print-link { display: none !important; }
  .result { color: black; background: white; box-shadow: none; }
  .result p, .result a { color: black; }
}
