@font-face {
  font-family:"Lora";
  src:url('/assets/editorial/lora-figures-550.woff2') format('woff2');
  font-weight:550; font-display:swap; unicode-range:U+0030-0039;
}
@font-face {
  font-family:"Neomeo Text Serif";
  src:url('/assets/editorial/neomeo-text-serif.woff2') format('woff2');
  font-weight:400; font-display:swap;
}
:root {
  --pledge-digits:"Lora",var(--site-sans);
  --pledge-digit-weight:550;
  --reading-serif:"Neomeo Text Serif",var(--site-sans);
  --reading-surface:#fbf9fc;
  --reading-rule:#dcd5e2;
  --reading-gutter:clamp(20px,5vw,48px);
  --folio-wash:linear-gradient(118deg,#f4eff7 0%,#e8e3f2 65%,#dce3f3);
}
#main:has(> .reading) {
  background:linear-gradient(142deg,#f2eef7,transparent 600px),var(--reading-surface);
  min-height:calc(100dvh - 70px);
}
.reading {
  width:min(calc(100% - 2 * var(--reading-gutter)),680px);
  padding:clamp(16px,3vw,36px) 0 clamp(40px,6vw,76px);
}
.reading .page-head {
  position:relative;
  margin:0 0 clamp(26px,5vw,42px);
  padding:clamp(25px,5vw,46px) var(--reading-gutter);
  margin-inline:calc(-1 * var(--reading-gutter));
  background:var(--folio-wash);
  border-bottom:1px solid #cfc6db;
}
.reading .page-head h1 {
  margin:0; max-width:21em;
  color:#32273c; font:400 clamp(1.65rem,5.6vw,2.55rem)/1.35 var(--reading-serif);
  letter-spacing:-.055em; text-wrap:balance;
}
.reading .page-head .eyebrow {
  margin:0 0 10px; color:#645272; font-size:.76rem; font-weight:650;
}
.reading .page-head .section-intent {max-width:35em; margin-top:12px; color:#53495d}
.reading .page-head .pledge-context {margin-top:24px; padding-left:14px; border-left:2px solid #8c709f; color:#38283f; font-size:clamp(1.08rem,4.3vw,1.2rem); font-weight:620; line-height:1.65; max-width:32em}
.reading:has(.pledge-context) .pledge-content h2 {font-size:1rem; font-weight:550; color:#6b5c73; margin-bottom:12px}
.reading .panel-notes {margin-top:28px; padding-top:16px; border-top:1px solid var(--reading-rule); font-size:.78rem; color:#746979; line-height:1.65}
.panel-notes .form-caption {margin:0 0 6px}
.panel-note summary {min-height:44px; display:list-item; align-content:center; cursor:pointer; font-size:.78rem}
.panel-note p {margin:8px 0}
.log-archive td:last-child span {white-space:pre-line}
.reading .back {margin:0 0 6px; color:#62556c; font-size:.82rem; font-weight:550}
.reading .prose {margin:clamp(26px,5vw,40px) 0}
.reading .prose h2,.reading .featured-section h2,.reading .contents h2 {
  margin:0 0 13px; font-size:clamp(1.15rem,3.6vw,1.44rem); font-weight:660; letter-spacing:-.045em;
}
.reading .prose p {color:#443d48; line-height:1.85}
.reading :is(.pledge-content,.pledge-background) p {text-align:left; text-align-last:auto; word-break:break-all}
.reading .prose p+p {margin-top:.95em}
.reading .primary {
  width:fit-content; min-height:44px; gap:12px; padding:10px 17px; border-radius:6px;
  background:#5a4373; color:white; font-size:.9rem; font-weight:650;
}
.reading .primary:hover {background:#4b345f}
.reading .primary:disabled {opacity:.62}
.reading .detail-head {padding-top:21px}
.detail-index {display:flex; gap:14px; align-items:baseline; margin-bottom:12px; color:#5a476d; font-size:.8rem; font-weight:630}
.detail-number {color:#735987; font:var(--pledge-digit-weight) clamp(2.7rem,9vw,4rem)/1 var(--pledge-digits); letter-spacing:-.035em}
.detail-index > span:last-child {padding-left:13px; border-left:1px solid #b4a6c1}
.reading .timeline {margin-top:20px}
.reading .timeline li {position:relative; padding:9px 0 16px 16px; border:0; border-left:1px solid #cec2d6; font-size:.92rem}
.reading .timeline li:not(.condition)::before {content:''; position:absolute; left:-3px; top:1.05em; width:5px; height:5px; border-radius:50%; background:#866b99}
.reading .timeline .condition {padding:5px 0 0; border:none; font-size:.78rem}
.reading .timeline b {color:#655071; font-weight:620}
.reading .background {border-block:1px solid var(--reading-rule)}
.reading .background summary {font-size:.92rem; font-weight:650; color:#564662}
.reading .actions {display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px}
.reading .demo-link {background:#eee8f2; border:1px solid #ddd4e4; padding:15px 18px}

.index .page-head {background:url('/assets/print-door.svg') right center / auto 140% no-repeat,var(--folio-wash)}
.index-jump {display:inline-flex; gap:10px; align-items:center; min-height:44px; margin-top:10px; color:#584665; font-size:.85rem; font-weight:630}
.reading .featured-section,.reading .category-section {border-top:1px solid #aa98b8; margin-bottom:36px}
.reading .featured-section h2,.reading .category-section h3 {padding:15px 0 4px; border:0}
.reading .feature-row {gap:14px; align-items:baseline; padding:17px 0}
.feature-copy {flex:1}
.num {font-family:var(--pledge-digits); font-weight:var(--pledge-digit-weight); font-variant-numeric:lining-nums tabular-nums}
.reading .feature-row .num,.pledge-row .num {min-width:1.35em; color:#785f89; font-size:1.3rem}
.reading .feature-row .num {min-width:2.65em}
.reading .contents {margin:42px 0}
.reading .contents nav {grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 16px}
.reading .contents nav a {display:flex; gap:8px; align-items:center; padding:12px 0}
.reading .contents nav span {color:#4a3d54; font-weight:610}
.reading .contents nav .category-mark {flex:none; width:22px; height:22px; color:#715886}

.candidates-page .page-head {margin-bottom:0; padding-bottom:12px; border:0; background:transparent}
.candidates-page,.speech-panel {--portrait-wash:linear-gradient(145deg,#f3eff7,#e4dfef 60%,#d9d2e5)}
.candidates-page .people-photo {margin-inline:calc(-1 * var(--reading-gutter)); background:var(--portrait-wash)}
.people-photo .portrait-detail {width:min(80%,350px); max-width:none; height:auto; aspect-ratio:1.08; margin:15px auto 0}
.people-photo figcaption {display:grid; grid-template-columns:1fr 1fr; padding:12px var(--reading-gutter); border-color:#b8a8c5; background:#f0ebf4}
.people-photo figcaption > span {display:flex; flex-wrap:wrap; justify-content:center; align-items:baseline; gap:3px 5px}
.people-photo figcaption strong {font-size:1rem; color:#392f41}
.people-photo figcaption > span > span {flex-basis:100%}
.people-photo figcaption small {font-size:.72rem}
.candidates-page .person {padding:28px 0}
.person h2 {font-size:1.24rem}
.person h2 small {display:block; margin-bottom:5px; font-size:.76rem; color:#675772}
.person blockquote {margin:14px 0 4px; font:400 1.08rem/1.7 var(--reading-serif); color:#49374f; letter-spacing:-.035em}
.speech-portraits {background:var(--portrait-wash)}
.speech-panel .reading {max-width:33rem}
.speech-panel .reading h2 {font:400 1.35rem/1.5 var(--reading-serif); color:#493653}
.speech-panel .prose {margin:12px 0 28px}

.board-page .page-head {background:linear-gradient(120deg,#382c40,#44334d 65%,#50425a); border:0}
.board-page .page-head h1 {color:#fff9ff}
.board-page .page-head .section-intent {color:#e7deec}
.certificate-page .page-head {background:linear-gradient(125deg,#f9f4eb,#f0eaf0 78%,#e6dbea)}
.certificate-page .eyebrow .num {font-size:1.1rem}
.reading :is(.proposal-form,.cert-fields) label {font-weight:620}
.reading input:not([type=checkbox]),.reading select {border-color:#c6bbcd; border-radius:5px; background-color:#fffefd; min-height:46px}
.reading .cert-fields legend {color:#584162; font-size:1.04rem; font-weight:650}
.reading .proposal-examples li {padding:16px 0; border-color:var(--reading-rule)}
.reading .proposal-examples .proposal-meta {margin-top:5px}
.facility-archive .page-head {background:linear-gradient(128deg,#e5dfea,#e7e1ee 60%,#d6d4e4)}

#home-panel {background:var(--reading-surface); border-radius:18px; color:var(--ink)}
.panel-bar {
  min-height:50px; padding:7px 10px 3px 22px; border-color:var(--reading-rule);
  background:#f7f4f9; color:#594b64; font-size:.78rem; letter-spacing:.025em;
}
.panel-bar strong {font-weight:650}
.panel-close {display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; background:transparent; color:#594861}
.panel-close svg {box-sizing:content-box; background:#eae4ef; border-radius:50%; padding:6px}
.panel-body .reading {padding-top:0}
.panel-body .reading .page-head {margin-top:0}
.panel-body .speech-panel .reading {padding-top:25px}
.panel-body .candidates-page .page-head {padding-bottom:1px; background:var(--portrait-wash)}
.panel-body .candidates-page .people-photo {padding-top:1px}
.panel-body .pledge-panel + .pledge-panel {border:0}
#site-menu {background:linear-gradient(145deg,#f7f3f9,#ebe6f1); border-radius:0 0 0 14px}
:root {
  --chrome-surface:#f2edff;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-right:env(safe-area-inset-right,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
  --mast-bar:58px;
  --mast-height:calc(var(--mast-bar) + var(--safe-top));
}
html {scroll-padding-top:calc(var(--mast-height) + 10px)}
html:has(.front) {background-color:var(--chrome-surface)}
body:has(.front) .mast {
  position:fixed; z-index:8; inset:var(--safe-top) 0 auto; height:var(--mast-bar);
  padding:0 var(--safe-right) 0 var(--safe-left);
  background:transparent; pointer-events:none;
}
.mast-in {height:var(--mast-bar); position:relative}
.mast::before {
  /* A single glass surface, including any overdraw above the fixed header.
     Only the controls are inset from the camera. */
  --glass-reach:max(var(--safe-top),env(safe-area-max-inset-top,0px));
  content:''; position:absolute; inset:calc(0px - var(--glass-reach)) 0 0; pointer-events:none;
  background-color:rgb(242 237 250 / 3%);
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  -webkit-mask-image:linear-gradient(#000 calc(100% - 16px),transparent);
  mask-image:linear-gradient(#000 calc(100% - 16px),transparent);
}
.mast .mast-name,.mast #menu-toggle {color:#382d46; transition:color .18s ease}
.mast .mast-name[data-ink=light],.mast #menu-toggle[data-ink=light] {color:#fff9ff; text-shadow:0 1px 3px #302633}
.mast #menu-toggle {pointer-events:auto}
/* Leave the centre of iPhone Safari's scroll edge free of fixed layers. */
body:has(.front) .mast.floating-controls {
  position:absolute; top:0; left:0; right:auto; width:0; height:0; padding:0;
}
.floating-controls::before {content:none}
.floating-controls .mast-in {display:contents}
.floating-controls :is(.mast-name,#menu-toggle) {
  position:fixed; top:var(--safe-top); height:var(--mast-bar);
  isolation:isolate;
}
.floating-controls .mast-name {
  align-content:center; white-space:nowrap;
  display:block; width:max-content;
  left:max(calc(var(--safe-left) + 24px),calc((100vw - 800px)/2));
}
.floating-controls #menu-toggle {
  right:max(calc(var(--safe-right) + 24px),calc((100vw - 800px)/2));
}
.floating-controls :is(.mast-name,#menu-toggle)::before {
  content:''; position:absolute; z-index:-1; inset:0 -12px; pointer-events:none;
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  -webkit-mask-image:radial-gradient(ellipse closest-side,#000 65%,transparent);
  mask-image:radial-gradient(ellipse closest-side,#000 65%,transparent);
}
.front-opening {padding-top:var(--mast-height)}
.front-opening {--browser-tint:#f2edff}
.campaign-intro {--browser-tint:#f1edf5}
.story-section {--browser-tint:#e1e4f4}
.board-preview {--browser-tint:#2c2632}
.member-benefit {--browser-tint:#f7f5f1}
.facility-story {--browser-tint:#50435f}
.home-close {--browser-tint:#eae4f3}
#site-menu {
  --browser-tint:#f7f3f9;
  max-height:100dvh; width:min(100%,calc(420px + var(--safe-right)));
  overflow:hidden; overscroll-behavior:contain;
}
.menu-sheet {
  display:flex; flex-direction:column; max-height:min(92dvh,calc(760px + var(--safe-top)));
  padding:calc(12px + var(--safe-top)) calc(24px + var(--safe-right)) calc(20px + var(--safe-bottom)) 24px;
}
.menu-head {flex:none}
.menu-sheet nav {min-height:0; overflow-y:auto; overscroll-behavior:contain}
@media(max-width:649px) {
  .menu-sheet {padding-left:calc(24px + var(--safe-left))}
}
@media(prefers-reduced-motion:no-preference) {
  #site-menu::backdrop {transition:background-color .19s ease-out}
  #site-menu[data-leaving]::backdrop {background-color:transparent}
  @starting-style {#site-menu[open]::backdrop {background-color:transparent}}
}
.menu-sheet nav a {min-height:45px; font-size:1rem}
.menu-sheet nav a[aria-current] {color:#51376b}
.menu-sheet nav a[aria-current]::before {content:''; width:5px; height:5px; border-radius:50%; background:currentColor; margin-right:8px}
.menu-sheet nav a::after {margin-left:auto}
.panel-caption {display:flex; align-items:center; gap:10px}
#panel-up {min-height:44px; border:0; background:none; padding:0 6px 0 0; color:#634c75; font-size:.85rem}
.category-panel ul {margin:0; padding:0; list-style:none}
.category-panel .category-cover {isolation:isolate; overflow:hidden; min-height:190px; padding-top:24px; padding-bottom:34px; margin-bottom:8px; background:radial-gradient(ellipse at 95% 95%,#c5c4e180,transparent 60%),linear-gradient(120deg,#f4edf8,#e5dced 75%,#dcdcec)}
.category-cover-meta {display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:36px}
.category-cover-meta .eyebrow {margin:0!important}
.category-count {font-size:.73rem; color:#675273; white-space:nowrap; font-variant-numeric:tabular-nums}
.category-panel .category-cover h1 {position:relative; z-index:1; padding-right:112px; max-width:none; font-size:clamp(1.8rem,6vw,2.5rem)}
.category-cover-art {position:absolute; z-index:0; right:var(--reading-gutter); bottom:12px}
.category-cover-art .category-mark {width:112px; height:112px; object-fit:contain}
.category-panel .pledge-row {width:100%; min-height:84px; gap:16px; padding:20px 0; border:0; border-bottom:1px solid var(--reading-rule); background:transparent; text-align:left}
.category-panel .pledge-row .num {min-width:2ch; font-size:1.85rem; line-height:1; color:#8a749b}
.category-row-copy {flex:1; min-width:0; display:grid; gap:5px}
.category-panel .pledge-row strong {font-size:.98rem; font-weight:580; line-height:1.55; color:#392f43}
.category-row-copy small {font-size:.72rem; color:#7a6c84}
.category-panel .pledge-row > svg {color:#9782a6; width:18px; height:18px}
.category-panel .pledge-row:active {background:#eee7f3}
@media(hover:hover) {
  .category-panel .pledge-row:hover {background:linear-gradient(90deg,transparent,#eee8f5,transparent)}
  .category-panel .pledge-row:hover strong {text-decoration:none; color:#593e71}
  .category-panel .pledge-row:hover > svg {transform:translateX(3px); color:#593e71}
}
@media(prefers-reduced-motion:no-preference) {
  .category-panel .pledge-row > svg {transition:transform .18s ease,color .18s ease}
}
.skip:focus {z-index:9}
@media (prefers-reduced-motion:reduce) {
  .mast .mast-name,.mast #menu-toggle {transition:none}
}
.menu-head {border-bottom:1px solid #b9a9c7}
.menu-sheet nav a {font-weight:620}
.menu-sheet nav a::after {content:'→'; color:#79628c}
@media (max-width:649px) {
  #home-panel {border-radius:18px 18px 0 0}
  .reading .contents nav {grid-template-columns:repeat(2,minmax(0,1fr))}
  .reading .index-jump {margin-top:5px}
}
