:root {
  --paper: #f3f3e9;
  --ink: #403428;
  --ink-soft: #6f6354;
  --line: #ddd6c7;
  --hover: #8a5a34;
  --address: #A48440;
    --olive: #64743A;
  --measure: 40rem;
  --nav-measure: 56rem;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.1875rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.wrap { max-width: var(--measure); margin: 0 auto; padding: 0 1.5rem; }
.nav { border-bottom: 1px solid var(--line); }
.nav-inner {
  max-width: var(--nav-measure);
  margin: 0 auto;
  padding: 1.4rem 1.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.8rem 1.2rem;
}
.brand {
  font-size: 1.05rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ink);
}
.nav-links { display: flex; flex-wrap: wrap; gap: 1.3rem; }
.nav-links a {
  font-size: 0.73rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ink-soft);
}
.nav-links a:hover { color: var(--hover); }
main { padding: 3.6rem 0 1rem; }
h1 {
  font-weight: normal;
  font-size: 2.55rem;
  line-height: 1.13;
  letter-spacing: -0.01em;
  margin: 0 0 1.4rem;
}
.lead { font-size: 1.42rem; line-height: 1.4; margin: 0 0 2rem; }
h2 {
  font-weight: normal;
  font-size: 1.5rem;
  line-height: 1.25;
  margin: 2.8rem 0 0.9rem;
}
.eyebrow {
  font-size: 0.73rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0 0 1.1rem;
}
p { margin: 0 0 1.2rem; }
a { color: var(--ink); text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
a:hover { color: var(--hover); }
a:focus-visible,
summary:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.lanes { margin: 2.4rem 0 1rem; border-top: 1px solid var(--line); }
.lane {
  display: block;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  color: var(--ink);
}
.lane:hover { color: var(--hover); }
.lane:hover h3 { color: var(--hover); }
.lane h3 { font-weight: normal; font-size: 1.3rem; margin: 0 0 0.35rem; }
.lane p { margin: 0 0 0.5rem; color: var(--ink-soft); font-size: 1rem; }
.lane .go {
  font-size: 0.71rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.step { margin: 2.4rem 0; }
.step .n {
  display: block;
  font-size: 0.73rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 0.4rem;
}
.step h2 { margin: 0 0 0.6rem; font-size: 1.32rem; }
.step p { margin: 0; }
.note {
  margin: 2.6rem 0;
  padding: 1.1rem 0 1.1rem 1.4rem;
  border-left: 2px solid var(--ink-soft);
  font-size: 1rem;
  color: var(--ink-soft);
}
.note p { margin: 0; }
.cta { margin: 3rem 0 0.5rem; }
.cta a { font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; }
.foot { border-top: 1px solid var(--line); margin-top: 4rem; }
.foot-inner {
  max-width: var(--nav-measure);
  margin: 0 auto;
  padding: 2rem 1.5rem 3rem;
  font-size: 0.8rem;
  color: var(--ink-soft);
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1.5rem;
  justify-content: space-between;
}
.foot a { color: var(--ink-soft); }
.foot a:hover { color: var(--hover); }
@media (max-width: 37.5em) {
  body { font-size: 1.125rem; }
  main { padding: 2.6rem 0 1rem; }
  h1 { font-size: 2.05rem; }
  .lead { font-size: 1.22rem; }
  .nav-inner { padding: 1.1rem 1.2rem; }
}
.card { max-width: 24rem; margin: 0 auto; padding: 3rem 1.5rem; text-align: center; }
.card h1 { font-size: 2.1rem; margin: 0 0 0.3rem; }
.card-role {
  font-size: 0.73rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0 0 2rem;
}
.card-cta { margin: 0 0 2.4rem; }
.card-cta a {
  display: inline-block;
  padding: 0.7rem 1.4rem;
  border: 1px solid var(--line);
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ink);
}
.card-cta a:hover { border-color: var(--hover); color: var(--hover); }
.contact-list {
  list-style: none;
  margin: 0 0 2.4rem;
  padding: 0;
  border-top: 1px solid var(--line);
}
.contact-list li { border-bottom: 1px solid var(--line); }
.contact-list a { display: block; padding: 0.85rem 0; text-decoration: none; font-size: 0.95rem; }
.card-foot {
  font-size: 0.73rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin: 0;
}

.capitals {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 12.5%;
  align-items: end;
  margin: 3.25rem 0 2.75rem;
}
.capital {
  text-align: center;
}
.capital img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 0.75rem;
}
.capital span {
  display: block;
  width: 92%;
  margin: 0 auto;
  border-top: 1px solid var(--ink);
  padding-top: 0.6rem;
  font-size: 0.73rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.capital:first-child span { width: 84%; }
@media (max-width: 37.5em) {
  .capitals { column-gap: 8%; margin: 2.25rem 0 2rem; }
  .capital span { font-size: 0.6rem; letter-spacing: 0.08em; padding-top: 0.45rem; }
}
.essay-meta { font-size: 0.95rem; color: var(--ink-soft); margin: 0 0 2rem; }
.fieldnote-foot { font-size: 0.95rem; color: var(--ink-soft); border-top: 1px solid var(--line); padding-top: 1.4rem; margin: 2.8rem 0 0; }
.address { position: relative; }
@supports (mask-image: url(/img/wheat-head.svg)) or (-webkit-mask-image: url(/img/wheat-head.svg)) {
  .address { padding-left: 58px; }
  .address::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 42px; background-color: var(--address); -webkit-mask-image: url(/img/wheat-head.svg), linear-gradient(#000, #000); mask-image: url(/img/wheat-head.svg), linear-gradient(#000, #000); -webkit-mask-size: 42px 29.75px, 1px calc(100% - 29.75px); mask-size: 42px 29.75px, 1px calc(100% - 29.75px); -webkit-mask-position: 0 0, 20.5px 29.75px; mask-position: 0 0, 20.5px 29.75px; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
}
@media (forced-colors: active) { .address::before { background-color: CanvasText; } }

/* === TOUCH AFFORDANCE - sticky :hover fix === */
@media (hover: none), (pointer: coarse) {
  .nav-links a:hover { color: var(--ink-soft); }
  a:hover { color: var(--ink); }
  .foot a:hover { color: var(--ink-soft); }
  .lane:hover { color: var(--ink); }
  .lane:hover h3 { color: var(--ink); }
  .card-cta a:hover { border-color: var(--line); color: var(--ink); }
}
.nav-links a:active { color: var(--hover); }
a:active { color: var(--hover); }
.foot a:active { color: var(--hover); }
.lane:active { color: var(--hover); }
.lane:active h3 { color: var(--hover); }
.card-cta a:active { border-color: var(--hover); color: var(--hover); }
/* === END TOUCH AFFORDANCE === */

/* === EVENT LIST - /field/calendar/ === */
.events { list-style: none; margin: 0 0 2.4rem; padding: 0; border-top: 1px solid var(--line); }
.events li { padding: 0.9rem 0; border-bottom: 1px solid var(--line); }
.events .when { display: block; font-size: 0.73rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-soft); margin: 0 0 0.3rem; }
.events .what { display: block; font-size: 1.05rem; line-height: 1.35; }
.events .where { display: block; font-size: 0.95rem; line-height: 1.4; color: var(--ink-soft); margin: 0.2rem 0 0; }
/* === END EVENT LIST === */
/* === EVENT LIST ACTION LINK === */
.events .go { display: inline-block; margin: 0.45rem 0 0; font-size: 0.71rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-soft); }
.events .go:hover { color: var(--hover); }
@media (hover: none), (pointer: coarse) { .events .go:hover { color: var(--ink-soft); } }
.events .go:active { color: var(--hover); }
/* === END EVENT LIST ACTION LINK === */
/* === BENCHMARK END-MARK === */
.endmark { width: 20px; height: 20px; margin-left: 0.45em; vertical-align: -2px; }
.endmark--centered { display: block; margin: 2.5rem auto 0; width: 32px; height: 32px; vertical-align: baseline; }
/* === END BENCHMARK END-MARK === */

