:root{--paper:#faf9f7;--ink:#211d25;--violet:#5f3799;--deep:#543383;--hair:#dedadf}
.mast{background:var(--paper);border-bottom:0}.mast-in{height:64px}.brand img{width:56px}.mast-name{border:0;font-size:.68rem;line-height:1.4;padding:0;margin-left:12px;font-weight:550}.menu-button{font-size:.82rem;gap:8px}.menu-button svg{width:18px}
.front {
  background:#e3dffa;
}
.front-opening {
  display:flow-root;
  container-type:inline-size;
  background:linear-gradient(173deg,#f2edff 0%,#d4c4f8 45%,#e1dcfa 89%,transparent 100%);
}
body:has(.front) .mast { background:#f2edff }
body:has(.front) .mast .brand { display:none }
body:has(.front) .mast-name { margin-left:0 }
.cover-layout { width:min(calc(100% - 40px),720px); margin:auto; padding-top:clamp(28px,8vw,48px) }
.cover-copy { position:relative; isolation:isolate; text-align:center }
.cover-copy::before,.cover-copy::after { content:none }
.campaign-signature { position:relative; display:flex; justify-content:center; align-items:flex-end; margin-bottom:16px }
.campaign-signature img { display:block; width:clamp(112.7px,31.05vw,163.3px); height:auto }
.ballot-number {
  position:absolute; left:calc(50% + clamp(56.35px,15.525vw,81.65px) + 10px); bottom:clamp(8px,2.2vw,12px);
  color:#62586a;
  font-size:clamp(.69rem,2.7vw,.78rem);
  font-weight:520;
  line-height:1.15;
  white-space:nowrap;
}
.ballot-number b { font-size:1.36em; font-weight:730; color:#352c3f }
.cover h1 { font-size:clamp(1.3616rem,6.072vw,2.438rem); line-height:1.23; letter-spacing:-.045em; font-weight:750; color:var(--ink) }
.cover h1 span { color:#47226f }
.candidate-stage {
  --portrait-height:clamp(145px,48vw,248px);
  display:grid; grid-template-columns:minmax(0,1fr) minmax(90px,.79fr) minmax(0,1fr);
  grid-template-rows:auto auto; align-items:end; column-gap:3px; margin:28.8px -14px 0;
}
.candidate-stage::before {
  content:''; grid-column:1 / -1; grid-row:2; align-self:stretch; pointer-events:none;
  inline-size:100cqi; justify-self:center;
  border-top:1px solid #9374b5; background:linear-gradient(to bottom,#f6f0ff55,transparent);
}
.portrait-link {
  display:grid; grid-row:1 / span 2; grid-template-rows:subgrid; justify-items:center; align-items:end;
  align-self:stretch; position:relative; min-width:0; line-height:1.4;
  -webkit-user-select:none; user-select:none; cursor:default;
}
#home-candidates { grid-column:1 }
#home-running-mate { grid-column:3 }
.portrait-link img { display:block; width:100%; height:var(--portrait-height); object-fit:contain; object-position:center bottom; -webkit-user-drag:none; -webkit-touch-callout:none }
#home-running-mate img { height:calc(var(--portrait-height) * .92) }
.candidate-caption { align-self:start; display:grid; text-align:center; gap:1px; padding:9px 0 6px }
.candidate-caption strong {
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:center;
  column-gap:.28rem;
  font-size:.98rem;
  font-weight:750;
  letter-spacing:-.025em;
}
.candidate-caption small,.candidate-caption > span { color:#50415f; font-weight:500 }
.candidate-caption small { font-size:.7rem; letter-spacing:0 }
.candidate-caption > span { font-size:.73rem }
.stage-events { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; max-width:470px; text-align:center; margin:36px auto 0; padding:0; font-variant-numeric:tabular-nums }
.stage-events > div { min-width:0 }
.stage-events dt { margin:0 0 3px; color:#503178; font-size:.836rem; line-height:1.45; font-weight:760 }
.stage-events dd { margin:0; font-size:clamp(.73rem,3vw,.95rem); line-height:1.5; font-weight:620; letter-spacing:-.045em }
.event-countdown { display:block; margin:0 0 5px; font-size:clamp(1.05rem,4.5vw,1.4rem); line-height:1.3; color:#47226f; letter-spacing:-.025em }
.stage-events time,.stage-events small { display:block }
.stage-events small { color:#544365; font-weight:500; font-size:.72rem }
.sheet { width:min(calc(100% - 40px),680px); margin:auto }
.front .schedule { margin:24px auto clamp(56px,13vw,88px); width:min(calc(100% - 20px),530px) }
.calendar-head { margin:0 0 3px; justify-content:center; text-align:center }
.calendar-head h2 { font-size:.86rem; font-weight:720; line-height:1.35; letter-spacing:-.03em }
.strip h2{font-size:clamp(1.35rem,5vw,1.8rem);font-weight:760;letter-spacing:-.06em}
.election-calendar{margin:0;font-variant-numeric:tabular-nums}
.election-calendar th{font-weight:500;border:0;font-size:.72rem}
.election-calendar td{height:58px;padding:0 0 4px;vertical-align:top}
.election-calendar td:first-child { color:#6a4750; --past-date-ink:#715b62 }
.election-calendar td:last-child { color:#425269; --past-date-ink:#586175 }
.cal-number{position:relative;min-height:21px;font-size:.8rem}
.cal-number>span{position:relative;z-index:1;min-width:1.55em;min-height:1.55em;font-size:inherit}
.cal-event { display:grid; gap:1px; margin-top:3px; font-size:clamp(.56rem,2.3vw,.64rem); line-height:1.3; font-weight:600; letter-spacing:-.04em; white-space:nowrap; color:#574268 }
.cal-event-time { font-size:inherit; font-weight:500; letter-spacing:0 }
.hearing-day .cal-number>span{background:#7042a5;color:white}
.vote-start .cal-number, .vote-end .cal-number {
  background:rgb(109 75 157 / 32%);
  color:#45325b;
  --past-date-ink:#503d64;
}
.vote-start .cal-number{margin-left:5%;border-radius:12px 0 0 12px}
.vote-end .cal-number{margin-right:5%;border-radius:0 12px 12px 0}
.is-past:not(.hearing-day) .cal-number>span{color:var(--past-date-ink,#726d75)}
.election-calendar [aria-current=date] .cal-number>span{outline:2px solid #27202e;outline-offset:1px;color:inherit}
.election-calendar .hearing-day[aria-current=date] .cal-number>span{color:white}
.election-calendar :is(.vote-start,.vote-end)[aria-current=date] .cal-number>span {
  outline:1.5px solid #6b578a;
  outline-offset:-1px;
}
.strip{padding:32px 0;border-top:1px solid var(--hair)}.strip h2{margin-bottom:16px}.source-mark{font-size:.77rem;color:var(--deep);font-weight:650}.proposal-line{font-size:1.12rem;line-height:1.62;letter-spacing:-.04em;margin:5px 0 8px;max-width:24em}.strip .text-link{color:var(--deep);font-weight:600}.home-pledge{font-weight:600}.front-foot{padding:24px 0 48px;font-size:.75rem;color:var(--muted);border-top:1px solid var(--hair)}.people-photo{background:#e9e2ed;border-radius:0}.people-photo .portrait-detail{display:block;max-width:400px;width:77%;height:340px;object-fit:cover;object-position:50% 0;margin:18px auto 0}
@media(min-width:700px){
  .cover-layout {padding-top:26px}
  .cover-copy {max-width:590px;margin:auto}
  .candidate-stage {max-width:620px;margin:36px auto 0}
  .mast-in {width:min(calc(100% - 48px),800px)}
  .front .schedule {margin-top:24px}
}
@media(prefers-reduced-motion:no-preference){
  .cover-copy::after {animation:print-light .45s ease-out both}
  @keyframes print-light{from{opacity:.55}to{opacity:1}}
}
@media(max-width:340px){
  .mast .brand img { width:40px }
  .mast-name { margin-left:6px }
  .cover-layout,.sheet{width:calc(100% - 32px)}
  .candidate-stage{column-gap:0;margin-inline:-10px}
}

.home-reading {
  --rule: rgb(87 63 117 / 21%);
  --edge:clamp(22px,5vw,60px);
  color:#2e2438;
}
.home-reading > section, .home-close {
  position:relative;
  isolation:isolate;
}
.home-reading > section::before, .home-close::before {
  content:'';
  position:absolute;
  z-index:-1;
  inset:calc(0px - var(--edge)) 0 0;
  pointer-events:none;
  background:var(--surface);
}
.campaign-intro, .story-section, .board-preview {
  padding:clamp(82px,16vw,120px) 0;
}
.campaign-intro {
  --edge:0px;
  --surface:radial-gradient(ellipse at 12% 15%,#f8f6fb,transparent 64%),
            linear-gradient(135deg,#f1edf5,#e9edf5);
}
.story-section {
  --surface:radial-gradient(ellipse at 88% 14%,#ebe4f6,transparent 65%),
            linear-gradient(148deg,#dbe5f7 0%,#e4e9f7 50%,#dcd7ec 100%);
}
.story-section::before { clip-path:polygon(0 var(--edge),100% 0,100% 100%,0 100%) }
.board-preview, .home-close { --edge:clamp(9px,2.1vw,26px) }
.board-preview {
  container-type:inline-size;
  overflow-x:clip;
  --surface:radial-gradient(ellipse at 92% 45%,#43374b,transparent 63%),
            linear-gradient(142deg,#2c2632,#221e29 55%,#18161e);
  color:#fbf8ff;
}
.board-preview::before { border-radius:78% 22% 0 0 / var(--edge) var(--edge) 0 0 }
.home-close { --surface:linear-gradient(110deg,#eae4f3,#eff0f7) }
.home-close::before { border-top-right-radius:100% var(--edge) }
.member-benefit {
  --surface:linear-gradient(140deg,#faf8f3,#f4f2ef 55%,#eeedf2);
  padding:clamp(74px,13vw,106px) 0;
}
.member-benefit::before { border-top-right-radius:100% 12px }
.facility-story {
  --surface:radial-gradient(ellipse at 12% 22%,#77638b 0%,transparent 65%),linear-gradient(155deg,#5b4d6f,#493e5d 58%,#40364f);
  color:#fff8ff;
  --edge:clamp(9px,2vw,24px);
  padding:clamp(72px,13vw,106px) 0;
}
.facility-story::before,.facility-story::after { clip-path:polygon(0 var(--edge),100% 0,100% 100%,0 100%) }
.facility-story::after {
  content:''; position:absolute; z-index:-1; inset:calc(0px - var(--edge)) 0 0; pointer-events:none;
  background:linear-gradient(145deg,rgb(36 21 54 / .52),rgb(25 20 42 / .66)); opacity:var(--case-progress,0); will-change:opacity;
}
.facility-playback { display:flow-root }
.facility-diagnostics { display:block; position:fixed; z-index:60; left:12px; right:12px; bottom:calc(env(safe-area-inset-bottom,0px) + 12px); width:auto; max-width:none; padding:8px 12px; border:1px solid #b6a3cc; border-radius:6px; background:#30263ef2; font:12px/1.7 monospace; color:#fff; pointer-events:none }
.facility-story[data-scroll-guide] .facility-playback {
  position:sticky; top:var(--pin-top);
  transform:translateY(var(--guide-offset,0px));
}
.facility-story[data-scroll-guide] .facility-track::after { content:''; display:block; height:var(--step-travel) }
.facility-story h2 { margin:14px 0 0; color:#fff8fa; font:400 clamp(1.32rem,5vw,2rem)/1.4 var(--reading-serif); letter-spacing:-.055em; text-wrap:balance }
.facility-promise { max-width:34em; margin:0 0 12px; color:#fff8ff; font-size:clamp(.97rem,3.5vw,1.14rem); line-height:1.5; font-weight:600; text-wrap:pretty }
.facility-request { border-left:2px solid #9a91a5; padding:2px 0 2px 16px; max-width:32rem; line-height:1.65 }
.facility-request small { font-size:.76rem; color:#625572; font-weight:650 }
.facility-request p { margin:6px 0; font-weight:600 }
.facility-snapshot { --track:#ead8fb; margin-top:14px }
.scene-caption { color:#f9eefb; padding-bottom:6px; font-size:.84rem; font-weight:650 }
.lamp-scene { display:block; width:100%; height:auto; border-block:1px solid #c6b3d14d }
.room-relight { opacity:var(--room-light,0) }
.room-dusk { opacity:calc(var(--case-progress,0) * .25) }
@media(prefers-reduced-motion:no-preference) {
  .facility-story:not([data-scroll-guide]) .room-relight { transition:opacity .35s ease }
}
.facility-steps { position:relative; isolation:isolate; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin:2px 0 12px; border:0; padding:0; }
.facility-steps::before, .facility-steps::after {
  content:''; position:absolute; z-index:-1; pointer-events:none;
  left:10%; right:10%; top:15px; height:3px; border-radius:2px;
}
.facility-steps::before { background:#92839e }
.facility-steps::after { background:var(--track); transform-origin:left; transform:scaleX(var(--line-fill,0)) }
.facility-steps label { position:relative; display:grid; justify-items:center; align-content:start; gap:6px; margin:0; min-height:48px; padding:8px 0 2px; font-size:clamp(.69rem,2.8vw,.84rem); color:#e9dff1; cursor:pointer }
.facility-steps label > span:last-child {
  display:grid; place-items:center; width:calc(100% - 4px); min-height:26px;
  border-radius:3px; line-height:1.25;
}
.facility-steps input { position:absolute; width:1px; height:1px; min-height:0; padding:0; opacity:0 }
.step-dot { display:grid; place-items:center; z-index:1; width:16px; height:16px; border:1px solid #b9a9c6; border-radius:50%; background:#4b405e }
.is-done .step-dot { background:var(--track); border-color:var(--track) }
.is-done .step-dot::before { content:''; width:6px; height:3px; border:solid #51435f; border-width:0 0 1.5px 1.5px; transform:translateY(-1px) rotate(-45deg) }
.facility-steps input:checked + .step-dot { border:4px solid var(--track); background:#564563 }
.facility-steps input:checked ~ span:last-child { color:#352b42; background:#eadcf3; font-weight:700 }
.facility-steps label { -webkit-tap-highlight-color:transparent }
.facility-steps input:focus-visible ~ span:last-child { outline:2px solid #ffeac3; outline-offset:2px }
.facility-log { --log-ink:#38323c; --log-muted:#635b67; --log-rule:#dcd5df; --log-current:#ebe4f0; color:var(--log-ink); font-size:.82rem; line-height:1.45 }
.facility-story .facility-log { --log-ink:#f8f1fc; --log-muted:#dfd1e6; --log-rule:#cbb5dc42; --log-current:#cfb1e321 }
.facility-log table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:inherit; text-align:left }
.facility-log caption { padding:8px 0; text-align:left; font-weight:700; border-bottom:1px solid var(--log-rule) }
.facility-log th,.facility-log td { padding:5px 6px; text-align:left; vertical-align:top; font-weight:450; border:0; border-bottom:1px solid var(--log-rule) }
.facility-log thead th { color:var(--log-muted); font-size:.75rem; font-weight:550 }
.facility-log thead th:first-child { width:3.6rem }
.facility-log thead th:nth-child(2) { width:5.2rem }
.facility-log tbody td:first-child { color:var(--log-muted); font-variant-numeric:tabular-nums }
.facility-log tbody th { font-weight:650 }
.facility-log tr[aria-current=step] { background:var(--log-current) }
.log-preview tbody tr[aria-hidden=true] { opacity:0; transform:translateY(3px) }
@media(prefers-reduced-motion:no-preference) {
  .log-preview tbody tr { transition:opacity .22s ease-out,transform .24s ease-out,background-color .22s }
}
.log-archive { margin:16px 0; font-size:.94rem }
.log-archive :is(td,tbody th) { padding-block:12px }
.facility-method { padding-top:clamp(22px,6vw,42px) }
.facility-full-log summary { width:fit-content; padding:10px 0; min-height:44px; cursor:pointer; font-size:.88rem; font-weight:650 }
.facility-full-log:not([open]) .open-label,.facility-full-log[open] .closed-label { display:none }
.facility-full-log .log-archive { margin:3px 0 0 }
.facility-story[data-compact-scene] .facility-snapshot { margin-top:8px }
.facility-story[data-compact-scene] .facility-promise { margin-bottom:8px; font-size:.97rem }
.facility-story[data-compact-scene] .lamp-scene { max-height:86px }
.facility-story[data-compact-scene] .facility-steps { margin-bottom:7px }
.facility-story[data-compact-scene] .log-preview :is(th,td) { padding-block:3px }
.facility-story[data-compact-scene] .facility-log caption { padding-block:5px }
@media(max-height:600px) {
  .facility-promise { margin-bottom:7px }
  .facility-story:not([data-scroll-guide]) .facility-promise {
    position:sticky; top:var(--mast-height); z-index:1; max-width:none;
    padding:5px 0; background:#4b405bf5;
  }
  .facility-story h2 { margin-top:8px }
  .facility-snapshot { margin-top:7px }
  .log-preview :is(th,td) { padding:3px 5px }
  .log-preview thead th:first-child { width:3rem }
  .log-preview thead th:nth-child(2) { width:4.5rem }
}
.facility-request { margin:24px 0 32px }
.panel-trigger { border:0; padding:0; background:transparent }
html:has(#home-panel[open]) { overflow:hidden }
#home-panel { width:min(94%,650px); max-width:100%; max-height:88dvh; margin:auto; border:0; padding:0; border-radius:14px; background:var(--paper); color:var(--ink); box-shadow:0 12px 60px #221a3333 }
#home-panel[open] { display:flex; flex-direction:column }
#home-panel::backdrop { background:#21182c85 }
.panel-bar { position:relative; display:flex; flex:none; justify-content:space-between; align-items:center; padding:8px clamp(18px,4vw,28px) 3px; border-bottom:1px solid var(--hair); color:#584367; font-size:.86rem; cursor:grab; touch-action:none; user-select:none }
.panel-bar:active { cursor:grabbing }
.panel-bar::before { content:''; position:absolute; top:5px; left:50%; transform:translateX(-50%); width:34px; height:4px; border-radius:4px; background:#c8bccf }
#home-panel[data-closing]::backdrop { background:transparent }
@media(prefers-reduced-motion:no-preference) {
  #home-panel::backdrop { transition:background-color .24s }
  @starting-style { #home-panel[open]::backdrop { background:transparent } }
}
.panel-body { overflow:auto; overscroll-behavior:contain; min-height:0 }
.panel-body .reading { padding-top:20px }
@media(max-width:649px) {
  #home-panel { width:100%; max-height:91dvh; margin:auto 0 0; border-radius:16px 16px 0 0 }
  .panel-body .reading { padding-bottom:calc(28px + env(safe-area-inset-bottom,0px)) }
}
.certificate-feature { display:grid; align-items:center; gap:clamp(20px,5vw,36px) }
.member-benefit > .sheet { view-timeline-name:--certificate-entry; view-timeline-axis:block }
.certificate-heading h2 {
  margin:0; color:#332c35;
  font:650 clamp(1.66rem,6.4vw,2.5rem)/1.35 var(--site-sans);
  letter-spacing:-.055em;
}
.certificate-heading .section-intent { margin-top:10px; max-width:26em }
.certificate-sleeve {
  position:relative; isolation:isolate; justify-self:center; width:min(98%,338px); aspect-ratio:1.33;
  display:block; background:none; color:#382847; border-radius:12px; cursor:pointer;
  transform:rotate(-3deg);
}
.folio-art { position:absolute; inset:0 4% 2%; display:block; pointer-events:none }
.folio-art > * { position:absolute; display:block }
.folio-shadow {
  left:3%; right:1%; bottom:-1%; height:14%; border-radius:50%;
  background:#5c4665; opacity:.2; filter:blur(8px); transform:rotate(2deg);
}
.folio-back { width:100%; height:68%; bottom:0; left:0 }
.folio-sheets { inset:-12% 0 1%; overflow:hidden }
.folio-leaf,.folio-paper {
  position:absolute; bottom:2%; left:16%; width:69%; aspect-ratio:600 / 590;
  transform-origin:50% 90%; background:#fffdf8;
  box-shadow:0 0 0 1px #6a59661a,1px 3px 6px #3e30451f;
}
.folio-leaf { left:13%; bottom:1%; transform:rotate(-3deg); background:#f3eee7 }
.folio-paper { transform:rotate(7deg); transition:transform .35s cubic-bezier(.22,.68,.18,1) }
.folio-paper img { display:block; width:100%; height:auto }
.folio-face { left:-.5%; bottom:-.5%; width:101%; height:46%; filter:drop-shadow(0 1px 1px #57426436) }
.folio-wordmark { right:6%; bottom:7%; width:17%; height:auto; mix-blend-mode:multiply }
.sleeve-label {
  position:absolute; left:9%; bottom:8%; display:inline-flex; align-items:center; gap:7px;
  min-height:31px; padding:5px 12px; border:1px solid #a899ba; border-radius:4px;
  color:#513967; background:#fcf8f3; box-shadow:0 1px 1px #59446b24;
  font-size:.82rem; font-weight:600; line-height:1.4;
}
.certificate-sleeve:focus-visible { outline:2px solid #62477c; outline-offset:5px }
.certificate-sleeve:active .sleeve-label { background:#f2eaf6; box-shadow:inset 0 1px 2px #59446b21 }
@supports (animation-timeline:view()) {
  @media (prefers-reduced-motion:no-preference) {
    .folio-paper { animation:folio-withdraw linear both; animation-timeline:--certificate-entry; animation-range:entry 25% entry 90% }
    @keyframes folio-withdraw { from { translate:0 13%; rotate:-4deg } to { translate:0 -5%; rotate:0deg } }
  }
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .certificate-sleeve:hover .folio-paper,.certificate-sleeve:focus-visible .folio-paper { transform:translate(1%,-4%) rotate(8deg) }
}
@media (prefers-reduced-motion:reduce) { .folio-paper { transition:none } }
.certificate-scope { margin:clamp(24px,6vw,40px) 0 0; border-top:1px solid #d3cbd5 }
.certificate-scope div { display:grid; grid-template-columns:4.6rem 1fr; gap:10px; padding:13px 0; border-bottom:1px solid #dfd8df; align-items:baseline }
.certificate-scope dt { font-size:.82rem; font-weight:700; color:#533d60 }
.certificate-scope dd { margin:0; color:#4e4552; font-size:.9rem; line-height:1.65 }
.member-benefit .related-pledge { margin-top:16px }
@media(min-width:700px) {
  .certificate-feature { grid-template-columns:minmax(0,1fr) minmax(0,1.05fr) }
  .certificate-sleeve { justify-self:end; width:100% }
}
.cert-result { display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; margin-top:16px }
.related-pledge { display:flex; grid-column:1/-1; width:fit-content; margin-inline-start:auto; min-height:44px; align-items:center; gap:.45rem; font-size:.8rem; font-weight:550; color:inherit; text-decoration:underline; text-decoration-color:color-mix(in srgb,currentColor 42%,transparent); text-underline-offset:5px; white-space:nowrap }
.related-pledge:hover { text-decoration-color:currentColor }
.speech-portraits { padding-top:20px; border-bottom:1px solid #9683a6; background:linear-gradient(153deg,#f2edf6,#dad0e6) }
.speech-portraits img { display:block; margin:auto; width:min(76%,350px); aspect-ratio:1.08; height:auto; object-fit:cover; object-position:center top }
.speech-panel .reading { width:min(calc(100% - 40px),33rem) }
.speech-panel h2 { margin:0 0 14px; font-size:1.22rem }
.speech-panel .prose p { font-size:.94rem; line-height:1.78 }
.pledge-panel + .pledge-panel { border-top:1px solid var(--hair) }
.speech-panel section + section { border-top:1px solid var(--hair); margin-top:34px; padding-top:25px }
.cert-fields { margin:24px 0 30px; border-top:1px solid var(--hair); padding-top:12px }
.cert-fields legend { padding:0 10px 0 0; color:var(--deep); font-weight:730 }
.cert-fields label { margin-top:14px }
.cert-fields small { font-weight:450; color:var(--muted) }
.cert-pair { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr)); gap:0 14px }
.cert-terms { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,8.5rem),1fr)); gap:6px 12px; margin-top:10px }
.cert-terms label { display:flex; align-items:center; gap:8px; margin:0; min-height:44px; font-weight:550 }
.cert-terms input { width:18px; height:18px; min-height:0; margin:0; padding:0; accent-color:var(--violet) }
.certificate-page .quiet-link { background:transparent; border:0; padding:0 }
#cert-status { margin-top:14px; font-size:.88rem; color:var(--deep) }
.cert-result[hidden] { display:none }
.cert-result a { display:inline-flex; align-items:center; min-height:44px; font-weight:650; color:var(--deep); text-decoration:underline; text-underline-offset:3px }
.folio-label {
  margin:0;
  font-size:.79rem;
  font-weight:700;
  color:#5d4777;
  letter-spacing:.01em;
}
.intro-lead, .board-question {
  font-size:clamp(1.34rem,4.9vw,1.75rem);
  line-height:1.45;
  letter-spacing:-.04em;
  font-weight:680;
  text-wrap:balance;
}
.intro-lead { max-width:21em; margin:20px 0 16px }
.intro-copy, .story-copy > span {
  color:#554b61;
  line-height:1.65;
  font-size:.94rem;
}
.intro-copy { max-width:33em; margin-top:20px }
.section-intent {
  margin-top:14px;
  max-width:32em;
  color:#594f63;
  font-size:.94rem;
  line-height:1.7;
}
.quiet-link {
  display:inline-flex;
  gap:7px;
  align-items:center;
  min-height:44px;
  margin-top:12px;
  color:#57406e;
  font-size:.86rem;
  font-weight:650;
}
#home-board,#home-speeches { font-size:.94rem; text-decoration:underline; text-underline-offset:.2em; text-decoration-thickness:1px }
.story-list { list-style:none; margin:22px 0 0; padding:0 }
.story-list li + li { border-top:1px solid var(--rule) }
.story-link {
  display:grid;
  width:100%; text-align:left; color:inherit;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:clamp(12px,3.5vw,24px);
  align-items:start;
  padding:34px 0;
}
.story-link svg { margin-top:4px; color:#6b577e }
.story-number {
  display:grid;
  min-width:1.2em;
  line-height:1;
  gap:4px;
  color:#79628f;
  font:var(--pledge-digit-weight) 1.95rem/1 var(--pledge-digits);
  font-variant-numeric:lining-nums tabular-nums;
}
.story-number small { color:#604d74; font:550 .65rem/1.2 var(--site-sans) }
.story-copy strong {
  display:block;
  margin-bottom:8px;
  font-size:clamp(1.07rem,3.7vw,1.23rem);
  line-height:1.4;
  letter-spacing:-.045em;
}
.story-copy > span { display:block; max-width:33em; font-size:.88rem }
.story-section { padding-bottom:clamp(50px,10vw,80px) }
.board-question { margin:0 }
.board-copy .section-intent { color:#dfd7e5 }
.board-copy .quiet-link { position:relative; z-index:1; margin-top:3px; color:#f4eafa }
.board-copy .quiet-link:focus-visible { outline-color:#dfb9ff }
.proposal-wheel {
  --bleed:max(20px,calc((100cqw - 680px) / 2));
  margin:0 0 0 clamp(22px,8%,54px);
}
@media (max-width:340px) {
  .proposal-wheel { --bleed:16px }
}
.proposal-reel {
  display:grid;
  gap:.35rem;
  margin-inline-end:calc(0px - var(--bleed));
  padding:1.6rem var(--bleed) 1.6rem 0;
  list-style:none;
  overflow:hidden;
}
.proposal-reel li {
  position:relative;
  isolation:isolate;
  display:grid;
  align-content:center;
  min-height:3.82305rem;
  padding:.25rem .85rem;
  color:#f7f2fb;
  font-size:.9rem;
  font-weight:580;
  line-height:1.4;
  transform-origin:left center;
}
.proposal-reel li::before {
  content:'';
  position:absolute;
  inset:0 calc(-55% - 1.8 * var(--bleed)) 0 0;
  z-index:-1;
  background:linear-gradient(110deg,#504557,#362f3d);
  border:1px solid rgb(231 216 243 / 18%);
  border-left:2px solid #b3a0c3;
  border-radius:5px 0 0 5px;
}
.proposal-examples { list-style:none; padding:0; margin:12px 0 24px }
.proposal-examples li { padding:15px 0; line-height:1.5; border-bottom:1px solid var(--hair) }
.proposal-meta { display:block; font-size:.68rem; line-height:1.4; font-weight:500; color:#d2c7d9 }
.proposal-reel .proposal-text, .proposal-reel .proposal-meta { white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.proposal-examples .proposal-meta { margin-top:3px; color:#685a74; font-size:.78rem }
.proposal-examples .proposal-text { overflow-wrap:anywhere }
.proposal-form { margin:24px 0 36px }
.proposal-form .form-caption { font-size:.85rem; color:#695876; margin-bottom:18px }
.proposal-form label { margin-top:16px }
.proposal-form .hint { margin-top:6px }
.proposal-form [role=status]:not(:empty) { padding:12px 0; color:#523571; font-weight:630 }
@media (min-width:650px) {
  .board-layout { display:grid; grid-template-columns:2fr 3fr; align-items:center; gap:22px }
  .proposal-wheel { margin:0 }
}
@media (max-width:649px) {
  .proposal-wheel:has([data-orbit]) { margin-top:-18px }
}
.proposal-reel[data-orbit] {
  display:block;
  position:relative;
  height:21.75rem;
  padding:0;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 19%,#000 81%,transparent);
  mask-image:linear-gradient(to bottom,transparent,#000 19%,#000 81%,transparent);
}
.proposal-reel[data-orbit] li {
  position:absolute;
  top:50%;
  inset-inline:0 var(--bleed);
  min-height:3.759525rem;
  padding:.3rem 1.15rem;
  font-size:clamp(1.12rem,4.6vw,1.24rem);
  font-weight:650;
  will-change:transform,opacity;
}
.proposal-reel[data-orbit] li::before {
  box-shadow:0 2px 4px rgb(13 10 18 / 22%), 0 5px 12px rgb(13 10 18 / 25%);
}
.pledge-directory { padding:clamp(80px,12vw,120px) 0 clamp(76px,11vw,112px) }
.pledge-directory h2 { margin:0 0 16px; font-size:clamp(1.45rem,5vw,2rem); letter-spacing:-.055em }
.directory-intro {max-width:31em; margin:0 0 clamp(32px,5vw,44px); color:#65576f; font-size:.95rem; line-height:1.8}
.category-picker { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px 8px }
.category-picker button { display:grid; justify-items:center; align-content:start; gap:6px; min-height:120px; padding:14px 6px; border:1px solid transparent; border-radius:8px; background:rgb(255 255 255 / 45%); color:#513965; font-size:.9rem; font-weight:650 }
.category-picker .category-mark {width:48px; height:48px}
.category-picker small {max-width:10em; color:#7b6e85; font-size:.7rem; font-weight:450; line-height:1.6; text-wrap:balance; word-break:keep-all}
.category-mark { display:block; width:74px; height:74px; object-fit:contain }
.category-picker button[aria-pressed=true] { border-color:#856898; background:#f8f5fb }
#home-category-list { margin-top:20px; border-top:1px solid var(--rule) }
.booklet-block { display:flex; justify-content:space-between; align-items:baseline; gap:12px; border-top:1px solid var(--rule); padding:22px 0 32px }
.booklet-block h2 { margin:0; font-size:1.08rem }
.booklet-block span { font-size:.8rem; color:#62546d }
@media(min-width:700px) { .category-picker { grid-template-columns:repeat(6,minmax(0,1fr)) } }
.home-reading .front-foot { border-top:1px solid var(--rule); padding:20px 0 32px }
@media (hover:hover) {
  .quiet-link:hover, .story-link:hover strong {
    text-decoration:underline;
    text-underline-offset:4px;
  }
}
@media (prefers-reduced-motion:no-preference) {
  @supports (animation-timeline:view()) {
    .story-number {
      animation:folio-rise linear both;
      animation-timeline:view();
      animation-range:entry 0% entry 100%;
    }
    @keyframes folio-rise { from { transform:translateY(5px) } to { transform:translateY(0) } }
  }
}
