:root {
  color-scheme: light dark;
  --sign-black: #101014;
  --enamel: #f6f5f1;
  --white: #fff;
  --signal: #f6c915;
  --ground: var(--enamel);
  --ink: var(--sign-black);
  --secondary: #55555a;
  --hairline: #b7b5ad;
  --on-sign-secondary: #c7c7cb;
  --s1: .25rem; --s2: .5rem; --s3: .75rem; --s4: 1rem;
  --s5: 1.25rem; --s6: 1.5rem; --s8: 2rem; --s10: 2.5rem;
  --s12: 3rem; --s16: 4rem;
  --body: 1.0625rem;
  --small: .875rem;
  --title: clamp(2.5rem, 2rem + 3vw, 4.5rem);
  --section-title: 1.75rem;
  --control-radius: .5rem;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { scroll-padding-block-start: var(--s6); }
body { margin: 0; background: var(--ground); color: var(--ink); font-size: var(--body); line-height: 1.6; }
h1,h2,h3,p,ul { margin: 0; }
h1,h2,h3 { font-weight: 700; line-height: 1.15; }
h1 { font-size: var(--title); letter-spacing: -.04em; overflow-wrap: anywhere; }
h2 { font-size: var(--section-title); letter-spacing: -.025em; }
h3 { font-size: 1.125rem; }
a { color: inherit; text-underline-offset: .2em; text-decoration-thickness: .08em; }
a:focus-visible { outline: 3px solid currentColor; outline-offset: var(--s1); }
section[id],footer[id],main[id] { scroll-margin-block-start: var(--s6); }
.wrap { width: min(100%, 72rem); margin-inline: auto; padding-inline: max(var(--s4), env(safe-area-inset-left), env(safe-area-inset-right)); }
.label { font-size: var(--small); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; line-height: 1.4; }
.skip-link { position: absolute; inset-block-start: var(--s2); inset-inline-start: var(--s2); z-index: 10; padding: var(--s3) var(--s4); background: var(--white); color: var(--sign-black); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.preview-banner { background: var(--signal); color: var(--sign-black); font-size: var(--small); }
.preview-banner .wrap { display: flex; flex-wrap: wrap; gap: var(--s1) var(--s4); padding-block: var(--s3); }
.preview-banner strong { text-transform: uppercase; letter-spacing: .07em; }
.station-sign { background: var(--sign-black); color: var(--white); padding-block: var(--s6) var(--s8); }
.station-rule { height: 2px; background: var(--white); width: 100%; margin-block-end: var(--s8); }
.brand { display: flex; align-items: center; gap: var(--s3); font-size: 1.25rem; font-weight: 700; margin-block-end: var(--s6); }
.line-bullet { display: grid; place-items: center; width: var(--s10); height: var(--s10); flex: 0 0 var(--s10); border-radius: 50%; background: var(--signal); color: var(--sign-black); font-size: 1.5rem; line-height: 1; }
.station-sign h1 { margin-block-end: var(--s4); }
.station-sign p { color: var(--on-sign-secondary); }
.header-links { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s8); margin-block-start: var(--s6); }
.header-links a { display: inline-flex; align-items: center; gap: var(--s3); min-height: 44px; padding-block: var(--s2); font-weight: 700; }
.policy-intro { padding-block: var(--s12) var(--s8); max-width: 48rem; }
.policy-intro .label { color: var(--secondary); margin-block-end: var(--s4); }
.policy-intro h2 { font-size: 2rem; margin-block-end: var(--s4); }
.lede { font-size: 1.25rem; line-height: 1.5; }
.document-meta { font-size: var(--small); color: var(--secondary); margin-block-start: var(--s6); }
.at-a-glance { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--s8); border-block: 1px solid var(--hairline); padding-block: var(--s6); }
.at-a-glance h3 { margin-block-end: var(--s2); }
.at-a-glance p { color: var(--secondary); }
.reading-layout { display: grid; grid-template-columns: 14rem minmax(0,1fr); gap: var(--s16); padding-block: var(--s12) var(--s16); }
.contents nav { position: sticky; inset-block-start: var(--s8); }
.contents .label { color: var(--secondary); margin-block-end: var(--s4); }
.contents a { display: flex; align-items: baseline; gap: var(--s3); min-height: 44px; padding-block: var(--s3); border-block-end: 1px solid var(--hairline); line-height: 1.4; text-decoration: none; }
.contents a:hover { text-decoration: underline; }
.contents a span { color: var(--secondary); font-size: var(--small); font-variant-numeric: tabular-nums; }
article { min-width: 0; max-width: 47rem; }
.policy-section + .policy-section { border-block-start: 1px solid var(--hairline); margin-block-start: var(--s10); padding-block-start: var(--s10); }
.section-heading { display: flex; align-items: baseline; gap: var(--s4); margin-block-end: var(--s6); }
.section-number { flex-shrink: 0; font-size: var(--small); font-weight: 700; font-variant-numeric: tabular-nums; color: var(--secondary); }
.policy-section p + p,.policy-section ul + p { margin-block-start: var(--s4); }
.policy-section h3 { margin-block: var(--s6) var(--s3); }
ul { padding-inline-start: var(--s6); margin-block: var(--s4); }
li + li { margin-block-start: var(--s2); }
.sign-note { margin-block: var(--s6); padding: var(--s6); background: var(--sign-black); color: var(--white); border-block-start: 2px solid var(--secondary); }
.sign-note h3 { margin-block: 0 var(--s3); }
.sign-note p { color: var(--on-sign-secondary); }
.approval-note { margin-block-start: var(--s6); border-inline-start: var(--s1) solid var(--ink); padding-inline-start: var(--s5); }
.approval-note .label { color: var(--secondary); margin-block-end: var(--s3); }
.approval-note h3 { margin-block: 0 var(--s3); }
.text-link { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--s2); min-height: 44px; padding-block: var(--s3); margin-block: var(--s2); font-weight: 500; overflow-wrap: anywhere; }
.support-panel { background: var(--sign-black); color: var(--white); padding-block: var(--s12) max(var(--s6),env(safe-area-inset-bottom)); }
.support-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s16); }
.support-panel .label { color: var(--on-sign-secondary); margin-block-end: var(--s4); }
.support-panel h2 { font-size: 2.5rem; letter-spacing: -.035em; margin-block-end: var(--s6); }
.support-panel p { color: var(--on-sign-secondary); }
.sign-button { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--s12); padding: var(--s4) var(--s6); min-height: 52px; background: var(--white); color: var(--sign-black); border-radius: var(--control-radius); font-size: 1rem; font-weight: 700; text-decoration: none; margin-block: var(--s6) var(--s3); }
.sign-button:focus-visible { outline-color: var(--signal); }
.support-address { font-size: var(--small); overflow-wrap: anywhere; }
.support-details h3 { margin-block-end: var(--s4); }
.support-details p + p { margin-block-start: var(--s4); }
.footer-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s4); color: var(--on-sign-secondary); font-size: var(--small); margin-block-start: var(--s12); padding-block-start: var(--s6); border-block-start: 1px solid var(--secondary); }
@media (max-width: 52rem) {
  .reading-layout { grid-template-columns: 1fr; gap: var(--s10); }
  .contents nav { position: static; }
  .contents a { padding-block: var(--s3); }
  .support-grid { gap: var(--s8); }
}
@media (max-width: 36rem) {
  .at-a-glance { grid-template-columns: 1fr; gap: var(--s6); }
  .at-a-glance div + div { border-block-start: 1px solid var(--hairline); padding-block-start: var(--s6); }
  .support-grid { grid-template-columns: 1fr; }
  .policy-intro { padding-block-start: var(--s8); }
  .section-heading { gap: var(--s3); }
  .sign-note { padding: var(--s5); }
}
@media (prefers-color-scheme: dark) {
  :root { --ground: #19191d; --ink: var(--enamel); --secondary: #bebec2; --hairline: #64646a; }
  .sign-note { border: 1px solid var(--hairline); border-block-start-width: 2px; }
}
@media (prefers-contrast: more) {
  :root { --secondary: var(--ink); --hairline: var(--ink); --on-sign-secondary: var(--white); }
  .contents a,.policy-section + .policy-section,.at-a-glance { border-width: 2px; }
}
@media (forced-colors: active) {
  .line-bullet,.sign-button,.preview-banner,.sign-note { border: 2px solid CanvasText; }
}
@media print {
  .contents,.header-links,.skip-link,.sign-button { display: none; }
  .reading-layout,.support-grid { display: block; }
  body,.station-sign,.support-panel,.sign-note { background: white; color: black; }
  .wrap { max-width: none; }
  .policy-section { break-inside: avoid; }
}