/* === EVENT LIST ADD ROW - /field/calendar/ === */
.events a.what { text-decoration-thickness: 1px; }
.events .add { display: block; margin: 0.5rem 0 0; font-size: 0.71rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-soft); }
.events .add a { color: var(--ink-soft); text-decoration-color: var(--line); }
.events .add a:hover { color: var(--hover); text-decoration-color: var(--hover); }
@media (hover: none), (pointer: coarse) { .events .add a:hover { color: var(--ink-soft); text-decoration-color: var(--line); } }
.events .add a:active { color: var(--hover); }
/* .events .go is RESERVED: the single-action form, superseded by .add on 2026-09-18. Kept per the estate rule that a selector with no consumer is marked rather than deleted. */
/* === END EVENT LIST ADD ROW === */
/* === END-MARK AS RETURN CONTROL (2026-09-18) === */
.endmark-wrap { text-align: center; margin: 2.5rem 0 0; }
/* Owner ruling, 18 September 2026: the benchmark end-mark behaves like the acorn on josh-boehm.com. It is a link, it ripens when acted on, and it returns the reader to the top of the page. This supersedes the "ink only, no state" line carried in the benchmark.svg desc for the linked variant only; the plain inline end-mark keeps that rule. Ripening runs the other way from the acorn: the estate glyph rests in --ink and ripens to --olive, because ink is the end-mark's resting colour in print and the green is the acted-on state. Three failures recorded on josh-boehm.com are pre-empted here. (1) An ungated :hover latches on a touch screen and never releases, so hover is gated behind (hover:hover) and (pointer:fine), reset under (hover:none),(pointer:coarse), and :active carries the touch signal. (2) The tap target measured 43px at the mobile body size, one pixel under the 44px floor, so inline-flex with a 44px minimum sets the size and keeps the glyph optically centred rather than top-aligned. (3) iOS painted a grey tap highlight around the glyph, so -webkit-tap-highlight-color is transparent. The glyph is inlined rather than loaded through img because fill cannot be recoloured through img, and because a field page has to read with no external asset. */
.endmark-link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 6px; line-height: 0; color: var(--ink); text-decoration: none; -webkit-tap-highlight-color: transparent; cursor: pointer; transition: color .2s ease; }
.endmark-link .em-glyph { display: block; width: 32px; height: 32px; fill: currentColor; }
@media (hover: hover) and (pointer: fine) { .endmark-link:hover { color: var(--olive); } }
.endmark-link:active, .endmark-link:focus-visible { color: var(--olive); }
.endmark-link:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
@media (hover: none), (pointer: coarse) { .endmark-link:hover { color: var(--ink); } }
@media (prefers-reduced-motion: reduce) { .endmark-link { transition: none; } }
/* .endmark--centered is RESERVED: the non-interactive centred end-mark, superseded by .endmark-link on 2026-09-18. Kept per the estate rule that a selector with no consumer is marked rather than deleted. */
/* === END END-MARK AS RETURN CONTROL === */
/* === GUIDE FOOTER RECONCILIATION (2026-09-18) === */
/* /css/rochester-walk.css carries a bare footer{} element rule which loads after this file and therefore restyles the estate footer on a guide page. Scoped here so the estate footer renders identically on a guide and everywhere else. The bare rule is being scoped at source in the same pass. */
.guide footer.foot { margin-top: 4rem; padding-top: 0; font-size: inherit; color: inherit; }
/* === END GUIDE FOOTER RECONCILIATION === */
/* === WALK CARD DATELINE (2026-09-18) === */
/* Owner ruling, 18 September 2026: on the walks index the publication date sits on its own line directly beneath the card title, not welded to the "Read more" line. This matches the guide page, where the dateline follows the h1. The .go line is now the affordance only. */
.lane .lane-date { margin: 0.4rem 0 0.8rem; font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); }
/* === END WALK CARD DATELINE === */

