/* Janice Morrison for Mayor: shared styles for every page.

   The look comes from her own 2022 lawn sign and campaign cards: sign blue #124282,
   sampled from the sign image; white Times lettering, set in Tinos, the self-hosted
   twin of the Times New Roman on her sign; the italic lowercase "for" before MAYOR;
   her two-peak mark standing on a horizon line; and her five-points card (blue, a
   bold lead-in, white dots). The green is her cards' issue-name green. Here it means
   "give", and it only ever sits on blue or carries a dark outline.

   Contrast, computed 2026-09-13 (WCAG 2): white on sign blue 9.87:1; green on sign
   blue 5.77:1; harbour blue on green 8.28:1 (on the hover green 9.78:1); ink on
   white 15.45:1; ink on granite 13.63:1; muted on white 6.38:1 and on granite
   5.62:1; soft white on sign blue 7.61:1; error red on white 6.54:1; form borders
   4.60:1.

   Fonts are self-hosted, so no request leaves the site: Tinos and Atkinson
   Hyperlegible Next, both trimmed to the characters the site uses. Atkinson's
   slashed zero is part of its design for low-vision readers. Motion: one moment,
   the horizon rule drawing out under the home page's sign. Nothing is hidden, and
   nothing moves for visitors who ask for reduced motion. */

