:root {
  --pine:#102a25;
  --deep:#0b211d;
  --paper:#f7f4e9;
  --mint:#a8edbb;
  --sky:#92d9ed;
  --gold:#ffd575;
  --border:#a8b7a7;
  --line:var(--mint);
  font-family:system-ui,sans-serif;
  color:var(--pine);
  background:var(--paper);
  font-synthesis:none;
}
* {
  box-sizing:border-box;
}
[hidden] {
  display:none!important;
}
body {
  margin:0;
}
img {
  display:block;
  max-width:100%;
  height:auto;
}
a {
  color:inherit;
  text-underline-offset:.25em;
}
button,input {
  font:inherit;
  color:inherit;
}
button {
  cursor:pointer;
}
a:focus-visible,button:focus-visible,input:focus-visible {
  outline:3px solid #2b816b;
  outline-offset:4px;
}
.wrap {
  width:min(1200px,calc(100% - 3rem));
  margin-inline:auto;
}
.skip {
  position:absolute;
  left:-100vw;
}
.skip:focus {
  left:1rem;
  top:1rem;
  z-index:2;
  background:white;
  padding:.6rem;
}
header,.hero,.official,footer,.topic {
  color:var(--paper);
  background:var(--pine);
}
header {
  border-bottom:1px solid #406156;
}
.mast {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  min-height:68px;
  padding:.6rem 0;
}
.brand {
  display:flex;
  align-items:center;
  gap:.65rem;
  font-weight:800;
  font-size:1.2rem;
  text-decoration:none;
}
.brand img {
  width:34px;
}
.mast nav {
  display:flex;
  gap:clamp(.6rem,3vw,2rem);
  font-size:.9rem;
  flex-wrap:wrap;
}
.hero {
  padding:clamp(2.5rem,5vw,5.75rem) 0;
}
.hero-grid {
  display:grid;
  align-items:center;
  grid-template-columns:minmax(0,1fr) minmax(0,1.03fr);
  gap:clamp(1rem,3vw,3rem);
}
.eyebrow {
  text-transform:uppercase;
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.13em;
  margin:0 0 .65rem;
}
.hero .eyebrow,.topic .eyebrow {
  color:var(--mint);
}
h1,h2,h3 {
  letter-spacing:-.019em;
  line-height:1.06;
  margin:.2em 0 .38em;
}
h1 {
  font-size:clamp(2.7rem,6.4vw,6.45rem);
}
h2 {
  font-size:clamp(2rem,4.1vw,4.1rem);
}
h3 {
  font-size:1.45rem;
}
.lead {
  font-size:clamp(1.05rem,1.8vw,1.3rem);
  line-height:1.55;
  max-width:43ch;
}
.primary,.pill,button {
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  min-height:44px;
  padding:.62rem .92rem;
  border-radius:.55rem;
  font-weight:760;
  text-decoration:none;
  border:1px solid #557469;
  background:transparent;
}
.primary {
  background:var(--mint);
  color:var(--deep);
  border:0;
  margin-top:.4rem;
}
.primary:hover,.pill:hover,button:hover {
  background:var(--gold);
  color:var(--deep);
}
.map {
  width:100%;
  border-radius:1.3rem;
  background:var(--deep);
  box-shadow:0 1.5rem 4rem #05181166;
  border:1px solid #356054;
}
.section {
  padding:clamp(2rem,5.5vw,5rem) 0;
}
.section-head {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:1.1rem;
  margin-bottom:1rem;
}
.search {
  flex:0 1 420px;
}
.search label {
  display:block;
  font-weight:760;
  margin-bottom:.4rem;
}
.search div {
  display:flex;
  gap:.4rem;
}
.search input {
  min-width:0;
  width:100%;
  background:white;
  border:1px solid #698176;
  border-radius:.55rem;
  min-height:44px;
  padding:.55rem;
  font-size:1rem;
}
.search p {
  margin:.3rem 0;
  min-height:1.25em;
  font-size:.82rem;
}
.routes {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.85rem;
}
.route a {
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 20px;
  align-items:center;
  gap:.75rem;
  min-height:132px;
  border:1px solid var(--border);
  border-left:6px solid var(--line);
  border-radius:.3rem 1.55rem .3rem .3rem;
  padding:1rem;
  text-decoration:none;
  background:#fffdf5;
  transition:background .22s,transform .22s;
}
.route a:hover {
  background:#fff;
  transform:translateY(-3px);
  box-shadow:0 .5rem 1.1rem #102a251b;
}
.pict {
  background:var(--line);
  border-radius:.8rem;
  width:48px;
}
.route strong {
  display:block;
  font-size:1.24rem;
  line-height:1.15;
}
.route small {
  display:block;
  line-height:1.44;
  margin-top:.3rem;
  font-size:.89rem;
}
.arrow {
  width:20px;
}
.official {
  padding:clamp(2rem,5vw,4rem) 0;
}
.official p {
  line-height:1.6;
  max-width:67ch;
}
.official-links,.action-links {
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
}
.official-links .pill {
  background:#24443b;
  border-color:#54786b;
}
.official-links .pill:hover {
  background:var(--mint);
}
.stations {
  display:flex;
  gap:.4rem;
  flex-wrap:wrap;
  margin-bottom:.8rem;
}
.final {
  display:grid;
  grid-template-columns:64px 1fr;
  gap:1rem;
  align-items:start;
}
.final p {
  max-width:66ch;
  line-height:1.65;
}
.stamp {
  font-size:.85rem;
  color:#426052;
}
.topic {
  padding:clamp(1.5rem,4vw,4rem) 0;
}
.topic-head {
  display:flex;
  gap:1rem;
  align-items:start;
  margin-top:1.4rem;
}
.topic-head .pict {
  width:clamp(42px,8vw,90px);
}
.topic h1 {
  font-size:clamp(2.15rem,6.5vw,5rem);
}
.detail {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.detail>div,.detail>section {
  background:#fffdf5;
  border:1px solid var(--border);
  border-top:6px solid var(--line);
  border-radius:.7rem;
  padding:clamp(1rem,3vw,2rem);
  line-height:1.55;
}
.detail h2 {
  font-size:clamp(1.5rem,3vw,2.3rem);
}
.first-steps ol {
  padding-left:1.4em;
}
.first-steps li {
  margin-bottom:.55em;
}
.first-steps [data-share] {
  margin-top:1rem;
}
.checklist label {
  display:flex;
  align-items:center;
  gap:.65rem;
  min-height:44px;
  border-bottom:1px solid #dae0d4;
  padding:.45rem 0;
  cursor:pointer;
}
.checklist input {
  width:21px;
  height:21px;
  flex:0 0 21px;
  accent-color:#226451;
}
.checklist [role=status] {
  font-size:.82rem;
  min-height:1.2rem;
}
.reading {
  max-width:760px;
  width:calc(100% - 2rem);
  margin:auto;
  line-height:1.74;
  overflow-wrap:anywhere;
}
.reading h2 {
  font-size:clamp(1.6rem,3.4vw,2.45rem);
  margin-top:1.4em;
}
.reading h3 {
  margin-top:1.45em;
}
.reading table {
  display:block;
  max-width:100%;
  overflow:auto;
  border-collapse:collapse;
}
.reading th,.reading td {
  border:1px solid var(--border);
  padding:.5rem;
}
.reading blockquote {
  margin:1rem 0;
  padding:.2rem 1rem;
  border-left:5px solid #60a183;
  background:#e7efe6;
}
.reading a {
  color:#155c49;
}
footer {
  padding:1.4rem 0;
}
footer p {
  margin:.4rem 0;
}
.entered {
  animation:rise .48s both;
}
@keyframes rise {
  from {
    transform:translateY(10px);
    opacity:.7;
  }
  to {
    transform:none;
    opacity:1;
  }
}
@media(max-width:880px) {
  .routes {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:650px) {
  .wrap {
    width:calc(100% - 1.5rem);
  }
  .mast {
    min-height:58px;
  }
  .hero-grid,.routes,.detail {
    grid-template-columns:minmax(0,1fr);
  }
  .hero {
    padding:2.15rem 0;
  }
  .hero .map {
    max-width:470px;
    margin-inline:auto;
  }
  .section-head {
    display:block;
  }
  .search {
    margin-top:1rem;
  }
  .route a {
    min-height:95px;
  }
  .final {
    grid-template-columns:46px 1fr;
  }
  .topic-head {
    gap:.65rem;
  }
  .reading {
    width:calc(100% - 1.5rem);
  }
}
@media(max-width:350px) {
  .mast {
    align-items:flex-start;
    flex-direction:column;
  }
  .topic-head {
    display:block;
  }
  .route a {
    padding:.75rem;
    gap:.5rem;
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
}
@media print {
  header,footer,.topic a,.topic .pict,.first-steps,.reading,.detail~section,button,[role=status],.skip {
    display:none!important;
  }
  .topic {
    background:white;
    color:black;
    padding:0;
  }
  .topic .eyebrow {
    color:black;
  }
  .detail {
    display:block;
    padding:0;
  }
  .checklist {
    border:0!important;
    background:white!important;
    padding:0!important;
  }
  .checklist label {
    break-inside:avoid;
  }
  body {
    background:white;
    color:black;
  }
}
.hero {
  position:relative;
  overflow:hidden;
}
.hero-grid {
  position:relative;
}
.map {
  border:0;
  border-radius:0;
  box-shadow:none;
  mask-image:linear-gradient(90deg,transparent,#000 15%);
  animation:map-in .9s both;
}
@keyframes map-in {
  from {
    opacity:.62;
    transform:translateX(10px);
  }
  to {
    opacity:1;
    transform:none;
  }
}
.route a {
  background:var(--pine);
  color:var(--paper);
  border:1px solid #294b41;
  border-left:5px solid var(--line);
  border-radius:.65rem;
  grid-template-columns:48px minmax(0,1fr) 20px;
}
.route a:hover {
  background:#234c40;
}
.route .pict {
  background:transparent;
  border-radius:0;
  border-right:1px solid #719385;
  padding-right:.35rem;
}
.route a:focus-visible {
  outline-offset:3px;
}
.official-links .pill:nth-child(-n+2) {
  color:var(--deep);
  background:var(--mint);
  border-color:var(--mint);
}
.official-links .pill:nth-child(2) {
  background:var(--gold);
  border-color:var(--gold);
}
.official-links .pill img {
  width:28px;
  height:28px;
}
.official-links .pill:hover {
  background:var(--paper);
  color:var(--deep);
}
.mast a:focus-visible,.hero a:focus-visible,.official a:focus-visible,.topic a:focus-visible,footer a:focus-visible {
  outline-color:var(--gold);
}
.urgent {
  padding:1rem;
  margin-top:1rem;
  background:#fff1be;
  color:var(--pine);
  border-radius:.65rem;
}
.urgent a {
  font-weight:850;
}
@media(max-width:650px) {
  .hero .map {
    height:auto;
    margin-top:-.5rem;
    mask-image:linear-gradient(0deg,#000 85%,transparent);
    border-radius:.65rem;
  }
  .route a {
    min-height:88px;
  }
  .hero h1 {
    font-size:clamp(2.55rem,10vw,3.55rem);
  }
}
.toc {
  border:1px solid var(--border);
  padding:1rem 1.2rem;
  margin:1rem 0 2rem;
  background:#edf1e6;
  border-radius:.75rem;
}
.toc ul {
  list-style:none;
  margin:.4rem 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.35rem 1rem;
}
.toc li {
  border-bottom:1px solid #c7d5ca;
}
.toc a {
  display:block;
  padding:.4rem 0;
  line-height:1.35;
}
.reading :is(h2,h3) {
  scroll-margin-top:1rem;
}
.primary:active,button:active {
  transform:translateY(2px);
}
.official {
  background:radial-gradient(ellipse at top right,#244f42,var(--pine) 50%);
}
.topic .pict {
  background:#203e35;
  padding:.35rem;
}
.stamp {
  display:inline-block;
  border-bottom:1px solid #98b6a8;
  padding-bottom:.25rem;
}
@media(max-width:540px) {
  .toc ul {
    grid-template-columns:1fr;
  }
  .topic-head .pict {
    width:48px;
  }
}
@media(min-width:1000px) {
  .hero {
    padding:clamp(2.65rem,4.2vw,4.7rem) 0;
  }
  .hero-grid {
    grid-template-columns:minmax(0,1.16fr) minmax(0,1fr);
    gap:1rem;
  }
  .hero h1 {
    font-size:clamp(3.6rem,5.05vw,5.6rem);
  }
}
@media(max-width:650px) {
  .hero .map {
    max-height:248px;
    object-fit:cover;
    object-position:50% 46%;
  }
  .route a {
    grid-template-columns:43px minmax(0,1fr) 20px;
  }
}
.cta-arrow {
  width:19px;
  filter:brightness(0) saturate(100%);
}
.route strong {
  font-size:clamp(1.12rem,2vw,1.32rem);
}
.route small {
  color:#e1ebe5;
}
.section-head h2 {
  margin-bottom:.42rem;
}
.final .stamp {
  display:block;
  width:max-content;
  max-width:100%;
  margin-bottom:.75rem;
}
.search input::placeholder {
  color:#576961;
}
.priorities {
  max-width:900px;
}
.priorities p {
  max-width:68ch;
  line-height:1.6;
}
.priorities fieldset {
  padding:.65rem 1rem;
  margin:1.3rem 0;
  border:1px solid var(--border);
  border-radius:.65rem;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.25rem 1rem;
}
.priorities legend {
  font-weight:800;
  padding:0 .3rem;
}
.priorities label {
  display:flex;
  gap:.6rem;
  align-items:center;
  min-height:44px;
}
.priorities input {
  width:22px;
  height:22px;
  accent-color:#226451;
  flex:none;
}
.priorities ol {
  padding-left:1.4rem;
}
.priorities li {
  padding:.65rem .8rem;
  border-left:4px solid #70b598;
  background:#e9f3e8;
  margin:.45rem 0;
}
.priorities li p {
  margin:.3rem 0;
}
.priorities button {
  margin-top:.5rem;
}
@media(max-width:480px) {
  .priorities fieldset {
    grid-template-columns:1fr;
  }
}
@media print {
  .priorities {
    display:none;
  }
}
.final {
  grid-template-columns:64px minmax(0,1fr);
}
.final .stamp {
  width:fit-content;
  overflow-wrap:anywhere;
}
@media(max-width:650px) {
  .final {
    grid-template-columns:46px minmax(0,1fr);
  }
}
.detail {
  align-items: start;
}
.check-progress {
  font-weight: 780;
  color: #245b4a;
}
.directory {
  padding-top: 0;
}
.directory > p:not(.eyebrow) {
  max-width: 66ch;
  line-height: 1.55;
}
.directory-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 1rem;
  margin-top: 1.1rem;
}
.directory-grid section {
  padding: 1.2rem;
  border: 1px solid var(--border);
  border-radius: .7rem;
  background: #fffdf5;
  scroll-margin-top: 1rem;
}
.directory-grid section:target {
  border-color: #226451;
  box-shadow: 0 0 0 3px #a8edbb;
}
.directory-grid p {
  line-height: 1.6;
}
@media (max-width: 810px) {
  .directory-grid {grid-template-columns: repeat(2,minmax(0,1fr));}
}
@media (max-width: 580px) {
  .directory-grid {grid-template-columns: minmax(0,1fr);}
}
@media print {
  .directory {display: none;}
}