/* === PRIMARY CTA PRESS STATE === */
/* Reported 2026-09-29: pressing Bring your problem produced the browser default
   rather than the estate hover colour, and the outline treatment that replaced it
   was still being missed. Two causes, one per pointer. On a touch pointer the UA
   paints a translucent blue tap highlight over the control, and the coarse-pointer
   block above deliberately resets :hover, so nothing brand coloured was left to
   see. On a mouse the press state was correct and measured brown on both text and
   border, but a mailto hands focus to the mail client, the document blurs, and
   Chrome stops matching :focus on a blurred document, so the state ended before a
   fast click could register it. That is not tunable in CSS: the glyph holds its
   colour because an in-page link never takes focus out of the document.
   Ruled 2026-09-29 to make the press unmistakable rather than persistent. The
   control fills with --hover and the label drops to --paper, so the change reads
   as a filled button for however long the press lasts rather than as a shift in
   two thin lines. Measured 5.2:1 against --paper, above the 4.5:1 floor and the
   same figure this colour already carries elsewhere in the estate.
   Appended at the end of the file so it sits after the coarse-pointer :hover
   reset and wins on source order, which is the ordering defect that bit the
   footer link on 2026-09-10. */
.card-cta a { -webkit-tap-highlight-color: transparent; }
.card-cta a:focus, .card-cta a:active { background: var(--hover); border-color: var(--hover); color: var(--paper); }
/* === END PRIMARY CTA PRESS STATE === */