@font-face { font-family: "Tinos"; src: url(fonts/Tinos-Regular.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Tinos"; src: url(fonts/Tinos-Bold.woff2) format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Tinos"; src: url(fonts/Tinos-Italic-for.woff2) format("woff2"); font-weight: 400; font-style: italic; font-display: swap; unicode-range: U+20, U+66, U+6F, U+72; }
@font-face { font-family: "Atkinson Hyperlegible Next"; src: url(fonts/AtkinsonHyperlegibleNext.woff2) format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }

:root {
	--sign: #124282;
	--harbour: #0b2a57;
	--green: #a7d46c;
	--green-hover: #bde38c;
	--paper: #ffffff;
	--granite: #eef1f4;
	--ink: #1b2533;
	--muted: #556070;
	--rule: #cdd5e0;
	--field: #6b7686;
	--soft-white: #d8e3f3;
	--error: #b3261e;
	--serif: "Tinos", "Times New Roman", Times, serif;
	--sans: "Atkinson Hyperlegible Next", "Helvetica Neue", Arial, sans-serif;
	--ease: cubic-bezier(.16, 1, .3, 1);
	color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scrollbar-color: #8a99ae var(--granite); }
body { margin: 0; min-height: 100dvh; display: flex; flex-direction: column; background: var(--paper); color: var(--ink); font: 400 1.25rem/1.6 var(--serif); font-kerning: normal; text-rendering: optimizeLegibility; caret-color: var(--sign); }
main { flex: 1 0 auto; display: block; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--sign); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
a, button, label { -webkit-tap-highlight-color: rgba(18, 66, 130, .14); touch-action: manipulation; }
::selection { background: #cfdcf0; color: var(--ink); }
:focus-visible { outline: 3px solid var(--sign); outline-offset: 3px; }
.on-blue :focus-visible { outline-color: #ffffff; }
strong { font-weight: 700; }

.skip-link { position: absolute; left: 1rem; top: -6rem; z-index: 10; padding: .75rem 1rem; border-radius: 4px; background: var(--harbour); color: #ffffff; font: 700 1rem/1.2 var(--sans); }
.skip-link:focus { top: 1rem; }
.nowrap { white-space: nowrap; }
main strong { overflow-wrap: anywhere; }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.hidden-field { display: none; }

.wrap { width: min(100% - 2.5rem, 72rem); margin-inline: auto; }

/* type: Tinos for her name, headings and her words; Atkinson for the interface */
h1, h2, h3 { margin: 0 0 1rem; font-family: var(--serif); font-weight: 400; line-height: 1.15; color: var(--harbour); text-wrap: balance; }
h1 { font-size: 3.5rem; letter-spacing: -.01em; }
h2 { font-size: 2.5rem; letter-spacing: -.005em; }
h3 { margin: 2.5rem 0 .6rem; font-size: 1.5rem; font-weight: 700; line-height: 1.25; }
@media (max-width: 47.99em) {
	h1 { font-size: 2.75rem; }
	h2 { font-size: 1.875rem; }
}
p, ul, ol { margin: 0 0 1.1rem; max-width: 65ch; }
p { text-wrap: pretty; }
.lede { font-size: 1.5rem; line-height: 1.45; max-width: 40rem; }
.source { font: 400 1rem/1.5 var(--sans); color: var(--muted); }
.note { font: 700 1rem/1.5 var(--sans); color: var(--ink); }

/* sections: white by default, granite where a page needs a change of pace */
.section { padding-block: 4.5rem; }
.band-granite { background: var(--granite); }
.page-head { padding-block: 4rem 2rem; }
.page-head h1 { margin-bottom: 1.1rem; }
.page-head + .section:not(.band-granite) { padding-top: 1rem; }
@media (max-width: 47.99em) {
	.section { padding-block: 3.25rem; }
	.page-head { padding-block: 2.75rem 1.5rem; }
}

/* the masthead: the top strip of her sign */
.masthead { background: var(--sign); color: #ffffff; }
.masthead .wrap { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; padding-block: .75rem; }
.wordmark { display: inline-flex; align-items: center; gap: .7rem; margin-right: auto; color: #ffffff; text-decoration: none; font: 400 1.5rem/1.1 var(--serif); }
.wordmark .mark { width: 2.5rem; }
.wordmark-office { text-transform: uppercase; }
.wordmark-office i, .foot-name i, .lockup-office i { font-style: italic; text-transform: none; }
.mark { display: block; flex: none; height: auto; aspect-ratio: 159 / 116; }
.nav { order: 1; }
.nav ul { display: flex; flex-wrap: wrap; gap: .15rem; margin: 0; padding: 0; list-style: none; max-width: none; }
.nav a { display: inline-flex; align-items: center; min-height: 44px; padding: .35rem .75rem; border-radius: 4px; color: #ffffff; font: 500 1.0625rem/1.2 var(--sans); text-decoration: none; transition: background-color .15s ease; }
.nav a:hover { background: rgba(255, 255, 255, .14); }
.nav a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .45em; }
.masthead-give { order: 2; }
@media (max-width: 59.99em) {
	.masthead .wrap { padding-block: .65rem .3rem; }
	.wordmark { gap: .55rem; font-size: 1.25rem; line-height: 1.05; }
	.wordmark .mark { width: 2.1rem; }
	.wordmark-office { display: block; font-size: .95rem; }
	.masthead-give { order: 1; }
	.nav { order: 2; width: calc(100% + 1.2rem); margin-inline: -.6rem; }
	.nav ul { justify-content: space-between; max-width: 32rem; }
	.nav a { padding-inline: .6rem; }
}
@media (max-width: 22.49em) {
	.wordmark { font-size: 1.1rem; }
	.nav a { padding-inline: .4rem; font-size: 1rem; }
}

/* buttons: green means give */
.actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .75rem 1.4rem; border: 0; border-radius: 4px; font: 700 1.0625rem/1.2 var(--sans); text-decoration: none; cursor: pointer; transition: background-color .15s ease, box-shadow .15s ease; }
.btn:active { transform: translateY(1px); }
.btn[disabled] { cursor: progress; }
.btn-give { background: var(--green); color: var(--harbour); box-shadow: inset 0 0 0 2px var(--harbour); }
.on-blue .btn-give { box-shadow: none; }
.btn-give:hover { background: var(--green-hover); }
.btn-line { background: transparent; color: #ffffff; box-shadow: inset 0 0 0 2px #ffffff; }
.btn-line:hover { background: rgba(255, 255, 255, .14); }
.btn-solid { background: var(--sign); color: #ffffff; }
.btn-solid:hover { background: var(--harbour); }
.btn-large { min-height: 56px; padding: .95rem 2.2rem; font-size: 1.1875rem; }
.masthead-give { min-height: 44px; padding: .5rem 1.15rem; }
@media (max-width: 30em) {
	.actions .btn { flex: 1 1 auto; padding-inline: 1.1rem; }
	.form .btn { width: 100%; }
}

/* the home page's sign: her photo, her lockup, and the horizon rule they stand on.
   On phones and tablets her photo comes first, the full width of the screen, and ends in a
   straight edge on the sign blue: the sign is one flat colour, so nothing fades. The lockup,
   the two buttons and the rule follow below it. From 56em the lockup stands on the left and
   the photo stands on the rule at the right, cropped wide so the path and the park beside
   her show as well as her face. */
.sign { padding-block: .75rem 2rem; background: var(--sign); color: #ffffff; }
.sign-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); align-items: end; }
.sign-text { display: contents; }
.sign-photo { grid-column: 1; grid-row: 1; margin: 0 -1.25rem 1.75rem; }
.sign-photo img { width: 100%; aspect-ratio: 4 / 3; max-height: 60vh; object-fit: cover; object-position: 50% 20%; background: var(--harbour); }
.lockup { grid-column: 1; grid-row: 2; margin: 0 0 1.5rem; color: #ffffff; font-weight: 400; line-height: 1; letter-spacing: 0; }
.lockup > span, .lockup-name span { display: block; }
.lockup-when { margin-bottom: .85rem; font-size: 1.0625rem; font-weight: 700; line-height: 1.2; }
.lockup-name { font-size: min(4.75rem, 20vw); line-height: .95; letter-spacing: -.012em; }
.lockup-office { margin-top: .6rem; font-size: min(2.25rem, 9.6vw); line-height: 1.05; text-transform: uppercase; }
.lockup-city { margin-top: .45rem; font-size: 1rem; line-height: 1.2; letter-spacing: .08em; text-transform: uppercase; }
.sign .actions { grid-column: 1; grid-row: 3; }
.sign .horizon { grid-column: 1; grid-row: 4; margin-top: 1.75rem; }
.horizon { display: flex; align-items: flex-end; color: #ffffff; }
.horizon .mark { width: 4.25rem; }
.sign .horizon .mark { width: 3.75rem; }
.horizon-line { flex: 1; height: 3px; background: currentColor; }
.sign .horizon-line { transform-origin: left center; animation: horizon-draw 1.2s var(--ease) .35s both; }
@keyframes horizon-draw { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (max-width: 22.49em) {
	.lockup-city { font-size: .9rem; letter-spacing: .06em; }
}
@media (min-width: 30em) {
	.lockup-when { font-size: 1.2rem; }
	.sign .horizon .mark { width: 5rem; }
}
@media (min-width: 40em) {
	.sign-photo img { aspect-ratio: 3 / 2; }
}
@media (min-width: 56em) {
	.sign { padding-block: 2.25rem 2rem; }
	.sign-grid { grid-template-columns: minmax(19rem, 5fr) minmax(0, 7fr); column-gap: 3rem; }
	.sign-text { display: block; padding-bottom: 6.5rem; }
	.sign-photo { grid-column: 2; grid-row: 1; margin: 0; }
	.sign-photo img { aspect-ratio: 1 / 1; max-height: none; object-position: 40% 20%; }
	.lockup { margin-bottom: 1.25rem; }
	.lockup-when { margin-bottom: 1rem; font-size: 1.3rem; }
	.lockup-name { font-size: clamp(4.75rem, 8.4vw, 6rem); }
	.lockup-office { margin-top: .7rem; font-size: clamp(2.25rem, 4.3vw, 2.75rem); }
	.lockup-city { font-size: 1.05rem; }
	.sign .horizon { position: absolute; left: 0; right: 0; bottom: 0; margin-top: 0; }
	.sign .horizon .mark { width: 7rem; }
}
@media (min-width: 64em) {
	.sign-photo img { aspect-ratio: 5 / 4; object-position: 25% 20%; }
}

/* her own words in her own voice: a granite band with a quotation mark in the logo's green, between the sign and the five points */
.intro { padding-block: 3rem 3.25rem; }
.intro-grid { display: grid; gap: 1rem; align-items: start; }
.intro-quote { width: 3.25rem; height: auto; }
.intro-quote-close { justify-self: end; transform: rotate(180deg); }
.intro .lede { margin: 0; max-width: 44rem; font-size: 1.375rem; line-height: 1.5; }
@media (min-width: 48em) {
	.intro { padding-block: 4rem; }
	.intro-grid { grid-template-columns: 5rem minmax(0, 46rem); column-gap: 2.25rem; justify-content: start; }
	.intro-quote { width: 5rem; margin-top: .35rem; }
	.intro-quote-close { grid-column: 2; margin: 0 2rem 0 0; }
	.intro .lede { font-size: 1.625rem; line-height: 1.45; }
}
abbr[title] { text-decoration: none; cursor: help; }

/* her five points, set like her campaign card: sign blue, a bold lead-in, her mountain
   mark as each point's marker, and the points larger than any section heading on the site */
.points { padding-block: 2.25rem 4rem; background: var(--sign); color: #ffffff; }
.points-lead { margin: 0 0 1.5rem; font-size: 2.125rem; font-weight: 700; line-height: 1.25; color: #ffffff; }
.points-list { margin: 0 0 2rem; padding: 0; list-style: none; max-width: none; }
.points-list li + li { margin-top: .3rem; }
.points-list a { display: flex; align-items: center; gap: .4em; padding: .45rem 0; color: #ffffff; font: 400 3.25rem/1.15 var(--serif); text-decoration: none; text-wrap: balance; }
.points-list .point-mark { flex: none; width: .78em; height: auto; }
.points-list a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .12em; }
.points .source { color: var(--soft-white); }
.points .source a { color: #ffffff; }
@media (max-width: 47.99em) {
	.points { padding-block: 2rem 3.25rem; }
	.points-lead { font-size: 1.625rem; }
	.points-list a { font-size: 2.25rem; }
}

.record .lede { margin-bottom: 2.5rem; }
.record-grid { display: grid; gap: 2rem 4rem; }
.record-grid h3 { margin-top: 0; }
@media (min-width: 56em) { .record-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.said { margin: 0; padding: 0; list-style: none; max-width: none; }
.said li { padding: .9rem 0; border-top: 1px solid var(--rule); font-size: 1.1875rem; line-height: 1.55; }
.ahead li { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 1rem; }
.ahead .when { padding-top: .1rem; font: 700 1rem/1.55 var(--sans); color: var(--sign); font-variant-numeric: lining-nums tabular-nums; }
.record .source { margin-top: 1.75rem; }
@media (max-width: 30em) { .ahead li { grid-template-columns: 1fr; gap: .15rem; } }

.date-list { display: grid; gap: 1.75rem; margin: 0 0 2rem; padding: 0; list-style: none; max-width: none; }
.date-list li { padding-top: 1rem; border-top: 3px solid var(--sign); }
.date-list .when { display: block; margin-bottom: .35rem; font: 700 1.625rem/1.2 var(--serif); color: var(--harbour); }
.date-list .what { display: block; font: 700 1.0625rem/1.45 var(--sans); color: var(--ink); font-variant-numeric: lining-nums tabular-nums; }
.date-list .where { display: block; margin-top: .3rem; font: 400 1.0625rem/1.5 var(--sans); color: var(--ink); }
@media (min-width: 48em) { .date-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; } }

.give { background: var(--sign); color: #ffffff; }
.give h2, .give p { color: #ffffff; }
.give h2 { margin-bottom: .75rem; }
.give .source { color: var(--soft-white); }
.give-grid { display: grid; gap: 1.5rem 3rem; align-items: center; }
.give-thanks { margin-bottom: .35rem; font-size: 1.375rem; }
@media (min-width: 48em) { .give-grid { grid-template-columns: minmax(0, 1fr) auto; } }

/* endorsements: her supporters' own words as divided rows, in the order she chose */
.quotes { display: grid; gap: 0 4rem; margin: 0 0 1.75rem; padding: 0; list-style: none; max-width: none; }
.quotes li { padding: 1.25rem 0 1.35rem; border-top: 1px solid var(--rule); }
.quotes blockquote { margin: 0 0 .6rem; }
.quotes blockquote p { margin: 0; font-size: 1.375rem; line-height: 1.45; color: var(--ink); }
.quotes .who { display: block; font: 700 1.0625rem/1.4 var(--sans); color: var(--harbour); }
.quotes .role { display: block; font: 400 1rem/1.45 var(--sans); color: var(--muted); }
@media (min-width: 56em) { .quotes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.endorser .role { font: 400 1rem/1.5 var(--sans); color: var(--muted); }
@media (min-width: 56em) {
	.endorser { position: sticky; top: 1.5rem; align-self: start; }
	.endorser h2 { position: static; }
	/* a short endorsement (one or two paragraphs) doesn't give the sticky name and role
	   room to scroll fully out of view before the next one begins, so the two overlap
	   mid-scroll; a floor on the text column's height guarantees that room */
	.point:has(.endorser) .words { min-height: 28rem; }
}
.words h3 { margin-top: 0; }

/* priorities: one section per point, heading beside her words on wide screens */
.point-grid { display: grid; gap: .5rem 4rem; }
.point h2 { margin: 0 0 1rem; font-size: 2.25rem; }
.words p { font-size: 1.25rem; }
.words .source { margin: -.45rem 0 1.9rem; }
.words .source:last-child { margin-bottom: 0; }
@media (max-width: 47.99em) { .point h2 { font-size: 1.875rem; } }
@media (min-width: 56em) {
	.point-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
	.point h2 { position: sticky; top: 1.5rem; align-self: start; }
}

/* reading pages: plain bulleted lists only; styled lists keep their own rules */
.prose h2 { margin-top: 3rem; font-size: 2rem; }
.prose h2:first-child, .prose .visually-hidden + h2 { margin-top: 0; }
.prose ul:not([class]) { padding-left: 1.25rem; }
.prose ul:not([class]) > li { margin-bottom: .45rem; }
.prose ul:not([class]) > li::marker { color: var(--sign); }
@media (max-width: 47.99em) { .prose h2 { font-size: 1.875rem; } }
.prose-links { padding-left: 1.25rem; font-size: 1.25rem; }
.prose-links li { margin-bottom: .45rem; }
.prose-links li::marker { color: var(--sign); }
.about-photo { margin: 0 0 1rem; }
.about-photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.release h3 { margin-top: .5rem; }

/* numbered steps, for the two real sequences: giving, and sending an e-Transfer */
.steps { margin: 0 0 2.5rem; padding: 0; list-style: none; counter-reset: step; max-width: 40rem; }
.steps li { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: 1rem; padding: .95rem 0; border-top: 1px solid var(--rule); counter-increment: step; font: 400 1.125rem/1.5 var(--sans); }
.steps li::before { content: counter(step); font: 400 2.25rem/1 var(--serif); color: var(--sign); font-variant-numeric: lining-nums; }

.contact-list { margin: 0 0 3rem; padding: 0; list-style: none; max-width: 38rem; }
.contact-list li { padding: .85rem 0; border-top: 1px solid var(--rule); }
.contact-list li:last-child { border-bottom: 1px solid var(--rule); }
.contact-list .label { display: block; font: 400 1rem/1.4 var(--sans); color: var(--muted); }
.contact-list a { display: inline-block; padding-block: .1rem; font: 700 1.375rem/1.4 var(--sans); overflow-wrap: anywhere; }
@media (max-width: 30em) { .contact-list a { font-size: 1.1875rem; } }

/* forms */
.form { max-width: 38rem; margin-bottom: 2rem; }
.field { margin: 0 0 1.35rem; }
.field-head, .form legend { display: block; margin-bottom: .4rem; font: 700 1.0625rem/1.35 var(--sans); color: var(--ink); }
.req, .opt { font-weight: 400; color: var(--muted); }
.hint { display: block; margin: -.15rem 0 .45rem; font: 400 1rem/1.45 var(--sans); color: var(--muted); }
.form input[type="text"], .form input[type="email"], .form input[type="tel"], .form input[type="number"], .form textarea {
	display: block; width: 100%; min-height: 48px; padding: .65rem .8rem; border: 2px solid var(--field); border-radius: 4px; background: #ffffff; color: var(--ink); font: 400 1.125rem/1.4 var(--sans); transition: border-color .15s ease;
}
.form textarea { min-height: 10rem; resize: vertical; }
.form input:focus, .form textarea:focus { border-color: var(--sign); }
.form input:user-invalid, .form textarea:user-invalid { border-color: var(--error); }
.field-row { display: grid; gap: 0 1rem; }
@media (min-width: 36em) { .field-row { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } }
.form fieldset { margin: 0 0 1.75rem; padding: 1rem 1.25rem 1.1rem; border: 2px solid var(--field); border-radius: 4px; }
.form legend { padding-inline: .35rem; }
.check { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .8rem; align-items: start; min-height: 44px; padding-block: .45rem; font: 400 1.0625rem/1.45 var(--sans); cursor: pointer; }
.check input { width: 1.5rem; height: 1.5rem; margin: 0; accent-color: var(--sign); cursor: pointer; }

/* footer: granite, her mark on its line, and the sponsorship statement set plain */
.foot { margin-top: auto; padding-bottom: 2.5rem; background: var(--granite); color: var(--ink); }
.foot .horizon { padding-top: 2.5rem; margin-bottom: 1.75rem; color: var(--sign); }
.foot .horizon .mark { width: 3rem; }
.foot .horizon-line { height: 2px; }
.foot-grid { display: grid; gap: 1.25rem 3rem; margin-bottom: 1.5rem; }
@media (min-width: 48em) { .foot-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; align-items: start; } }
.foot-name { margin: 0; font: 400 1.5rem/1.2 var(--serif); color: var(--harbour); }
.foot-name .office, .foot-name .city { display: block; text-transform: uppercase; }
.foot-name .city { margin-top: .3rem; font-size: .95rem; letter-spacing: .08em; }
.foot ul { margin: 0; padding: 0; list-style: none; }
.foot a { display: inline-flex; align-items: center; min-height: 44px; font: 400 1.0625rem/1.4 var(--sans); overflow-wrap: anywhere; }
.foot-about { margin-bottom: 1rem; font: 400 1rem/1.5 var(--sans); color: var(--muted); }
.authorized { margin: 0 0 .75rem; font: 700 1.0625rem/1.5 var(--sans); color: var(--ink); max-width: none; overflow-wrap: anywhere; }
.credit { margin: 0; font: 400 .9375rem/1.5 var(--sans); color: var(--muted); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* printing (people print the voting page): black on white, links spelled out,
   the sponsorship statement kept, decoration and forms dropped. Every coloured
   ground loses its colour here, even on hidden parts, so no dark text is ever
   left on blue. */
@media print {
	@page { margin: 1.5cm; }
	body { display: block; background: #ffffff; color: #000000; font-size: 11.5pt; }
	.skip-link, .nav, .masthead-give, .actions, .sign-photo, .horizon, .give, .form, .foot nav, .credit { display: none !important; }
	.masthead, .sign, .points, .band-granite, .foot, .give, .skip-link, .btn, .btn-give, .btn-line, .btn-solid { background: none !important; box-shadow: none !important; color: #000000 !important; }
	.masthead { border-bottom: 1px solid #000000; }
	.wordmark, .lockup, h1, h2, h3, a, p, .foot-name, .points-list a, .date-list .when, .ahead .when, .steps li::before, .source { color: #000000 !important; }
	.sign-text { display: block !important; padding-bottom: 0 !important; }
	.section, .page-head, .sign, .points { padding-block: .6rem !important; }
	.points-list a { font-size: 16pt; }
	main a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 90%; overflow-wrap: anywhere; }
	h2, h3 { break-after: avoid; }
	.date-list li, .steps li { break-inside: avoid; }
	.date-list li { border-top-color: #000000; }
	.authorized { padding: .4rem .6rem; border: 1px solid #000000; }
}