/* 2026-10-08, Josh: header and footer lines in ink, inset to the header/footer measure (not edge to edge). */
.nav{border-bottom:0}
.nav-inner{position:relative}
.nav-inner::after{content:"";position:absolute;left:1.5rem;right:1.5rem;bottom:0;border-bottom:1px solid var(--ink)}
@media (max-width:37.5em){.nav-inner::after{left:1.2rem;right:1.2rem}}
.foot{border-top:0}
.foot-inner{position:relative}
.foot-inner::before{content:"";position:absolute;left:1.5rem;right:1.5rem;top:0;border-top:1px solid var(--ink)}
/* 2026-10-08, Josh: every line on the site goes back to the original single line color, #ddd6c7. No pressed edge. Paper unchanged. */
html:root:root{--line:#ddd6c7}
.nav-inner::after{border-bottom-color:var(--line)}
.foot-inner::before{border-top-color:var(--line)}
.note,.dateline,.rec,.tdef,.see{border-left-color:var(--line)!important}
.capital span{border-top-color:var(--line)!important}
/* Lists with "Read more" are closed blocks: a line above the first item, between items, and below the last. */
.lanes{border-top:1px solid var(--line)!important}
.lane{border-bottom:1px solid var(--line)!important}
/* Capitals only on short scan labels. Dates, meta lines and route headings read in normal case. */
html body .leg{text-transform:none;letter-spacing:normal;font-size:1rem}
.events .when{text-transform:none;letter-spacing:normal;font-size:.85rem}
.lane .lane-date{text-transform:none;letter-spacing:normal;font-size:.9rem}
/* Back-link label above page titles: the same arrow and no underline on every page. */
html body .eyebrow a{text-decoration:none;color:var(--ink)}
html body .eyebrow a::before{content:"";display:inline-block;width:.98em;height:.82em;margin-right:.45em;vertical-align:-.066em;transform:scaleX(-1);background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M.9 5H10.9M6.7 .8L10.9 5L6.7 9.2' fill='none' stroke='%23000' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M.9 5H10.9M6.7 .8L10.9 5L6.7 9.2' fill='none' stroke='%23000' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;}
html body .eyebrow a:hover{color:var(--hover)}
/* "Record note." run-in labels: normal case, italic, text size. */
.rec b{text-transform:none!important;letter-spacing:.02em!important;font-size:inherit!important;font-style:italic!important;font-weight:normal!important}
/* Calendar labels that are not clickable: normal case. Chips and "Add to calendar" stay in capitals. */
span.cal-legend,.cal-subject,.cal-form,.cal-count,.wb-label{text-transform:none!important;letter-spacing:.02em!important}
span.cal-legend,.cal-subject,.cal-form{font-size:.85rem!important}
/* "Read more" blocks: the title and text keep their color on hover and click. Only "Read more" takes the hover color. */
html body .lane:hover,html body .lane:active,html body .lane:hover h3,html body .lane:active h3{color:var(--ink)!important}
html body .lane:hover .go,html body .lane:active .go{color:var(--hover)!important}
/* Drawn arrows, exact to the arrow rule (Josh, 5 and 6 October): the arrow runs from the baseline to cap height (0.69em) with a 0.09em stroke, 0.139em beside bold; after a lowercase letter, from the baseline to x-height (0.481em). Back arrows above page titles follow the same rule. */
html body .arw{display:inline-block;width:.828em;height:.69em;vertical-align:0;overflow:hidden;text-indent:2em;white-space:nowrap;letter-spacing:0;text-decoration:none;background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M.9 5H10.9M6.552 .652L10.9 5L6.552 9.348' fill='none' stroke='%23000' stroke-width='1.304' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M.9 5H10.9M6.552 .652L10.9 5L6.552 9.348' fill='none' stroke='%23000' stroke-width='1.304' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
html body .arw.b,html body .arw.xs.b{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1.1 5H10.9M6.907 1.007L10.9 5L6.907 8.993' fill='none' stroke='%23000' stroke-width='2.014' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1.1 5H10.9M6.907 1.007L10.9 5L6.907 8.993' fill='none' stroke='%23000' stroke-width='2.014' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
html body .arw.l{transform:scaleX(-1)}
html body .arw.xs{width:.577em;height:.481em;vertical-align:0}
html body .eyebrow a::before{content:"";display:inline-block;width:.828em;height:.69em;margin-right:.45em;vertical-align:0;transform:scaleX(-1);background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M.9 5H10.9M6.552 .652L10.9 5L6.552 9.348' fill='none' stroke='%23000' stroke-width='1.304' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M.9 5H10.9M6.552 .652L10.9 5L6.552 9.348' fill='none' stroke='%23000' stroke-width='1.304' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
/* 2026-10-08, Josh: links. Underlines and drawn arrows rest in olive; the word, its underline and its arrow turn brown together on hover or press. The header menu and glossary terms are unchanged. */
html body a:not(svg a){text-decoration-color:var(--olive)!important}
html body .arw,html body .eyebrow a::before{background-color:var(--olive)!important}
html body .add a{text-decoration:none!important}
html body :is(main,.foot) a:not(.lane):not(.pv-cta):not(.maplink):not(.card-cta a):not(svg a):is(:hover,:active){color:var(--hover)!important;text-decoration-color:var(--hover)!important}
html body a:is(:hover,:active) .arw,html body .eyebrow a:is(:hover,:active)::before{background-color:var(--hover)!important}

/* 2026-10-08, Josh: compliance. "fix everything that isn't in compliance except the home page's DIAGNOSE DESIGN EXECTUTE". A standalone link takes an arrow and no underline. Capitals only on clickable labels that are not underlined. A reference mark sits inside a sentence, so it takes the underline and no arrow. */
html body a.pv-sa{text-decoration:none!important}
html body .card-role,html body .card-foot,html body .cal-org-meta,html body .wrap th,html body p.eyebrow:not(:has(a)){text-transform:none!important;letter-spacing:.02em!important}
html body .card-role,html body p.eyebrow:not(:has(a)){font-size:.95rem!important}
html body .card-foot,html body .cal-org-meta{font-size:.85rem!important}
html body .sect-body h3{text-transform:none!important;letter-spacing:.02em!important;font-style:italic!important;font-size:1rem!important}
html body sup.refmark a{text-decoration:underline!important;text-decoration-color:var(--olive)!important}
html body sup.refmark a .arw{display:none!important}
html body sup.refmark a:is(:hover,:active){text-decoration-color:var(--hover)!important}

/* 2026-10-08, Josh: "the header and footer line needs to go just a hair beyond the last content within them". Each line runs 0.5rem past the content at both ends. */
.nav-inner::after,.foot-inner::before{left:1rem;right:1rem}
@media (max-width:37.5em){.nav-inner::after,.foot-inner::before{left:.7rem;right:.7rem}}

/* 2026-10-09, Josh: "the wheat head glyphs are not aligned with the lines for the stalks". The stalk was a 1px CSS gradient, which the browser snaps to a whole pixel, while the stem inside the wheat-head drawing is antialiased across two half pixels, so the two sat half a pixel apart and at different weights. The stalk is now drawn from the same kind of SVG stroke, at the same horizontal scale (24 units to 42px) and on the same center line (x 12), so the head's stem and the stalk rasterize identically at every zoom and screen density. */
@supports (mask-image: url(/img/wheat-head.svg)) or (-webkit-mask-image: url(/img/wheat-head.svg)) {
  .address::before { -webkit-mask-image: url(/img/wheat-head.svg), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 10' preserveAspectRatio='none'%3E%3Cpath d='M12 0V10' stroke='%23000' stroke-width='.5714'/%3E%3C/svg%3E"); mask-image: url(/img/wheat-head.svg), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 10' preserveAspectRatio='none'%3E%3Cpath d='M12 0V10' stroke='%23000' stroke-width='.5714'/%3E%3C/svg%3E"); -webkit-mask-size: 42px 29.75px, 42px calc(100% - 29.75px); mask-size: 42px 29.75px, 42px calc(100% - 29.75px); -webkit-mask-position: 0 0, 0 29.75px; mask-position: 0 0, 0 29.75px; }
}

/* 2026-10-09, Josh: "whatever you think will make it read the best" (the Studio wheat heads looked pixelated). Same size, heavier line: the wheat head and its stalk are drawn with 1.4px lines instead of 1px (stroke .8 instead of .5714 in the 24-unit drawing), so on a standard-density screen every line covers at least one full screen pixel and the grains stay distinct. The drawing is otherwise /img/wheat-head.svg unchanged; that file is kept as the source. */
@supports (mask-image: url(/img/wheat-head.svg)) or (-webkit-mask-image: url(/img/wheat-head.svg)) {
  .address::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 17' fill='none' stroke='%23000' stroke-width='.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 17V6.6'/%3E%3Cpath d='M12 16c2 -.2 2.8 -1.65 1.8 -3.3-1.3 .3-1.8 1.48-1.8 3.3Z'/%3E%3Cpath d='M12 16c-2 -.2-2.8 -1.65-1.8 -3.3 1.3 .3 1.8 1.48 1.8 3.3Z'/%3E%3Cpath d='M13.8 12.7l2 -3.1M10.2 12.7l-2 -3.1'/%3E%3Cpath d='M12 12.6c2 -.2 2.8 -1.65 1.8 -3.3-1.3 .3-1.8 1.48-1.8 3.3Z'/%3E%3Cpath d='M12 12.6c-2 -.2-2.8 -1.65-1.8 -3.3 1.3 .3 1.8 1.48 1.8 3.3Z'/%3E%3Cpath d='M13.8 9.3l2 -3.1M10.2 9.3l-2 -3.1'/%3E%3Cpath d='M12 9.2c2 -.2 2.8 -1.65 1.8 -3.3-1.3 .3-1.8 1.48-1.8 3.3Z'/%3E%3Cpath d='M12 9.2c-2 -.2-2.8 -1.65-1.8 -3.3 1.3 .3 1.8 1.48 1.8 3.3Z'/%3E%3Cpath d='M13.8 5.9l2 -3.1M10.2 5.9l-2 -3.1'/%3E%3Cpath d='M12 6.6c1.25-1.5 1.25-3.4 0-4.9-1.25 1.5-1.25 3.4 0 4.9Z'/%3E%3Cpath d='M12 1.7V.4'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 10' preserveAspectRatio='none'%3E%3Cpath d='M12 0V10' stroke='%23000' stroke-width='.8'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 17' fill='none' stroke='%23000' stroke-width='.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 17V6.6'/%3E%3Cpath d='M12 16c2 -.2 2.8 -1.65 1.8 -3.3-1.3 .3-1.8 1.48-1.8 3.3Z'/%3E%3Cpath d='M12 16c-2 -.2-2.8 -1.65-1.8 -3.3 1.3 .3 1.8 1.48 1.8 3.3Z'/%3E%3Cpath d='M13.8 12.7l2 -3.1M10.2 12.7l-2 -3.1'/%3E%3Cpath d='M12 12.6c2 -.2 2.8 -1.65 1.8 -3.3-1.3 .3-1.8 1.48-1.8 3.3Z'/%3E%3Cpath d='M12 12.6c-2 -.2-2.8 -1.65-1.8 -3.3 1.3 .3 1.8 1.48 1.8 3.3Z'/%3E%3Cpath d='M13.8 9.3l2 -3.1M10.2 9.3l-2 -3.1'/%3E%3Cpath d='M12 9.2c2 -.2 2.8 -1.65 1.8 -3.3-1.3 .3-1.8 1.48-1.8 3.3Z'/%3E%3Cpath d='M12 9.2c-2 -.2-2.8 -1.65-1.8 -3.3 1.3 .3 1.8 1.48 1.8 3.3Z'/%3E%3Cpath d='M13.8 5.9l2 -3.1M10.2 5.9l-2 -3.1'/%3E%3Cpath d='M12 6.6c1.25-1.5 1.25-3.4 0-4.9-1.25 1.5-1.25 3.4 0 4.9Z'/%3E%3Cpath d='M12 1.7V.4'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 10' preserveAspectRatio='none'%3E%3Cpath d='M12 0V10' stroke='%23000' stroke-width='.8'/%3E%3C/svg%3E"); }
}

/* 2026-10-09, Round AF (Josh: "approved, do it"): footer line 2 is the email and Privacy, both in the underlined-link style (ink word, olive underline, word and underline brown on hover or press), joined by a plain ink separator. No arrow. Same on every page. */
html body .foot .foot-links{color:var(--ink)}
html body .foot a.foot-link{color:var(--ink)!important;text-decoration:underline!important;text-decoration-color:var(--olive)!important;text-decoration-thickness:1px!important;text-underline-offset:2px!important;border-bottom:0!important}
html body .foot a.foot-link:is(:hover,:active){color:var(--hover)!important;text-decoration-color:var(--hover)!important}
