:root {
    --ink: #173b36;
    --ink-deep: #0d2a27;
    --teal: #225048;
    --teal-soft: #d9e8e1;
    --cream: #f6f1e7;
    --paper: #fffdf8;
    --coral: #df6d50;
    --coral-dark: #bd4f38;
    --gold: #e9b75a;
    --sage: #7fa08f;
    --muted: #637570;
    --line: #d8ddd7;
    --shadow: 0 24px 60px rgba(13, 42, 39, 0.12);
    --small-shadow: 0 10px 30px rgba(13, 42, 39, 0.08);
}

* {
    box-sizing: border-box;
}

html {
    font-size: 16px;
}

/* Ohio's complete, editable Voting Plan. Official content and Friend-entered
   content share one printable sheet but remain distinct in storage. */
.ohio-voting-plan-page {
    background: #f1f6f3;
}

.ohio-plan-hero {
    padding-bottom: 1.35rem;
}

.ohio-plan-methods {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .7rem;
    margin-top: 1.4rem;
    margin-bottom: 1.25rem;
    padding: .5rem;
    border: 1px solid rgba(22, 67, 60, .18);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 12px 30px rgba(20, 57, 52, .08);
}

.ohio-plan-methods label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    cursor: pointer;
    padding: .82rem 1rem;
    border-radius: .72rem;
    color: var(--ink-deep);
    font-weight: 900;
    text-align: center;
    text-decoration: none;
}

.ohio-plan-methods label:hover,
.ohio-plan-methods label:focus-within {
    background: var(--cream);
}

.ohio-plan-methods label:has(input:checked) {
    color: #fff;
    background: var(--teal);
    box-shadow: 0 7px 18px rgba(16, 62, 55, .22);
}

.ohio-plan-method-picker { margin-block: 1.25rem; }
.ohio-plan-method-picker fieldset { min-width: 0; margin: 0; padding: 1.25rem; border: 2px solid #7fa08f; border-radius: 1rem; background: #fffdf8; }
.ohio-plan-method-picker legend { padding-inline: .5rem; color: #173b36; font-size: 1.5rem; font-weight: 800; }
.ohio-plan-method-picker .ohio-plan-methods { margin-top: .75rem; }
.ohio-plan-method-actions { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.ohio-plan-methods input[type="radio"] { width: 1.5rem; height: 1.5rem; flex: 0 0 1.5rem; margin: 0; accent-color: #173b36; }
.ohio-plan-methods input:focus-visible { outline: 3px solid #e9b75a; outline-offset: 4px; }

.ohio-plan-message {
    margin-bottom: 1rem;
    border-radius: .8rem;
}

.ohio-plan-update {
    display: flex;
    gap: .5rem 1rem;
    align-items: baseline;
    margin-bottom: 1rem;
    padding: .9rem 1rem;
    border: 2px solid #d49d31;
    border-radius: .8rem;
    color: #4f3910;
    background: #fff2c9;
}

.ohio-plan-sheet {
    margin-bottom: 1.25rem;
    overflow: hidden;
    border: 1px solid rgba(23, 59, 54, .22);
    border-radius: 1.2rem;
    background: #fffefb;
    box-shadow: 0 22px 60px rgba(15, 54, 48, .12);
}

.ohio-plan-document-heading {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    align-items: flex-start;
    padding: 1.7rem 2rem 1.35rem;
    color: #fff;
    background:
        linear-gradient(120deg, rgba(255, 255, 255, .05), transparent 55%),
        var(--ink-deep);
}

.ohio-plan-document-heading span,
.ohio-plan-facts span,
.ohio-plan-section-heading small {
    display: block;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.ohio-plan-document-heading h2 {
    margin: .2rem 0 .15rem;
    color: #fff;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(1.9rem, 4vw, 3.15rem);
    font-weight: 500;
}

.ohio-plan-document-heading p {
    margin: 0;
}

.ohio-plan-revision {
    min-width: 9rem;
    padding: .72rem .8rem;
    border: 1px solid rgba(255, 255, 255, .38);
    border-radius: .7rem;
    text-align: center;
}

.ohio-plan-revision strong,
.ohio-plan-revision small {
    display: block;
}

.ohio-plan-revision small {
    margin-top: .2rem;
    color: rgba(255, 255, 255, .78);
}

.ohio-plan-revision.is-unsaved { color: #603b08; background: #fff0c2; border: 2px solid #e6ac38; }
.ohio-plan-revision.is-unsaved small { color: #603b08; }
#plan-save-errors { border: 2px solid #aa3526; padding: 1rem 1.25rem; font-size: 1.1rem; }
#plan-save-errors ul { margin-block: .75rem; }
#plan-method-status { margin: 1rem 0 0; font-weight: 700; }
#open-selected-plan.needs-opening { color: #3f2b08; background: #f5c65d; border-color: #8a5b12; box-shadow: 0 0 0 4px #fff0c2, 0 5px 15px rgba(83, 53, 10, .2); }
#open-selected-plan.needs-opening:hover { background: #ffda85; }
#plan-method-status.plan-method-mismatch { padding: .8rem 1rem; border-left: 4px solid #a46b10; background: #fff3d1; color: #573909; }
.ohio-plan-sheet input.input-validation-error,
.ohio-plan-sheet input.plan-date-outside-site { border: 3px solid #b33224; background: #fff1ed; outline: 2px solid #f0c4b9; outline-offset: 2px; }
.ohio-plan-sheet .field-validation-error { display: block; margin-top: .65rem; padding: .65rem; color: #8b231b; background: #fff1ed; font-size: 1rem; font-weight: 700; }
.plan-site-schedule { margin-top: 1rem; padding: 1rem; border-left: 5px solid #d49d31; background: #fff5d7; }
.plan-site-schedule strong { display: block; font-size: 1.15rem; }
.plan-site-schedule p { margin: .6rem 0; }

.ohio-plan-facts {
    display: grid;
    grid-template-columns: 1.2fr .9fr 1fr;
    border-bottom: 1px solid rgba(23, 59, 54, .18);
    background: #edf5f1;
}

.ohio-plan-facts article {
    padding: 1rem 1.2rem;
}

.ohio-plan-facts article + article {
    border-left: 1px solid rgba(23, 59, 54, .18);
}

.ohio-plan-facts span {
    margin-bottom: .32rem;
    color: var(--coral-dark);
}

.ohio-plan-facts strong,
.ohio-plan-facts small {
    display: block;
}

.ohio-plan-facts small {
    margin-top: .22rem;
    color: var(--teal);
}

.ohio-plan-section {
    padding: 1.55rem 2rem;
    border-bottom: 1px solid rgba(23, 59, 54, .16);
}

.ohio-plan-section-heading {
    display: flex;
    gap: .9rem;
    align-items: center;
    margin-bottom: 1.1rem;
}

.ohio-plan-section-heading > span {
    display: grid;
    width: 2.65rem;
    height: 2.65rem;
    flex: 0 0 2.65rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--coral-dark);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.35rem;
    font-weight: 800;
}

.ohio-plan-section-heading.compact > span {
    color: var(--ink-deep);
    background: var(--gold);
}

.ohio-plan-section-heading small {
    color: var(--coral-dark);
}

.ohio-plan-section-heading h2 {
    margin: .08rem 0 0;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(1.45rem, 3vw, 2.15rem);
    font-weight: 500;
}

.ohio-plan-grid {
    display: grid;
    gap: .85rem 1rem;
}

.ohio-plan-grid.two-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ohio-plan-grid .wide {
    grid-column: 1 / -1;
}

.ohio-plan-grid label > span,
.ohio-plan-restore label {
    display: block;
    margin-bottom: .32rem;
    color: var(--ink-deep);
    font-weight: 900;
}

.ohio-plan-grid input,
.ohio-plan-notes textarea,
.ohio-plan-restore select {
    width: 100%;
    min-height: 3rem;
    padding: .65rem .75rem;
    border: 1px solid rgba(23, 59, 54, .3);
    border-radius: .55rem;
    color: var(--ink-deep);
    background: #fff;
    font: inherit;
}

.ohio-plan-notes textarea {
    min-height: 9rem;
    resize: vertical;
}

.ohio-plan-fixed-date {
    display: flex;
    min-height: 3rem;
    align-items: center;
    padding: .65rem .75rem;
    border: 1px solid rgba(23, 59, 54, .2);
    border-radius: .55rem;
    color: var(--ink-deep);
    background: #edf5f1;
    font-size: 1.05rem;
}

.ohio-plan-fixed-date-note {
    display: block;
    margin-top: .3rem;
    color: var(--teal);
}

.ohio-plan-official-line {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem 1.2rem;
    margin-top: 1rem;
    padding: .75rem .9rem;
    border-left: 5px solid var(--gold);
    background: #fff8e5;
}

.ohio-return-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.ohio-return-options label {
    display: flex;
    gap: .65rem;
    padding: .9rem;
    border: 1px solid rgba(23, 59, 54, .25);
    border-radius: .75rem;
    cursor: pointer;
    background: #fff;
}

.ohio-return-options label:has(input:checked) {
    outline: 3px solid rgba(62, 133, 113, .35);
    border-color: var(--teal);
    background: #edf7f1;
}

.ohio-return-options input {
    width: 1.2rem;
    height: 1.2rem;
    flex: 0 0 1.2rem;
    margin-top: .15rem;
}

.ohio-return-options strong,
.ohio-return-options small,
.ohio-return-options em {
    display: block;
}

.ohio-return-options small,
.ohio-return-options em {
    margin-top: .35rem;
    color: var(--teal);
    font-size: .88rem;
}

.ohio-return-destinations {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
    margin-top: .8rem;
}

.ohio-return-destinations p {
    margin: 0;
    padding: .7rem .8rem;
    border-left: 4px solid var(--gold);
    background: #fff8e5;
}

.ohio-plan-help,
.ohio-plan-contact {
    margin: 0 0 1rem;
    padding: .75rem .9rem;
    border-radius: .6rem;
    background: #eef6f2;
}

.ohio-plan-contact {
    margin: 1rem 0 0;
}

.ohio-plan-requirements ul,
.ohio-plan-sources ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ohio-plan-requirements li {
    display: flex;
    gap: .75rem;
    padding: .7rem 0;
    border-top: 1px solid rgba(23, 59, 54, .12);
}

.ohio-plan-requirements li:first-child {
    border-top: 0;
}

.ohio-plan-requirements li > span {
    color: var(--teal);
    font-size: 1.55rem;
    line-height: 1;
}

.ohio-plan-requirements p,
.ohio-plan-contingencies p {
    margin: .25rem 0 0;
    color: var(--teal);
}

.ohio-plan-contingencies {
    background: #fff6e1;
}

.ohio-plan-contingencies article {
    padding: .9rem 1rem;
    border: 1px solid rgba(173, 112, 17, .28);
    border-radius: .7rem;
    background: rgba(255, 255, 255, .65);
}

.ohio-plan-contingencies article span,
.ohio-plan-contingencies article a {
    display: inline-block;
    margin-top: .45rem;
    margin-right: 1rem;
    font-weight: 800;
}

.ohio-plan-sources {
    padding: 1.15rem 2rem;
    color: #dcebe5;
    background: var(--ink-deep);
}

.ohio-plan-sources h2 {
    margin-bottom: .25rem;
    color: #fff;
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 500;
}

.ohio-plan-sources p {
    margin: 0 0 .7rem;
}

.ohio-plan-sources li {
    margin-top: .35rem;
}

.ohio-plan-sources a {
    color: #fff;
    font-weight: 800;
}

.ohio-plan-sources small {
    margin-left: .45rem;
    color: #b8d1c7;
}

.ohio-plan-save {
    display: flex;
    gap: 1rem;
    align-items: center;
    padding: 1.15rem 2rem;
    background: #fff;
}

.ohio-plan-save span {
    color: var(--teal);
}

.ohio-plan-tools {
    margin-bottom: 2rem;
    padding: 1.2rem;
    border: 1px solid rgba(23, 59, 54, .2);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .9);
}

.ohio-plan-tool-buttons,
.ohio-plan-exits,
.ohio-plan-restore {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    align-items: end;
}

.ohio-plan-tool-buttons form {
    margin: 0;
}

.ohio-plan-restore {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(23, 59, 54, .15);
}

.ohio-plan-restore label {
    flex: 0 0 100%;
    margin: 0;
}

.ohio-plan-restore select {
    width: min(28rem, 100%);
}

.ohio-plan-exits {
    justify-content: flex-end;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(23, 59, 54, .15);
}

@media (max-width: 760px) {
    .ohio-plan-methods,
    .ohio-plan-facts,
    .ohio-return-options,
    .ohio-return-destinations,
    .ohio-plan-grid.two-columns {
        grid-template-columns: 1fr;
    }

    .ohio-plan-methods {
        gap: .35rem;
    }

    .ohio-plan-facts article + article {
        border-top: 1px solid rgba(23, 59, 54, .18);
        border-left: 0;
    }

    .ohio-plan-document-heading,
    .ohio-plan-update,
    .ohio-plan-save {
        align-items: stretch;
        flex-direction: column;
    }

    .ohio-plan-document-heading,
    .ohio-plan-section,
    .ohio-plan-sources,
    .ohio-plan-save {
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .ohio-plan-revision {
        width: 100%;
    }

    .ohio-plan-tool-buttons,
    .ohio-plan-tool-buttons form,
    .ohio-plan-tool-buttons button,
    .ohio-plan-exits,
    .ohio-plan-exits .button {
        width: 100%;
    }
}

body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
}

button,
input,
select {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

h1,
h2,
h3 {
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.page-shell {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
}

.narrow-shell {
    width: min(760px, calc(100% - 48px));
}

.demo-ribbon {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 29px;
    padding: 5px 16px;
    color: #fff8ef;
    background: var(--ink-deep);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.demo-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--coral);
    box-shadow: 0 0 0 3px rgba(223, 109, 80, 0.18);
}

.site-header {
    position: relative;
    z-index: 20;
    border-bottom: 1px solid rgba(23, 59, 54, 0.09);
    background: rgba(255, 253, 248, 0.96);
}

.header-inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 78px;
}

.header-state-label {
    position: absolute;
    left: 50%;
    color: var(--muted);
    font-size: 1.56rem;
    font-weight: 900;
    letter-spacing: 0.2em;
    transform: translateX(-50%);
}

.brand {
    display: inline-flex;
    align-items: baseline;
    min-width: 0;
    text-decoration: none;
    font-size: 1.45rem;
    font-weight: 900;
    letter-spacing: -0.055em;
    white-space: nowrap;
}

/* Circle Leader invitation review ------------------------------------------- */
.invitation-management-hero {
  padding: 2.6rem 0 2.2rem;
  background:
    radial-gradient(circle at 88% 15%, rgba(239, 178, 79, 0.2), transparent 25rem),
    var(--paper);
}

.invitation-management-hero h1 {
  max-width: 900px;
  margin: 0.55rem 0 0.8rem;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.35rem, 5vw, 4.8rem);
  line-height: 0.98;
}

.invitation-management-hero > .page-shell > p:not(.eyebrow) {
  max-width: 760px;
  color: var(--muted);
  font-size: 1.08rem;
  line-height: 1.65;
}

.invitation-back-link,
.invitation-circle-return {
  color: var(--teal);
  font-weight: 800;
  text-decoration: none;
}

.replacement-link-panel {
  margin-top: 1.5rem;
}

.invitation-management-main {
  padding: 3rem 0 5rem;
  background: #f3f1e9;
}

.invitation-management-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.75fr);
  gap: 1.5rem;
  align-items: start;
}

.invitation-management-grid main {
  display: grid;
  gap: 1.25rem;
}

.invitation-status-card,
.invitation-review-card,
.invitation-actions-card {
  border: 1px solid rgba(12, 67, 61, 0.14);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(25, 45, 40, 0.08);
}

.invitation-status-card {
  padding: 1.5rem 1.7rem;
  border-left-width: 9px;
}

.invitation-status-card h2,
.invitation-review-card h2,
.invitation-actions-card h2 {
  margin: 0.25rem 0 0.55rem;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
}

.invitation-status-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.invitation-status-label {
  color: var(--teal);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.invitation-status-issued { border-left-color: #e9b75a; }
.invitation-status-provisional { border-left-color: #6faac0; }
.invitation-status-accepted { border-left-color: #38d978; }
.invitation-status-declined { border-left-color: #242a28; }
.invitation-status-closed { border-left-color: #9aa39e; }

.invitation-name-alert {
  display: grid;
  gap: 0.3rem;
  padding: 1rem 1.2rem;
  border: 2px solid #e9b75a;
  border-radius: 16px;
  color: var(--ink);
  background: #fff5d9;
}

.invitation-review-card,
.invitation-actions-card {
  padding: 1.6rem;
}

.invitation-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 1rem 0 1.4rem;
  border-top: 1px solid #dfe3df;
}

.invitation-facts div {
  padding: 0.9rem 0;
  border-bottom: 1px solid #dfe3df;
}

.invitation-facts div:nth-child(odd) {
  padding-right: 1rem;
}

.invitation-facts dt {
  color: #68746f;
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.invitation-facts dd {
  margin: 0.3rem 0 0;
  color: var(--ink);
  font-weight: 750;
}

.invitation-message-review {
  padding: 1rem 1.15rem;
  border-radius: 14px;
  background: #f5eee3;
}

.invitation-message-review span {
  color: var(--coral-dark);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.invitation-message-review p {
  margin: 0.45rem 0 0;
  color: var(--ink);
  line-height: 1.55;
}

.invitation-actions-card {
  position: sticky;
  top: 1.25rem;
}

.invitation-action-block {
  padding: 1.1rem 0;
  border-top: 1px solid #dfe3df;
}

.invitation-action-block h3 {
  margin: 0 0 0.4rem;
  color: var(--ink);
}

.invitation-action-block p {
  margin: 0 0 1rem;
  color: var(--muted);
  line-height: 1.55;
}

.invitation-danger-block {
  margin-top: 0.25rem;
  border-top-color: rgba(173, 61, 42, 0.35);
}

.invitation-circle-return {
  display: inline-block;
  margin-top: 0.8rem;
}

.circle-seat-detail a,
.invitation-history-row a {
  color: var(--teal);
  font-weight: 800;
}

@media (max-width: 760px) {
  .invitation-management-grid,
  .invitation-facts {
    grid-template-columns: 1fr;
  }

  .invitation-actions-card {
    position: static;
  }

  .invitation-facts div:nth-child(odd) {
    padding-right: 0;
  }
}

/* Friend voting plan ------------------------------------------------------ */

.voting-plan-page {
    background: #f5f0e5;
}

.voting-plan-hero {
    padding: 4rem 0 2.25rem;
    background:
        radial-gradient(circle at 90% 15%, rgba(233, 183, 90, .22), transparent 24rem),
        linear-gradient(135deg, #fffdf8, #edf3ee);
}

.voting-plan-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.voting-plan-heading h1 {
    max-width: 18ch;
    margin-bottom: .8rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.7rem, 6vw, 5.5rem);
    font-weight: 500;
}

.voting-plan-heading h1 em {
    color: var(--coral-dark);
    font-weight: 500;
}

.voting-plan-heading > div:first-child > p:last-child {
    max-width: 50rem;
    margin-bottom: 0;
    font-size: clamp(1.35rem, 2vw, 1.65rem);
    font-weight: 700;
    line-height: 1.4;
}

.voting-plan-heading-actions,
.voting-option-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1rem;
}

.voting-plan-heading-actions {
    justify-content: flex-end;
    padding-bottom: .5rem;
}

.voting-plan-missing {
    margin-top: 3rem;
    margin-bottom: 4rem;
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 1px solid rgba(23, 59, 54, .15);
    border-radius: 1.4rem;
    background: #fff;
    box-shadow: var(--small-shadow);
}

.voting-plan-missing p:not(.eyebrow) {
    max-width: 48rem;
}

.voting-plan-private-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-top: 2rem;
    overflow: hidden;
    border: 1px solid rgba(23, 59, 54, .16);
    border-radius: 1rem;
    background: rgba(23, 59, 54, .16);
}

.voting-plan-private-summary article {
    padding: 1.1rem 1.25rem;
    background: #fff;
}

.voting-plan-private-summary span,
.voting-option-card small {
    display: block;
    margin-bottom: .35rem;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .11em;
}

.voting-plan-private-summary p {
    margin: 0;
    font-weight: 750;
}

.voting-option-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    padding-top: 1.25rem;
    padding-bottom: 2rem;
}

.voting-option-card {
    position: relative;
    overflow: hidden;
    padding: clamp(1.4rem, 3vw, 2rem);
    border: 1px solid rgba(23, 59, 54, .14);
    border-top: .5rem solid var(--sage);
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: var(--small-shadow);
}

.voting-option-card.is-open,
.voting-option-card.is-ready {
    border-top-color: #23945a;
}

.voting-option-card.is-future {
    border-top-color: var(--gold);
}

.voting-option-card.is-past {
    border-top-color: var(--coral-dark);
    background: #fff8f4;
}

.voting-option-card.is-check {
    border-top-color: #567c91;
}

.voting-option-card.is-muted {
    border-top-color: #8d9590;
    background: #f4f4f1;
}

.voting-option-card-heading {
    display: flex;
    align-items: center;
    gap: .9rem;
    margin-bottom: 1.25rem;
}

.voting-option-number {
    display: grid;
    flex: 0 0 3rem;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.4rem;
    font-weight: 800;
}

.voting-option-card-heading small,
.voting-option-card-heading h2 {
    margin: 0;
}

.voting-option-card h2 {
    font-size: clamp(1.55rem, 3vw, 2.2rem);
}

.voting-option-card > strong {
    display: block;
    margin-bottom: .75rem;
    font-size: 1.08rem;
}

.voting-option-card > p {
    color: #405752;
}

.voting-plan-caution {
    padding: .7rem .85rem;
    border-left: .3rem solid var(--gold);
    background: #fff7df;
    font-weight: 750;
}

.voting-option-links {
    margin-top: 1.2rem;
}

.voting-option-links > a:not(.button) {
    color: var(--teal);
    font-weight: 800;
}

.voting-plan-fvap,
.voting-plan-source-note {
    margin-bottom: 2rem;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border-radius: 1.2rem;
}

.voting-plan-fvap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    color: #fff;
    background: var(--ink);
}

.voting-plan-fvap .eyebrow,
.voting-plan-fvap h2,
.voting-plan-fvap p {
    color: inherit;
}

.voting-plan-fvap p,
.voting-plan-source-note p {
    max-width: 54rem;
    margin-bottom: 0;
}

.voting-plan-source-note {
    border: 1px solid rgba(23, 59, 54, .15);
    background: #fff;
}

.voting-plan-source-note dl {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: .25rem 1rem;
    margin-bottom: 0;
}

.voting-plan-source-note dt {
    font-weight: 800;
}

.voting-plan-source-note dd {
    margin: 0;
}

@media (max-width: 800px) {
    .voting-plan-heading,
    .voting-plan-fvap {
        align-items: flex-start;
        flex-direction: column;
    }

    .voting-plan-heading-actions {
        justify-content: flex-start;
    }

    .voting-plan-private-summary,
    .voting-option-grid {
        grid-template-columns: 1fr;
    }
}

@media print {
    @page {
        size: letter portrait;
        margin: .45in;
    }

    body.voting-plan-page {
        width: 7.6in;
        min-width: 0;
        max-width: 7.6in;
        margin: 0;
        overflow: visible;
        color: #000;
        background: #fff;
        font-family: Arial, sans-serif;
        font-size: 10pt;
    }

    /*
       Edge's Windows print preview can retain the screen viewport width when
       it calculates "Fit to printable area". Constrain the printable canvas
       to Letter minus the @page margins so a wide monitor cannot force a 26%
       scale or create compositor-shaped white overlays in the preview.
    */
    .voting-plan-page main {
        width: 7.6in;
        min-width: 0;
        max-width: 7.6in;
        overflow: visible;
    }

    .voting-plan-page .site-header,
    .voting-plan-page .site-footer,
    .voting-plan-page .beta-page-context,
    .voting-plan-page .demo-ribbon,
    .voting-plan-page .no-print {
        display: none !important;
    }

    .voting-plan-page .page-shell {
        width: 7.6in;
        max-width: 7.6in;
        margin-right: 0;
        margin-left: 0;
    }

    .voting-plan-hero {
        padding: 0 0 .16in;
        background: #fff;
    }

    .voting-plan-heading h1 {
        max-width: none;
        margin: 0 0 .08in;
        color: #000;
        font-family: Georgia, serif;
        font-size: 24pt;
    }

    .voting-plan-heading h1 em {
        color: #000;
    }

    .voting-plan-private-summary {
        grid-template-columns: repeat(3, 1fr);
        margin-top: .1in;
        border: 1px solid #000;
        border-radius: 0;
        background: #000;
    }

    .voting-plan-private-summary article {
        padding: .08in;
    }

    .voting-option-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: .1in;
        padding: .1in 0;
    }

    .voting-option-card,
    .voting-option-card.is-open,
    .voting-option-card.is-ready,
    .voting-option-card.is-future,
    .voting-option-card.is-past,
    .voting-option-card.is-check,
    .voting-option-card.is-muted {
        break-inside: avoid;
        padding: .12in;
        border: 2px solid #000;
        border-top-width: 5px;
        border-radius: 0;
        color: #000;
        background: #fff;
        box-shadow: none;
    }

    .voting-option-number {
        width: .32in;
        height: .32in;
        flex-basis: .32in;
        color: #fff;
        background: #000;
        font-size: 13pt;
    }

    .voting-option-card h2 {
        font-size: 15pt;
    }

    .voting-option-card > p,
    .voting-option-card small {
        color: #000;
    }

    .voting-plan-caution {
        padding: .05in;
        border: 1px solid #000;
        background: #fff;
    }

    .voting-plan-fvap,
    .voting-plan-source-note {
        break-inside: avoid;
        margin-bottom: .1in;
        padding: .1in;
        border: 1px solid #000;
        border-radius: 0;
        color: #000;
        background: #fff;
    }
}

.brand-logo {
    position: relative;
    display: inline-flex;
    align-items: baseline;
}

.brand-ill {
    color: var(--coral);
}

.brand-bcnu {
    margin-left: 5px;
    color: var(--ink);
}

.brand-mark {
    position: absolute;
    top: -1px;
    right: -11px;
    color: var(--gold);
    font-size: 0.45rem;
}

.brand-location {
    margin-left: 0.75rem;
    color: var(--muted);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: -0.01em;
}

.site-nav {
    display: flex;
    align-items: center;
    gap: 30px;
}

.site-nav a,
.site-nav button {
    text-decoration: none;
    font-size: 0.91rem;
    font-weight: 700;
}

.site-nav a:not(.nav-button):hover {
    color: var(--coral-dark);
}

.nav-button {
    padding: 10px 18px;
    color: white;
    border: 1px solid rgba(5, 28, 25, 0.72);
    border-radius: 7px;
    cursor: pointer;
    background: var(--ink);
    box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.28), 0 7px 18px rgba(13, 42, 39, 0.16);
}

.nav-reset-form {
    display: inline-flex;
    margin: 0;
}

.nav-button:hover {
    background: var(--teal);
}

.nav-button:active {
    transform: translateY(2px);
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.28), 0 2px 5px rgba(13, 42, 39, 0.18);
}

.eyebrow {
    margin-bottom: 18px;
    color: var(--coral);
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.18em;
}

.eyebrow-dark {
    color: var(--coral-dark);
}

.eyebrow-light {
    color: #ffc6b6;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 21px;
    border: 1px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    text-decoration: none;
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.2;
    transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.button:hover {
    transform: translateY(-2px);
}

.button-primary {
    color: white;
    background: var(--ink);
    border-color: rgba(5, 28, 25, 0.72);
    box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.28), 0 8px 18px rgba(13, 42, 39, 0.18);
}

.button-primary:hover {
    background: var(--teal);
    box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.28), 0 11px 24px rgba(13, 42, 39, 0.22);
}

.button-quiet,
.button-outline {
    color: var(--ink);
    border: 1px solid #aab7b2;
    background: rgba(255, 255, 255, 0.68);
    box-shadow: inset 0 -3px 0 rgba(23, 59, 54, 0.15), 0 5px 11px rgba(13, 42, 39, 0.09);
}

.button-quiet:hover,
.button-outline:hover {
    border-color: var(--ink);
    background: rgba(255, 255, 255, 0.55);
}

.button-coral {
    color: white;
    background: var(--coral);
    border-color: rgba(139, 48, 32, 0.72);
    box-shadow: inset 0 -3px 0 rgba(106, 31, 20, 0.3), 0 8px 18px rgba(189, 79, 56, 0.22);
}

.button-coral:hover {
    background: var(--coral-dark);
}

.button-light {
    color: var(--ink);
    background: var(--paper);
    border-color: rgba(23, 59, 54, 0.2);
    box-shadow: inset 0 -3px 0 rgba(23, 59, 54, 0.15), 0 5px 11px rgba(13, 42, 39, 0.1);
}

.button:active,
.button:hover:active {
    transform: translateY(2px);
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.22), 0 2px 5px rgba(13, 42, 39, 0.15);
}

.button:focus-visible,
.nav-button:focus-visible {
    outline: 3px solid var(--gold);
    outline-offset: 3px;
}

.button-wide {
    width: 100%;
}

.button-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.hero-start-button {
    min-height: 58px;
    padding: 16px 32px;
    font-size: 1.08rem;
}

.hero-copy > .eyebrow {
    font-size: calc(0.72rem + 4px);
}

.hero {
    position: relative;
    overflow: hidden;
    padding: 92px 0 98px;
    background:
        radial-gradient(circle at 82% 5%, rgba(223, 109, 80, 0.12), transparent 27%),
        linear-gradient(135deg, #fffdf8 0%, #f7f1e5 100%);
}

.hero::before {
    position: absolute;
    bottom: -65px;
    left: -70px;
    width: 250px;
    height: 250px;
    border: 1px solid rgba(23, 59, 54, 0.07);
    border-radius: 50%;
    content: "";
}

.hero-grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(420px, 0.96fr);
    align-items: center;
    gap: 78px;
}

.hero-copy h1 {
    max-width: 720px;
    margin-bottom: 27px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.5rem, 6.2vw, 5.9rem);
    font-weight: 500;
    letter-spacing: -0.058em;
}

.hero-copy h1 em {
    color: var(--coral);
    font-weight: 500;
}

.hero-lede {
    max-width: 610px;
    margin-bottom: 32px;
    color: #4d625d;
    font-size: 1.2rem;
    line-height: 1.65;
}

.trust-line {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 0 10px;
    margin-top: 30px;
    color: var(--ink);
    font-size: 0.85rem;
}

.trust-line span:last-child {
    grid-column: 2;
    color: var(--muted);
}

.shield-icon {
    display: inline-grid;
    grid-row: 1 / span 2;
    place-items: center;
    width: 29px;
    height: 29px;
    border-radius: 50%;
    color: white;
    background: var(--teal);
    font-size: 0.82rem;
}

.hero-visual {
    position: relative;
    display: grid;
    min-height: 530px;
    place-items: center;
}

.orbit {
    position: absolute;
    border: 1px solid rgba(34, 80, 72, 0.12);
    border-radius: 50%;
}

.orbit-one {
    width: 520px;
    height: 520px;
}

.orbit-two {
    width: 390px;
    height: 390px;
}

.orbit-one::before,
.orbit-two::after {
    position: absolute;
    width: 15px;
    height: 15px;
    border: 5px solid var(--cream);
    border-radius: 50%;
    background: var(--coral);
    content: "";
}

.orbit-one::before {
    top: 72px;
    left: 53px;
}

.orbit-two::after {
    right: 6px;
    bottom: 88px;
    background: var(--gold);
}

.team-preview {
    position: relative;
    z-index: 2;
    width: min(420px, 100%);
    padding: 28px;
    border: 1px solid rgba(23, 59, 54, 0.11);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: var(--shadow);
    transform: rotate(1.25deg);
}

.preview-heading,
.summary-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.preview-label,
.card-kicker {
    display: block;
    margin-bottom: 6px;
    color: var(--muted);
    font-size: 0.66rem;
    font-weight: 850;
    letter-spacing: 0.16em;
}

.preview-heading h2 {
    margin-bottom: 20px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.7rem;
    font-weight: 500;
}

.more-dots {
    color: #93a29d;
    letter-spacing: 0.1em;
}

.compact-list {
    display: grid;
    gap: 3px;
}

.compact-friend {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 12px;
    min-height: 57px;
    padding: 6px 0;
    border-bottom: 1px solid #edf0ed;
}

.compact-name {
    font-size: 0.92rem;
    font-weight: 800;
}

.avatar {
    display: inline-grid;
    flex: 0 0 auto;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    color: white;
    background: var(--teal);
    font-size: 0.76rem;
    font-weight: 850;
    letter-spacing: 0.05em;
}

.avatar-small {
    width: 36px;
    height: 36px;
    font-size: 0.64rem;
}

.compact-friend:nth-child(2) .avatar,
.friend-card:nth-child(2) .avatar {
    background: #b96e54;
}

.compact-friend:nth-child(3) .avatar,
.friend-card:nth-child(3) .avatar {
    background: #567078;
}

.compact-friend:nth-child(4) .avatar,
.friend-card:nth-child(4) .avatar {
    background: #8c816d;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 27px;
    padding: 5px 10px;
    border-radius: 999px;
    white-space: nowrap;
    font-size: 0.7rem;
    font-weight: 800;
}

.status-voted {
    color: #245a48;
    background: #d9efe4;
}

.status-pill.status-voted::before {
    margin-right: 4px;
    content: "✓";
}

.status-plan {
    color: #6a5214;
    background: #f7e6b7;
}

.status-pledged {
    color: #28536b;
    background: #dcebf1;
}

.status-joined {
    color: #705143;
    background: #f3e4dc;
}

.status-waiting {
    color: #6b7471;
    background: #ecefed;
}

.preview-progress {
    margin-top: 22px;
}

.progress-copy {
    display: flex;
    justify-content: space-between;
    margin-bottom: 9px;
    font-size: 0.76rem;
}

.progress-copy span {
    color: var(--muted);
}

.progress-track {
    overflow: hidden;
    width: 100%;
    height: 7px;
    border-radius: 99px;
    background: #e5eae6;
}

.progress-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--coral), var(--gold));
}

.privacy-whisper {
    margin: 16px 0 0;
    color: var(--muted);
    font-size: 0.7rem;
    text-align: center;
}

.promise-strip {
    padding: 60px 0;
    border-top: 1px solid rgba(23, 59, 54, 0.08);
    border-bottom: 1px solid rgba(23, 59, 54, 0.08);
    background: #efe9dd;
}

.promise-grid {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    align-items: end;
    gap: 90px;
}

.promise-grid h2,
.section-heading h2,
.help-copy h2,
.readiness-card h2,
.cta-inner h2 {
    margin-bottom: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3.6vw, 3.3rem);
    font-weight: 500;
}

.promise-grid p:last-child {
    margin-bottom: 0;
    color: #536762;
    font-size: 1.08rem;
    line-height: 1.75;
}

.how-section {
    padding: 105px 0 115px;
}

.centered-heading {
    max-width: 720px;
    margin: 0 auto 54px;
    text-align: center;
}

.step-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.step-card {
    position: relative;
    min-height: 310px;
    padding: 32px 30px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: white;
    box-shadow: var(--small-shadow);
}

.featured-step {
    color: white;
    border-color: var(--teal);
    background: var(--teal);
    transform: translateY(-10px);
}

.step-number {
    color: #9eaaa5;
    font-size: 0.67rem;
    font-weight: 850;
    letter-spacing: 0.14em;
}

.featured-step .step-number {
    color: #cfe0da;
}

.step-icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin: 40px 0 28px;
    border-radius: 50%;
    color: var(--coral-dark);
    background: #f8e6df;
    font-size: 1.45rem;
    font-weight: 300;
}

.featured-step .step-icon {
    color: var(--ink);
    background: var(--gold);
}

.step-card h3 {
    margin-bottom: 13px;
    font-size: 1.28rem;
    letter-spacing: -0.025em;
}

.step-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.92rem;
    line-height: 1.7;
}

.step-card.featured-step p {
    color: #f1f7f4;
}

.help-section {
    padding: 95px 0;
    color: white;
    background: var(--ink-deep);
}

.help-grid {
    display: grid;
    grid-template-columns: 1.04fr 0.96fr;
    align-items: center;
    gap: 100px;
}

.help-copy h2 {
    margin-bottom: 25px;
}

.help-copy > p:not(.eyebrow) {
    max-width: 590px;
    color: #bfd0ca;
    font-size: 1.05rem;
    line-height: 1.75;
}

.text-link {
    display: inline-flex;
    gap: 7px;
    margin-top: 9px;
    color: var(--coral-dark);
    font-size: 0.88rem;
    font-weight: 850;
    text-decoration: none;
}

.light-link {
    color: #ffc6b6;
}

.help-checklist {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.help-checklist div {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 65px;
    padding: 15px 16px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.045);
    font-size: 0.84rem;
    font-weight: 700;
}

.help-checklist span {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 25px;
    height: 25px;
    border-radius: 50%;
    color: var(--ink);
    background: var(--gold);
    font-size: 0.72rem;
}

.help-checklist .ride-item {
    color: #ffd4c8;
    border-color: rgba(223, 109, 80, 0.42);
}

.help-checklist .ride-item span {
    background: var(--coral);
}

.readiness-section {
    padding: 80px 0;
    background: var(--cream);
}

.readiness-card {
    display: grid;
    grid-template-columns: 1.4fr 0.7fr 0.55fr;
    align-items: center;
    gap: 50px;
    padding: 45px 52px;
    border: 1px solid #ddd4c6;
    border-radius: 15px;
    background: var(--paper);
    box-shadow: var(--small-shadow);
}

.readiness-card h2 {
    font-size: 2rem;
}

.readiness-number,
.readiness-change {
    display: flex;
    flex-direction: column;
}

.readiness-number strong {
    color: var(--coral-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.6rem;
    line-height: 1;
}

.readiness-change strong {
    color: var(--teal);
    font-size: 1.45rem;
}

.readiness-number span,
.readiness-change span {
    margin-top: 7px;
    color: var(--muted);
    font-size: 0.75rem;
}

.site-footer {
    padding: 50px 0;
    color: #c9d5d1;
    background: #0a2421;
}

.footer-inner {
    display: grid;
    grid-template-columns: minmax(150px, 0.55fr) minmax(360px, 1.6fr) auto;
    align-items: center;
    gap: 38px;
}

.footer-brand {
    color: white;
    font-weight: 900;
    text-decoration: none;
}

.footer-inner p {
    margin: 5px 0 0;
    font-size: 0.77rem;
}

.footer-feedback {
    padding: 17px 20px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.045);
}

.footer-page-id {
    display: block;
    margin-bottom: 6px;
    color: var(--gold);
    font-size: 0.65rem;
    font-weight: 850;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.footer-feedback p {
    max-width: 620px;
    margin: 0;
    color: #d5dfdc;
    font-size: 0.72rem;
    line-height: 1.55;
}

.footer-email {
    color: white;
    font-weight: 800;
}

.footer-mail-link {
    display: inline-flex;
    gap: 6px;
    margin-top: 8px;
    color: #ffc6b6;
    font-size: 0.7rem;
    font-weight: 800;
    text-decoration: none;
}

.footer-mail-link:hover {
    color: white;
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.footer-feedback-with-portrait {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 104px;
    align-items: center;
    gap: 14px;
    padding: 12px 12px 10px 20px;
}

.footer-uncle-bit {
    align-self: end;
    width: 104px;
    height: auto;
    filter: drop-shadow(0 7px 9px rgba(0, 0, 0, 0.24));
}

.footer-links a,
.footer-credit {
    font-size: 0.76rem;
}

.footer-credit {
    max-width: 18rem;
    color: #a9bbb5;
    line-height: 1.45;
}

.footer-version {
    color: #a9bbb5;
    font-size: 0.76rem;
    font-weight: 400;
}

.footer-link-row {
    display: flex;
    gap: 18px;
}

.footer-links a {
    text-decoration: none;
}

.footer-links a:hover {
    color: white;
}

/* Interior story pages */
.interior-hero {
    padding: 100px 0;
    color: white;
    background:
        radial-gradient(circle at 85% 20%, rgba(223, 109, 80, 0.25), transparent 30%),
        var(--ink-deep);
}

.compact-hero {
    padding: 80px 0;
}

.interior-hero h1,
.plan-header h1 {
    margin-bottom: 25px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 5.4vw, 5rem);
    font-weight: 500;
}

.interior-hero p:last-child,
.plan-header p:last-child {
    margin-bottom: 0;
    color: #c5d3cf;
    font-size: 1.08rem;
    line-height: 1.75;
}

.content-section {
    padding: 95px 0;
    background: var(--paper);
}

.how-steps-section {
    padding-top: 48px;
}

.story-flow {
    max-width: 900px;
}

.story-flow article {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 25px;
    padding: 38px 0;
    border-bottom: 1px solid var(--line);
}

.flow-number {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    color: var(--coral-dark);
    background: #f7e5df;
    font-weight: 850;
}

.story-flow h2 {
    margin-bottom: 12px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
    font-weight: 500;
}

.story-flow h2 a,
.story-flow p a {
    color: var(--teal);
    text-decoration-color: var(--coral);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

.story-flow p a {
    font-weight: 800;
}

.story-flow p {
    max-width: 680px;
    margin-bottom: 0;
    color: var(--muted);
}

.cta-band {
    padding: 70px 0;
    color: white;
    background: var(--coral-dark);
}

.cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
}

.cta-inner .eyebrow {
    margin-bottom: 12px;
    color: #ffe4dc;
}

.cta-inner h2 {
    font-size: 2.5rem;
}

.privacy-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.privacy-grid article {
    padding: 31px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: white;
    box-shadow: var(--small-shadow);
}

.privacy-grid article > span {
    color: var(--coral-dark);
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.13em;
}

.privacy-grid h2 {
    margin: 28px 0 14px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.6rem;
    font-weight: 500;
}

.privacy-grid p {
    margin-bottom: 0;
    color: var(--muted);
}

.concept-note {
    margin-top: 28px;
    padding: 20px 25px;
    border-left: 4px solid var(--gold);
    background: #f4efe5;
    color: #4f625d;
    font-size: 0.9rem;
}

/* Ann's team dashboard */
.dashboard-page,
.dashboard-page main {
    background: #f2eee6;
}

.dashboard-header {
    padding: 60px 0 40px;
    background: #f2eee6;
}

.dashboard-title-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
}

.dashboard-title-row h1 {
    margin-bottom: 10px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.7rem, 4.5vw, 4.3rem);
    font-weight: 500;
}

.dashboard-title-row > div > p:last-child {
    margin-bottom: 0;
    color: var(--muted);
}

.dashboard-content {
    padding: 0 0 95px;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    align-items: start;
    gap: 24px;
}

.dashboard-main {
    display: grid;
    gap: 18px;
}

.card-surface {
    border: 1px solid rgba(23, 59, 54, 0.1);
    border-radius: 14px;
    background: white;
    box-shadow: 0 10px 30px rgba(13, 42, 39, 0.055);
}

.circle-summary {
    padding: 28px 30px;
}

.summary-top h2 {
    margin-bottom: 15px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.75rem;
    font-weight: 500;
}

.progress-number {
    color: var(--coral-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
}

.large-track {
    height: 9px;
}

.circle-summary > p {
    margin: 14px 0 0;
    color: var(--muted);
    font-size: 0.78rem;
}

.friend-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.friend-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 132px;
    padding: 23px;
}

.friend-primary {
    display: flex;
    align-items: center;
    gap: 14px;
}

.friend-primary h2 {
    margin: 0 0 4px;
    font-size: 1.12rem;
}

.relationship {
    color: var(--muted);
    font-size: 0.73rem;
}

.friend-status {
    max-width: 145px;
    text-align: right;
}

.friend-status p {
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 0.67rem;
    line-height: 1.45;
}

.invitation-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding: 27px 30px;
    border: 1px dashed #c6a889;
    border-radius: 14px;
    background: #fff9ef;
}

.invite-person {
    display: flex;
    align-items: center;
    gap: 17px;
}

.invite-person h2 {
    margin: 0 0 7px;
    font-size: 1.22rem;
}

.invite-person p {
    max-width: 480px;
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.77rem;
}

.avatar-dashed {
    color: #9b6a55;
    border: 2px dashed #c6a889;
    background: transparent;
}

.accepted-card {
    border-color: #8bb39e;
    background: #f0f8f3;
}

.accepted-card .avatar {
    color: #245a48;
    background: #d9efe4;
}

.walkthrough-panel {
    position: sticky;
    top: 24px;
    padding: 28px;
}

.walkthrough-panel h2 {
    margin-bottom: 25px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
    font-weight: 500;
}

.walkthrough-panel ol {
    display: grid;
    gap: 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.walkthrough-panel li {
    display: grid;
    grid-template-columns: 31px 1fr;
    gap: 12px;
    color: #6d7c78;
}

.walkthrough-panel li > span {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 1px solid #c9d0cd;
    border-radius: 50%;
    font-size: 0.69rem;
    font-weight: 850;
}

.walkthrough-panel li strong {
    display: block;
    color: var(--ink);
    font-size: 0.83rem;
}

.walkthrough-panel li small {
    display: block;
    margin-top: 4px;
    font-size: 0.69rem;
    line-height: 1.4;
}

.walkthrough-panel .active-step > span {
    color: white;
    border-color: var(--coral);
    background: var(--coral);
}

.concept-callout {
    margin-top: 28px;
    padding: 18px;
    border-radius: 9px;
    color: white;
    background: var(--ink);
}

.concept-callout strong {
    font-size: 0.75rem;
}

.concept-callout p {
    margin: 5px 0 0;
    color: #cad7d3;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 0.95rem;
}

/* Bob invitation */
.invitation-page main {
    min-height: 720px;
    background:
        radial-gradient(circle at 18% 14%, rgba(233, 183, 90, 0.18), transparent 25%),
        radial-gradient(circle at 83% 80%, rgba(223, 109, 80, 0.15), transparent 28%),
        var(--cream);
}

.invitation-stage {
    display: grid;
    min-height: 720px;
    padding: 75px 24px 95px;
    place-items: start center;
}

.invitation-shell {
    width: min(620px, 100%);
    padding: 48px 54px;
    border: 1px solid rgba(23, 59, 54, 0.11);
    border-radius: 20px;
    background: rgba(255, 253, 248, 0.96);
    box-shadow: var(--shadow);
    text-align: center;
}

.invitation-people {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 32px;
}

.avatar-large {
    width: 72px;
    height: 72px;
    border: 6px solid white;
    box-shadow: 0 7px 18px rgba(13, 42, 39, 0.16);
}

.ann-avatar {
    background: var(--coral-dark);
}

.bob-avatar {
    background: #60787d;
}

.relationship-line {
    display: flex;
    align-items: center;
    margin: 0 -2px;
    color: var(--coral-dark);
}

.relationship-line i {
    width: 35px;
    border-top: 1px dashed #baaaa0;
}

.relationship-line b {
    display: grid;
    place-items: center;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    background: #f8e5dd;
    font-size: 0.9rem;
}

.invitation-shell h1 {
    margin-bottom: 24px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.55rem, 6vw, 3.8rem);
    font-weight: 500;
}

.invitation-shell blockquote {
    margin: 0 0 28px;
    padding: 22px 24px;
    border-left: 3px solid var(--gold);
    color: #526560;
    background: #f4efe5;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.04rem;
    font-style: italic;
    line-height: 1.65;
    text-align: left;
}

.invitation-promise {
    display: flex;
    justify-content: center;
    gap: 17px;
    margin-bottom: 27px;
    color: var(--muted);
    font-size: 0.68rem;
}

.invitation-promise div {
    display: flex;
    align-items: center;
    gap: 5px;
}

.invitation-promise span {
    color: var(--teal);
}

.decline-link {
    display: inline-block;
    margin-top: 16px;
    color: var(--muted);
    font-size: 0.8rem;
    font-weight: 700;
}

.fine-print {
    margin: 28px auto 0;
    max-width: 440px;
    color: #84918d;
    font-size: 0.68rem;
}

.welcome-shell {
    max-width: 560px;
}

.success-mark {
    display: grid;
    place-items: center;
    width: 70px;
    height: 70px;
    margin: 0 auto 26px;
    border-radius: 50%;
    color: white;
    background: var(--teal);
    box-shadow: 0 10px 25px rgba(34, 80, 72, 0.2);
    font-size: 1.65rem;
}

.welcome-lede {
    max-width: 390px;
    margin: -7px auto 31px;
    color: var(--muted);
    font-size: 1.03rem;
}

.pledge-question {
    margin: 0 0 24px;
    padding: 25px;
    border-radius: 12px;
    background: #f2eee5;
}

.pledge-question h2 {
    margin-bottom: 7px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
    font-weight: 500;
}

.pledge-question p,
.saved-plan-summary p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.78rem;
}

.saved-plan-summary {
    margin-bottom: 24px;
    padding: 24px;
    border-radius: 12px;
    background: #f6f0df;
}

.saved-plan-summary p {
    margin-top: 10px;
}

.identity-note {
    margin-top: 31px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
    text-align: left;
}

.identity-note strong {
    font-size: 0.72rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.identity-note p {
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 0.74rem;
}

/* Voting plan */
.plan-page,
.plan-page main {
    background: #f2eee6;
}

.plan-header {
    padding: 72px 0 52px;
    color: white;
    background: var(--ink-deep);
}

.plan-header h1 {
    margin-bottom: 16px;
    font-size: clamp(2.8rem, 5vw, 4.4rem);
}

.plan-content {
    padding: 0 0 100px;
    background: #f2eee6;
}

.plan-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(310px, 0.85fr);
    align-items: start;
    gap: 24px;
    transform: translateY(28px);
}

.plan-card,
.help-menu {
    padding: 36px;
}

.plan-card h2,
.help-menu h2 {
    margin-bottom: 27px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
    font-weight: 500;
}

.plan-form {
    display: grid;
}

.plan-form > label:not(.check-row) {
    margin: 2px 0 8px;
    font-size: 0.78rem;
    font-weight: 800;
}

.plan-form select {
    width: 100%;
    height: 52px;
    margin-bottom: 19px;
    padding: 0 14px;
    color: var(--ink);
    border: 1px solid #b9c3be;
    border-radius: 8px;
    outline: 0;
    background: #fffefa;
}

.plan-form select:focus {
    border-color: var(--teal);
    box-shadow: 0 0 0 3px rgba(34, 80, 72, 0.12);
}

.check-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 3px 0 24px;
    padding: 17px;
    border-radius: 8px;
    cursor: pointer;
    background: #f1eee7;
}

.check-row input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--teal);
}

.check-row strong,
.check-row small {
    display: block;
}

.check-row strong {
    font-size: 0.8rem;
}

.check-row small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 0.7rem;
}

.field-error,
.validation-summary {
    color: #a83d2b;
    font-size: 0.73rem;
}

.help-menu > a {
    display: grid;
    grid-template-columns: 34px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 16px 0;
    border-top: 1px solid #e3e7e4;
    text-decoration: none;
}

.help-menu > a > span {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    color: var(--coral-dark);
    background: #f7e8e1;
    font-size: 0.78rem;
}

.help-menu > a strong,
.help-menu > a small {
    display: block;
}

.help-menu > a strong {
    font-size: 0.8rem;
}

.help-menu > a small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 0.67rem;
}

.help-menu > a > b {
    color: #9aa5a1;
}

.demo-link-note {
    margin: 20px 0 0;
    padding: 12px;
    color: var(--muted);
    border-radius: 7px;
    background: #f2eee7;
    font-size: 0.67rem;
    text-align: center;
}

.saved-plan-actions {
    display: grid;
    gap: 11px;
    margin-top: 28px;
    text-align: center;
}

.completion-celebration {
    padding: 20px 5px;
    text-align: center;
}

.confetti-mark {
    display: grid;
    place-items: center;
    width: 75px;
    height: 75px;
    margin: 0 auto 25px;
    border-radius: 50%;
    color: var(--coral-dark);
    background: #f8e7df;
    font-size: 2rem;
}

.completion-celebration p:not(.card-kicker) {
    max-width: 420px;
    margin: 0 auto 27px;
    color: var(--muted);
}

@media (max-width: 980px) {
    .hero-grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .hero-copy {
        max-width: 760px;
    }

    .hero-visual {
        min-height: 490px;
    }

    .promise-grid,
    .help-grid {
        gap: 45px;
    }

    .readiness-card {
        grid-template-columns: 1fr 1fr;
    }

    .readiness-card > div:first-child {
        grid-column: 1 / -1;
    }

    .dashboard-grid,
    .plan-grid {
        grid-template-columns: 1fr;
    }

    .walkthrough-panel {
        position: static;
    }
}

@media (max-width: 760px) {
    .page-shell,
    .narrow-shell {
        width: min(100% - 30px, 1180px);
    }

    .header-inner {
        min-height: 68px;
    }

    .site-nav {
        gap: 12px;
    }

    .site-nav > a:not(.nav-button) {
        display: none;
    }

    .hero {
        padding: 65px 0 75px;
    }

    .hero-copy h1 {
        font-size: clamp(3.1rem, 14vw, 4.3rem);
    }

    .hero-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .hero-visual {
        min-height: 440px;
    }

    .orbit-one {
        width: 420px;
        height: 420px;
    }

    .orbit-two {
        width: 330px;
        height: 330px;
    }

    .team-preview {
        padding: 22px;
    }

    .promise-grid,
    .help-grid,
    .step-grid,
    .privacy-grid {
        grid-template-columns: 1fr;
    }

    .promise-grid {
        gap: 24px;
    }

    .step-grid {
        gap: 14px;
    }

    .featured-step {
        transform: none;
    }

    .help-checklist,
    .friend-cards {
        grid-template-columns: 1fr;
    }

    .readiness-card {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 34px 28px;
    }

    .readiness-card > div:first-child {
        grid-column: auto;
    }

    .footer-inner,
    .dashboard-title-row,
    .cta-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .footer-inner {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .footer-feedback {
        width: 100%;
    }

    .dashboard-title-row {
        display: flex;
    }

    .invitation-card {
        align-items: stretch;
        flex-direction: column;
    }

    .friend-card {
        gap: 20px;
    }

    .invitation-shell {
        padding: 40px 26px;
    }

    .invitation-promise {
        align-items: flex-start;
        flex-direction: column;
        margin-left: 16px;
    }

    .story-flow article {
        grid-template-columns: 50px 1fr;
        gap: 16px;
    }

    .plan-card,
    .help-menu {
        padding: 27px 22px;
    }
}

@media (max-width: 470px) {
    .button-row {
        align-items: stretch;
        flex-direction: column;
    }

    .hero-visual {
        min-height: 405px;
    }

    .team-preview {
        width: calc(100vw - 30px);
        transform: none;
    }

    .compact-friend {
        grid-template-columns: auto 1fr;
    }

    .compact-friend .status-pill {
        grid-column: 2;
        justify-self: start;
        margin-top: -11px;
    }

    .progress-copy {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .friend-card {
        align-items: flex-start;
        flex-direction: column;
    }

    .friend-status {
        max-width: none;
        text-align: left;
    }

    .invite-person {
        align-items: flex-start;
    }

    .invitation-people {
        transform: scale(0.92);
    }
}

/* Account and invitation portals ----------------------------------------- */

textarea {
    font: inherit;
}

.portal-page,
.friend-home-page {
    background: var(--cream);
}

.portal-hero {
    padding: 76px 0 92px;
    background:
        radial-gradient(circle at 82% 16%, rgba(233, 183, 90, 0.18), transparent 28%),
        radial-gradient(circle at 12% 90%, rgba(127, 160, 143, 0.18), transparent 30%),
        var(--cream);
}

.compact-portal-hero {
    min-height: 620px;
}

.portal-shell {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(420px, 0.72fr);
    align-items: center;
    gap: 76px;
}

.single-portal-shell {
    display: block;
    width: min(620px, calc(100% - 48px));
}

.portal-copy h1,
.portal-card h1 {
    margin-bottom: 24px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.8rem, 6vw, 5rem);
    font-weight: 500;
}

.portal-copy > p,
.portal-card > p {
    color: #405e58;
    font-size: 1.08rem;
}

.portal-card {
    padding: 38px;
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: var(--shadow);
}

.portal-card h2 {
    margin-bottom: 12px;
    font-size: 1.75rem;
}

.portal-card label,
.invitation-form label {
    display: block;
    margin: 20px 0 7px;
    color: var(--ink-deep);
    font-size: 0.84rem;
    font-weight: 800;
    letter-spacing: 0.025em;
}

.portal-card input,
.invitation-form input,
.invitation-form textarea,
.copy-link-row input {
    width: 100%;
    padding: 13px 14px;
    border: 1px solid #aebdb7;
    border-radius: 10px;
    color: var(--ink-deep);
    background: #fff;
}

.portal-card input:focus,
.invitation-form input:focus,
.invitation-form textarea:focus,
.copy-link-row input:focus {
    border-color: var(--teal);
    outline: 3px solid rgba(34, 80, 72, 0.14);
}

.portal-submit {
    width: 100%;
    margin-top: 24px;
    text-align: center;
}

.portal-alternate {
    margin: 22px 0 0;
    text-align: center;
}

/* Public website/data update feeds and their shared editorial tool. */
.public-updates-hero {
    color: #fffdf7;
    background:
        radial-gradient(circle at 82% 24%, rgba(255, 214, 133, .18), transparent 24rem),
        linear-gradient(135deg, #163f39, #245f55);
    padding: clamp(3rem, 7vw, 6rem) 0;
}

.public-updates-hero h1,
.public-update-editor-hero h1 {
    margin: .35rem 0 .8rem;
}

.public-updates-hero p:last-child {
    max-width: 48rem;
    font-size: 1.12rem;
}

.public-updates-content,
.public-update-editor-content {
    padding: clamp(2.5rem, 6vw, 5rem) 0;
    background: #f1f6f3;
}

.public-updates-filter {
    display: grid;
    grid-template-columns: auto minmax(12rem, 24rem) auto;
    align-items: end;
    gap: .65rem;
    margin-bottom: 2rem;
}

.public-updates-filter label,
.public-update-editor-form-card label {
    font-weight: 800;
    color: #173f39;
}

.public-updates-filter select,
.public-update-editor-form-card input:not([type="checkbox"]),
.public-update-editor-form-card select,
.public-update-editor-form-card textarea {
    width: 100%;
    border: 1px solid #9fb5ae;
    border-radius: .55rem;
    padding: .72rem .8rem;
    color: #173f39;
    background: #fff;
}

.public-updates-list,
.public-update-editor-list {
    display: grid;
    gap: 1rem;
}

.public-update-card,
.public-updates-empty,
.public-update-editor-form-card,
.public-update-editor-item {
    border: 1px solid rgba(35, 77, 68, .16);
    border-radius: 1rem;
    background: #fffdfa;
    box-shadow: 0 .8rem 2.2rem rgba(29, 65, 57, .08);
}

.public-update-card,
.public-updates-empty,
.public-update-editor-item {
    padding: clamp(1.25rem, 3vw, 2rem);
}

.public-update-card h2,
.public-update-editor-item h3 {
    margin: .55rem 0;
}

.public-update-card > p,
.public-update-editor-item > p {
    margin-bottom: 0;
    white-space: pre-line;
}

.public-update-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem .7rem;
    color: #536c66;
    font-size: .86rem;
    font-weight: 700;
}

.public-update-meta > * + *::before {
    content: "•";
    margin-right: .7rem;
    color: #cc6449;
}

.public-update-editor-hero {
    padding: 2.5rem 0;
    background: #fffaf1;
    border-bottom: 1px solid rgba(35, 77, 68, .14);
}

.public-update-editor-hero-inner {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 2rem;
}

.public-update-editor-hero-inner p:last-child {
    margin-bottom: 0;
}

.public-update-editor-links,
.public-update-editor-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.public-update-editor-layout {
    display: grid;
    grid-template-columns: minmax(19rem, .85fr) minmax(22rem, 1.15fr);
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: start;
}

.public-update-editor-form-card {
    position: sticky;
    top: 1rem;
    padding: clamp(1.35rem, 3vw, 2rem);
}

.public-update-editor-form-card form {
    display: grid;
    gap: .45rem;
}

.public-update-editor-form-card form > label:not(.public-update-publish-choice) {
    margin-top: .55rem;
}

.public-update-editor-pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .8rem;
}

.public-update-editor-pair > div {
    display: grid;
    gap: .45rem;
}

.public-update-editor-confirmation {
    margin: 1rem 0;
    border-left: .35rem solid #2c7a68;
    padding: .8rem 1rem;
    background: #e2f2eb;
    font-weight: 700;
}

.public-update-publish-choice {
    display: flex;
    gap: .65rem;
    align-items: center;
    margin: .75rem 0;
}

.public-update-publish-choice input {
    width: 1.15rem;
    height: 1.15rem;
}

.public-update-editor-list-heading {
    padding: 0 .25rem;
}

.public-update-editor-list-heading h2 {
    margin-top: .25rem;
}

.public-update-editor-item .button {
    margin-top: .8rem;
}

.is-published {
    color: #1d6c50;
}

.is-hidden {
    color: #9b503f;
}

@media (max-width: 820px) {
    .public-update-editor-layout {
        grid-template-columns: 1fr;
    }

    .public-update-editor-form-card {
        position: static;
    }
}

@media (max-width: 620px) {
    .public-updates-filter,
    .public-update-editor-pair {
        grid-template-columns: 1fr;
    }

    .public-updates-filter .button {
        width: 100%;
    }

    .public-update-editor-hero-inner {
        align-items: start;
        flex-direction: column;
    }
}

/* Index choice point and the two public Welcome pages it opens. */
.index-provide-section {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
    color: #d9e7e3;
    background:
        radial-gradient(circle at 88% 20%, rgba(233, 183, 90, .2), transparent 23rem),
        var(--teal);
}

.index-provide-inner {
    max-width: 60rem;
}

.index-provide-inner h2 {
    margin-bottom: 1.5rem;
    color: var(--gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.35rem, 5vw, 4.5rem);
    font-weight: 500;
}

.index-provide-inner p {
    max-width: 55rem;
    color: #e1ece8;
    font-size: 1.06rem;
    line-height: 1.75;
}

.index-provide-inner > p:first-of-type {
    color: white;
    font-size: 1.25rem;
    font-weight: 800;
}

.index-provide-authority-action {
    margin: 1.75rem 0 2.2rem;
}

.index-provide-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 2rem;
}

/* Index: three framed ways to use I'LL BCNU. */
.index-offerings-section {
    position: relative;
    padding: clamp(4rem, 7vw, 7rem) 0;
    overflow: hidden;
    color: #e2ece8;
    background:
        radial-gradient(circle at 8% 14%, rgba(226, 180, 88, .18), transparent 24rem),
        radial-gradient(circle at 92% 88%, rgba(114, 164, 146, .16), transparent 28rem),
        linear-gradient(145deg, #173f39, #0c302c 55%, #092521);
}

.index-offerings-section::before {
    position: absolute;
    inset: 0;
    opacity: .18;
    background:
        repeating-linear-gradient(116deg, transparent 0 11px, rgba(255, 255, 255, .035) 12px, transparent 13px 31px);
    content: "";
    pointer-events: none;
}

.index-offerings-shell {
    position: relative;
    z-index: 1;
}

.index-offerings-heading {
    display: grid;
    justify-items: center;
    margin-bottom: clamp(2.25rem, 5vw, 4rem);
    text-align: center;
}

.index-offerings-heading::after {
    width: min(18rem, 58vw);
    height: 2px;
    margin-top: 1rem;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
    content: "";
}

.index-offerings-heading h2 {
    margin: 0;
    color: var(--gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.7rem, 6vw, 5rem);
    font-weight: 500;
    line-height: 1;
}

.index-offerings-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(1.15rem, 2.2vw, 2rem);
}

.index-offering-card {
    --wood-base: #72432b;
    --wood-light: #a66d45;
    --wood-dark: #3f2117;
    position: relative;
    display: grid;
    grid-template-rows: auto auto 1fr;
    min-width: 0;
    padding: clamp(.7rem, 1vw, .9rem);
    overflow: hidden;
    border: 1px solid rgba(28, 12, 7, .76);
    border-radius: 12rem 12rem 1.45rem 1.45rem;
    background:
        radial-gradient(ellipse at 20% 12%, rgba(255, 255, 255, .18), transparent 17%),
        repeating-linear-gradient(96deg, transparent 0 9px, rgba(37, 15, 7, .18) 10px, transparent 12px 28px),
        linear-gradient(90deg, var(--wood-dark), var(--wood-light) 9%, var(--wood-base) 24% 73%, var(--wood-light) 90%, var(--wood-dark));
    box-shadow:
        0 28px 45px rgba(0, 0, 0, .3),
        inset 0 0 0 2px rgba(255, 235, 196, .14),
        inset 0 0 18px rgba(20, 7, 3, .42);
}

.index-offering-card::before {
    position: absolute;
    z-index: 4;
    inset: 5px;
    border: 1px solid rgba(255, 231, 185, .2);
    border-radius: inherit;
    content: "";
    pointer-events: none;
}

.index-offering-oak {
    --wood-base: #b37a3e;
    --wood-light: #d2a45d;
    --wood-dark: #68431f;
    background:
        radial-gradient(ellipse at 75% 7%, rgba(255, 244, 204, .25), transparent 20%),
        repeating-linear-gradient(91deg, rgba(83, 47, 17, .13) 0 2px, transparent 3px 12px, rgba(255, 236, 181, .12) 13px 15px, transparent 16px 31px),
        linear-gradient(90deg, var(--wood-dark), var(--wood-light) 9%, var(--wood-base) 24% 73%, var(--wood-light) 90%, var(--wood-dark));
}

.index-offering-cherry {
    --wood-base: #8e3f2e;
    --wood-light: #bc6548;
    --wood-dark: #4b1c18;
    background:
        radial-gradient(ellipse at 26% 9%, rgba(255, 219, 177, .19), transparent 19%),
        repeating-radial-gradient(ellipse at 20% 50%, transparent 0 17px, rgba(55, 15, 12, .13) 18px 20px, transparent 21px 39px),
        linear-gradient(90deg, var(--wood-dark), var(--wood-light) 9%, var(--wood-base) 24% 73%, var(--wood-light) 90%, var(--wood-dark));
}

.index-offering-media {
    position: relative;
    aspect-ratio: 4 / 3;
    margin: 0;
    overflow: hidden;
    border: 2px solid rgba(31, 13, 7, .74);
    border-bottom: 0;
    border-radius: 11rem 11rem 0 0;
    background: #e8ddc6;
    box-shadow: inset 0 0 14px rgba(22, 8, 4, .34);
}

.index-offering-media::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(155deg, rgba(255, 255, 255, .2), transparent 35% 78%, rgba(20, 8, 3, .12));
    content: "";
    pointer-events: none;
}

.index-offering-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.index-offering-crossbar {
    position: relative;
    z-index: 2;
    display: block;
    height: 1.45rem;
    margin: -.15rem -.22rem 0;
    border: 1px solid rgba(32, 12, 6, .74);
    background:
        repeating-linear-gradient(94deg, transparent 0 11px, rgba(35, 12, 5, .18) 12px, transparent 14px 29px),
        linear-gradient(180deg, var(--wood-light), var(--wood-base) 48%, var(--wood-dark));
    box-shadow: 0 3px 7px rgba(24, 8, 3, .35), inset 0 1px 0 rgba(255, 236, 195, .28);
}

.index-offering-crossbar::before,
.index-offering-crossbar::after {
    position: absolute;
    top: 50%;
    width: .43rem;
    height: .43rem;
    border: 1px solid rgba(62, 42, 14, .8);
    border-radius: 50%;
    background: radial-gradient(circle at 35% 32%, #fff2b4, #b5822d 44%, #654515 100%);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .45);
    content: "";
    transform: translateY(-50%);
}

.index-offering-crossbar::before {
    left: .65rem;
}

.index-offering-crossbar::after {
    right: .65rem;
}

.index-offering-body {
    display: flex;
    min-width: 0;
    padding: clamp(1.3rem, 2.1vw, 1.75rem);
    border: 1px solid rgba(65, 45, 31, .18);
    border-top: 0;
    border-radius: 0 0 .7rem .7rem;
    flex-direction: column;
    color: var(--ink-deep);
    background:
        radial-gradient(circle at 92% 4%, rgba(221, 184, 95, .12), transparent 13rem),
        linear-gradient(145deg, #fffdf7, #f5efe3);
    box-shadow: inset 0 1px 8px rgba(57, 37, 21, .08);
}

.index-offering-body h3 {
    margin: 0 0 1rem;
    color: var(--coral-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3.1vw, 2.8rem);
    font-weight: 500;
    line-height: 1;
    text-align: center;
}

.index-offering-copy {
    color: #294b46;
    font-size: .98rem;
    line-height: 1.67;
}

.index-offering-copy p {
    margin: 0 0 1.05rem;
}

.index-offering-copy p:last-child {
    margin-bottom: 0;
}

.index-offering-copy strong {
    color: var(--coral-dark);
    letter-spacing: .02em;
}

.index-offering-copy a {
    color: #245c52;
    font-weight: 800;
}

.index-offering-source-note {
    padding: .72rem .82rem;
    border-left: .24rem solid var(--gold);
    color: #506b66;
    background: rgba(222, 232, 222, .54);
    font-size: .79rem;
    line-height: 1.48;
}

.index-coffee-cup {
    display: inline-grid;
    width: 2rem;
    height: 1.72rem;
    margin-left: .18rem;
    vertical-align: -.52rem;
    place-items: center;
}

.index-coffee-cup svg {
    width: 100%;
    height: 100%;
    overflow: visible;
}

.index-coffee-cup .steam,
.index-coffee-cup .handle {
    fill: none;
    stroke: #7e4d2f;
    stroke-linecap: round;
    stroke-width: 2.7;
}

.index-coffee-cup .cup {
    fill: #c85f42;
    stroke: #7e3425;
    stroke-width: 1.4;
}

.index-offering-action {
    margin-top: auto;
    padding-top: 1.6rem;
}

.index-offering-action .button {
    width: 100%;
    min-height: 3.3rem;
    padding-inline: .85rem;
}

.index-offerings-actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: .85rem;
    margin-top: clamp(2.25rem, 5vw, 4rem);
}

@media (max-width: 1050px) {
    .index-offerings-grid {
        grid-template-columns: minmax(0, 48rem);
        justify-content: center;
        gap: 2.25rem;
    }

    .index-offering-media {
        aspect-ratio: 16 / 7;
    }
}

@media (max-width: 620px) {
    .index-offerings-section {
        padding-inline: .15rem;
    }

    .index-offerings-heading {
        margin-bottom: 2rem;
    }

    .index-offering-card {
        padding: .62rem;
        border-radius: 8rem 8rem 1.2rem 1.2rem;
    }

    .index-offering-media {
        aspect-ratio: 4 / 3;
        border-radius: 7.5rem 7.5rem 0 0;
    }

    .index-offering-body {
        padding: 1.25rem 1.05rem 1.15rem;
    }

    .index-offerings-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .index-offerings-actions .button {
        width: 100%;
    }
}

.voting-authority-content,
.account-benefits-content {
    min-height: 60vh;
}

.voting-authority-hero,
.account-benefits-hero {
    margin-bottom: clamp(1.5rem, 4vw, 3rem);
    border-radius: 1.25rem;
    overflow: hidden;
}

.voting-authority-form {
    display: grid;
    gap: .65rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid rgba(23, 59, 54, .15);
    border-radius: 1rem;
    background: var(--paper);
    box-shadow: var(--small-shadow);
}

.voting-authority-form label {
    color: var(--ink);
    font-weight: 850;
}

.voting-authority-form-row {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) auto;
    gap: .75rem;
}

.voting-authority-form select {
    width: 100%;
    min-height: 3rem;
    border: 1px solid #9fb5ae;
    border-radius: .6rem;
    padding: .65rem .8rem;
    color: var(--ink);
    background: white;
}

.voting-authority-result {
    margin-top: 1.5rem;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border: 1px solid rgba(23, 59, 54, .15);
    border-radius: 1rem;
    background: white;
    box-shadow: var(--small-shadow);
}

.voting-authority-result h2 {
    margin: .4rem 0 .5rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.25rem);
}

.voting-authority-result h3 {
    margin-bottom: 1.25rem;
    color: var(--muted);
}

.voting-authority-message {
    margin-top: 1rem;
    border-left: .35rem solid var(--coral);
    padding: .8rem 1rem;
    background: #fff4ee;
}

.voting-authority-phone,
.voting-authority-caution {
    margin-top: 1.25rem;
}

.voting-authority-caution {
    color: var(--muted);
    font-size: .92rem;
}

.account-benefits-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.account-benefits-grid article {
    position: relative;
    padding: clamp(1.4rem, 3vw, 2.2rem);
    border: 1px solid rgba(23, 59, 54, .14);
    border-radius: 1rem;
    background: var(--paper);
    box-shadow: var(--small-shadow);
}

.account-benefits-grid article > span {
    color: var(--coral-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
    font-weight: 700;
}

.account-benefits-grid h2 {
    margin: .7rem 0;
    font-size: 1.45rem;
}

.account-benefits-grid p {
    margin-bottom: 0;
    color: var(--muted);
}

.account-benefits-next {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
    margin-top: clamp(1.5rem, 4vw, 3rem);
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border-radius: 1rem;
    color: white;
    background:
        radial-gradient(circle at 88% 20%, rgba(233, 183, 90, .2), transparent 18rem),
        var(--teal);
}

.account-benefits-next h2 {
    margin: .35rem 0;
    color: var(--gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 500;
}

.account-benefits-next p:last-child {
    margin-bottom: 0;
    color: #d9e7e3;
}

@media (max-width: 700px) {
    .voting-authority-form-row,
    .account-benefits-grid {
        grid-template-columns: 1fr;
    }

    .voting-authority-form-row .button,
    .index-provide-actions .button,
    .index-provide-authority-action .button,
    .next-steps-actions .button {
        width: 100%;
    }

    .account-benefits-next {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Guided journeys ------------------------------------------------------- */
.journey-return-band {
    border-bottom: 1px solid rgba(23, 59, 54, .12);
    background: #eef5f1;
}

.journey-return-band .page-shell {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem 0;
    font-size: .86rem;
}

.journey-return-band a {
    color: var(--ink);
    font-weight: 850;
}

.journey-return-band span {
    color: var(--muted);
}

.journey-hero {
    padding: clamp(3rem, 7vw, 6.4rem) 0;
    border-bottom: 1px solid rgba(23, 59, 54, .12);
    background:
        radial-gradient(circle at 85% 15%, rgba(233, 183, 90, .22), transparent 24rem),
        linear-gradient(135deg, #fffaf0, #edf5f0);
}

.journey-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(13rem, 19rem);
    align-items: center;
    gap: clamp(2rem, 6vw, 6rem);
}

.journey-hero h1 {
    margin-bottom: 1rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.75rem, 6vw, 5.5rem);
    font-weight: 500;
}

.journey-hero p:not(.eyebrow) {
    max-width: 48rem;
    color: #36544f;
    font-size: 1.08rem;
}

.journey-lede {
    color: var(--ink) !important;
    font-size: 1.28rem !important;
    font-weight: 800;
}

.journey-ann {
    width: min(100%, 18rem);
    justify-self: center;
    filter: drop-shadow(0 1.2rem 1.4rem rgba(13, 42, 39, .16));
}

.journey-score {
    display: grid;
    gap: .35rem;
    padding: 1.5rem;
    border: 1px solid rgba(23, 59, 54, .13);
    border-radius: 1.1rem;
    background: rgba(255, 253, 248, .9);
    box-shadow: var(--small-shadow);
}

.journey-score > strong {
    color: var(--coral-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.2rem;
    line-height: 1;
}

.journey-score > span {
    color: var(--muted);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.journey-score > div,
.journey-summary-grid i {
    display: block;
    height: .55rem;
    overflow: hidden;
    border-radius: 999px;
    background: #dbe4df;
}

.journey-score i,
.journey-summary-grid b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--coral), var(--gold), #4d9973);
}

.journey-content {
    padding: clamp(3rem, 7vw, 6rem) 0;
    background: #f8f8f3;
}

.next-steps-hero {
    margin-top: 2rem;
    padding: clamp(1.6rem, 4vw, 3rem);
    border: 1px solid #d6dfda;
    border-radius: 1.2rem;
    overflow: hidden;
    box-shadow: var(--small-shadow);
}

.next-steps-hero h1,
.next-steps-hero h2 {
    margin-bottom: 1rem;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.4rem, 5vw, 4.5rem);
    font-weight: 500;
    line-height: 1.08;
}

.next-steps-page .journey-content {
    padding-top: 1.5rem;
}

.next-steps-masteries {
    padding: clamp(1.6rem, 4vw, 3rem);
    border: 1px solid #d6dfda;
    border-radius: 1.2rem;
    background:
        radial-gradient(circle at 92% 4%, rgba(233, 183, 90, .16), transparent 20rem),
        var(--paper);
    box-shadow: var(--small-shadow);
}

.next-steps-masteries-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(11.25rem, 15.75rem);
    align-items: center;
    gap: clamp(1.5rem, 4vw, 3.5rem);
    margin-bottom: 1.5rem;
}

.next-steps-masteries-heading-copy {
    max-width: 58rem;
}

.next-steps-masteries-heading h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 500;
    line-height: 1.08;
}

.next-steps-masteries-ann {
    width: min(100%, 15.75rem);
    height: auto;
    aspect-ratio: 1145 / 1374;
    object-fit: cover;
    object-position: center;
    justify-self: end;
    border: 1px solid rgba(23, 59, 54, .1);
    border-radius: 48% 48% 1.1rem 1.1rem;
    background: #fffaf0;
    box-shadow: 0 1rem 2rem rgba(13, 42, 39, .12);
}

.next-steps-mastery-list {
    display: grid;
    gap: 1rem;
}

.next-steps-mastery {
    padding: clamp(1.3rem, 3vw, 2rem);
    border: 1px solid #d8e0db;
    border-left: .42rem solid var(--teal);
    border-radius: .9rem;
    background: rgba(255, 255, 255, .78);
}

.next-steps-mastery:nth-child(2) {
    border-left-color: var(--coral);
}

.next-steps-mastery:nth-child(3) {
    border-left-color: var(--gold);
}

.next-steps-mastery h3 {
    margin-bottom: .75rem;
    color: var(--ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.35rem, 2.5vw, 1.8rem);
}

.next-steps-mastery p {
    max-width: 78ch;
    margin-bottom: .9rem;
    line-height: 1.7;
}

.next-steps-mastery p:last-child {
    margin-bottom: 0;
}

.next-steps-mastery a {
    font-weight: 800;
}

.next-steps-explore-grid {
    margin-top: 2rem;
}

.journey-checklist {
    display: grid;
    gap: 1rem;
    padding: 0;
    margin: 0;
    list-style: none;
}

.journey-checklist > li {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.15rem;
    padding: 1.35rem 1.45rem;
    border: 1px solid #d8e0db;
    border-left: .35rem solid #a9b8b0;
    border-radius: .85rem;
    background: var(--paper);
    box-shadow: 0 .35rem 1rem rgba(13, 42, 39, .045);
}

.journey-checklist > li.is-complete {
    border-left-color: #4d9973;
    background: linear-gradient(90deg, rgba(217, 236, 226, .6), var(--paper) 32%);
}

.journey-check {
    display: grid;
    width: 2.55rem;
    height: 2.55rem;
    place-items: center;
    border: 2px solid #9baca3;
    border-radius: 50%;
    color: #587069;
    font-weight: 900;
}

.is-complete > .journey-check {
    border-color: #397b5c;
    color: white;
    background: #4d9973;
}

.journey-checklist h2 {
    margin-bottom: .25rem;
    font-size: 1.22rem;
}

.journey-checklist p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: .94rem;
}

.journey-done,
.journey-waiting {
    color: #397b5c;
    font-size: .82rem;
    font-weight: 850;
    white-space: nowrap;
}

.journey-waiting {
    color: var(--muted);
}

.journey-task-actions,
.journey-task-actions form {
    display: flex;
    align-items: center;
    gap: .8rem;
}

.journey-task-actions {
    justify-content: flex-end;
    flex-wrap: wrap;
    font-size: .86rem;
    font-weight: 800;
}

.journey-status-card,
.journey-circle-note,
.journey-finish,
.journey-history {
    margin-top: 2rem;
    padding: 1.6rem;
    border: 1px solid #d8e0db;
    border-radius: 1rem;
    background: var(--paper);
    box-shadow: var(--small-shadow);
}

.journey-finish {
    text-align: center;
}

.next-steps-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .8rem;
}

.journey-status-form {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin-top: .8rem;
}

.journey-status-form select {
    min-width: 16rem;
    max-width: 100%;
}

.journey-explore-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.journey-explore-grid > a {
    display: grid;
    gap: .4rem;
    min-height: 9rem;
    padding: 1.35rem;
    border: 1px solid #d6dfda;
    border-radius: 1rem;
    text-decoration: none;
    background: var(--paper);
    box-shadow: var(--small-shadow);
}

.journey-explore-grid > a:hover,
.journey-explore-grid > a:focus-visible {
    border-color: var(--teal);
    transform: translateY(-2px);
}

.journey-explore-grid strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
}

.journey-explore-grid span {
    color: var(--muted);
    font-size: .92rem;
}

.journey-summary-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.journey-summary-grid a {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .25rem .8rem;
}

.journey-summary-grid strong {
    grid-column: 2;
    grid-row: 1 / span 2;
}

.journey-summary-grid small,
.journey-summary-grid i {
    grid-column: 1 / -1;
}

.guide-example-notice {
    display: grid;
    gap: .3rem;
    margin-bottom: 1.4rem;
    padding: 1rem 1.1rem;
    border-left: .35rem solid var(--gold);
    background: #fff6df;
}

.guide-example-notice span {
    color: #5e5a48;
    font-size: .9rem;
}

.setup-sent-progress {
    display: grid;
    gap: .7rem;
    padding: 0;
    list-style: none;
}

.setup-sent-progress li {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .8rem;
    border: 1px solid var(--line);
    border-radius: .7rem;
}

.setup-sent-progress li > span {
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: 50%;
    background: #e3e8e5;
}

.setup-sent-progress .is-complete > span {
    color: white;
    background: #4d9973;
}

.setup-sent-progress div {
    display: grid;
}

.setup-sent-progress small {
    color: var(--muted);
}

.provisional-welcome-content .journey-finish {
    margin-top: 1rem;
}

.provisional-countdown {
    text-align: center;
}

.provisional-leave {
    margin-top: 2rem;
    color: var(--muted);
    text-align: center;
}

.provisional-leave summary {
    cursor: pointer;
    font-weight: 800;
}

.provisional-orientation { padding: 2.5rem 0 3.5rem; }
.provisional-orientation h1 { margin-bottom: 1.5rem; }
.provisional-orientation-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(260px, 1fr); gap: 0 3rem; align-items: start; }
.provisional-introduction { grid-column: 1; grid-row: 1; }
.provisional-exploration { grid-column: 1; grid-row: 2; }
.provisional-introduction p, .provisional-exploration > p { font-size: 1.2rem; line-height: 1.7; color: #405e58; margin: 0 0 1.4rem; }
.provisional-subhead { margin: 1.6rem 0 .75rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.6rem, 2.5vw, 2rem); font-weight: 600; color: #a23e27; }
.provisional-hostess { grid-column: 2; grid-row: 1 / 3; display: flex; flex-direction: column; align-items: center; gap: 1.3rem; min-width: 0; }
.provisional-hostess-image { display: block; width: min(100%, 340px); height: auto; }
.provisional-about, .provisional-join { min-width: 170px; justify-content: center; }
.provisional-reservation { display: grid; gap: .35rem; text-align: center; padding: 1rem 1.25rem; border: 1px solid #cfddd6; border-radius: 1rem; background: #fffaf0; }
.provisional-reservation-label { font-size: 1rem; color: #405e58; }
.provisional-reservation strong { font-size: 1.4rem; color: #173b36; }
.provisional-menu-example { display: inline-flex; align-items: center; gap: .55rem; vertical-align: middle; padding: .1rem .5rem; border: 1px solid #b8c9c3; border-radius: .3rem; color: #173b36; font-size: 1rem; font-weight: 800; white-space: nowrap; }
.provisional-orientation .provisional-leave { text-align: left; }
.provisional-orientation .provisional-leave summary { padding-block: .75rem; min-height: 44px; text-decoration: underline; text-underline-offset: .2em; }
.provisional-orientation .provisional-leave summary:focus-visible { outline: 3px solid #a23e27; outline-offset: 3px; }
.provisional-mobile-direction { display: none; }
@media (max-width: 820px) {
    .provisional-orientation-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .provisional-introduction, .provisional-exploration, .provisional-hostess { grid-column: 1; grid-row: auto; }
    .provisional-hostess { margin-bottom: 1rem; gap: 1rem; }
    .provisional-hostess-image { width: min(65%, 220px); }
    .provisional-desktop-direction { display: none; }
    .provisional-mobile-direction { display: inline; }
}

@media (max-width: 820px) {
    .journey-hero-grid,
    .journey-explore-grid,
    .journey-summary-grid,
    .next-steps-masteries-heading {
        grid-template-columns: 1fr;
    }

    .journey-ann {
        width: 11rem;
    }

    .next-steps-masteries-ann {
        width: min(100%, 13.5rem);
        justify-self: center;
    }

    .journey-checklist > li {
        grid-template-columns: 2.7rem minmax(0, 1fr);
    }

    .journey-checklist > li > :last-child:not(div) {
        grid-column: 2;
        justify-self: start;
    }

    .journey-task-actions {
        grid-column: 2;
        justify-content: flex-start;
    }
}

@media (max-width: 520px) {
    .journey-return-band span {
        display: none;
    }

    .journey-hero-grid {
        gap: 1.5rem;
    }

    .journey-status-form {
        align-items: stretch;
        flex-direction: column;
    }
}

.login-remember-choice {
    margin-top: 1rem;
}

.local-account-bridge {
    margin-top: 1.5rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(23, 59, 54, .18);
    border-radius: .8rem;
    background: #f4f7f4;
}

.local-account-bridge summary {
    cursor: pointer;
    color: var(--teal);
    font-weight: 800;
}

.local-account-bridge p {
    margin-top: .8rem;
    font-size: .93rem;
}

/* Administrator hero-caption editor ------------------------------------ */

.hero-caption-editor-page {
    background: #eef3ef;
}

.caption-editor-hero,
.caption-editor-edit-hero {
    padding: clamp(48px, 7vw, 84px) 0 40px;
    border-bottom: 1px solid var(--line);
    background:
        radial-gradient(circle at 88% 20%, rgba(233, 183, 90, 0.25), transparent 26%),
        linear-gradient(180deg, #fffaf1, var(--paper));
}

.caption-editor-hero-inner {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 32px;
}

.caption-editor-hero h1,
.caption-editor-edit-hero h1 {
    margin: 0;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 6vw, 5.25rem);
    font-weight: 500;
    line-height: 0.98;
}

.caption-editor-hero p:not(.eyebrow),
.caption-editor-edit-hero p:not(.eyebrow) {
    max-width: 720px;
    margin: 20px 0 0;
    color: var(--muted);
    font-size: 1.06rem;
    line-height: 1.65;
}

.caption-editor-actions,
.caption-editor-card-actions,
.caption-editor-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.caption-editor-content,
.caption-editor-edit-content {
    padding: clamp(32px, 5vw, 68px) 0 clamp(72px, 8vw, 110px);
}

.caption-editor-confirmation {
    margin-bottom: 22px;
    padding: 15px 18px;
    border: 1px solid #91c8aa;
    border-radius: 12px;
    color: #0b4b2d;
    background: #dcf4e5;
    font-weight: 800;
}

.caption-editor-toolbar {
    display: grid;
    grid-template-columns: minmax(180px, 270px) minmax(220px, 360px) 1fr;
    align-items: center;
    gap: 12px 18px;
    margin-bottom: 28px;
    padding: 18px 20px;
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 16px;
    background: var(--paper);
    box-shadow: 0 10px 24px rgba(13, 42, 39, 0.06);
}

.caption-editor-toolbar label {
    color: var(--ink-deep);
    font-weight: 850;
}

.caption-editor-toolbar input,
.caption-editor-form textarea {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid #aebdb7;
    border-radius: 9px;
    color: var(--ink-deep);
    background: white;
    font: inherit;
}

.caption-editor-toolbar input:focus,
.caption-editor-form textarea:focus {
    border-color: var(--teal);
    outline: 3px solid rgba(34, 80, 72, 0.14);
}

.caption-editor-toolbar p {
    margin: 0;
    color: var(--muted);
    text-align: right;
}

.caption-editor-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.caption-editor-card {
    overflow: hidden;
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 19px;
    background: var(--paper);
    box-shadow: 0 14px 34px rgba(13, 42, 39, 0.08);
}

.caption-editor-thumbnail {
    display: block;
    overflow: hidden;
    border-bottom: 1px solid rgba(23, 59, 54, 0.12);
    background: #dfe9e4;
}

.caption-editor-thumbnail img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 8 / 5;
    object-fit: cover;
    transition: transform 160ms ease;
}

.caption-editor-thumbnail:hover img {
    transform: scale(1.018);
}

.caption-editor-card-copy {
    padding: 22px;
}

.caption-editor-card-heading {
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.caption-editor-card-heading span {
    color: var(--coral-dark);
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.caption-editor-card-heading h2 {
    margin: 0;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.7rem;
    font-weight: 500;
}

.caption-editor-description {
    min-height: 4.5em;
    margin: 14px 0 8px;
    color: var(--ink);
    line-height: 1.5;
}

.caption-editor-credit {
    min-height: 2.6em;
    margin: 0 0 18px;
    color: var(--muted);
    font-size: 0.8rem;
    line-height: 1.45;
}

.caption-editor-missing {
    margin: 16px 0 20px;
    padding: 10px 12px;
    border-left: 4px solid var(--coral);
    color: #8b2f22;
    background: #fff0ea;
    font-weight: 800;
}

.caption-editor-card-actions {
    justify-content: space-between;
    margin-top: 16px;
}

.caption-editor-edit-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(360px, 0.75fr);
    align-items: start;
    gap: clamp(24px, 4vw, 48px);
}

.caption-editor-full-preview {
    position: sticky;
    top: 22px;
    overflow: hidden;
    margin: 0;
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 18px;
    background: var(--paper);
    box-shadow: 0 14px 36px rgba(13, 42, 39, 0.1);
    transform: rotate(-1deg);
}

.caption-editor-full-preview img {
    display: block;
    width: 100%;
    height: auto;
}

.caption-editor-form {
    padding: 28px;
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 18px;
    background: var(--paper);
    box-shadow: 0 14px 36px rgba(13, 42, 39, 0.08);
}

.caption-editor-form label {
    display: block;
    margin: 0 0 8px;
    color: var(--ink-deep);
    font-size: 0.84rem;
    font-weight: 850;
}

.caption-editor-form textarea + .field-validation + small,
.caption-editor-form textarea + small {
    display: block;
    margin: 7px 0 24px;
    color: var(--muted);
    font-size: 0.78rem;
    line-height: 1.5;
}

.caption-editor-form-actions {
    margin-top: 28px;
}

@media (max-width: 920px) {
    .caption-editor-hero-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .caption-editor-toolbar {
        grid-template-columns: minmax(180px, 0.75fr) minmax(220px, 1.25fr);
    }

    .caption-editor-toolbar p {
        grid-column: 1 / -1;
        text-align: left;
    }

    .caption-editor-edit-layout {
        grid-template-columns: 1fr;
    }

    .caption-editor-full-preview {
        position: static;
    }
}

@media (max-width: 680px) {
    .caption-editor-grid,
    .caption-editor-toolbar {
        grid-template-columns: 1fr;
    }

    .caption-editor-actions,
    .caption-editor-actions .button,
    .caption-editor-form-actions,
    .caption-editor-form-actions .button {
        width: 100%;
    }

    .caption-editor-card-copy,
    .caption-editor-form {
        padding: 20px 17px;
    }
}

.portal-alternate-compact {
    margin-top: 8px;
}

.portal-alternate a,
.form-intro a {
    font-weight: 800;
}

.portal-safety-note,
.form-intro,
.invitation-safe-note {
    padding: 14px 16px;
    border-radius: 12px;
    color: var(--ink-deep) !important;
    background: var(--teal-soft);
}

.portal-safety-note {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 28px;
}

.validation-summary,
.field-validation {
    color: #9d3324;
    font-weight: 700;
}

.validation-summary:empty,
.field-validation:empty {
    display: none;
}

.recovery-portal-hero {
    padding-top: 48px;
}

.recovery-shell {
    width: min(700px, calc(100% - 48px));
}

.recovery-card h1 {
    font-size: clamp(2.45rem, 5.5vw, 4.45rem);
}

.recovery-notice {
    display: grid;
    gap: 4px;
    margin: 24px 0 4px;
    padding: 16px 18px;
    border-left: 5px solid var(--coral);
    border-radius: 12px;
    color: var(--ink-deep);
    background: #fff0ea;
}

.recovery-notice-ready {
    border-left-color: var(--mustard);
    background: #fff7df;
}

.recovery-privacy-note {
    margin: 16px 0 0;
    color: #5a6e69 !important;
    font-size: 0.88rem !important;
}

.recovery-paths {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid rgba(23, 59, 54, 0.14);
}

.recovery-paths article {
    padding: 17px;
    border: 1px solid rgba(23, 59, 54, 0.13);
    border-radius: 14px;
    background: var(--cream);
}

.recovery-paths h2 {
    margin: 0 0 6px;
    font-size: 1.12rem;
}

.recovery-paths p {
    margin: 0 0 10px;
    color: #4e6761;
    font-size: 0.92rem;
}

@media (max-width: 560px) {
    .recovery-shell {
        width: min(100% - 28px, 700px);
    }

    .recovery-card {
        padding: 28px 22px;
    }

    .recovery-paths {
        grid-template-columns: 1fr;
    }
}

.invitation-loading-card {
    text-align: center;
}

#invitation-antiforgery {
    display: none;
}

.invitation-message {
    margin: 28px 0 0;
    padding: 18px 22px;
    border-left: 5px solid var(--coral);
    color: var(--ink-deep);
    background: rgba(255, 255, 255, 0.74);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
}

.decision-card {
    text-align: center;
}

.decision-card .text-button {
    margin-top: 18px;
}

.invitation-avatar {
    display: inline-flex;
    width: 68px;
    height: 68px;
    margin-bottom: 24px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: var(--teal);
    font-weight: 900;
}

.invitation-privacy {
    margin: 24px 0 0;
    font-size: 0.96rem !important;
    font-weight: 700;
}

.friend-home-hero {
    padding: 62px 0 48px;
    border-bottom: 1px solid rgba(23, 59, 54, 0.12);
    background:
        radial-gradient(circle at 82% 15%, rgba(233, 183, 90, 0.2), transparent 28%),
        var(--paper);
}

.friend-home-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 36px;
}

.friend-home-heading h1,
.provisional-home-hero h1 {
    margin-bottom: 10px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.6rem, 5vw, 4.5rem);
    font-weight: 500;
}

.button-voted {
    min-width: 150px;
    color: #fff;
    background: var(--coral);
    box-shadow: var(--small-shadow);
}

.message-area {
    display: flex;
    gap: 14px;
    margin-top: 30px;
    padding: 15px 18px;
    border: 2px solid #a8d6c0;
    border-radius: 12px;
    color: #153f33;
    background: #e7f5ec;
}

.message-area strong {
    flex: 0 0 auto;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.message-area.account-address-notice {
    display: block;
    margin-top: 0;
    margin-bottom: 24px;
    scroll-margin-top: 8rem;
}

.account-address-notice p {
    margin: 10px 0;
}

.account-address-notice strong {
    text-transform: none;
    letter-spacing: normal;
}

.account-return-notice {
    flex-wrap: wrap;
}

.invitation-link-panel {
    margin-top: 30px;
    padding: 24px;
    border: 2px solid var(--gold);
    border-radius: 16px;
    background: #fffaf0;
}

.invitation-link-panel h2 {
    margin-bottom: 5px;
}

.invitation-link-panel p {
    margin-bottom: 14px;
}

.copy-link-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
}

.invitation-delivery-panel {
    display: grid;
    gap: 1.25rem;
}

.invitation-delivery-heading h2 {
    margin: .25rem 0 .45rem;
}

.invitation-delivery-heading > p:last-child,
.invitation-secret-note {
    color: var(--muted);
}

.invitation-delivery-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .8rem 1rem;
}

.invitation-delivery-actions > span {
    max-width: 34rem;
    color: var(--muted);
    font-size: .92rem;
    line-height: 1.45;
}

.invitation-link-only {
    display: grid;
    gap: .8rem;
    padding-top: 1.1rem;
    border-top: 1px solid rgba(20, 66, 59, .16);
}

.invitation-link-only strong,
.invitation-link-only span {
    display: block;
}

.invitation-link-only span {
    margin-top: .2rem;
    color: var(--muted);
}

.invitation-secret-note {
    margin: -.25rem 0 0 !important;
    font-size: .84rem;
}

.friend-dashboard {
    padding: 46px 0 80px;
}

.friend-dashboard-grid {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    align-items: start;
    gap: 34px;
}

.friend-menu {
    position: sticky;
    top: 24px;
    overflow: hidden;
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--small-shadow);
}

.friend-menu h2 {
    margin: 0;
    padding: 18px 20px;
    color: #fff;
    background: var(--ink-deep);
    font-size: 1.1rem;
}

.friend-menu a,
.friend-menu > span {
    display: flex;
    flex-direction: column;
    padding: 13px 18px;
    border-bottom: 1px solid #e4e8e4;
    text-decoration: none;
    font-weight: 750;
}

.friend-menu a:hover,
.friend-menu a.active {
    background: var(--teal-soft);
}

.friend-menu small {
    color: var(--muted);
    font-weight: 500;
}

.friend-dashboard-main {
    display: grid;
    gap: 24px;
}

.dashboard-card {
    padding: 28px;
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--small-shadow);
}

.dashboard-card-heading {
    display: flex;
    justify-content: space-between;
    gap: 20px;
}

.circle-count {
    align-self: center;
    padding: 7px 12px;
    border-radius: 999px;
    color: var(--ink-deep);
    background: var(--teal-soft);
    font-weight: 800;
}

.empty-state {
    margin: 0;
    padding: 22px;
    border: 1px dashed #aebdb7;
    border-radius: 12px;
    color: #4b6761;
    text-align: center;
}

.dashboard-friend-list,
.invitation-history {
    display: grid;
}

.dashboard-friend-row,
.invitation-history-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid #e3e8e4;
}

.invitation-history-row {
    grid-template-columns: minmax(0, 1fr) auto;
}

.invitation-history-row > div {
    display: flex;
    flex-direction: column;
}

.invitation-history-row span {
    color: var(--muted);
}

.invitation-form {
    display: grid;
    gap: 4px;
}

.text-button {
    padding: 0;
    border: 0;
    color: var(--teal);
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-weight: 800;
    text-decoration: underline;
}

.danger-text {
    color: #a33c2c;
}

.joined-circle-list {
    margin-bottom: 0;
}

.provisional-home-hero {
    background:
        radial-gradient(circle at 82% 15%, rgba(233, 183, 90, 0.2), transparent 28%),
        var(--paper);
}

.claim-card {
    border-width: 2px;
    border-color: var(--gold);
}

.quiet-card {
    background: #f8f8f4;
}

@media (max-width: 820px) {
    .portal-shell,
    .friend-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .portal-shell {
        gap: 36px;
    }

    .friend-menu {
        position: static;
    }

    .friend-home-heading {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 560px) {
    .portal-hero {
        padding: 45px 0 62px;
    }

    .portal-card,
    .dashboard-card {
        padding: 22px;
    }

    .copy-link-row,
    .dashboard-friend-row,
    .invitation-history-row {
        grid-template-columns: 1fr;
    }

    .message-area {
        flex-direction: column;
        gap: 3px;
    }
}

/* August landing-page revisions and Ohio voting walkthrough */
.home-page .hero {
    padding-top: 55px;
}

.hero .hero-days-card {
    position: absolute;
    top: -40px;
    right: 0;
    z-index: 4;
    width: 142px;
    min-height: 142px;
    padding: 18px;
    border: 3px solid var(--gold);
    border-radius: 22px;
    box-shadow: 0 16px 36px rgba(13, 42, 39, 0.18);
}

.hero .hero-days-card strong {
    font-size: 3.3rem;
}

.hero .hero-days-card span {
    max-width: 115px;
    font-size: 0.77rem;
    font-weight: 850;
    line-height: 1.25;
}

.hero-trust-statement {
    align-items: center;
}

.hero .hero-trust-statement .shield-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 0;
    font-size: 1.25rem;
    font-weight: 950;
    line-height: 1;
}

.hero-trust-statement h3 {
    margin: 0;
    color: var(--ink-deep);
    font-size: 0.92rem;
    font-weight: 850;
    line-height: 1.25;
}

.hero-trust-statement div > span {
    margin-top: 5px;
    color: var(--muted);
    font-size: 0.875rem;
    font-style: italic;
    text-align: center;
}

.inline-reset-form {
    display: inline-flex;
    margin-left: auto;
}

.inline-reset-form .button {
    height: 100%;
    cursor: pointer;
}

.hero .voting-info-launch .launch-icon {
    width: 41px;
    height: 41px;
    color: var(--coral-dark);
    border: 3px solid var(--teal);
    border-radius: 7px;
    background: #fffaf1;
    font-size: 1.7rem;
    font-weight: 950;
    line-height: 1;
}

.hero .orbit {
    border-style: solid;
    border-width: 5px;
}

.hero .orbit-one {
    border-color: rgba(34, 80, 72, 0.34) rgba(223, 109, 80, 0.42) rgba(233, 183, 90, 0.58) rgba(34, 80, 72, 0.34);
}

.hero .orbit-two {
    border-color: rgba(233, 183, 90, 0.52) rgba(34, 80, 72, 0.3) rgba(223, 109, 80, 0.38) rgba(233, 183, 90, 0.52);
}

.hero .team-preview {
    transform: rotate(9deg);
}

.home-page .early-voting-grid {
    grid-template-columns: 1.05fr 1fr;
}

.home-page .step-number {
    color: var(--coral-dark);
    font-size: 1.15rem;
    font-weight: 950;
    letter-spacing: 0;
    line-height: 1;
}

.home-page .featured-step .step-number {
    color: white;
}

.step-links {
    display: grid;
    gap: 7px;
    margin-top: 18px;
}

.step-links a {
    color: var(--coral-dark);
    font-size: 0.76rem;
    font-weight: 850;
    text-decoration: none;
}

.step-links a:hover,
.step-links a:focus-visible {
    text-decoration: underline;
}

.registration-deadline-strip {
    padding: 25px 0;
    color: white;
    background: var(--coral-dark);
}

.registration-deadline-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 24px;
}

.registration-date {
    display: grid;
    width: 67px;
    min-height: 67px;
    place-items: center;
    padding: 7px;
    color: var(--ink-deep);
    border-radius: 12px;
    background: var(--gold);
    line-height: 1;
}

.registration-date strong {
    font-size: 0.64rem;
    letter-spacing: 0.12em;
}

.registration-date b {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
    font-weight: 500;
}

.registration-deadline-inner .eyebrow {
    margin-bottom: 4px;
    color: #ffe2da;
}

.registration-deadline-inner h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.25rem, 2.5vw, 2rem);
    font-weight: 500;
}

.registration-deadline-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.help-checklist a {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 65px;
    padding: 15px 16px;
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.045);
    font-size: 0.84rem;
    font-weight: 700;
    text-decoration: none;
}

.help-checklist a:hover,
.help-checklist a:focus-visible {
    border-color: var(--gold);
    background: rgba(255, 255, 255, 0.09);
}

.help-checklist a.ride-item {
    color: #ffd4c8;
    border-color: rgba(223, 109, 80, 0.42);
}

.readiness-card {
    grid-template-columns: 1.35fr repeat(3, minmax(150px, 0.62fr));
    gap: 24px;
}

.readiness-link {
    display: flex;
    align-self: stretch;
    flex-direction: column;
    justify-content: center;
    min-height: 128px;
    padding: 18px;
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: 11px;
    background: #fffdf8;
    text-decoration: none;
}

.readiness-link:hover,
.readiness-link:focus-visible {
    border-color: var(--coral);
    box-shadow: 0 8px 20px rgba(13, 42, 39, 0.08);
    transform: translateY(-2px);
}

.readiness-link strong,
.readiness-walkthrough strong {
    color: var(--teal);
    font-size: 1.15rem;
    line-height: 1.1;
}

.readiness-number strong {
    color: var(--coral-dark);
    font-family: inherit;
    font-size: 1.15rem;
}

.readiness-link span {
    margin-top: 8px;
    color: var(--muted);
    font-size: 0.72rem;
    line-height: 1.45;
}

.walkthrough-link-band {
    padding: 58px 0;
    background: #efe9dd;
}

.walkthrough-link-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 45px;
}

.walkthrough-link-inner h2 {
    margin: 0 0 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.9rem, 3vw, 2.8rem);
    font-weight: 500;
}

.walkthrough-link-inner p:last-child {
    margin: 0;
    color: var(--muted);
}

.voting-walkthrough-hero {
    padding: 82px 0 92px;
    color: white;
    background:
        radial-gradient(circle at 84% 16%, rgba(233, 183, 90, 0.2), transparent 26%),
        var(--ink-deep);
}

.voting-walkthrough-heading {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    align-items: end;
    gap: 70px;
}

.voting-walkthrough-heading h1 {
    max-width: 760px;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 5.5vw, 5.35rem);
    font-weight: 500;
    letter-spacing: -0.045em;
    line-height: 1.02;
}

.voting-walkthrough-heading > p {
    margin: 0;
    color: #ccdbd6;
    font-size: 1.05rem;
    line-height: 1.75;
}

.voting-journey-section {
    padding: 72px 0 42px;
    background: #fffdf8;
}

.voting-journey-art {
    margin: 0 auto 45px;
    padding: 20px 28px 10px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #f8f3e9;
    box-shadow: var(--small-shadow);
}

.voting-journey-art img {
    display: block;
    width: 100%;
    max-height: 420px;
    object-fit: contain;
}

.voting-journey-art figcaption {
    margin: 4px 0 3px;
    color: var(--muted);
    font-size: 0.68rem;
    text-align: center;
}

.voting-journey-grid,
.voting-methods-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.voting-journey-grid article {
    padding: 25px;
    border-top: 4px solid var(--gold);
    background: #f7f2e8;
}

.voting-journey-grid article:nth-child(even) {
    border-top-color: var(--coral);
}

.voting-journey-grid article > span {
    display: grid;
    place-items: center;
    width: 31px;
    height: 31px;
    margin-bottom: 17px;
    color: white;
    border-radius: 50%;
    background: var(--teal);
    font-weight: 850;
}

.voting-journey-grid h2 {
    margin-bottom: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
    font-weight: 500;
}

.voting-journey-grid p,
.voting-methods-grid p {
    margin: 0;
    color: var(--muted);
    font-size: 0.76rem;
    line-height: 1.65;
}

.voting-details-section {
    padding: 58px 0 100px;
    background: #f1ecdf;
}

.voting-details-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.voting-detail-card {
    padding: 38px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: white;
    box-shadow: var(--small-shadow);
    scroll-margin-top: 28px;
}

.voting-detail-card h2 {
    margin: 0 0 16px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
    font-weight: 500;
}

.voting-detail-card p,
.voting-detail-card li {
    color: var(--muted);
    font-size: 0.82rem;
    line-height: 1.7;
}

.voting-detail-card ul {
    display: grid;
    gap: 8px;
    padding-left: 21px;
}

.detail-note {
    padding: 15px 17px;
    border-left: 4px solid var(--gold);
    background: #fff8e8;
}

.detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 25px;
}

.voting-methods-section {
    padding: 92px 0 100px;
    background: white;
}

.voting-methods-grid {
    grid-template-columns: repeat(3, 1fr);
}

.voting-methods-grid article {
    display: flex;
    flex-direction: column;
    min-height: 220px;
    padding: 30px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fffdf8;
}

.voting-methods-grid article > span {
    color: var(--coral-dark);
    font-size: 0.65rem;
    font-weight: 850;
    letter-spacing: 0.14em;
}

.voting-methods-grid h3 {
    margin: 28px 0 11px;
    font-size: 1.2rem;
}

.voting-method-link {
    align-self: flex-start;
    margin-top: auto;
    padding-top: 22px;
}

.official-source-band {
    padding: 74px 0;
    color: white;
    background: var(--teal);
}

.official-source-inner {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    align-items: center;
    gap: 75px;
}

.official-source-inner h2 {
    margin: 0 0 16px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.2rem, 4vw, 3.5rem);
    font-weight: 500;
}

.official-source-inner p:last-child {
    margin: 0;
    color: #d5e3df;
    line-height: 1.7;
}

.official-source-links {
    display: grid;
}

.official-source-links a {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 17px 0;
    color: white;
    border-bottom: 1px solid rgba(255, 255, 255, 0.22);
    font-weight: 750;
    text-decoration: none;
}

.official-source-links a:hover,
.official-source-links a:focus-visible {
    color: #ffe1a7;
}

/* Ohio voter-registration guide */
.registration-hero-deadline {
    padding: 25px 28px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.07);
}

.registration-hero-deadline > span,
.registration-hero-deadline > strong {
    display: block;
}

.registration-hero-deadline > span {
    margin-bottom: 7px;
    color: #ffd0c4;
    font-size: 0.67rem;
    font-weight: 850;
    letter-spacing: 0.15em;
}

.registration-hero-deadline > strong {
    color: var(--gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.5rem, 4vw, 3.7rem);
    font-weight: 500;
    line-height: 1;
}

.registration-hero-deadline p {
    margin: 14px 0 0;
    color: #d4e0dc;
    font-size: 0.88rem;
    line-height: 1.6;
}

.registration-journey-section {
    padding-bottom: 100px;
}

.registration-options-section {
    padding: 95px 0;
    background: #f1ecdf;
}

.registration-options-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.registration-option-card {
    padding: 40px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: white;
    box-shadow: var(--small-shadow);
}

.registration-option-card h2 {
    margin: 0 0 17px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3vw, 2.75rem);
    font-weight: 500;
}

.registration-option-card p,
.registration-option-card li {
    color: var(--muted);
    font-size: 0.84rem;
    line-height: 1.7;
}

.registration-option-card ul {
    display: grid;
    gap: 8px;
    margin-bottom: 27px;
    padding-left: 21px;
}

.online-option {
    border-top: 5px solid var(--teal);
}

.paper-option {
    border-top: 5px solid var(--gold);
}

.paper-option .detail-actions {
    align-items: center;
}

.registration-details-section {
    padding: 100px 0;
    background: #fffdf8;
}

.registration-check-card {
    background: #fff8ed;
}

.registration-source-band {
    background: var(--ink-deep);
}

@media (max-width: 1100px) {
    .readiness-card {
        grid-template-columns: 1fr 1fr;
    }

    .readiness-card > div:first-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 980px) {
    .hero .hero-days-card {
        position: static;
        display: flex;
        grid-column: 1;
        align-items: center;
        justify-self: end;
        gap: 12px;
        width: auto;
        min-height: 0;
        margin-bottom: -30px;
        padding: 12px 17px;
        border-radius: 14px;
    }

    .hero .hero-days-card strong {
        font-size: 2.3rem;
    }

    .hero .hero-days-card span {
        max-width: 115px;
    }

    .inline-reset-form {
        margin-left: 0;
    }

    .hero .team-preview {
        transform: rotate(6deg);
    }

    .voting-walkthrough-heading,
    .official-source-inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .voting-journey-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 760px) {
    .readiness-card,
    .voting-details-grid,
    .voting-methods-grid {
        grid-template-columns: 1fr;
    }

    .readiness-card > div:first-child {
        grid-column: auto;
    }

    .walkthrough-link-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .voting-walkthrough-hero {
        padding: 62px 0 68px;
    }

    .voting-journey-art {
        padding: 12px 10px 8px;
    }

    .voting-detail-card {
        padding: 29px 24px;
    }

    .home-page .hero {
        padding-top: 32px;
    }

    .registration-deadline-inner,
    .registration-options-grid {
        grid-template-columns: 1fr;
    }

    .registration-deadline-inner {
        justify-items: start;
    }

    .registration-option-card {
        padding: 31px 25px;
    }
}

@media (max-width: 470px) {
    .home-page .hero {
        padding-top: 26px;
    }

    .hero .hero-days-card {
        justify-self: stretch;
        justify-content: center;
        margin-bottom: -24px;
    }

    .inline-reset-form,
    .inline-reset-form .button {
        width: 100%;
    }

    .hero .team-preview {
        transform: rotate(4deg);
    }

    .voting-journey-grid {
        grid-template-columns: 1fr;
    }

    .voting-journey-art figcaption {
        font-size: 0.62rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .button,
    .dashboard-gauge-face,
    .dashboard-gauge-progress {
        transition: none;
    }
}

/* Demo2: clearer first step and active-development message */
.nav-first-step {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.nav-first-step span {
    display: grid;
    place-items: center;
    width: 23px;
    height: 23px;
    color: white;
    border-radius: 50%;
    background: var(--coral);
    font-size: 0.67rem;
}

.hero-trust-statement {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 12px;
    width: fit-content;
    margin-bottom: 32px;
    padding: 14px 18px;
    border: 1px solid rgba(34, 80, 72, 0.16);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.7);
    box-shadow: 0 8px 22px rgba(13, 42, 39, 0.06);
}

.hero-trust-statement .shield-icon {
    grid-row: auto;
    width: 36px;
    height: 36px;
}

.hero-trust-statement strong,
.hero-trust-statement span {
    display: block;
}

.hero-trust-statement strong {
    font-size: 0.88rem;
}

.hero-trust-statement div > span {
    margin-top: 2px;
    color: var(--muted);
    font-size: 0.77rem;
}

.voting-info-launch {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 13px;
    max-width: 590px;
    margin-top: 24px;
    padding: 15px 17px;
    color: var(--ink);
    border: 1px solid rgba(223, 109, 80, 0.35);
    border-radius: 10px;
    background: #fffaf1;
    box-shadow: inset 0 -3px 0 rgba(189, 79, 56, 0.16), 0 8px 22px rgba(13, 42, 39, 0.08);
    text-decoration: none;
}

.voting-info-launch:hover {
    border-color: var(--coral);
    transform: translateY(-1px);
}

.voting-info-launch .launch-icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    color: var(--coral-dark);
    border-radius: 50%;
    background: #f9e4dc;
}

.voting-info-launch strong,
.voting-info-launch small {
    display: block;
}

.voting-info-launch small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 0.7rem;
    line-height: 1.4;
}

.orbit {
    border-width: 3px;
    border-color: rgba(34, 80, 72, 0.14);
}

.team-preview {
    transform: rotate(4deg);
}

.invitation-card .fine-print {
    color: #526964;
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1.55;
}

.status-invited {
    color: #76551b;
    background: #f7e7bc;
}

.status-deciding {
    color: #63538a;
    background: #e9e2f6;
}

.status-declined {
    color: #7b4a42;
    background: #f2dfdb;
}

.early-voting-section {
    padding: 78px 0;
    background: #f1ecdf;
}

.early-voting-grid {
    display: grid;
    grid-template-columns: 1.05fr 1fr 180px;
    align-items: center;
    gap: 48px;
}

.early-voting-grid h2 {
    margin-bottom: 18px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.1rem, 3.5vw, 3.5rem);
    font-weight: 500;
    line-height: 1.06;
}

.early-voting-grid > div:first-child > p:last-child {
    margin: 0;
    color: var(--muted);
}

.early-benefits {
    display: grid;
    gap: 10px;
}

.early-benefits article {
    padding: 14px 16px;
    border-left: 3px solid var(--gold);
    background: rgba(255, 255, 255, 0.58);
}

.early-benefits strong,
.early-benefits span {
    display: block;
}

.early-benefits strong {
    font-size: 0.83rem;
}

.early-benefits span {
    margin-top: 2px;
    color: var(--muted);
    font-size: 0.71rem;
}

.days-card {
    display: grid;
    place-items: center;
    min-height: 170px;
    padding: 22px;
    color: white;
    border-radius: 50%;
    background: var(--ink);
    text-align: center;
}

.days-card strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.8rem;
    font-weight: 500;
    line-height: 0.8;
}

.days-card span {
    max-width: 105px;
    color: #d5e0dc;
    font-size: 0.68rem;
}

/* Demo2: How voting works */
.voting-experience-section {
    padding: 88px 0;
    background: #f7f2e8;
}

.voting-experience-heading {
    max-width: 720px;
    margin: 0 0 54px;
    text-align: left;
}

.voting-experience-heading > p:last-child {
    max-width: 700px;
    margin: -5px 0 0;
    color: var(--muted);
}

.centered-heading > p:last-child {
    max-width: 700px;
    margin: -5px auto 0;
    color: var(--muted);
}

.experience-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-top: 44px;
}

.experience-grid article {
    padding: 27px 24px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: white;
}

.experience-grid article > span {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    margin-bottom: 25px;
    color: white;
    border-radius: 50%;
    background: var(--coral);
    font-weight: 850;
}

.experience-grid h3 {
    margin-bottom: 10px;
}

.experience-grid p {
    margin: 0;
    color: var(--muted);
    font-size: 0.76rem;
}

.experience-grid a {
    color: var(--ink);
    font-weight: 800;
    text-decoration: underline;
    text-decoration-color: var(--coral);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

.early-explainer {
    padding: 64px 0;
    color: white;
    background: var(--ink-deep);
}

.early-explainer-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
}

.early-explainer h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.6rem;
    font-weight: 500;
}

.early-explainer ul {
    display: grid;
    gap: 13px;
    margin: 0;
    padding-left: 22px;
    color: #d5e0dc;
}

/* Demo2: invitation choices */
.decline-form,
.secondary-form {
    margin-top: 12px;
}

.link-button {
    padding: 0;
    border: 0;
    cursor: pointer;
    background: transparent;
}

.prominent-fine-print {
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.55;
}

.quiet-mark {
    display: grid;
    place-items: center;
    width: 70px;
    height: 70px;
    margin: 0 auto 26px;
    color: var(--ink);
    border-radius: 50%;
    background: #f2e7ce;
    font-size: 1.65rem;
}

/* Demo2: Ann's Circle control surface */
.circle-dashboard-grid {
    display: grid;
    grid-template-columns: 218px minmax(480px, 1fr) 290px;
    align-items: start;
    gap: 20px;
}

.circle-task-menu,
.walkthrough-panel {
    position: sticky;
    top: 22px;
}

.circle-task-menu {
    overflow: hidden;
    padding: 25px 18px 20px;
}

.circle-task-menu h2 {
    margin-bottom: 19px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.65rem;
    font-weight: 500;
}

.circle-task-menu nav {
    display: grid;
}

.circle-task-menu nav a,
.circle-task-menu nav button {
    display: grid;
    grid-template-columns: 28px 1fr;
    align-items: center;
    gap: 9px;
    min-height: 51px;
    padding: 10px 4px;
    color: var(--ink);
    border: 0;
    border-top: 1px solid var(--line);
    background: transparent;
    text-align: left;
    text-decoration: none;
}

.circle-task-menu nav button {
    cursor: not-allowed;
    opacity: 0.55;
}

.circle-task-menu nav span {
    display: grid;
    place-items: center;
    width: 27px;
    height: 27px;
    color: var(--coral-dark);
    border-radius: 7px;
    background: #f7e8e1;
}

.circle-task-menu nav strong {
    font-size: 0.74rem;
}

.ann-voted-button {
    display: grid;
    grid-template-columns: 32px 1fr;
    width: 100%;
    margin-top: 20px;
    padding: 16px;
    color: white;
    border: 0;
    border-radius: 10px;
    background: var(--teal);
    text-align: left;
}

.ann-voted-button > span {
    grid-row: 1 / span 2;
    font-size: 1.2rem;
}

.ann-voted-button strong,
.ann-voted-button small {
    display: block;
}

.ann-voted-button small {
    color: #cce0da;
    font-size: 0.63rem;
}

.task-note {
    margin: 15px 2px 0;
    color: var(--muted);
    font-size: 0.65rem;
    line-height: 1.5;
}

.declined-card {
    border-color: #d7aaa0;
    background: #fff4f1;
}

.all-invitations {
    padding: 27px 30px;
    scroll-margin-top: 24px;
}

.section-title-line,
.invitation-history-row,
.membership-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.section-title-line h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
    font-weight: 500;
}

.history-count {
    color: var(--muted);
    font-size: 0.72rem;
}

.invitation-history-row {
    padding: 16px 0;
    border-top: 1px solid var(--line);
}

.invitation-history-row strong,
.invitation-history-row small,
.membership-row strong,
.membership-row small {
    display: block;
}

.invitation-history-row small,
.membership-row small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 0.67rem;
}

/* Demo2: Bob's personal home */
.bob-home-page,
.bob-home-page main {
    background: #f2eee6;
}

.personal-header {
    padding: 58px 0 38px;
}

.personal-title-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
}

.personal-title-row h1 {
    margin-bottom: 10px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.7rem, 4.5vw, 4.2rem);
    font-weight: 500;
}

.personal-title-row p:last-child {
    margin: 0;
    color: var(--muted);
}

.personal-content {
    padding-bottom: 90px;
}

.personal-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    align-items: start;
    gap: 22px;
}

.personal-main,
.personal-side {
    display: grid;
    gap: 18px;
}

.confirmation-banner {
    padding: 17px 20px;
    color: #1c533f;
    border: 2px solid #79b497;
    border-radius: 10px;
    background: #e5f4ec;
    font-weight: 750;
    box-shadow: 0 8px 18px rgba(28, 83, 63, 0.1);
}

.confirmation-banner strong {
    display: block;
    margin-bottom: 5px;
    font-size: 0.64rem;
    letter-spacing: 0.15em;
}

.confirmation-banner p {
    margin: 0;
}

.countdown-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.countdown-card {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    padding: 24px;
}

.countdown-card > span {
    color: var(--coral-dark);
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.12em;
}

.countdown-card strong {
    grid-row: 1 / span 2;
    grid-column: 2;
    color: var(--ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.25rem;
    font-weight: 500;
}

.countdown-card p {
    margin: 2px 0 0;
    color: var(--muted);
    font-size: 0.72rem;
}

.personal-plan,
.my-circle-card,
.membership-card,
.privacy-card,
.voted-card {
    padding: 28px 30px;
}

.personal-plan {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.personal-plan h2,
.my-circle-card h2,
.membership-card h2,
.voted-card h2,
.privacy-card h2 {
    margin-bottom: 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.65rem;
    font-weight: 500;
}

.personal-plan p:last-child,
.empty-circle-note,
.voted-card p,
.privacy-card p {
    margin-bottom: 0;
    color: var(--muted);
    font-size: 0.74rem;
}

.small-action {
    padding: 8px 11px;
    color: var(--muted);
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #f6f3ec;
    font-size: 0.68rem;
}

.personal-friend {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 13px;
    margin-top: 18px;
    padding: 16px 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.personal-friend strong,
.personal-friend small {
    display: block;
}

.personal-friend small {
    color: var(--muted);
    font-size: 0.67rem;
}

.empty-circle-note {
    margin-top: 14px;
}

.voted-card {
    text-align: center;
}

.voted-check {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin: 0 auto 18px;
    color: white;
    border-radius: 50%;
    background: var(--coral);
    font-size: 1.25rem;
}

.voted-card p {
    margin: 0 0 20px;
}

.home-help-menu {
    padding: 27px 28px;
}

.privacy-card strong {
    display: block;
    margin-bottom: 6px;
}

.privacy-card p {
    margin: 0 0 18px;
}

.plan-form-heading {
    margin-top: 32px;
    padding-top: 28px;
    border-top: 1px solid var(--line);
}

.plan-change-note {
    margin: 0;
    color: var(--muted);
    font-size: 0.68rem;
}

.home-return-link {
    display: block;
    margin-top: 17px;
    font-size: 0.72rem;
    font-weight: 750;
    text-decoration: none;
}

/* Demo2: real Ohio voter-information lookup */
.lookup-page,
.lookup-page main {
    background: #f2eee6;
}

.lookup-header {
    padding: 68px 0 92px;
    color: white;
    background: var(--ink-deep);
}

.lookup-heading-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    align-items: end;
    gap: 65px;
}

.lookup-header h1 {
    margin-bottom: 15px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.8rem, 5vw, 4.8rem);
    font-weight: 500;
    line-height: 1.02;
}

.lookup-header p:last-child {
    margin: 0;
    color: #cfdbd7;
}

.lookup-privacy-note {
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.06);
}

.lookup-privacy-note strong,
.lookup-privacy-note span {
    display: block;
}

.lookup-privacy-note span {
    margin-top: 6px;
    color: #cfdbd7;
    font-size: 0.72rem;
    line-height: 1.55;
}

.lookup-content {
    padding-bottom: 95px;
}

.lookup-grid {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    align-items: start;
    gap: 22px;
    transform: translateY(-38px);
}

.lookup-form-card,
.lookup-result,
.lookup-message,
.lookup-placeholder {
    padding: 34px;
}

.lookup-form-card h2,
.lookup-message h2,
.lookup-placeholder h2,
.lookup-result h2 {
    margin-bottom: 24px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
    font-weight: 500;
}

.lookup-form,
.lookup-form > div,
.name-field-grid > div {
    display: grid;
}

.lookup-form {
    gap: 17px;
}

.name-field-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px;
}

.lookup-form label {
    margin-bottom: 7px;
    font-size: 0.73rem;
    font-weight: 800;
}

.lookup-form input,
.lookup-form select {
    width: 100%;
    height: 49px;
    padding: 0 13px;
    color: var(--ink);
    border: 1px solid #b9c3be;
    border-radius: 8px;
    outline: 0;
    background: #fffefa;
}

.lookup-form input:focus,
.lookup-form select:focus {
    border-color: var(--teal);
    box-shadow: 0 0 0 3px rgba(34, 80, 72, 0.12);
}

.lookup-form select {
    cursor: pointer;
}

.lookup-step-summary {
    margin: -10px 0 22px;
    color: var(--muted);
    font-size: 0.76rem;
    line-height: 1.55;
}

.lookup-field-hint {
    margin-top: 6px;
    color: var(--muted);
    font-size: 0.63rem;
}

.lookup-inline-error {
    margin: -5px 0 0;
    color: #a43d2c;
    font-size: 0.69rem;
    font-weight: 750;
}

.lookup-back-link {
    display: block;
    margin-top: 17px;
    color: var(--teal);
    font-size: 0.69rem;
    font-weight: 800;
    text-decoration: none;
}

.lookup-back-link:hover {
    text-decoration: underline;
}

.lookup-registration-link {
    display: block;
    margin-top: 12px;
    color: var(--teal);
    font-size: 0.72rem;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.lookup-registration-link:hover {
    text-decoration: underline;
}

.lookup-progress-placeholder > span {
    color: white;
    background: var(--teal);
}

.lookup-disclaimer {
    margin: 18px 0 0;
    color: var(--muted);
    font-size: 0.65rem;
    line-height: 1.5;
}

.lookup-placeholder {
    min-height: 390px;
    text-align: center;
}

.lookup-placeholder > span {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    margin: 55px auto 24px;
    color: var(--coral-dark);
    border-radius: 50%;
    background: #f7e8e1;
    font-size: 1.8rem;
}

.lookup-placeholder p,
.lookup-message p {
    color: var(--muted);
}

.error-message {
    border-color: #d9a89d;
    background: #fff7f5;
}

.result-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.registration-facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 0 0 18px;
}

.registration-facts div {
    padding: 13px;
    border-radius: 8px;
    background: #f3f0e9;
}

.registration-facts dt {
    color: var(--muted);
    font-size: 0.61rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.registration-facts dd {
    margin: 4px 0 0;
    font-size: 0.76rem;
    font-weight: 750;
}

.registration-facts dd small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 0.64rem;
    font-weight: 650;
}

.location-result {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 14px;
    padding: 19px 0;
    border-top: 1px solid var(--line);
}

.location-icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    color: white;
    border-radius: 50%;
    background: var(--coral);
}

.early-location-result .location-icon {
    background: var(--teal);
}

.location-result small {
    color: var(--coral-dark);
    font-size: 0.61rem;
    font-weight: 850;
    letter-spacing: 0.1em;
}

.location-result h3 {
    margin: 4px 0;
    font-size: 1.02rem;
}

.location-result p,
.location-result em {
    display: block;
    margin: 0;
    color: var(--muted);
    font-size: 0.71rem;
}

.result-source-link {
    display: inline-block;
    margin-top: 15px;
}

.lookup-location-group {
    margin-top: 24px;
}

.lookup-location-group > h3 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
}

.lookup-location-group .location-result h4,
.lookup-location-group .location-result strong {
    display: block;
    margin: 4px 0;
    color: var(--ink);
    font-size: 1.02rem;
}

.lookup-location-group .location-result > span:last-child > span,
.lookup-location-group .location-result a {
    display: block;
    margin-top: 4px;
    font-size: 0.72rem;
}

.lookup-location-choice {
    cursor: pointer;
}

.lookup-location-choice > input[type="radio"] {
    width: 22px;
    height: 22px;
    margin: 9px;
    accent-color: var(--teal);
}

.lookup-location-choice:has(input[type="radio"]:checked) {
    border-radius: 10px;
    outline: 3px solid rgba(38, 103, 91, 0.24);
    outline-offset: 4px;
}

.lookup-copy-form > p,
.lookup-location-status {
    color: var(--muted);
    font-size: 0.75rem;
}

.lookup-location-status-ambiguous,
.lookup-location-status-contradictory {
    padding: 12px 14px;
    border-left: 4px solid var(--coral);
    background: #fff5ef;
}

.lookup-copy-form > .button {
    margin: 10px 0 6px;
}

/* Residence, voting jurisdiction, and localized guide. */

.compact-page-shell {
    width: min(900px, calc(100% - 48px));
}

.location-profile-hero {
    padding: 64px 0 54px;
    background:
        radial-gradient(circle at 80% 10%, rgba(233, 183, 90, 0.22), transparent 25%),
        linear-gradient(135deg, #f7f0e4, #fffdf8 64%);
}

.location-profile-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
    align-items: end;
    gap: 72px;
}

.location-profile-heading h1,
.voting-guide-intro h1 {
    margin-bottom: 22px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.7rem, 5vw, 4.8rem);
    font-weight: 500;
}

.location-profile-heading > div:first-child > p:last-child,
.voting-guide-intro > p {
    max-width: 720px;
    color: #466762;
    font-size: 1.05rem;
}

.location-explainer-card {
    display: grid;
    gap: 9px;
    padding: 28px;
    color: #fffdf8;
    border-radius: 17px;
    background: var(--teal);
    box-shadow: var(--small-shadow);
}

.location-explainer-card strong {
    color: var(--gold);
    font-size: 1rem;
}

.location-explainer-card span {
    font-size: 0.84rem;
    line-height: 1.6;
}

.location-profile-section {
    padding: 48px 0 92px;
    background: #eef2ed;
}

.voting-location-form {
    display: grid;
    gap: 26px;
}

.voting-location-form fieldset {
    margin: 0;
    padding: 34px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: white;
    box-shadow: var(--small-shadow);
}

.voting-location-form legend {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 0 10px 0 0;
    color: var(--ink);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
    font-weight: 700;
}

.voting-location-form legend span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    color: white;
    border-radius: 50%;
    background: var(--coral);
    font-family: Inter, ui-sans-serif, sans-serif;
    font-size: 0.8rem;
}

.field-help {
    margin: 2px 0 24px;
    color: var(--muted);
    font-size: 0.84rem;
}

.residence-kind-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 13px;
    margin-bottom: 22px;
}

.choice-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 4px 10px;
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: 11px;
    cursor: pointer;
    background: #fbfaf6;
}

.choice-card:has(input:checked) {
    border-color: var(--teal);
    background: var(--teal-soft);
    box-shadow: inset 0 0 0 1px var(--teal);
}

.choice-card input {
    grid-row: 1 / 3;
    margin-top: 4px;
    accent-color: var(--teal);
}

.choice-card strong {
    font-size: 0.84rem;
}

.choice-card span {
    color: var(--muted);
    font-size: 0.7rem;
    line-height: 1.45;
}

.conditional-location-field,
.form-field-grid,
.country-field-grid {
    display: grid;
    gap: 16px;
}

.conditional-location-field[hidden] {
    display: none;
}

.form-field-grid {
    grid-template-columns: 1fr 1fr;
}

.country-field-grid {
    grid-template-columns: 1fr 140px;
}

.conditional-location-field label,
.form-field-grid label {
    display: block;
    margin-bottom: 7px;
    font-size: 0.75rem;
    font-weight: 800;
}

.conditional-location-field select,
.conditional-location-field input,
.form-field-grid select {
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    color: var(--ink);
    border: 1px solid #bdcbc5;
    border-radius: 8px;
    background: white;
}

.check-choice {
    display: flex;
    gap: 12px;
    margin-top: 24px;
    padding: 17px 18px;
    border-radius: 10px;
    background: #f5eee2;
}

.check-choice input {
    width: 19px;
    height: 19px;
    margin-top: 3px;
    accent-color: var(--teal);
}

.check-choice span {
    display: grid;
    gap: 3px;
    color: var(--muted);
    font-size: 0.74rem;
}

.check-choice strong {
    color: var(--ink);
    font-size: 0.82rem;
}

.form-action-row {
    display: flex;
    align-items: center;
    gap: 24px;
}

.form-action-row > a,
.quiet-link {
    color: var(--teal);
    font-size: 0.8rem;
    font-weight: 800;
}

.voting-guide-hero {
    padding: 62px 0 66px;
    overflow: hidden;
    background:
        radial-gradient(circle at 83% 18%, rgba(223, 109, 80, 0.16), transparent 25%),
        linear-gradient(135deg, #fffdf8, #f4eee2);
}

.voting-guide-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(380px, 1.1fr);
    align-items: center;
    gap: 72px;
}

.voting-guide-intro h1 em {
    color: var(--coral);
    font-weight: 500;
}

.voting-guide-intro label {
    display: block;
    margin: 28px 0 7px;
    color: var(--ink);
    font-size: 0.69rem;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.guide-jurisdiction-select {
    width: min(100%, 390px);
    min-height: 50px;
    padding: 10px 13px;
    color: var(--ink);
    border: 1px solid #aebdb6;
    border-radius: 8px;
    background: white;
    font-weight: 700;
}

.voting-guide-intro .quiet-link {
    display: block;
    width: fit-content;
    margin-top: 13px;
}

.jurisdiction-hero-art {
    transform: rotate(5deg);
}

.voting-info-launch:active {
    transform: translateY(2px);
    box-shadow: inset 0 -1px 0 rgba(189, 79, 56, 0.16), 0 2px 6px rgba(13, 42, 39, 0.1);
}

/* Retired guided-presenter styles retained for a later stylesheet cleanup. */

.presenter-nav-link {
    font-size: 0.78rem;
    opacity: 0.72;
}

.presenter-hero {
    padding-block: clamp(3rem, 7vw, 6rem);
}

.presenter-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(20rem, 0.85fr);
    gap: clamp(2rem, 6vw, 5rem);
    align-items: center;
}

.presenter-introduction h1 {
    max-width: 14ch;
}

.presenter-control-card {
    display: grid;
    gap: 1rem;
}

.presenter-pin-form {
    display: grid;
    gap: 0.75rem;
}

.presenter-pin-form input {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(24, 58, 54, 0.25);
    border-radius: 0.6rem;
    font: inherit;
}

.presenter-start-button {
    width: 100%;
    justify-content: center;
}

.presenter-steps-section {
    padding-block: clamp(3rem, 7vw, 5rem);
    background: #f6f2e9;
}

.presenter-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.presenter-steps article {
    padding: 1.35rem;
    background: #fff;
    border: 1px solid rgba(24, 58, 54, 0.14);
    border-radius: 1rem;
}

.presenter-steps article > span {
    display: grid;
    width: 2.2rem;
    height: 2.2rem;
    place-items: center;
    margin-bottom: 1rem;
    border-radius: 50%;
    background: #f2ba4d;
    color: #183a36;
    font-weight: 900;
}

.presenter-steps h2 {
    font-size: 1.15rem;
}

.presenter-dashboard-card {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    align-items: center;
    border: 2px solid #f2ba4d;
    background: #fffaf0;
}

.presenter-dashboard-card p:last-child {
    margin-bottom: 0;
}

@media (max-width: 800px) {
    .presenter-shell,
    .presenter-steps {
        grid-template-columns: 1fr;
    }

    .presenter-dashboard-card {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Mail-ballot tracking ---------------------------------------------------- */
.mail-ballot-hero {
    padding: 72px 0 68px;
    background:
        radial-gradient(circle at 88% 18%, rgba(233, 183, 90, 0.24), transparent 24rem),
        linear-gradient(135deg, #fffdf8 0%, #f6f1e7 100%);
}

.mail-ballot-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.8fr);
    gap: clamp(42px, 7vw, 92px);
    align-items: center;
}

.mail-ballot-hero h1 {
    max-width: 760px;
    margin: 12px 0 20px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 6vw, 5.8rem);
    line-height: 0.96;
}

.mail-ballot-lede {
    max-width: 700px;
    color: #405e58;
    font-size: clamp(1.05rem, 1.7vw, 1.28rem);
}

.mail-ballot-jurisdiction-form {
    max-width: 700px;
    margin-top: 32px;
}

.mail-ballot-jurisdiction-form label {
    display: block;
    margin-bottom: 8px;
    color: var(--ink-deep);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mail-ballot-jurisdiction-form > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
}

.mail-ballot-jurisdiction-form select {
    min-width: 0;
    min-height: 50px;
    padding: 10px 42px 10px 14px;
    border: 1px solid #a8b6b1;
    border-radius: 8px;
    color: var(--ink-deep);
    background: white;
    font-weight: 750;
}

.mail-ballot-profile-note {
    margin: 12px 0 0;
    color: var(--muted);
    font-size: 0.82rem;
}

.mail-ballot-official-card {
    position: relative;
    padding: 38px;
    border: 1px solid rgba(23, 59, 54, 0.18);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: var(--shadow);
}

.mail-ballot-method {
    display: inline-block;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--ink-deep);
    background: var(--teal-soft);
    font-size: 0.66rem;
    font-weight: 950;
    letter-spacing: 0.1em;
}

.mail-ballot-state-code {
    position: absolute;
    top: 26px;
    right: 30px;
    color: rgba(23, 59, 54, 0.14);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 6vw, 5rem);
    font-weight: 900;
    line-height: 1;
}

.mail-ballot-official-card h2 {
    position: relative;
    margin: 28px 0 12px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3.4vw, 3rem);
}

.mail-ballot-official-card p {
    position: relative;
    color: #49635e;
}

.mail-ballot-official-card .button {
    position: relative;
    width: 100%;
    margin-top: 10px;
}

.mail-ballot-help-link {
    display: block;
    margin: 17px 0 0;
    color: var(--coral-dark);
    font-size: 0.84rem;
    font-weight: 850;
    text-align: center;
}

.mail-ballot-official-card small {
    display: block;
    margin-top: 20px;
    color: var(--muted);
    font-size: 0.7rem;
    line-height: 1.5;
    text-align: center;
}

.mail-ballot-explainer {
    padding: 76px 0 82px;
    border-top: 1px solid rgba(23, 59, 54, 0.08);
    background: white;
}

.mail-ballot-section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.55fr);
    gap: 50px;
    align-items: end;
}

.mail-ballot-section-heading h2,
.mail-ballot-help-grid h2,
.mail-ballot-uocava-card h2 {
    margin: 8px 0 0;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3.6rem);
}

.mail-ballot-section-heading > p {
    margin: 0;
    color: var(--muted);
}

.mail-ballot-stage-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-top: 40px;
}

.mail-ballot-stage-grid article {
    padding: 25px 22px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    box-shadow: var(--small-shadow);
}

.mail-ballot-stage-grid article > span {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    margin-bottom: 25px;
    border-radius: 50%;
    color: white;
    background: var(--teal);
    font-weight: 950;
}

.mail-ballot-stage-grid h3 {
    margin-bottom: 10px;
    color: var(--ink-deep);
    font-size: 1.05rem;
}

.mail-ballot-stage-grid p {
    margin: 0;
    color: var(--muted);
    font-size: 0.86rem;
}

.mail-ballot-help-section {
    padding: 76px 0;
    background: var(--cream);
}

.mail-ballot-help-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.mail-ballot-help-grid article {
    padding: clamp(28px, 4vw, 46px);
    border-radius: 20px;
}

.mail-ballot-privacy-card {
    border: 1px solid var(--line);
    background: white;
}

.mail-ballot-problem-card {
    color: white;
    background: var(--ink-deep);
}

.mail-ballot-help-grid h2 {
    font-size: clamp(1.8rem, 3vw, 2.7rem);
}

.mail-ballot-problem-card h2 {
    color: white;
}

.mail-ballot-problem-card .eyebrow {
    color: #ffc6b6;
}

.mail-ballot-problem-card p:not(.eyebrow) {
    color: #d7e7e1;
}

.mail-ballot-uocava-section {
    padding: 60px 0;
    background: #eaf3ef;
}

.mail-ballot-uocava-section.is-friend-context {
    background: #fff1cf;
}

.mail-ballot-uocava-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 25px;
    align-items: center;
}

.mail-ballot-uocava-mark {
    display: grid;
    place-items: center;
    width: 62px;
    height: 62px;
    border-radius: 50%;
    color: var(--ink-deep);
    background: var(--gold);
    font-size: 1.45rem;
}

.mail-ballot-uocava-card h2 {
    font-size: clamp(1.8rem, 3vw, 2.65rem);
}

.mail-ballot-uocava-card p:not(.eyebrow) {
    max-width: 760px;
    margin: 12px 0 0;
    color: #405e58;
}

.mail-ballot-next-section {
    padding: 48px 0 64px;
    background: white;
}

.mail-ballot-next-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.mail-ballot-next-links > a {
    display: block;
    padding: 20px 22px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--paper);
    box-shadow: var(--small-shadow);
    text-decoration: none;
}

.mail-ballot-next-links strong,
.mail-ballot-next-links span {
    display: block;
}

.mail-ballot-next-links strong {
    color: var(--ink-deep);
}

.mail-ballot-next-links span {
    margin-top: 4px;
    color: var(--muted);
    font-size: 0.8rem;
}

@media (max-width: 900px) {
    .mail-ballot-hero-grid,
    .mail-ballot-section-heading,
    .mail-ballot-help-grid {
        grid-template-columns: 1fr;
    }

    .mail-ballot-stage-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mail-ballot-section-heading {
        gap: 16px;
    }

    .mail-ballot-uocava-card {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .mail-ballot-uocava-card .button {
        grid-column: 2;
        justify-self: start;
    }
}

@media (max-width: 600px) {
    .mail-ballot-hero {
        padding: 46px 0 48px;
    }

    .mail-ballot-hero h1 {
        font-size: clamp(2.7rem, 15vw, 4rem);
    }

    .mail-ballot-jurisdiction-form > div,
    .mail-ballot-stage-grid,
    .mail-ballot-next-links {
        grid-template-columns: 1fr;
    }

    .mail-ballot-jurisdiction-form .button,
    .mail-ballot-uocava-card .button {
        width: 100%;
    }

    .mail-ballot-official-card {
        padding: 28px 22px;
    }

    .mail-ballot-state-code {
        top: 20px;
        right: 20px;
    }

    .mail-ballot-explainer,
    .mail-ballot-help-section {
        padding: 54px 0;
    }

    .mail-ballot-stage-grid article {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        column-gap: 16px;
    }

    .mail-ballot-stage-grid article > span {
        grid-row: 1 / span 2;
        margin: 0;
    }

    .mail-ballot-stage-grid h3 {
        margin-top: 2px;
    }

    .mail-ballot-stage-grid p {
        grid-column: 2;
    }

    .mail-ballot-uocava-card {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .mail-ballot-uocava-card .button {
        grid-column: 1;
        justify-self: stretch;
    }
}

/* Administrator page inventory ---------------------------------------------
   These controls are emitted only for an authorized Administrator
   request. They deliberately use the public site's palette so responsive page
   review happens in the real visual context. */
.beta-page-context {
    background: #edf3ef;
    border-bottom: 1px solid rgba(16, 61, 55, 0.16);
}

.beta-page-context-inner {
    display: grid;
    grid-template-columns: minmax(210px, 300px) minmax(0, 1fr) auto;
    gap: 22px;
    align-items: center;
    min-height: 58px;
    padding-top: 9px;
    padding-bottom: 9px;
}

.beta-page-progress {
    display: grid;
    grid-template-columns: auto minmax(70px, 1fr) auto;
    gap: 9px;
    align-items: center;
    color: #183a36;
    font-size: 0.74rem;
}

.beta-page-kind {
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.beta-page-progress-track,
.sitemap-progress > div {
    height: 6px;
    overflow: hidden;
    background: rgba(16, 61, 55, 0.13);
    border-radius: 999px;
}

.beta-page-progress-track span,
.sitemap-progress > div span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #d75e48, #e9b956 52%, #2ebd72);
}

.beta-page-links {
    display: flex;
    gap: 8px 14px;
    align-items: center;
    min-width: 0;
    flex-wrap: wrap;
    font-size: 0.82rem;
}

.beta-page-links > span {
    color: #657771;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.beta-page-links a,
.beta-atlas-link {
    color: #103d37;
    font-weight: 800;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.beta-atlas-link {
    white-space: nowrap;
}

.nav-section-menu {
    max-height: min(72vh, 620px);
    overflow-y: auto;
}

.beta-atlas-hero,
.beta-prototype-hero {
    padding: 64px 0 44px;
    background:
        radial-gradient(circle at 82% 12%, rgba(236, 177, 78, 0.2), transparent 30%),
        #fbf8f1;
}

.beta-atlas-hero h1,
.beta-prototype-hero h1 {
    margin: 8px 0 14px;
    color: #103d37;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.3rem, 5vw, 4.4rem);
    line-height: 1.02;
}

.beta-atlas-hero p:last-child,
.beta-prototype-hero p:last-child {
    max-width: 760px;
    margin-bottom: 0;
    color: #4f6660;
    font-size: 1.08rem;
    line-height: 1.65;
}

.beta-atlas-content,
.beta-prototype-content {
    padding: 48px 0 80px;
    background: #f5f1e9;
}

.beta-atlas-groups {
    display: grid;
    gap: 44px;
}

.beta-atlas-group,
.sitemap-section {
    display: grid;
    gap: 18px;
}

.beta-atlas-group-heading,
.sitemap-section-heading {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: baseline;
    border-bottom: 2px solid #103d37;
    padding-bottom: 10px;
}

.beta-atlas-group-heading h2,
.sitemap-section-heading h2 {
    margin: 0;
    color: #103d37;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.8rem;
}

.beta-atlas-group-heading span,
.sitemap-section-heading span {
    color: #657771;
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
}

.beta-atlas-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.beta-atlas-card {
    display: flex;
    min-width: 0;
    min-height: 270px;
    flex-direction: column;
    padding: 22px;
    background: #fffdfa;
    border: 1px solid #d8ddd8;
    border-radius: 16px;
    box-shadow: 0 12px 30px rgba(16, 61, 55, 0.06);
}

.beta-atlas-card-heading,
.sitemap-card-meta {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: #6a7a75;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.beta-atlas-card h3,
.sitemap-card h3 {
    margin: 16px 0 7px;
    color: #103d37;
    font-size: 1.12rem;
}

.beta-atlas-card code,
.sitemap-card code,
.beta-route-box code {
    overflow-wrap: anywhere;
    color: #9b4b3d;
    font-size: 0.76rem;
}

.beta-atlas-card p,
.sitemap-card p {
    color: #536862;
    line-height: 1.5;
}

.beta-atlas-next {
    display: flex;
    gap: 8px;
    align-items: baseline;
    margin-top: auto;
    color: #103d37;
}

.beta-atlas-next span {
    color: #c75d49;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.beta-atlas-card > a {
    margin-top: 14px;
    color: #103d37;
    font-weight: 900;
}

.beta-prototype-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 180px;
    gap: 40px;
    align-items: center;
}

.beta-prototype-meter {
    display: grid;
    width: 180px;
    aspect-ratio: 1;
    place-content: center;
    text-align: center;
    background: #103d37;
    color: white;
    border-radius: 50%;
    box-shadow: 0 18px 42px rgba(16, 61, 55, 0.18);
}

.beta-prototype-meter strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.6rem;
}

.beta-prototype-meter span {
    max-width: 130px;
    color: #f0c366;
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.beta-prototype-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 290px;
    gap: 24px;
    align-items: start;
}

.beta-prototype-main,
.beta-prototype-sidebar {
    padding: 28px;
    background: #fffdfa;
    border: 1px solid #d8ddd8;
    border-radius: 18px;
}

.beta-prototype-main h2,
.beta-prototype-sidebar h2 {
    margin: 5px 0 18px;
    color: #103d37;
    font-family: Georgia, "Times New Roman", serif;
}

.beta-prototype-main ol {
    display: grid;
    gap: 14px;
    padding-left: 22px;
    color: #405a54;
    line-height: 1.55;
}

.beta-route-box {
    display: grid;
    gap: 7px;
    margin-top: 28px;
    padding: 18px;
    background: #f4eee3;
    border-radius: 12px;
}

.beta-route-box span {
    color: #657771;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.beta-prototype-sidebar {
    display: grid;
    gap: 1px;
}

.beta-prototype-sidebar a {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 0;
    color: #103d37;
    border-top: 1px solid #d8ddd8;
    font-weight: 800;
}

.sitemap-groups {
    display: grid;
    gap: 48px;
}

.sitemap-category-heading {
    display: grid;
    gap: 7px;
    padding: 20px 24px;
    border-left: 6px solid var(--coral);
    border-radius: 0 14px 14px 0;
    background: #fff8ed;
}

.sitemap-category-heading p {
    max-width: none;
    margin: 0;
}

.sitemap-category-heading-workflow {
    margin-top: 12px;
    border-left-color: var(--green);
    background: #dfece8;
}

.sitemap-section-workflow {
    padding: clamp(22px, 4vw, 38px);
    border: 1px solid #c9dbd4;
    border-radius: 22px;
    background: #edf5f2;
    box-shadow: 0 14px 34px rgba(16, 61, 55, 0.07);
}

.sitemap-section-workflow .sitemap-section-heading {
    border-bottom-color: #6f9187;
}

.sitemap-card {
    display: flex;
    min-height: 250px;
    flex-direction: column;
}

.sitemap-card h3 a {
    color: inherit;
}

.sitemap-progress {
    display: grid;
    grid-template-columns: minmax(70px, 1fr) auto;
    gap: 8px 10px;
    align-items: center;
    margin-top: auto;
    padding-top: 16px;
}

.sitemap-progress > span {
    grid-column: 1 / -1;
    color: #9b4b3d;
    font-size: 0.78rem;
    font-weight: 900;
}

@media (max-width: 1000px) {
    .beta-atlas-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .beta-page-context-inner {
        grid-template-columns: minmax(210px, 300px) minmax(0, 1fr);
    }

    .beta-atlas-link {
        display: none;
    }
}

@media (max-width: 760px) {
    .beta-page-context-inner,
    .beta-prototype-heading,
    .beta-prototype-grid {
        grid-template-columns: 1fr;
    }

    .beta-page-context-inner {
        gap: 8px;
    }

    .beta-page-links {
        padding-bottom: 3px;
    }

    .beta-atlas-hero,
    .beta-prototype-hero {
        padding: 42px 0 34px;
    }

    .beta-prototype-meter {
        width: 100%;
        min-height: 96px;
        aspect-ratio: auto;
        border-radius: 14px;
    }

    .beta-atlas-grid,
    .sitemap-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .beta-page-progress {
        grid-template-columns: auto minmax(50px, 1fr);
    }

    .beta-page-progress > strong {
        grid-column: 1 / -1;
    }

    .beta-atlas-group-heading,
    .sitemap-section-heading {
        display: grid;
    }

    .beta-atlas-card,
    .beta-prototype-main,
    .beta-prototype-sidebar {
        padding: 20px;
    }
}

/* Administrator tools --------------------------------------------------- */

.beta-tool-grid,
.beta-scenario-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.beta-tool-card,
.beta-scenario-card,
.beta-reset-card,
.beta-reset-sidebar {
    padding: 26px;
    background: #fffdfa;
    border: 1px solid #d8ddd8;
    border-radius: 18px;
    box-shadow: 0 12px 30px rgba(16, 61, 55, 0.06);
}

.beta-tool-card,
.beta-scenario-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.beta-tool-card h2,
.beta-scenario-card h2,
.beta-reset-card h2,
.beta-reset-sidebar h2 {
    color: #103d37;
    font-family: Georgia, "Times New Roman", serif;
}

.beta-tool-card p,
.beta-scenario-card p,
.beta-scenario-card li,
.beta-reset-card p,
.beta-reset-card li {
    color: #4f6660;
    line-height: 1.55;
}

.beta-tool-card .button,
.beta-scenario-card .button {
    align-self: flex-start;
    margin-top: auto;
}

.beta-tool-number {
    color: #c75d49;
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.beta-tool-card-warning {
    border-color: #d8a46e;
    background: #fff8ed;
}

.beta-scenario-database {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    color: #405a54;
}

.beta-scenario-database span {
    color: #a13f35;
    font-weight: 900;
}

.beta-scenario-summary {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    margin-bottom: 22px;
    border: 1px solid #cbd8d3;
    border-radius: 16px;
    background: #cbd8d3;
}

.beta-scenario-summary div {
    display: grid;
    gap: 4px;
    padding: 18px 12px;
    text-align: center;
    background: #fffdfa;
}

.beta-scenario-summary strong {
    color: #103d37;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.8rem;
}

.beta-scenario-summary span {
    color: #667a74;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.beta-scenario-note {
    margin: 0 0 24px;
    padding: 18px 20px;
    border-left: 5px solid #1f5d52;
    border-radius: 0 12px 12px 0;
    background: #e6f0ec;
    color: #36564f;
}

.beta-scenario-note:last-child {
    margin: 24px 0 0;
}

.beta-scenario-note p {
    margin: 5px 0 0;
}

.beta-scenario-card ul,
.beta-reset-state-list {
    display: grid;
    gap: 8px;
    padding-left: 20px;
}

.beta-scenario-accounts {
    display: grid;
    gap: 4px;
    margin: 8px 0 22px;
    padding: 14px;
    border-radius: 10px;
    background: #f4eee3;
    color: #405a54;
    font-size: 0.88rem;
}

.beta-reset-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 290px;
    gap: 22px;
    align-items: start;
}

.beta-reset-form {
    display: grid;
    gap: 10px;
    margin-top: 26px;
    padding-top: 24px;
    border-top: 2px solid #dfd6c7;
}

.beta-reset-form label {
    color: #103d37;
    font-weight: 900;
}

.beta-reset-form input {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #78938b;
    border-radius: 10px;
}

.beta-reset-warning {
    padding: 14px;
    border-left: 5px solid #c75d49;
    background: #fff2ed;
}

.button-danger {
    color: white;
    border-color: #8f342b;
    background: #a84136;
}

.button-danger:hover,
.button-danger:focus-visible {
    background: #87342c;
}

.beta-reset-sidebar {
    position: sticky;
    top: 24px;
}

.beta-reset-sidebar dl {
    display: grid;
    gap: 8px;
}

.beta-reset-sidebar dl div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e2e4df;
}

.beta-reset-sidebar dt {
    color: #526861;
}

.beta-reset-sidebar dd {
    margin: 0;
    color: #103d37;
    font-weight: 900;
}

.beta-reset-sidebar > a {
    display: block;
    margin-top: 12px;
    font-weight: 900;
}

.beta-reset-result {
    margin-bottom: 24px;
    padding: 18px;
    border-radius: 12px;
}

.beta-reset-result.is-success {
    border: 1px solid #91b8aa;
    background: #e4f1ec;
}

.beta-reset-result.is-failure {
    border: 1px solid #d9a098;
    background: #fff0ed;
}

.beta-reset-result code {
    display: block;
    overflow-wrap: anywhere;
    margin-top: 12px;
}

@media (max-width: 1000px) {
    .beta-tool-grid,
    .beta-scenario-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .beta-scenario-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .beta-tool-grid,
    .beta-scenario-grid,
    .beta-reset-layout {
        grid-template-columns: 1fr;
    }

    .beta-scenario-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .beta-reset-sidebar {
        position: static;
    }
}

/* Circle pages ----------------------------------------------------------- */

.circle-page-hero {
    padding: clamp(52px, 7vw, 86px) 0 38px;
    background:
        radial-gradient(circle at 82% 12%, rgba(233, 183, 90, 0.2), transparent 28%),
        linear-gradient(180deg, #fffaf1 0%, var(--paper) 100%);
    border-bottom: 1px solid var(--line);
}

.circle-page-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
}

.circle-page-heading h1,
.circle-empty-hero h1 {
    max-width: 820px;
    margin-bottom: 12px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.8rem, 7vw, 5.3rem);
    font-weight: 500;
}

.circle-page-heading p,
.circle-empty-hero p {
    max-width: 760px;
    margin-bottom: 0;
    color: var(--muted);
    font-size: clamp(1.05rem, 2vw, 1.25rem);
}

.circle-view-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 30px;
    padding: 10px;
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 17px;
    background: rgba(255, 255, 255, 0.78);
    box-shadow: var(--small-shadow);
}

.circle-view-radios {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.circle-view-radios legend {
    float: left;
    margin: 0 8px 0 4px;
    color: var(--muted);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.circle-view-radios label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 13px;
    border-radius: 11px;
    color: var(--ink-deep);
    cursor: pointer;
    font-size: 0.84rem;
    font-weight: 900;
}

.circle-view-radios label:hover,
.circle-view-radios label:focus-within {
    background: #e3ece7;
}

.circle-view-radios label.is-active {
    color: white;
    background: var(--teal);
    box-shadow: 0 5px 13px rgba(13, 42, 39, 0.2);
}

.circle-view-radios input {
    width: 17px;
    height: 17px;
    margin: 0;
    accent-color: var(--coral);
}

.circle-scoreboard {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 34px;
}

.circle-scoreboard > div {
    min-height: 104px;
    padding: 20px;
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.74);
    box-shadow: var(--small-shadow);
}

.circle-scoreboard strong,
.circle-scoreboard span {
    display: block;
}

.circle-scoreboard strong {
    color: var(--coral-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    line-height: 1;
}

.circle-scoreboard span {
    margin-top: 9px;
    color: var(--muted);
    font-size: 0.83rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.circle-page-main {
    padding: clamp(38px, 6vw, 72px) 0;
    background:
        radial-gradient(circle at 38% 46%, rgba(255, 253, 248, 0.86) 0 16%, rgba(219, 235, 228, 0.62) 43%, rgba(205, 226, 217, 0.28) 70%, transparent 72%),
        linear-gradient(145deg, #f0f6f2 0%, #e0ece6 100%);
}

.joined-circles-hero-aside {
    display: grid;
    justify-items: center;
    gap: .5rem;
    flex: 0 1 360px;
}

.joined-circles-art {
    display: block;
    width: 360px;
    max-width: 100%;
    height: auto;
}

@media (max-width: 760px) {
    .joined-circles-hero-aside {
        flex-basis: auto;
        align-self: center;
    }

    .joined-circles-art {
        width: 260px;
    }
}

.joined-circles-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
    gap: 22px;
}

.joined-circles-empty {
    max-width: 760px;
}

.joined-circle-card {
    display: flex;
    flex-direction: column;
}

.joined-circle-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.joined-circle-card h2 {
    margin: 3px 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.65rem, 3vw, 2.15rem);
}

.joined-circle-card h2 a {
    color: var(--ink-deep);
    text-decoration-color: rgba(22, 89, 79, 0.35);
    text-underline-offset: 0.14em;
}

.joined-circle-note {
    color: var(--muted);
}

.joined-circle-card .desk-card-actions {
    margin-top: auto;
    padding-top: 20px;
}

.circle-page-grid {
    display: grid;
    grid-template-columns: minmax(0, 2.2fr) minmax(250px, 0.8fr);
    align-items: start;
    gap: clamp(22px, 4vw, 48px);
}

.circle-diagram-panel,
.circle-status-panel {
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 24px;
    background: var(--paper);
    box-shadow:
        0 18px 38px rgba(13, 42, 39, 0.11),
        inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.circle-diagram-panel {
    padding: clamp(14px, 2.5vw, 30px);
    background:
        radial-gradient(circle at 50% 48%, #fffdf8 0 45%, rgba(255, 253, 248, 0.9) 62%, rgba(238, 246, 241, 0.7) 78%, #fffdf8 100%);
}

.circle-status-panel {
    padding: 28px;
}

.circle-status-panel h2 {
    margin-bottom: 20px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
}

.circle-wheel {
    position: relative;
    width: min(100%, 720px);
    aspect-ratio: 1;
    margin: 0 auto;
    border-radius: 50%;
    background:
        radial-gradient(circle at center, transparent 0 39%, rgba(34, 80, 72, 0.24) 39.3% 39.8%, transparent 40.1%),
        repeating-conic-gradient(from -18deg, rgba(34, 80, 72, 0.15) 0deg 0.65deg, transparent 0.65deg 36deg);
}

.circle-leader,
.circle-seat {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    width: clamp(92px, 13vw, 122px);
    min-height: clamp(92px, 13vw, 122px);
    padding: 12px 8px;
    border: 4px solid var(--paper);
    border-radius: 50%;
    color: var(--ink-deep);
    text-align: center;
    text-decoration: none;
    box-shadow:
        0 10px 20px rgba(13, 42, 39, 0.15),
        inset 0 2px 1px rgba(255, 255, 255, 0.78),
        inset 0 -4px 8px rgba(13, 42, 39, 0.06);
}

.circle-leader {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 3;
    width: clamp(132px, 19vw, 176px);
    min-height: clamp(132px, 19vw, 176px);
    color: white;
    background: var(--teal);
    box-shadow:
        0 14px 28px rgba(13, 42, 39, 0.25),
        inset 0 2px 1px rgba(255, 255, 255, 0.22),
        inset 0 -6px 11px rgba(0, 0, 0, 0.1);
    transform: translate(-50%, -50%);
}

.circle-seat {
    position: absolute;
    z-index: 2;
    transition: transform 160ms ease, box-shadow 160ms ease;
    transform: translate(-50%, -50%);
}

a.circle-seat:hover,
a.circle-seat:focus-visible {
    z-index: 4;
    box-shadow: 0 12px 30px rgba(13, 42, 39, 0.3);
    transform: translate(-50%, -50%) scale(1.06);
}

.circle-leader strong,
.circle-seat strong {
    display: block;
    max-width: 100%;
    overflow: hidden;
    font-size: 0.88rem;
    line-height: 1.08;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.circle-leader small,
.circle-seat small {
    display: block;
    margin-top: 3px;
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1.05;
}

.circle-person-initials {
    display: block;
    margin-bottom: 4px;
    font-size: 1.22rem;
    font-weight: 900;
    letter-spacing: 0.06em;
}

.circle-seat-number {
    position: absolute;
    top: 12%;
    right: 16%;
    font-size: 0.66rem;
    font-weight: 900;
    opacity: 0.72;
}

.circle-seat-position-1 { top: 8%; left: 50%; }
.circle-seat-position-2 { top: 18%; left: 76%; }
.circle-seat-position-3 { top: 39%; left: 92%; }
.circle-seat-position-4 { top: 65%; left: 92%; }
.circle-seat-position-5 { top: 86%; left: 76%; }
.circle-seat-position-6 { top: 94%; left: 50%; }
.circle-seat-position-7 { top: 86%; left: 24%; }
.circle-seat-position-8 { top: 65%; left: 8%; }
.circle-seat-position-9 { top: 39%; left: 8%; }
.circle-seat-position-10 { top: 18%; left: 24%; }

.circle-seat-leader { background: var(--teal); }
.circle-seat-empty { color: #68746f; background: #f3f4f1; border-color: #c6cdc8; }
.circle-seat-invited { background: #f6dfa8; border-color: #e9b75a; }
.circle-seat-provisional { background: #bcdce8; border-color: #6faac0; }
.circle-seat-friend { background: #d9e8e1; border-color: #7fa08f; }
.circle-seat-suspended { background: #e4e1db; border-color: #8b8984; }
.circle-seat-declined { color: white; background: #242a28; border-color: #090c0b; }
.circle-seat-voted { color: #072d1b; background: #38d978; border-color: #118c49; }
.circle-seat-progress {
    color: #102b26;
    background: var(--circle-progress-color, #ef6b62);
    border-color: var(--circle-progress-border, #a52d27);
}

.circle-status-key {
    display: grid;
    gap: 13px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.circle-status-key li {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    font-size: 0.9rem;
}

.circle-key-swatch {
    width: 24px;
    height: 24px;
    border: 2px solid;
    border-radius: 50%;
}

.circle-help-note {
    margin: 25px 0 0;
    padding-top: 20px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 0.9rem;
}

.circle-seat-details-section {
    padding: clamp(46px, 7vw, 82px) 0;
}

.circle-seat-details-section h2 {
    margin-bottom: 25px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.2rem, 4vw, 3.4rem);
}

.circle-seat-details-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.circle-seat-detail {
    min-height: 150px;
    padding: 18px;
    border: 2px solid;
    border-radius: 14px;
}

.circle-seat-detail > span {
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.circle-seat-detail h3 {
    margin: 12px 0 8px;
    font-size: 1.25rem;
}

.circle-seat-detail p {
    margin: 0;
    font-size: 0.82rem;
}

.circle-empty-hero {
    min-height: 68vh;
    padding: clamp(82px, 11vw, 150px) 0;
    background:
        radial-gradient(circle at 82% 16%, rgba(223, 109, 80, 0.18), transparent 28%),
        linear-gradient(180deg, #fffaf1, var(--paper));
}

.circle-empty-hero form {
    margin-top: 28px;
}

.invitation-name-field {
    margin-bottom: 16px;
    text-align: left;
}

.invitation-name-field label,
.invitation-name-field span {
    display: block;
}

.invitation-name-field input {
    width: 100%;
    margin-top: 6px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
}

.invitation-name-field span {
    margin-top: 5px;
    color: var(--coral-dark);
    font-size: 0.8rem;
    font-weight: 700;
}

.circle-progress-spectrum {
    height: 22px;
    border: 2px solid rgba(23, 59, 54, 0.34);
    border-radius: 999px;
    background: linear-gradient(90deg, hsl(0 72% 64%), hsl(60 72% 64%), hsl(120 72% 64%));
    box-shadow: inset 0 1px 2px rgba(13, 42, 39, 0.15);
}

.circle-progress-spectrum-labels {
    display: flex;
    justify-content: space-between;
    margin: 6px 1px 20px;
    color: var(--muted);
    font-size: 0.75rem;
    font-weight: 900;
}

.circle-status-panel > p:not(.circle-help-note) {
    color: var(--muted);
    font-size: 0.92rem;
}

.circle-self-visibility-summary {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 20px 0 14px;
    padding: 13px 15px;
    border-radius: 12px;
    background: #e7efea;
}

.circle-self-visibility-summary strong {
    color: var(--coral-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
}

.circle-self-visibility-summary span {
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.circle-self-visibility-fields {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.circle-self-visibility-fields li {
    display: grid;
    gap: 3px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: white;
}

.circle-self-visibility-fields li > span {
    color: var(--muted);
    font-size: 0.69rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.circle-self-visibility-fields li > strong,
.circle-self-visibility-fields li > em {
    overflow-wrap: anywhere;
    font-size: 0.86rem;
}

.circle-self-visibility-fields li.is-private {
    background: #f2f1ed;
}

.circle-self-visibility-fields li.is-private > em {
    color: #6d716f;
}

@media (max-width: 960px) {
    .circle-view-controls {
        align-items: stretch;
        flex-direction: column;
    }

    .circle-page-grid {
        grid-template-columns: 1fr;
    }

    .circle-status-panel {
        max-width: none;
    }

    .circle-seat-details-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .circle-page-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .circle-page-heading .button {
        align-self: flex-start;
    }

    .circle-scoreboard {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .circle-view-radios {
        align-items: stretch;
        flex-direction: column;
    }

    .circle-view-radios legend {
        float: none;
        margin: 2px 4px 6px;
    }

    .circle-view-radios label {
        width: 100%;
    }

    .circle-wheel {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        width: 100%;
        aspect-ratio: auto;
        background: none;
    }

    .circle-leader,
    .circle-seat {
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        min-height: 112px;
        border-radius: 16px;
        transform: none;
    }

    .circle-leader {
        grid-column: 1 / -1;
        min-height: 128px;
    }

    .circle-seat-number {
        top: 8px;
        right: 10px;
    }

    a.circle-seat:hover,
    a.circle-seat:focus-visible {
        transform: scale(1.02);
    }
}

@media (max-width: 470px) {
    .circle-scoreboard,
    .circle-seat-details-grid {
        grid-template-columns: 1fr;
    }

    .circle-scoreboard > div {
        min-height: 88px;
    }

    .circle-diagram-panel,
    .circle-status-panel {
        border-radius: 16px;
    }
}

/* Private Friend record -------------------------------------------------- */

.friend-page {
    background: #eef3ef;
}

.friend-page-hero {
    padding: clamp(48px, 7vw, 82px) 0 42px;
    border-bottom: 1px solid var(--line);
    background:
        radial-gradient(circle at 88% 18%, rgba(233, 183, 90, 0.24), transparent 27%),
        linear-gradient(180deg, #fffaf1, var(--paper));
}

.friend-page-hero-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 34px;
}

.friend-page-hero h1 {
    margin-bottom: 10px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 7vw, 5.4rem);
    font-weight: 500;
    line-height: 0.98;
}

.friend-page-hero p:not(.eyebrow) {
    max-width: 760px;
    margin-bottom: 18px;
    color: var(--muted);
    font-size: 1.08rem;
}

.friend-identity-line {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.friend-identity-line span,
.friend-record-state,
.privacy-lock,
.verified-mark {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--ink-deep);
    background: var(--teal-soft);
    font-size: 0.74rem;
    font-weight: 850;
    letter-spacing: 0.035em;
}

.friend-identity-line [data-tooltip] {
    position: relative;
    cursor: help;
}

.friend-identity-line [data-tooltip]::after {
    display: none;
    position: absolute;
    z-index: 20;
    bottom: calc(100% + 9px);
    left: 50%;
    width: max-content;
    max-width: min(280px, 80vw);
    padding: 8px 10px;
    border-radius: 8px;
    color: #fff;
    background: var(--ink-deep);
    box-shadow: var(--small-shadow);
    content: attr(data-tooltip);
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.35;
    opacity: 0;
    pointer-events: none;
    text-align: left;
    text-transform: none;
    transform: translate(-50%, 4px);
    transition: opacity 120ms ease, transform 120ms ease;
}

.friend-identity-line [data-tooltip]:hover::after,
.friend-identity-line [data-tooltip]:focus-visible::after {
    display: block;
    opacity: 1;
    transform: translate(-50%, 0);
}

/* Hidden tooltip boxes must not widen the document on phones. Keep the
   end badges' visible tooltips inside the account summary as well. */
.friend-identity-line [data-tooltip]:first-child::after {
    left: 0;
    transform: none;
}

.friend-identity-line [data-tooltip]:last-child::after {
    right: 0;
    left: auto;
    transform: none;
}

.friend-page-section-nav {
    border-bottom: 1px solid rgba(23, 59, 54, 0.14);
    background: #fff;
    box-shadow: 0 4px 16px rgba(13, 42, 39, 0.06);
}

.friend-page-section-nav .page-shell {
    display: flex;
    overflow-x: auto;
    gap: 4px;
    scrollbar-width: thin;
}

.friend-page-section-nav a {
    flex: 0 0 auto;
    padding: 15px 13px;
    color: var(--ink-deep);
    text-decoration: none;
    font-size: 0.86rem;
    font-weight: 800;
}

.friend-page-section-nav a:hover,
.friend-page-section-nav a:focus-visible {
    color: var(--coral-dark);
    background: #fff8eb;
}

.friend-page-content {
    padding: clamp(34px, 6vw, 72px) 0 90px;
}

.friend-page-layout {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(230px, 1fr);
    align-items: start;
    gap: clamp(18px, 3vw, 34px);
}

.friend-record {
    display: grid;
    gap: 22px;
}

.friend-record-card,
.friend-circle-card,
.friend-quick-card {
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--small-shadow);
}

.friend-record-card {
    padding: clamp(22px, 3vw, 34px);
    scroll-margin-top: 24px;
}

.friend-record-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}

.friend-record-heading h2,
.friend-circle-card h2,
.friend-quick-card h2 {
    margin: 0;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    font-weight: 500;
}

.friend-record-heading > a {
    flex: 0 0 auto;
    color: var(--teal);
    font-weight: 850;
}

.privacy-lock {
    color: #fff;
    background: var(--teal);
}

.friend-data-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--line);
}

.friend-data-grid > div {
    min-width: 0;
    padding: 17px 18px;
    background: #fbfcfa;
}

.friend-data-grid dt {
    margin-bottom: 6px;
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.friend-data-grid dd {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--ink-deep);
    font-weight: 750;
}

.friend-data-grid .verified-mark {
    margin-left: 6px;
    padding: 3px 7px;
    color: #0b5732;
    background: #d9f4e4;
    font-size: 0.62rem;
    text-transform: uppercase;
}

.preserve-lines {
    white-space: pre-line;
}

.friend-card-note {
    margin: 18px 0 0;
    color: var(--muted);
    font-size: 0.84rem;
}

.friend-card-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 24px;
}

.friend-card-actions > a:not(.button) {
    color: var(--teal);
    font-weight: 850;
}

.friend-progress-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
}

.friend-progress-grid article {
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fffaf1;
}

.friend-progress-label {
    display: flex;
    justify-content: space-between;
    gap: 18px;
}

.friend-progress-label span {
    color: var(--coral-dark);
    font-weight: 900;
}

.friend-thermometer,
.friend-circle-progress {
    height: 13px;
    margin: 13px 0 10px;
    overflow: hidden;
    border-radius: 999px;
    background: #e3e8e4;
}

.friend-thermometer span,
.friend-circle-progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #d95848 0%, #edb75a 50%, #38d978 100%);
}

.friend-progress-grid p {
    margin: 0;
    color: var(--muted);
    font-size: 0.88rem;
    font-weight: 700;
}

.friend-plan-details {
    margin-top: 15px;
}

.representative-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 13px;
}

.representative-grid article {
    min-width: 0;
    padding: 19px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fbfcfa;
}

.representative-grid h3 {
    margin-bottom: 12px;
    color: var(--ink-deep);
    font-size: 1.05rem;
}

.representative-grid p,
.representative-grid ul {
    margin: 0;
    color: var(--muted);
    font-size: 0.86rem;
}

.representative-grid ul {
    display: grid;
    gap: 9px;
    padding-left: 18px;
}

.representative-grid li small {
    display: block;
    font-weight: 800;
}

.friend-page-sidebar {
    position: sticky;
    top: 22px;
    display: grid;
    gap: 18px;
}

.friend-circle-card,
.friend-quick-card {
    padding: 20px;
}

.friend-circle-card > p:not(.eyebrow) {
    color: var(--muted);
}

.friend-circle-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.friend-circle-link:focus-visible {
    border-radius: 12px;
    outline: 4px solid var(--gold);
    outline-offset: 5px;
}

.friend-mini-circle {
    position: relative;
    width: min(100%, 235px);
    aspect-ratio: 1;
    margin: 16px auto 13px;
    border-radius: 50%;
    background:
        radial-gradient(circle at center, transparent 0 38%, rgba(34, 80, 72, 0.2) 38.5% 39.2%, transparent 39.6%),
        repeating-conic-gradient(from -18deg, rgba(34, 80, 72, 0.14) 0deg 0.8deg, transparent 0.8deg 36deg);
}

.friend-mini-leader,
.friend-mini-seat {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid var(--paper);
    border-radius: 50%;
    font-size: 0.62rem;
    font-weight: 950;
    letter-spacing: 0.035em;
    box-shadow: 0 5px 13px rgba(13, 42, 39, 0.19);
    transform: translate(-50%, -50%);
}

.friend-mini-leader {
    z-index: 2;
    width: 64px;
    height: 64px;
    color: #fff;
}

.friend-mini-seat {
    width: 39px;
    height: 39px;
}

.friend-mini-seat-1 { top: 8%; left: 50%; }
.friend-mini-seat-2 { top: 18%; left: 76%; }
.friend-mini-seat-3 { top: 39%; left: 92%; }
.friend-mini-seat-4 { top: 65%; left: 92%; }
.friend-mini-seat-5 { top: 86%; left: 76%; }
.friend-mini-seat-6 { top: 94%; left: 50%; }
.friend-mini-seat-7 { top: 86%; left: 24%; }
.friend-mini-seat-8 { top: 65%; left: 8%; }
.friend-mini-seat-9 { top: 39%; left: 8%; }
.friend-mini-seat-10 { top: 18%; left: 24%; }

.friend-circle-score {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 8px;
}

.friend-circle-score > div {
    padding: 10px 7px;
    border-radius: 10px;
    background: #f3f6f3;
    text-align: center;
}

.friend-circle-score strong,
.friend-circle-score span {
    display: block;
}

.friend-circle-score strong {
    color: var(--coral-dark);
    font-size: 1.12rem;
}

.friend-circle-score span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 0.57rem;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.friend-circle-open {
    display: block;
    margin-top: 13px;
    color: var(--teal);
    font-size: 0.82rem;
    text-align: center;
}

.friend-quick-card h2 {
    margin-bottom: 12px;
    font-size: 1.35rem;
}

.friend-quick-card > a {
    display: block;
    padding: 9px 0;
    border-bottom: 1px solid var(--line);
    color: var(--teal);
    font-size: 0.85rem;
    font-weight: 800;
    text-decoration: none;
}

.friend-quick-card > a:last-child {
    border-bottom: 0;
}

.friend-quick-card ul {
    margin: 0;
    padding-left: 20px;
    color: var(--muted);
    font-size: 0.84rem;
}

@media (max-width: 980px) {
    .friend-page-layout {
        grid-template-columns: minmax(0, 3fr) minmax(220px, 1fr);
    }

    .representative-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 780px) {
    .friend-page-hero-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .friend-page-layout {
        grid-template-columns: 1fr;
    }

    .friend-page-sidebar {
        position: static;
    }

    .friend-circle-card {
        order: -1;
    }

    .friend-mini-circle {
        width: min(100%, 270px);
    }
}

@media (max-width: 540px) {
    .friend-data-grid,
    .friend-progress-grid {
        grid-template-columns: 1fr;
    }

    .friend-record-heading {
        flex-direction: column;
        gap: 10px;
    }

    .friend-record-card,
    .friend-circle-card,
    .friend-quick-card {
        border-radius: 15px;
    }
}

/* My Dashboard ---------------------------------------------------------- */

.vote-confirmation-page {
    background: #eef3ef;
}

.vote-confirmation-section {
    min-height: 62vh;
    padding: clamp(50px, 8vw, 100px) 0;
    background:
        radial-gradient(circle at 83% 12%, rgba(233, 183, 90, 0.24), transparent 28%),
        linear-gradient(180deg, #fffaf1, #eef3ef);
}

.vote-confirmation-shell {
    max-width: 850px;
}

.vote-confirmation-card {
    padding: clamp(30px, 6vw, 58px);
    border: 1px solid rgba(23, 59, 54, 0.16);
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--small-shadow);
}

.vote-confirmation-card h1 {
    margin: 5px 0 18px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    font-weight: 500;
    line-height: 1;
}

.vote-confirmation-card > p:not(.eyebrow) {
    max-width: 680px;
    font-size: 1.08rem;
}

.vote-confirmation-note {
    color: var(--muted);
}

.vote-confirmation-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 28px;
}

/* Steps to Success ------------------------------------------------------ */

.voting-steps-page {
    background: #eef3ef;
}

.voting-steps-hero {
    border-bottom: 1px solid rgba(23, 59, 54, 0.14);
    background:
        radial-gradient(circle at 88% 18%, rgba(231, 181, 84, 0.24), transparent 26%),
        linear-gradient(135deg, #fffaf0 0%, #e7f0eb 100%);
}

.voting-steps-hero-inner {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    padding-top: clamp(48px, 7vw, 88px);
    padding-bottom: clamp(40px, 6vw, 70px);
}

.voting-steps-hero h1 {
    margin: 4px 0 14px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 7vw, 5.6rem);
    font-weight: 500;
    line-height: 0.95;
}

.voting-steps-hero p:not(.eyebrow) {
    max-width: 730px;
    margin: 0;
    font-size: clamp(1rem, 1.7vw, 1.17rem);
}

.voting-steps-nearby {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.voting-steps-nearby .button {
    white-space: nowrap;
}

.voting-steps-content {
    padding: clamp(34px, 5vw, 65px) 0 92px;
}

.voting-steps-message {
    margin-bottom: 22px;
}

.voting-steps-overview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 24px;
}

.voting-steps-overview > article,
.voting-track-card,
.voting-history-card {
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 19px;
    background: #fff;
    box-shadow: var(--small-shadow);
}

.voting-steps-overview > article {
    padding: 22px 24px;
}

.voting-steps-score {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 12px;
}

.voting-steps-score strong {
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 500;
    line-height: 1;
}

.voting-steps-score span {
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.voting-steps-overview > article > p {
    margin: 11px 0 0;
    color: var(--muted);
    font-weight: 750;
}

.voting-steps-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 24px;
}

.voting-track-card {
    overflow: hidden;
}

.voting-track-card > header {
    padding: 28px 30px 24px;
    border-bottom: 1px solid rgba(23, 59, 54, 0.12);
    background: #f8faf8;
}

.voting-track-card h2,
.voting-history-card h2 {
    margin: 2px 0 8px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 500;
    line-height: 1;
}

.voting-track-card > header > p:last-child {
    margin: 0;
    color: var(--muted);
}

.voting-steps-callout,
.voting-steps-location,
.voting-status-form,
.voting-milestone-list,
.voting-recorded-state,
.voting-record-action,
.voting-track-links {
    margin-right: 30px;
    margin-left: 30px;
}

.voting-steps-callout {
    margin-top: 26px;
    padding: 18px;
    border-radius: 13px;
    background: #fff3d7;
}

.voting-steps-callout p {
    margin: 5px 0 14px;
}

.voting-steps-location {
    display: grid;
    gap: 1px;
    margin-top: 26px;
    overflow: hidden;
    border: 1px solid rgba(23, 59, 54, 0.12);
    border-radius: 12px;
    background: rgba(23, 59, 54, 0.1);
}

.voting-steps-location div {
    display: grid;
    grid-template-columns: minmax(130px, 0.8fr) minmax(0, 1.2fr);
    gap: 14px;
    padding: 12px 14px;
    background: #fff;
}

.voting-steps-location dt {
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.voting-steps-location dd {
    margin: 0;
    font-weight: 800;
}

.voting-status-form {
    display: grid;
    gap: 10px;
    margin-top: 26px;
}

.voting-status-form label {
    font-weight: 850;
}

.voting-status-form select {
    width: 100%;
    min-height: 48px;
    padding: 10px 42px 10px 13px;
    border: 1px solid rgba(23, 59, 54, 0.35);
    border-radius: 10px;
    color: var(--ink-deep);
    background: #fff;
    font: inherit;
}

.voting-status-form .button {
    justify-self: start;
    margin-top: 3px;
}

.voting-track-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 26px;
    padding: 20px 0 28px;
    border-top: 1px solid rgba(23, 59, 54, 0.12);
    font-weight: 800;
}

.voting-milestone-list {
    display: grid;
    gap: 0;
    margin-top: 20px;
    margin-bottom: 0;
    padding: 0;
    list-style: none;
}

.voting-milestone-list li {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    min-height: 55px;
    border-bottom: 1px solid rgba(23, 59, 54, 0.1);
    color: #78817d;
}

.voting-milestone-list li.is-complete {
    color: var(--ink-deep);
}

.voting-milestone-list li.is-current {
    font-weight: 850;
}

.voting-milestone-marker {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 2px solid #c6cfca;
    border-radius: 50%;
    font-size: 0.78rem;
    font-weight: 900;
}

.voting-milestone-list .is-complete .voting-milestone-marker {
    border-color: #2d7b56;
    color: #fff;
    background: #2d7b56;
}

.voting-milestone-list small {
    color: inherit;
    font-size: 0.72rem;
    font-weight: 850;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.voting-recorded-state {
    display: grid;
    gap: 5px;
    margin-top: 24px;
    padding: 18px;
    border: 1px solid rgba(45, 123, 86, 0.3);
    border-radius: 13px;
    background: #e3f2e8;
}

.voting-recorded-state a {
    justify-self: start;
    margin-top: 8px;
    font-weight: 850;
}

.voting-record-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 24px;
    padding: 17px 0 0;
    border-top: 1px solid rgba(23, 59, 54, 0.12);
    font-weight: 850;
}

.voting-history-card {
    margin-top: 24px;
    padding: 28px 30px;
}

.voting-history-card > header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(23, 59, 54, 0.14);
}

.voting-history-card > header > span {
    color: var(--muted);
    font-size: 0.82rem;
    font-weight: 750;
}

.voting-history-empty {
    margin: 22px 0 0;
    color: var(--muted);
}

.voting-history-list {
    display: grid;
    margin: 0;
    padding: 0;
    list-style: none;
}

.voting-history-list li {
    display: grid;
    grid-template-columns: minmax(150px, 0.38fr) minmax(0, 1fr);
    gap: 24px;
    padding: 17px 0;
    border-bottom: 1px solid rgba(23, 59, 54, 0.1);
}

.voting-history-list li:last-child {
    border-bottom: 0;
}

.voting-history-list time {
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 850;
}

.voting-history-list div {
    display: grid;
    gap: 3px;
}

.voting-history-list span {
    color: var(--muted);
}

@media (max-width: 850px) {
    .voting-steps-hero-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .voting-steps-nearby {
        justify-content: flex-start;
    }

    .voting-steps-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .voting-steps-overview {
        grid-template-columns: 1fr;
    }

    .voting-track-card > header {
        padding: 24px 20px 20px;
    }

    .voting-steps-callout,
    .voting-steps-location,
    .voting-status-form,
    .voting-milestone-list,
    .voting-recorded-state,
    .voting-record-action,
    .voting-track-links {
        margin-right: 20px;
        margin-left: 20px;
    }

    .voting-milestone-list li {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .voting-milestone-list small {
        grid-column: 2;
    }

    .voting-record-action {
        align-items: flex-start;
        flex-direction: column;
    }

    .voting-history-card {
        padding: 24px 20px;
    }

    .voting-history-card > header,
    .voting-history-list li {
        align-items: flex-start;
        grid-template-columns: 1fr;
        flex-direction: column;
        gap: 8px;
    }
}

.friend-dashboard-page,
.friend-account-page {
    background: #eef3ef;
}

.desk-hero,
.account-hero {
    padding: clamp(38px, 5vw, 66px) 0 30px;
    border-bottom: 1px solid var(--line);
    background:
        radial-gradient(circle at 88% 15%, rgba(233, 183, 90, 0.26), transparent 26%),
        linear-gradient(180deg, #fffaf1, var(--paper));
}

.desk-hero-inner,
.account-hero-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.desk-hero h1,
.account-hero h1 {
    margin: 0 0 9px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.8rem, 6vw, 4.8rem);
    font-weight: 500;
    line-height: 1;
}

.desk-hero p:not(.eyebrow),
.account-hero p:not(.eyebrow) {
    max-width: 730px;
    color: var(--muted);
}

.desk-hero .message-area,
.account-hero .message-area,
.desk-hero .invitation-link-panel {
    margin-top: 24px;
}

.desk-summary {
    position: relative;
    z-index: 2;
    margin-bottom: -28px;
    transform: translateY(-1px);
}

.dashboard-gauge-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(12px, 2.2vw, 30px);
    padding: clamp(22px, 3.2vw, 38px);
    overflow: hidden;
    border: 1px solid rgba(223, 193, 127, 0.38);
    border-radius: 24px;
    background:
        radial-gradient(circle at 50% -40%, rgba(255, 255, 255, 0.16), transparent 54%),
        repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 7px),
        linear-gradient(145deg, #204f49, #0e2f2c 70%, #092521);
    box-shadow:
        0 22px 46px rgba(13, 42, 38, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.22),
        inset 0 -4px 14px rgba(0, 0, 0, 0.2);
}

.dashboard-gauge-guide {
    grid-column: 1 / -1;
    text-align: center;
    color: #fffdf7;
}

.dashboard-gauge-guide h2 {
    margin: 0 0 .5rem;
    color: #fffdf7;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.35rem, 2.5vw, 1.8rem);
    line-height: 1.25;
}

.dashboard-gauge-guide p {
    margin: 0 auto;
    max-width: 48rem;
    color: #fffdf7;
    font-size: 1.05rem;
    line-height: 1.5;
}

.dashboard-gauge-action {
    display: inline-block;
    margin-top: .65rem;
    padding: .65rem 1rem;
    border: 1px solid #e8b34c;
    border-radius: .55rem;
    background: #f4c65c;
    color: #173b36;
    box-shadow: 0 3px 0 #a97825;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.4;
}

.dashboard-gauge {
    position: relative;
    display: grid;
    justify-items: center;
    align-content: start;
    gap: 12px;
    min-width: 0;
    padding: 3px 6px 8px;
    color: #fffdf7;
    text-decoration: none;
}

.dashboard-gauge::after {
    position: absolute;
    top: 8%;
    right: calc(clamp(12px, 2.2vw, 30px) * -0.5);
    bottom: 8%;
    width: 1px;
    background: linear-gradient(transparent, rgba(255, 255, 255, 0.22), transparent);
    content: "";
}

.dashboard-gauge:last-child::after {
    display: none;
}

.dashboard-gauge:focus-visible {
    border-radius: 18px;
    outline: 3px solid #f4c65c;
    outline-offset: 4px;
}

.dashboard-gauge-face {
    position: relative;
    display: grid;
    width: clamp(9.5rem, 17vw, 12.5rem);
    aspect-ratio: 1;
    place-items: center;
    border: clamp(5px, 0.55vw, 8px) solid #aebbb8;
    border-radius: 50%;
    background:
        radial-gradient(circle at 42% 34%, rgba(255, 255, 255, 0.96) 0 8%, transparent 27%),
        radial-gradient(circle at 50% 48%, #fffdf5 0 47%, #e3e6de 73%, #c6ceca 100%);
    box-shadow:
        0 12px 22px rgba(0, 0, 0, 0.3),
        0 0 0 2px rgba(255, 255, 255, 0.55),
        0 0 0 5px rgba(5, 27, 24, 0.55),
        inset 0 0 0 2px rgba(255, 255, 255, 0.8),
        inset 0 -8px 15px rgba(20, 57, 52, 0.13);
    transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.dashboard-gauge:hover .dashboard-gauge-face,
.dashboard-gauge:focus-visible .dashboard-gauge-face {
    border-color: #d7b764;
    box-shadow:
        0 16px 27px rgba(0, 0, 0, 0.34),
        0 0 0 2px rgba(255, 255, 255, 0.62),
        0 0 0 5px rgba(215, 183, 100, 0.3),
        inset 0 0 0 2px rgba(255, 255, 255, 0.8),
        inset 0 -8px 15px rgba(20, 57, 52, 0.13);
    transform: translateY(-3px);
}

.dashboard-gauge-dial {
    width: 100%;
    height: 100%;
    overflow: visible;
}

.dashboard-gauge-inner-ring {
    fill: transparent;
    stroke: rgba(14, 47, 44, 0.08);
    stroke-width: 1.5;
}

.dashboard-gauge-track,
.dashboard-gauge-progress {
    fill: none;
    stroke-linecap: round;
    stroke-width: 8;
}

.dashboard-gauge-track {
    stroke: #cbd3cf;
}

.dashboard-gauge-progress {
    stroke: var(--gauge-color);
    stroke-dasharray: 100;
    stroke-dashoffset: calc(100 - var(--gauge-value));
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.18));
    transition: stroke-dashoffset 420ms ease, stroke 180ms ease;
}

.dashboard-gauge-ticks line {
    stroke: #55706b;
    stroke-linecap: round;
    stroke-width: 1.6;
}

.dashboard-gauge-ticks line:nth-child(5n + 1) {
    stroke: #173b36;
    stroke-width: 2.6;
}

.dashboard-gauge-needle {
    fill: #c94e37;
    filter: drop-shadow(0 2px 1px rgba(0, 0, 0, 0.3));
}

.dashboard-gauge-hub-outer {
    fill: #244e48;
    stroke: #fffdf5;
    stroke-width: 2;
}

.dashboard-gauge-hub-inner {
    fill: #d9b65f;
}

.dashboard-gauge-readout {
    position: absolute;
    top: 66%;
    left: 50%;
    min-width: 4.35em;
    padding: 0.18em 0.42em 0.16em;
    border: 1px solid rgba(14, 47, 44, 0.2);
    border-radius: 5px;
    color: #173b36;
    background: rgba(232, 237, 226, 0.94);
    box-shadow: inset 0 1px 4px rgba(14, 47, 44, 0.14);
    font-family: "Courier New", monospace;
    font-size: clamp(0.78rem, 1.5vw, 1rem);
    font-weight: 800;
    line-height: 1;
    text-align: center;
    transform: translate(-50%, -50%);
}

.dashboard-gauge-copy {
    display: grid;
    justify-items: center;
    gap: 3px;
    min-width: 0;
    text-align: center;
}

.dashboard-gauge-copy > strong {
    color: #fffdf7;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.12rem, 2.1vw, 1.55rem);
    font-weight: 600;
    line-height: 1.05;
}

.dashboard-gauge-copy > small {
    color: #cfddd8;
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.065em;
    line-height: 1.25;
    text-transform: uppercase;
}

.dashboard-gauge-value {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
    white-space: nowrap;
}

.desk-content {
    padding: 66px 0 92px;
}

.dashboard-next-action {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 22px;
    margin-bottom: 24px;
    padding: clamp(22px, 3vw, 31px);
    border-radius: 20px;
    color: #fff;
    background: var(--teal);
    box-shadow: var(--small-shadow);
}

.dashboard-next-action h2 {
    margin: 2px 0 5px;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.7rem, 3vw, 2.3rem);
    font-weight: 500;
}

.dashboard-next-action p:not(.eyebrow) {
    max-width: 720px;
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
}

.dashboard-next-action .eyebrow {
    color: var(--gold);
}

.dashboard-next-number {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border: 2px solid rgba(255, 255, 255, 0.5);
    border-radius: 50%;
    color: var(--teal);
    background: var(--gold);
    font-size: 1.5rem;
    font-weight: 950;
}

.dashboard-next-action .button {
    color: var(--ink-deep);
    background: var(--gold);
}

.desk-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 22px;
}

.desk-card {
    min-width: 0;
    padding: clamp(22px, 3vw, 31px);
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--small-shadow);
}

.desk-wide-card {
    grid-column: 1 / -1;
}

.desk-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 20px;
}

.desk-card-heading h2,
.account-card-heading h2,
.account-summary-card h2 {
    margin: 2px 0 0;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.55rem, 3vw, 2.05rem);
    font-weight: 500;
}

.desk-status-chip {
    flex: 0 0 auto;
    padding: 7px 10px;
    border-radius: 999px;
    color: var(--ink-deep);
    background: var(--gold-soft);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.desk-compact-data {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--line);
}

.desk-compact-data > div {
    min-width: 0;
    padding: 14px 15px;
    background: #fbfcfa;
}

.desk-compact-data dt,
.account-readonly-grid dt,
.account-summary-card dt {
    margin-bottom: 5px;
    color: var(--muted);
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.065em;
    text-transform: uppercase;
}

.desk-compact-data dd,
.account-readonly-grid dd,
.account-summary-card dd {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--ink-deep);
    font-weight: 760;
}

.desk-plan-data {
    margin-top: 15px;
}

.desk-card-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: 20px;
}

.desk-card-actions > a:not(.button),
.account-sidebar-links a {
    color: var(--teal);
    font-weight: 850;
}

.desk-empty-state {
    padding: 23px;
    border: 1px dashed rgba(23, 59, 54, 0.25);
    border-radius: 14px;
    background: #f7faf7;
    text-align: center;
}

.desk-empty-state p,
.desk-empty-line,
.desk-card-note,
.account-intro,
.account-note {
    color: var(--muted);
}

.dashboard-invitation-form {
    display: grid;
    gap: 14px;
    margin-top: 20px;
    padding: 19px;
    border-radius: 14px;
    background: #f2f7f3;
}

.dashboard-invitation-form label,
.account-field label {
    display: block;
    margin-bottom: 6px;
    color: var(--ink-deep);
    font-size: 0.78rem;
    font-weight: 900;
}

.dashboard-invitation-form input,
.dashboard-invitation-form textarea,
.account-field input,
.account-field select {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid rgba(23, 59, 54, 0.25);
    border-radius: 9px;
    color: var(--ink-deep);
    background: #fff;
    font: inherit;
}

.dashboard-invitation-form textarea {
    resize: vertical;
}

.desk-circle-list {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.desk-circle-list li {
    padding: 8px 11px;
    border-radius: 999px;
    color: var(--ink-deep);
    background: var(--teal-soft);
    font-weight: 800;
}

/* My Account ------------------------------------------------------------ */

.account-content {
    padding: clamp(34px, 5vw, 65px) 0 92px;
}

.account-required-note {
    margin: 0 0 -10px;
    color: #a62d22;
    font-size: 0.82rem;
    font-weight: 850;
}

.account-required-note span,
.account-field .required-marker {
    display: inline;
    margin: 0;
    color: #c52f22;
    font-size: 1em;
    font-weight: 950;
}

.goodbye-actions {
    margin-bottom: clamp(2rem, 5vw, 4rem);
}

.account-layout {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(260px, 1fr);
    align-items: start;
    gap: 24px;
}

.account-form,
.account-sidebar {
    display: grid;
    gap: 22px;
}

.account-sidebar {
    position: sticky;
    top: 22px;
}

.account-card,
.account-summary-card,
.account-save-bar {
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--small-shadow);
}

.account-card,
.account-summary-card {
    padding: clamp(22px, 3vw, 31px);
    scroll-margin-top: 24px;
}

.account-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.account-intro {
    margin-top: -5px;
}

.account-field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
}

.account-field-wide {
    grid-column: 1 / -1;
}

.account-field-phone input {
    max-width: 17rem;
}

.account-field-state {
    max-width: 150px;
}

.account-country-fields {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) 8rem;
    gap: 14px;
}

.account-field-country-code input {
    max-width: 8rem;
    text-transform: uppercase;
}

.account-postal-fields {
    display: grid;
    grid-template-columns: minmax(8rem, 1fr) minmax(5.5rem, 0.55fr);
    gap: 14px;
}

.account-field-zip4 input {
    max-width: 7rem;
}

.account-field span,
.account-validation {
    display: block;
    margin-top: 5px;
    color: #a62d22;
    font-size: 0.78rem;
    font-weight: 750;
}

.account-field small,
.account-readonly-grid small {
    display: block;
    margin-top: 6px;
    color: var(--muted);
    font-size: 0.76rem;
}

.account-readonly-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin: 22px 0 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--line);
}

.account-readonly-grid > div {
    min-width: 0;
    padding: 15px;
    background: #f7faf7;
}

.account-note {
    margin: 17px 0 0;
    font-size: 0.84rem;
}

.account-save-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 23px;
}

.account-save-bar strong,
.account-save-bar span {
    display: block;
}

.account-save-bar span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 0.82rem;
}

.account-save-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}

.account-summary-card dl {
    display: grid;
    gap: 1px;
    margin: 19px 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--line);
}

.account-summary-card dl > div {
    padding: 13px 14px;
    background: #f7faf7;
}

.account-sidebar-links {
    display: grid;
    gap: 10px;
}

@media (max-width: 900px) {
    .account-layout {
        grid-template-columns: 1fr;
    }

    .account-sidebar {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 780px) {
    .desk-hero-inner,
    .account-hero-inner,
    .dashboard-next-action {
        align-items: flex-start;
        grid-template-columns: 1fr;
        flex-direction: column;
    }

    .dashboard-next-number {
        width: 46px;
        height: 46px;
    }

    .desk-card-grid {
        grid-template-columns: 1fr;
    }

    .desk-wide-card {
        grid-column: auto;
    }
}

@media (max-width: 540px) {
    .dashboard-gauge-grid,
    .desk-compact-data,
    .account-field-grid,
    .account-readonly-grid,
    .account-sidebar {
        grid-template-columns: 1fr;
    }

    .desk-summary {
        margin-bottom: -12px;
    }

    .dashboard-gauge-grid {
        gap: 22px;
        padding: 25px;
    }

    .dashboard-gauge {
        padding-bottom: 21px;
    }

    .dashboard-gauge::after {
        top: auto;
        right: 12%;
        bottom: 0;
        left: 12%;
        width: auto;
        height: 1px;
        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.22), transparent);
    }

    .dashboard-gauge-face {
        width: min(12.5rem, 72vw);
    }

    .desk-content {
        padding-top: 45px;
    }

    .desk-card-heading,
    .account-card-heading,
    .account-save-bar {
        align-items: flex-start;
        flex-direction: column;
    }

    .account-field-wide {
        grid-column: auto;
    }

    .account-postal-fields {
        grid-template-columns: minmax(0, 1fr) 7rem;
    }

    .account-country-fields {
        grid-template-columns: minmax(0, 1fr) 7rem;
    }

    .account-field-state {
        max-width: none;
    }

    .desk-card,
    .account-card,
    .account-summary-card,
    .account-save-bar {
        border-radius: 15px;
    }
}

.jurisdiction-hero-art picture {
    display: block;
}

.jurisdiction-hero-link {
    display: block;
    color: inherit;
    cursor: zoom-in;
    text-decoration: none;
}

.jurisdiction-hero-link:focus-visible {
    border-radius: 22px;
    outline: 4px solid var(--gold);
    outline-offset: 5px;
}

.jurisdiction-hero-art img,
.jurisdiction-art-placeholder {
    width: 100%;
    aspect-ratio: 16 / 10;
    border: 10px solid rgba(255, 255, 255, 0.82);
    border-radius: 22px;
    box-shadow: var(--shadow);
}

.jurisdiction-hero-art img {
    display: block;
    height: auto;
    object-fit: cover;
}

.jurisdiction-art-caption {
    margin: 12px 16px 0;
    color: var(--ink);
    font-size: 0.82rem;
    line-height: 1.45;
    text-align: left;
}

.jurisdiction-art-credit {
    margin: 8px 18px 0;
    color: var(--muted);
    font-size: 0.65rem;
    text-align: right;
}

.jurisdiction-art-placeholder {
    position: relative;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 8px;
    color: white;
    background:
        radial-gradient(circle at 24% 28%, rgba(233, 183, 90, 0.75) 0 13%, transparent 14%),
        radial-gradient(circle at 70% 72%, rgba(223, 109, 80, 0.7) 0 20%, transparent 21%),
        var(--teal);
}

.jurisdiction-art-placeholder span {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(4.8rem, 10vw, 8rem);
    line-height: 0.9;
    opacity: 0.2;
}

.jurisdiction-art-placeholder strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
}

.jurisdiction-art-placeholder small {
    font-size: 0.68rem;
}

.guide-countdown-strip {
    padding: 24px 0;
    color: white;
    background: var(--ink-deep);
}

.guide-countdown-grid {
    display: grid;
    grid-template-columns: 1.15fr 1.35fr repeat(3, 1fr);
    align-items: center;
    gap: 24px;
}

.guide-countdown-grid > div + div {
    padding-left: 24px;
    border-left: 1px solid rgba(255, 255, 255, 0.17);
}

.countdown-number {
    color: var(--gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.8rem;
    line-height: 0.8;
}

.countdown-status {
    display: block;
    color: var(--gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.15rem, 2vw, 1.8rem);
    font-weight: 700;
    line-height: 1;
}

.countdown-label {
    display: block;
    margin-top: 9px;
    font-size: 0.69rem;
    font-weight: 800;
    text-transform: uppercase;
}

.guide-fact {
    display: grid;
    gap: 5px;
}

.guide-fact strong {
    color: #fffaf2;
    font-size: 0.82rem;
}

.guide-fact span {
    color: #bdd0c7;
    font-size: 0.67rem;
}

.guide-source-link {
    width: fit-content;
    color: #fffaf2;
    font-size: 0.67rem;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.timezone-caution {
    margin-top: 18px;
    margin-bottom: 0;
    padding-top: 15px;
    color: #ffdf9f;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 0.7rem;
}

.guide-authority-section {
    padding: 46px 0 18px;
    background: #eef2ed;
}

.guide-authority-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 22px;
    padding: 28px 32px;
    border: 1px solid #cbd6d0;
    border-radius: 16px;
    background: white;
    box-shadow: var(--small-shadow);
}

.authority-check {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    color: var(--ink);
    border-radius: 50%;
    background: var(--gold);
    font-size: 1.35rem;
    font-weight: 900;
}

.guide-authority-card h2 {
    margin-bottom: 5px;
    font-size: 1.35rem;
}

.guide-authority-card p:last-child {
    margin: 0;
    color: var(--muted);
    font-size: 0.75rem;
}

.guide-questions-section {
    padding: 52px 0 92px;
    background: #eef2ed;
}

.federal-roster-section {
    padding: 40px 0 18px;
    background: #eef2ed;
}

.federal-roster-panel {
    padding: 34px;
    border: 1px solid #cbd6d0;
    border-radius: 17px;
    background: #fffdf9;
    box-shadow: var(--small-shadow);
}

.federal-roster-heading {
    display: grid;
    grid-template-columns: 1fr minmax(300px, 0.55fr);
    gap: 50px;
    margin-bottom: 24px;
}

.federal-roster-heading h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.9rem, 3vw, 2.6rem);
}

.federal-roster-heading > p {
    align-self: end;
    margin: 0;
    color: var(--muted);
    font-size: 0.69rem;
}

.senator-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 13px;
    margin-bottom: 16px;
}

.officeholder-card {
    padding: 20px 22px;
    border-radius: 11px;
    background: var(--teal-soft);
}

.officeholder-card > span {
    color: var(--coral-dark);
    font-size: 0.58rem;
    font-weight: 900;
    letter-spacing: 0.11em;
}

.officeholder-card h3 {
    margin: 9px 0 4px;
    font-size: 1rem;
}

.officeholder-card p,
.officeholder-card a {
    font-size: 0.67rem;
}

.officeholder-card p {
    margin: 0;
    color: var(--muted);
}

.officeholder-card a {
    display: inline-block;
    margin-top: 12px;
    font-weight: 800;
}

.no-senate-note,
.district-caution {
    color: var(--muted);
    font-size: 0.7rem;
}

.house-roster-details {
    border: 1px solid var(--line);
    border-radius: 11px;
    background: white;
}

.house-roster-details summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 19px 22px;
    cursor: pointer;
    list-style: none;
}

.house-roster-details summary::-webkit-details-marker {
    display: none;
}

.house-roster-details summary strong,
.house-roster-details summary small {
    display: block;
}

.house-roster-details summary strong {
    font-size: 0.81rem;
}

.house-roster-details summary small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 0.62rem;
}

.house-roster-details[open] summary > span:last-child {
    transform: rotate(45deg);
}

.district-caution {
    margin: 0 22px;
    padding: 16px 0;
    border-top: 1px solid var(--line);
}

.house-roster-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    padding: 1px;
    background: var(--line);
}

.house-member-row {
    display: grid;
    min-height: 126px;
    padding: 18px 20px;
    align-content: start;
    background: white;
}

.house-member-row > span {
    color: var(--coral-dark);
    font-size: 0.59rem;
    font-weight: 850;
    text-transform: uppercase;
}

.house-member-row strong {
    margin-top: 7px;
    font-size: 0.77rem;
}

.house-member-row small {
    color: var(--muted);
    font-size: 0.61rem;
}

.house-member-row a {
    margin-top: auto;
    padding-top: 11px;
    font-size: 0.62rem;
    font-weight: 800;
}

.vacant-seat {
    background: #f5f1e9;
}

.guide-section-heading {
    display: grid;
    grid-template-columns: 1fr minmax(250px, 0.45fr);
    gap: 60px;
    margin-bottom: 30px;
}

.guide-section-heading h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3.6vw, 3rem);
}

.guide-section-heading > p {
    align-self: end;
    margin: 0;
    color: var(--muted);
    font-size: 0.75rem;
}

.guide-faq-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 24px;
    margin: 0 0 28px;
}

.guide-faq-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--teal);
    font-weight: 750;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.guide-faq-groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 32px 56px;
}

.guide-faq-group > h3 {
    margin: 0;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--teal);
    color: var(--teal);
    font-size: 1.3rem;
}

.guide-faq-group > h3,
.guide-faq-answer {
    scroll-margin-top: 110px;
}

.guide-faq-answer {
    padding: 14px 0;
    border-bottom: 1px solid #ccd6d0;
    overflow-wrap: anywhere;
}

.guide-faq-answer h4 {
    margin: 0 0 5px;
    font-family: inherit;
    font-size: 1.08rem;
    line-height: 1.4;
}

.guide-faq-answer h4 a {
    display: inline-block;
    padding: 6px 0;
    color: var(--teal);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.guide-faq-answer h4 a:hover {
    color: var(--coral-dark);
}

.guide-faq-answer h4 a:focus-visible,
.guide-faq-nav a:focus-visible {
    outline: 3px solid var(--teal);
    outline-offset: 4px;
    border-radius: 2px;
}

.guide-faq-answer p {
    margin: 0 0 6px;
    color: var(--ink);
    font-size: 1rem;
    line-height: 1.55;
}

.guide-faq-source {
    display: block;
    color: #52665e;
    font-size: 0.8rem;
    line-height: 1.5;
}

@media (max-width: 760px) {
    .guide-faq-groups { grid-template-columns: 1fr; gap: 28px; }
    .guide-faq-nav { gap: 2px 18px; }
}

.guide-question-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.guide-question-card {
    position: relative;
    display: flex;
    min-height: 270px;
    padding: 28px;
    overflow: hidden;
    flex-direction: column;
    border: 1px solid #d5ded9;
    border-radius: 15px;
    background: white;
}

.guide-card-mark {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    margin-bottom: 22px;
    color: var(--coral-dark);
    border-radius: 50%;
    background: #f8e8df;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.1rem;
    font-weight: 800;
}

.guide-question-card h3 {
    margin-bottom: 12px;
    font-size: 1.08rem;
}

.guide-question-card p {
    color: var(--muted);
    font-size: 0.75rem;
}

.guide-question-card > a {
    margin-top: auto;
    color: var(--teal);
    font-size: 0.78rem;
    font-weight: 850;
}

.guide-question-card small {
    margin-top: 12px;
    color: #83928d;
    font-size: 0.58rem;
}

.military-guide-card {
    color: white;
    border-color: var(--teal);
    background: var(--teal);
}

.military-guide-card h3,
.military-guide-card > a {
    color: white;
}

.military-guide-card p,
.military-guide-card small {
    color: #c9ddd4;
}

.military-guide-card .guide-card-mark {
    color: var(--ink);
    background: var(--gold);
}

.voting-place-dashboard-card {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 30px;
    color: white;
    border: 0;
    background: var(--teal);
}

.voting-place-dashboard-card .eyebrow,
.voting-place-dashboard-card h2 {
    color: white;
}

.voting-place-dashboard-card p:last-child {
    max-width: 620px;
    margin-bottom: 0;
    color: #cbe0d6;
}

.voting-place-actions {
    display: grid;
    justify-items: center;
    gap: 12px;
}

.voting-place-actions > a:last-child {
    color: white;
    font-size: 0.73rem;
    font-weight: 800;
}

@media (max-width: 1180px) {
    .circle-dashboard-grid {
        grid-template-columns: 205px minmax(0, 1fr);
    }

    .circle-dashboard-grid > .walkthrough-panel {
        position: static;
        grid-column: 1 / -1;
    }

    .circle-dashboard-grid > .walkthrough-panel ol {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 980px) {
    .header-state-label {
        display: none;
    }

    .voting-guide-hero-grid,
    .location-profile-heading {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .jurisdiction-hero-art {
        width: min(720px, 100%);
        margin: 0 auto;
    }

    .guide-countdown-grid,
    .guide-question-grid,
    .house-roster-grid {
        grid-template-columns: 1fr 1fr;
    }

    .guide-countdown-grid > div:nth-child(3),
    .guide-countdown-grid > div:nth-child(5) {
        padding-left: 0;
        border-left: 0;
    }

    .early-voting-grid {
        grid-template-columns: 1fr 1fr;
    }

    .days-card {
        grid-column: 1 / -1;
        justify-self: center;
        width: 180px;
    }

    .experience-grid {
        grid-template-columns: 1fr 1fr;
    }

    .personal-grid,
    .lookup-grid,
    .lookup-heading-grid {
        grid-template-columns: 1fr;
    }

    .lookup-heading-grid {
        gap: 30px;
    }

    .lookup-grid {
        transform: translateY(-25px);
    }
}

@media (max-width: 760px) {
    .residence-kind-grid,
    .form-field-grid,
    .country-field-grid,
    .guide-countdown-grid,
    .guide-question-grid,
    .guide-section-heading,
    .federal-roster-heading,
    .senator-grid,
    .house-roster-grid,
    .voting-place-dashboard-card {
        grid-template-columns: 1fr;
    }

    .guide-countdown-grid > div + div {
        padding: 15px 0 0;
        border-top: 1px solid rgba(255, 255, 255, 0.17);
        border-left: 0;
    }

    .guide-authority-card {
        grid-template-columns: auto 1fr;
    }

    .guide-authority-card .button {
        grid-column: 1 / -1;
        text-align: center;
    }

    .voting-location-form fieldset {
        padding: 24px 20px;
    }

    .form-action-row {
        align-items: stretch;
        flex-direction: column;
    }

    .form-action-row .button {
        width: 100%;
    }

    .demo-ribbon {
        flex-wrap: wrap;
        gap: 4px 7px;
        letter-spacing: 0.09em;
        text-align: center;
    }

    .circle-dashboard-grid,
    .early-voting-grid,
    .early-explainer-inner {
        grid-template-columns: 1fr;
    }

    .circle-task-menu,
    .walkthrough-panel {
        position: static;
    }

    .circle-dashboard-grid > .walkthrough-panel,
    .days-card {
        grid-column: auto;
    }

    .circle-dashboard-grid > .walkthrough-panel ol {
        grid-template-columns: 1fr;
    }

    .personal-title-row,
    .personal-plan {
        align-items: flex-start;
        flex-direction: column;
    }

    .experience-grid,
    .countdown-grid,
    .registration-facts,
    .name-field-grid {
        grid-template-columns: 1fr;
    }

    .personal-plan {
        display: flex;
    }
}

@media (max-width: 470px) {
    .team-preview {
        transform: rotate(2.5deg);
    }

    .hero-trust-statement {
        align-items: start;
    }

    .voting-info-launch {
        grid-template-columns: auto 1fr;
    }

    .voting-info-launch > b {
        display: none;
    }

    .personal-friend,
    .result-heading {
        align-items: flex-start;
    }

    .personal-friend {
        grid-template-columns: auto 1fr;
    }

    .personal-friend .status-pill {
        grid-column: 2;
        justify-self: start;
    }
}

/* Contextual navigation --------------------------------------------------- */

.context-nav {
    margin-left: auto;
}

.nav-menu-toggle {
    display: none;
}

.context-nav-panel,
.context-nav-sections,
.context-nav-actions {
    display: flex;
    align-items: center;
}

.context-nav-panel {
    gap: 18px;
}

.context-nav-sections {
    gap: 2px;
}

.context-nav-actions {
    gap: 14px;
    padding-left: 16px;
    border-left: 1px solid var(--line);
}

.nav-identity-label {
    color: #36544f;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.1;
    white-space: nowrap;
}

.nav-identity-anonymous {
    display: grid;
    text-align: center;
}

.nav-section {
    position: relative;
}

.nav-section > summary {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 11px 9px;
    border-radius: 7px;
    cursor: pointer;
    list-style: none;
    font-size: 0.84rem;
    font-weight: 800;
    white-space: nowrap;
}

.nav-section > summary::-webkit-details-marker {
    display: none;
}

.nav-section > summary span {
    color: var(--sage);
    font-size: 0.78rem;
    transition: transform 140ms ease;
}

.nav-section[open] > summary,
.nav-section > summary:hover {
    color: var(--coral-dark);
    background: #f7eee7;
}

.nav-section[open] > summary span {
    transform: rotate(180deg);
}

.nav-section-menu {
    position: absolute;
    top: calc(100% + 12px);
    left: 50%;
    z-index: 30;
    display: grid;
    width: 310px;
    padding: 8px;
    border: 1px solid #d8ddd7;
    border-radius: 12px;
    background: rgba(255, 253, 248, 0.99);
    box-shadow: 0 20px 45px rgba(13, 42, 39, 0.18);
    transform: translateX(-50%);
}

.nav-section:last-child .nav-section-menu {
    right: 0;
    left: auto;
    transform: none;
}

.nav-section-menu::before {
    position: absolute;
    top: -13px;
    right: 0;
    left: 0;
    height: 13px;
    content: "";
}

.nav-menu-separator {
    height: 1px;
    margin: 7px 8px;
    border: 0;
    background: #d8ddd7;
}

.nav-submenu {
    border-radius: 8px;
}

.nav-submenu > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 12px;
    color: var(--ink);
    border-radius: 8px;
    cursor: pointer;
    list-style: none;
}

.nav-submenu > summary::-webkit-details-marker {
    display: none;
}

.nav-submenu > summary strong {
    font-size: 0.84rem;
}

.nav-submenu > summary span {
    color: var(--sage);
    font-size: 0.76rem;
    transition: transform 140ms ease;
}

.nav-submenu[open] > summary,
.nav-submenu > summary:hover {
    color: var(--coral-dark);
    background: #f8eee7;
}

.nav-submenu[open] > summary span {
    transform: rotate(180deg);
}

.nav-submenu-menu {
    display: grid;
    margin: 0 5px 5px 14px;
    padding-left: 8px;
    border-left: 2px solid #d8ddd7;
}

.nav-section-link {
    display: grid;
    gap: 2px;
    padding: 11px 12px;
    color: var(--ink);
    border-radius: 8px;
    text-decoration: none;
}

.nav-section-link + .nav-section-link {
    border-top: 1px solid #edf0ec;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.nav-section-link strong {
    font-size: 0.84rem;
    letter-spacing: -0.01em;
}

.nav-section-link small {
    color: var(--muted);
    font-size: 0.69rem;
    line-height: 1.4;
}

a.nav-section-link:hover,
.nav-section-link.is-current {
    color: var(--coral-dark);
    background: #f8eee7;
}

.nav-section-link.is-current {
    box-shadow: inset 3px 0 0 var(--coral);
}

.nav-section-link.is-disabled,
.sitemap-disabled {
    color: #85938e;
    background: #f4f5f2;
    cursor: not-allowed;
}

.nav-link-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.nav-link-heading em {
    padding: 2px 6px;
    color: #6f7d78;
    border-radius: 999px;
    background: #e4e8e4;
    font-size: 0.54rem;
    font-style: normal;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.nav-session-link,
.context-nav .nav-button {
    font-size: 0.82rem;
    font-weight: 800;
    white-space: nowrap;
}

.nav-session-link {
    text-decoration: none;
}

.nav-session-link:hover {
    color: var(--coral-dark);
}

.context-nav .nav-button {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    text-decoration: none;
}

.context-nav .nav-button-two-lines {
    flex-direction: column;
    justify-content: center;
    min-width: 7.5rem;
    padding-top: .4rem;
    padding-bottom: .45rem;
    line-height: 1.02;
    white-space: normal;
}

/* The sitemap uses the same context-aware menu model as the header. */
.sitemap-hero {
    padding: clamp(4rem, 8vw, 7rem) 0;
    background:
        radial-gradient(circle at 78% 24%, rgba(233, 183, 90, 0.18), transparent 28%),
        var(--cream);
}

.sitemap-hero h1 {
    margin-bottom: 20px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.8rem, 6vw, 5rem);
}

.sitemap-hero p:last-child {
    max-width: 640px;
    margin-bottom: 0;
    color: var(--muted);
}

.sitemap-content {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
}

.sitemap-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.sitemap-card {
    padding: 30px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: white;
    box-shadow: var(--small-shadow);
}

.sitemap-card h2 {
    margin-bottom: 20px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.75rem;
}

.sitemap-link-list {
    display: grid;
    gap: 9px;
}

.sitemap-link-list > a,
.sitemap-disabled {
    display: grid;
    gap: 4px;
    padding: 14px 15px;
    border-radius: 9px;
    text-decoration: none;
}

.sitemap-link-list > a {
    border: 1px solid #e2e6e1;
}

.sitemap-link-list > a:hover {
    color: var(--coral-dark);
    border-color: #ddaa96;
    background: #fff8f3;
}

.sitemap-link-list > a span,
.sitemap-disabled > span:last-child {
    color: var(--muted);
    font-size: 0.78rem;
}

@media (max-width: 1180px) {
    .header-state-label {
        display: none;
    }
}

@media (max-width: 1100px) {
    .header-inner {
        min-height: 70px;
    }

    .nav-menu-toggle {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        min-height: 42px;
        padding: 8px 13px;
        color: var(--ink);
        border: 1px solid #bcc7c2;
        border-radius: 8px;
        cursor: pointer;
        background: white;
        font-size: 0.82rem;
        font-weight: 850;
    }

    .nav-menu-icon {
        display: grid;
        gap: 3px;
        width: 17px;
    }

    .nav-menu-icon i {
        display: block;
        height: 2px;
        border-radius: 2px;
        background: currentColor;
    }

    .context-nav-panel {
        position: absolute;
        top: calc(100% + 1px);
        right: 0;
        left: 0;
        z-index: 40;
        display: none;
        max-height: calc(100vh - 118px);
        padding: 12px;
        overflow-y: auto;
        align-items: stretch;
        border: 1px solid var(--line);
        border-top: 4px solid var(--coral);
        border-radius: 0 0 14px 14px;
        background: rgba(255, 253, 248, 0.995);
        box-shadow: 0 24px 48px rgba(13, 42, 39, 0.2);
    }

    .context-nav.is-open .context-nav-panel {
        display: flex;
        flex-direction: column;
    }

    .context-nav-sections {
        display: grid;
        align-items: stretch;
        gap: 4px;
    }

    .nav-section {
        border-bottom: 1px solid #e6e9e5;
    }

    .nav-section > summary {
        justify-content: space-between;
        min-height: 48px;
        padding: 12px;
        font-size: 0.94rem;
    }

    .nav-section-menu,
    .nav-section:last-child .nav-section-menu {
        position: static;
        width: auto;
        margin-bottom: 8px;
        padding: 4px 8px 8px;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        transform: none;
    }

    .nav-section-menu::before {
        display: none;
    }

    .nav-section-link {
        padding: 12px;
    }

    /* The phone drawer uses spacing and nested headings instead of rules. */
    .nav-menu-separator {
        display: none;
    }

    .nav-submenu > summary {
        min-height: 44px;
        padding: 11px 12px;
    }

    .nav-submenu-menu {
        margin-left: 18px;
    }

    .context-nav-actions {
        order: -1;
        position: sticky;
        top: -12px;
        z-index: 2;
        justify-content: flex-end;
        gap: 12px;
        margin: -12px -12px 6px;
        padding: 12px 16px;
        border-bottom: 1px solid var(--line);
        border-left: 0;
        background: rgba(255, 253, 248, 0.995);
    }

    .nav-identity-anonymous {
        display: inline-flex;
        gap: 0.25rem;
    }
}

@media (max-width: 760px) {
    .sitemap-grid {
        grid-template-columns: 1fr;
    }

    .sitemap-card {
        padding: 24px 20px;
    }
}

@media (max-width: 470px) {
    .context-nav-panel {
        right: -15px;
        left: -15px;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    .context-nav-actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .context-nav-actions > a,
    .context-nav-actions form,
    .context-nav-actions button {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .nav-identity-label {
        width: 100%;
        padding: 0.2rem 0;
        text-align: center;
    }

    .nav-identity-anonymous {
        display: block;
    }
}

@media (max-width: 360px) {
    .header-inner {
        min-height: 78px;
    }

    .brand {
        align-items: flex-start;
        flex-direction: column;
        line-height: 1;
    }

    .brand-location {
        margin-top: 0.35rem;
        margin-left: 0;
        font-size: 0.68rem;
    }
}

/* Ann, the I'LL BCNU guide ------------------------------------------------ */

.ann-speaking-portrait {
    display: block;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.ann-introduction {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(170px, 25vw, 235px);
    align-items: end;
    gap: clamp(18px, 4vw, 44px);
    margin-top: -14px;
}

.ann-introduction h1 {
    margin-bottom: 12px;
}

.ann-introduction-lede {
    max-width: 540px;
    margin: 0 0 20px;
    color: #fff5eb;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.4rem, 3.2vw, 2.25rem);
    line-height: 1.25;
}

.ann-introduction-summary {
    max-width: 680px;
    margin-top: 22px;
}

.ann-guided-headline {
    display: flow-root;
}

.ann-guided-headline .ann-speaking-portrait {
    shape-outside: circle(47% at 50% 50%);
}

.ann-guided-headline.ann-at-start .ann-speaking-portrait {
    float: left;
    margin: 0.02em 0.25em 0.08em -0.06em;
}

.ann-guided-headline.ann-at-end .ann-speaking-portrait {
    float: right;
    margin: -0.16em -0.08em 0.02em 0.28em;
}

.hero-copy .ann-guided-headline .ann-speaking-portrait {
    width: clamp(100px, 9vw, 118px);
}

.portal-copy .ann-guided-headline .ann-speaking-portrait {
    width: clamp(96px, 12vw, 138px);
}

.portal-card .ann-guided-headline .ann-speaking-portrait {
    width: clamp(84px, 10vw, 112px);
}

@media (max-width: 760px) {
    .ann-introduction {
        grid-template-columns: minmax(0, 1fr) clamp(118px, 27vw, 170px);
        gap: 14px;
    }

    .ann-introduction-summary {
        margin-top: 16px;
    }
}

@media (max-width: 470px) {
    .ann-introduction {
        grid-template-columns: minmax(0, 1fr) 108px;
        align-items: center;
        margin-top: -6px;
    }

    .ann-introduction h1 {
        font-size: 2.7rem;
    }

    .ann-introduction-lede {
        margin-bottom: 0;
        font-size: 1.18rem;
    }

    .hero-copy .ann-guided-headline .ann-speaking-portrait {
        width: 92px;
        margin-right: 0.18em;
    }

    .portal-copy .ann-guided-headline .ann-speaking-portrait,
    .portal-card .ann-guided-headline .ann-speaking-portrait {
        width: 84px;
    }
}

/* Landing-page Circle preview ------------------------------------------- */

.landing-circle-card {
    position: relative;
    z-index: 2;
    width: min(440px, 100%);
    padding: 22px 24px 20px;
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 26px 58px rgba(13, 42, 39, 0.18);
    transform: rotate(7deg);
}

.landing-circle-capacity {
    margin-top: 2px;
    color: var(--coral-dark);
    font-size: 0.72rem;
    font-weight: 900;
    white-space: nowrap;
}

.landing-circle-wheel {
    padding: 3px 2px 8px;
}

.landing-circle-wheel .circle-wheel {
    display: block;
    width: 100%;
    max-width: 330px;
    aspect-ratio: 1;
    background:
        radial-gradient(circle at center, transparent 0 39%, rgba(34, 80, 72, 0.24) 39.3% 39.8%, transparent 40.1%),
        repeating-conic-gradient(from -18deg, rgba(34, 80, 72, 0.17) 0deg 0.8deg, transparent 0.8deg 36deg);
}

.landing-circle-wheel .circle-leader,
.landing-circle-wheel .circle-seat {
    position: absolute;
    width: 58px;
    min-height: 58px;
    padding: 6px 4px;
    border-width: 3px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.landing-circle-wheel .circle-leader {
    top: 50%;
    left: 50%;
    width: 88px;
    min-height: 88px;
}

.landing-circle-wheel .circle-leader strong,
.landing-circle-wheel .circle-seat strong {
    font-size: 0.58rem;
}

.landing-circle-wheel .circle-leader small,
.landing-circle-wheel .circle-seat small {
    margin-top: 1px;
    font-size: 0.5rem;
}

.landing-circle-wheel .circle-person-initials {
    margin-bottom: 1px;
    font-size: 0.82rem;
}

.landing-circle-wheel .circle-seat-number {
    top: 2px;
    right: 5px;
    font-size: 0.49rem;
}

.landing-circle-progress {
    margin-top: 9px;
}

.landing-circle-key {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px 12px;
    margin-top: 13px;
    color: var(--muted);
    font-size: 0.58rem;
    font-weight: 800;
}

.landing-circle-key span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.landing-circle-key i {
    width: 12px;
    height: 12px;
    border-width: 2px;
    border-style: solid;
    border-radius: 50%;
}

@media (max-width: 980px) {
    .landing-circle-card {
        transform: rotate(5deg);
    }
}

@media (max-width: 470px) {
    .landing-circle-card {
        padding: 18px 15px 16px;
        transform: rotate(2.5deg);
    }

    .landing-circle-wheel .circle-wheel {
        max-width: 300px;
    }

    .landing-circle-wheel .circle-leader {
        width: 78px;
        min-height: 78px;
    }

    .landing-circle-wheel .circle-seat {
        width: 50px;
        min-height: 50px;
    }

    .landing-circle-wheel .circle-seat strong {
        display: none;
    }

    .landing-circle-wheel .circle-seat small {
        font-size: 0.46rem;
    }

    .landing-circle-wheel .circle-person-initials {
        font-size: 0.72rem;
    }

    .footer-feedback-with-portrait {
        grid-template-columns: minmax(0, 1fr) 82px;
        gap: 9px;
        padding-left: 15px;
    }

    .footer-uncle-bit {
        width: 82px;
    }
}

/* Friend visibility editor ---------------------------------------------- */

.friend-visibility-page {
    background: #eef3ef;
}

.visibility-hero {
    padding: clamp(52px, 7vw, 88px) 0 44px;
    border-bottom: 1px solid var(--line);
    background:
        radial-gradient(circle at 88% 20%, rgba(233, 183, 90, 0.28), transparent 25%),
        radial-gradient(circle at 76% 82%, rgba(223, 109, 80, 0.15), transparent 30%),
        linear-gradient(180deg, #fffaf1, var(--paper));
}

.visibility-hero-inner {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 36px;
}

.visibility-hero h1 {
    margin: 0;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 6vw, 5.25rem);
    font-weight: 500;
    line-height: 0.98;
}

.visibility-hero p:not(.eyebrow) {
    max-width: 720px;
    margin: 22px 0 0;
    color: var(--muted);
    font-size: clamp(1rem, 1.8vw, 1.24rem);
    line-height: 1.65;
}

.visibility-page-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.visibility-page-links .button {
    min-height: 43px;
    padding: 10px 15px;
    white-space: nowrap;
}

.visibility-editor-section {
    padding: clamp(34px, 5vw, 72px) 0 clamp(72px, 8vw, 112px);
}

.visibility-confirmation {
    margin-bottom: 22px;
    padding: 15px 18px;
    border: 1px solid #91c8aa;
    border-radius: 12px;
    color: #0b4b2d;
    background: #dcf4e5;
    font-weight: 800;
}

.visibility-editor-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(330px, 390px);
    align-items: start;
    gap: clamp(24px, 4vw, 48px);
}

.visibility-settings-column {
    display: grid;
    gap: 24px;
}

.visibility-presets,
.visibility-settings-card,
.visibility-preview-panel,
.visibility-save-panel {
    border: 1px solid rgba(23, 59, 54, 0.14);
    border-radius: 22px;
    background: var(--paper);
    box-shadow: 0 14px 36px rgba(13, 42, 39, 0.08);
}

.visibility-presets,
.visibility-settings-card {
    padding: clamp(22px, 3vw, 34px);
}

.visibility-presets h2,
.visibility-settings-card h2,
.visibility-preview-panel h2 {
    margin: 5px 0 8px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    font-weight: 500;
}

.visibility-presets p:not(.card-kicker),
.visibility-settings-card header > p:not(.card-kicker) {
    margin: 0;
    color: var(--muted);
    line-height: 1.6;
}

.visibility-preset-buttons {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 22px;
    padding: 0;
    border: 0;
}

.visibility-preset {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 11px;
    min-height: 104px;
    padding: 15px;
    border: 1px solid rgba(23, 59, 54, 0.3);
    border-radius: 12px;
    color: var(--ink);
    background: #fffdf8;
    box-shadow: inset 0 -3px 0 rgba(23, 59, 54, 0.14), 0 4px 9px rgba(13, 42, 39, 0.08);
    cursor: pointer;
}

.visibility-preset input {
    width: 19px;
    height: 19px;
    margin: 2px 0 0;
    accent-color: var(--teal);
    cursor: pointer;
}

.visibility-preset-copy {
    display: grid;
    gap: 5px;
}

.visibility-preset-copy strong {
    font-size: 0.93rem;
    font-weight: 850;
}

.visibility-preset-copy small {
    color: var(--muted);
    font-size: 0.78rem;
    line-height: 1.4;
}

.visibility-preset:hover,
.visibility-preset.is-selected {
    border-color: var(--teal);
    background: #edf6f2;
    box-shadow: inset 0 -3px 0 rgba(23, 90, 81, 0.3), 0 6px 13px rgba(13, 42, 39, 0.13);
}

.visibility-preset.is-selected .visibility-preset-copy strong {
    color: var(--teal);
}

.visibility-preset:focus-within {
    outline: 3px solid var(--gold);
    outline-offset: 3px;
}

.visibility-preset-status {
    margin: 13px 0 0 !important;
    color: var(--coral-dark) !important;
    font-size: 0.78rem;
    font-weight: 800;
}

.visibility-rule-list {
    display: grid;
    gap: 0;
    margin-top: 22px;
    border-top: 1px solid var(--line);
}

.visibility-rule-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(205px, 245px);
    align-items: center;
    gap: 24px;
    padding: 22px 0;
    border-bottom: 1px solid var(--line);
}

.visibility-rule-copy h3 {
    margin: 0 0 6px;
    color: var(--ink-deep);
    font-size: 1.08rem;
}

.visibility-rule-copy p {
    margin: 0;
    color: var(--muted);
    font-size: 0.86rem;
    line-height: 1.55;
}

.visibility-example,
.visibility-required-note {
    display: block;
    margin-top: 9px;
    font-size: 0.72rem;
    line-height: 1.45;
}

.visibility-example {
    color: #536a64;
}

.visibility-example strong {
    color: var(--ink);
}

.visibility-required-note {
    color: #7b5b16;
    font-weight: 750;
}

.visibility-required-note b {
    margin-right: 4px;
    color: var(--gold);
}

.visibility-rule-choice label,
.visibility-preview-panel > label {
    display: block;
    margin-bottom: 7px;
    color: var(--ink);
    font-size: 0.75rem;
    font-weight: 850;
}

.visibility-rule-choice select,
.visibility-preview-panel > select {
    width: 100%;
    min-height: 46px;
    padding: 10px 34px 10px 12px;
    border: 1px solid #aebbb6;
    border-radius: 9px;
    color: var(--ink-deep);
    background: white;
    font: inherit;
    font-size: 0.84rem;
    font-weight: 750;
}

.visibility-circle-settings {
    border-top: 5px solid var(--gold);
}

.visibility-circle-settings .visibility-rule-card {
    margin-top: 20px;
    padding-bottom: 0;
    border-top: 1px solid var(--line);
    border-bottom: 0;
}

.visibility-save-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 22px;
    border-color: rgba(34, 80, 72, 0.24);
    background: #e7f0eb;
}

.visibility-save-panel strong,
.visibility-save-panel span {
    display: block;
}

.visibility-save-panel span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 0.78rem;
}

.visibility-save-panel .button {
    flex: 0 0 auto;
}

.visibility-preview-panel {
    position: sticky;
    top: 22px;
    overflow: hidden;
    padding: 28px;
    border-top: 6px solid var(--coral);
}

.visibility-preview-panel > select {
    margin-bottom: 12px;
}

.visibility-preview-explanation {
    min-height: 62px;
    margin: 0 0 18px;
    color: var(--muted);
    font-size: 0.82rem;
    line-height: 1.55;
}

.visibility-friend-preview {
    overflow: hidden;
    border: 1px solid rgba(23, 59, 54, 0.16);
    border-radius: 17px;
    background: white;
}

.guide-question-card#where-to-vote {
    scroll-margin-top: 7rem;
}

.guide-question-card#where-to-vote:target {
    border-color: var(--coral-dark);
    box-shadow: 0 0 0 4px rgb(203 81 55 / 14%);
}

.visibility-preview-person {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px;
    color: white;
    background: var(--teal);
}

.visibility-preview-person > span {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 48px;
    height: 48px;
    border: 3px solid rgba(255, 255, 255, 0.75);
    border-radius: 50%;
    color: var(--ink-deep);
    background: var(--gold);
    font-size: 0.74rem;
    font-weight: 950;
    letter-spacing: 0.05em;
}

.visibility-preview-person strong,
.visibility-preview-person small {
    display: block;
}

.visibility-preview-person small {
    margin-top: 2px;
    color: #d7e7e1;
}

.visibility-preview-fields {
    padding: 4px 17px 9px;
}

.visibility-preview-field {
    display: grid;
    grid-template-columns: minmax(90px, 0.7fr) minmax(0, 1.3fr);
    gap: 10px;
    padding: 11px 0;
    border-bottom: 1px solid #edf0ed;
}

.visibility-preview-field > span {
    color: var(--muted);
    font-size: 0.69rem;
    font-weight: 800;
}

.visibility-preview-field > strong,
.visibility-preview-field > em {
    overflow-wrap: anywhere;
    color: var(--ink-deep);
    font-size: 0.74rem;
    font-style: normal;
    line-height: 1.4;
}

.visibility-preview-field > em {
    color: #7f8985;
}

.visibility-preview-field.is-private {
    opacity: 0.72;
}

.visibility-preview-circle {
    margin-top: 4px;
    padding: 13px 10px;
    border: 1px solid #e2bf72;
    border-radius: 10px;
    background: #fff7df;
}

.visibility-preview-note {
    margin-top: 18px;
    padding: 15px 16px;
    border-radius: 13px;
    color: #dbe8e4;
    background: var(--ink-deep);
}

.visibility-preview-note strong {
    color: var(--gold);
    font-size: 0.76rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.visibility-preview-note p {
    margin: 6px 0 0;
    font-size: 0.74rem;
    line-height: 1.55;
}

@media (max-width: 1000px) {
    .visibility-hero-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .visibility-page-links {
        justify-content: flex-start;
    }

    .visibility-editor-grid {
        grid-template-columns: 1fr;
    }

    .visibility-preview-panel {
        position: static;
        order: -1;
    }

    .visibility-preview-fields {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 22px;
    }
}

@media (max-width: 680px) {
    .visibility-preset-buttons,
    .visibility-preview-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .visibility-rule-card {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .visibility-save-panel {
        align-items: stretch;
        flex-direction: column;
    }

    .visibility-save-panel .button {
        width: 100%;
    }
}

@media (max-width: 470px) {
    .visibility-hero {
        padding-top: 42px;
    }

    .visibility-page-links,
    .visibility-page-links .button {
        width: 100%;
    }

    .visibility-presets,
    .visibility-settings-card,
    .visibility-preview-panel {
        padding: 21px 17px;
        border-radius: 16px;
    }

    .visibility-preset-buttons,
    .visibility-preview-fields {
        grid-template-columns: 1fr;
    }
}
/* Friend and logical Circle Seat pages ------------------------------------ */
.other-friend-hero,
.seat-page-hero {
    padding: clamp(2.25rem, 5vw, 4.5rem) 0;
    background:
        radial-gradient(circle at 82% 18%, rgba(238, 180, 78, .2), transparent 25rem),
        linear-gradient(135deg, #fffdf8 0%, #f5f1e7 100%);
    border-bottom: 1px solid rgba(13, 58, 52, .12);
}

.other-friend-hero-grid,
.seat-page-hero-grid {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(1rem, 3vw, 2.5rem);
}

.other-friend-hero h1,
.seat-page-hero h1 {
    margin: .25rem 0 .65rem;
}

.seat-page-hero-aside {
    display: grid;
    justify-items: center;
    gap: 1rem;
}

.seat-page-invitation-art {
    display: block;
    width: auto;
    height: 230px;
    max-width: 100%;
    object-fit: contain;
}

.other-friend-hero p,
.seat-page-hero p {
    max-width: 46rem;
}

.other-friend-portrait,
.seat-page-emblem {
    width: clamp(5.5rem, 10vw, 8rem);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #124f46;
    border: .45rem solid rgba(255, 255, 255, .8);
    box-shadow: 0 .8rem 2.2rem rgba(17, 58, 52, .16);
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 3vw, 2.25rem);
}

.other-friend-reach {
    min-width: 7.5rem;
    padding: 1rem 1.25rem;
    text-align: center;
    border: 1px solid rgba(13, 58, 52, .18);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .74);
}

.other-friend-reach strong,
.other-friend-reach span {
    display: block;
}

.other-friend-reach strong {
    color: #124f46;
    font-size: 2rem;
}

.other-friend-content,
.seat-page-content {
    padding: clamp(2.5rem, 6vw, 5.5rem) 0;
}

.other-friend-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr);
    gap: 1.25rem;
}

.other-friend-card,
.seat-page-card,
.seat-page-explanation {
    padding: clamp(1.35rem, 3vw, 2.25rem);
    border: 1px solid rgba(13, 58, 52, .14);
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: 0 1rem 2.7rem rgba(17, 58, 52, .08);
}

.other-friend-profile-card {
    grid-row: span 2;
}

.other-friend-circle-card,
.other-friend-actions {
    grid-column: 1 / -1;
}

.other-friend-circle-heading {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.other-friend-circle-heading > strong {
    color: #124f46;
    font-size: 2rem;
}

.other-friend-circle-card .circle-wheel {
    max-width: 43rem;
    margin: 1.5rem auto 2rem;
}

.other-friend-data,
.seat-page-data {
    margin: 1.25rem 0 0;
}

.other-friend-data > div,
.seat-page-data > div {
    display: grid;
    grid-template-columns: minmax(8rem, .8fr) minmax(0, 1.4fr);
    gap: 1rem;
    padding: .9rem 0;
    border-top: 1px solid rgba(13, 58, 52, .1);
}

.other-friend-data dt,
.seat-page-data dt {
    color: #64746f;
    font-weight: 700;
}

.other-friend-data dd,
.seat-page-data dd {
    margin: 0;
    font-weight: 700;
}

.other-friend-note {
    margin-top: 1.25rem;
    padding: 1rem;
    border-left: .25rem solid #eeb44e;
    background: #fff8e9;
}

.other-friend-actions,
.seat-page-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
}

.seat-page-emblem {
    align-content: center;
    color: #103f38;
}

.seat-page-emblem span,
.seat-page-emblem strong {
    display: block;
    text-align: center;
    line-height: 1;
}

.seat-page-emblem span {
    margin-bottom: .35rem;
    font-family: var(--font-body);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.seat-page-emblem strong {
    font-size: 2.4rem;
}

/* The general Circle status classes are declared earlier in this file.
   Repeat them with the emblem selector so the Seat page's base treatment
   cannot accidentally cover the status color. */
.seat-page-emblem.circle-seat-empty {
    color: #45544f;
    background: #f3f4f1;
    border-color: #c6cdc8;
}

.seat-page-emblem.circle-seat-invited {
    color: #493815;
    background: #f6dfa8;
    border-color: #e9b75a;
}

.seat-page-emblem.circle-seat-provisional {
    color: #123e4d;
    background: #bcdce8;
    border-color: #6faac0;
}

.seat-page-emblem.circle-seat-friend {
    color: #173d30;
    background: #d9e8e1;
    border-color: #7fa08f;
}

.seat-page-emblem.circle-seat-suspended {
    color: #3f3d39;
    background: #e4e1db;
    border-color: #8b8984;
}

.seat-page-emblem.circle-seat-declined {
    color: #fff;
    background: #242a28;
    border-color: #090c0b;
}

.seat-page-emblem.circle-seat-voted {
    color: #072d1b;
    background: #38d978;
    border-color: #118c49;
}

.seat-page-messages {
    padding-top: 1.5rem;
}

.seat-page-messages .invitation-link-panel {
    margin-top: 1rem;
}

.seat-page-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 1.25rem;
}

.account-creation-intro {
    display: flow-root;
}

.portal-card .account-creation-intro h1 {
    font-size: clamp(2rem, 4vw, 3.5rem);
}

.account-creation-intro > p:not(.eyebrow) {
    color: #405e58;
    font-size: 1.08rem;
}

.account-creation-art {
    float: right;
    width: 175px;
    height: auto;
    margin: 0 0 1rem 1.5rem;
}

@media (max-width: 540px) {
    .account-creation-art {
        width: 105px;
        margin-left: .75rem;
    }
}

.seat-page-explanation {
    background: #f6f2e8;
}

.seat-invitation-form {
    display: grid;
    gap: 1rem;
    margin-top: 1.5rem;
}

.seat-invitation-form label,
.seat-invitation-form input,
.seat-invitation-form textarea {
    display: block;
    width: 100%;
}

.seat-invitation-form label {
    margin-bottom: .4rem;
    font-weight: 800;
}

.seat-invitation-form input,
.seat-invitation-form textarea {
    padding: .8rem .9rem;
    border: 1px solid rgba(13, 58, 52, .28);
    border-radius: .65rem;
    background: #fff;
}

.seat-page-actions {
    margin-top: 1.5rem;
}

@media (max-width: 760px) {
    .other-friend-hero-grid,
    .seat-page-hero-grid {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .other-friend-reach,
    .seat-page-hero-grid > .button,
    .seat-page-hero-aside {
        grid-column: 1 / -1;
    }

    .seat-page-invitation-art {
        height: 175px;
    }

    .other-friend-grid,
    .seat-page-grid {
        grid-template-columns: 1fr;
    }

    .other-friend-profile-card {
        grid-row: auto;
    }

    .other-friend-data > div,
    .seat-page-data > div {
        grid-template-columns: 1fr;
        gap: .25rem;
    }
}

/* Welcome / Index -------------------------------------------------------
   These rules are deliberately scoped to the new Index class names. That
   lets the older landing-page styles remain available while this page is
   reviewed without allowing them to leak into the new composition. */

/* Alternate welcome page ----------------------------------------------
   A short, action-first landing-page experiment. It deliberately has its
   own class vocabulary so it can be compared with Index without changing it. */

.alternate-home-page {
    background: #f8f5ed;
}

.alt-home-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(1.75rem, 3vw, 3rem) 0 clamp(2.5rem, 4vw, 4rem);
    color: var(--ink-deep);
    background:
        radial-gradient(circle at 10% 15%, rgba(232, 183, 91, .22), transparent 24rem),
        radial-gradient(circle at 88% 75%, rgba(207, 93, 64, .12), transparent 27rem),
        linear-gradient(135deg, #fffaf0, #eef4ef 64%, #f6e6dc);
}

.alt-home-hero::before {
    position: absolute;
    top: -13rem;
    right: -12rem;
    width: 38rem;
    height: 38rem;
    border: 1px solid rgba(23, 69, 62, .11);
    border-radius: 50%;
    content: "";
}

.alt-home-hero-grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(24rem, .72fr);
    align-items: center;
    gap: clamp(2rem, 5vw, 5rem);
}

.alt-home-hero-copy {
    position: relative;
    z-index: 2;
}

.alt-home-hero-copy > .eyebrow {
    margin-bottom: 1.1rem;
    color: var(--coral-dark);
}

.alt-home-hero-copy h1,
.alt-home-section-heading h2,
.alt-home-dashboard-copy h2,
.alt-home-local h2,
.alt-home-finish h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
}

.alt-home-hero-copy h1 {
    max-width: 49rem;
    margin: 0;
    font-size: clamp(3.15rem, 5.7vw, 5.8rem);
    line-height: .96;
    letter-spacing: -.05em;
}

.alt-home-hero-copy h1 em {
    color: var(--coral-dark);
    font-style: italic;
    font-weight: 400;
}

.alt-home-benefit-list {
    display: grid;
    gap: .8rem;
    max-width: 47rem;
    margin: 2rem 0 0;
    padding: 0;
    list-style: none;
}

.alt-home-benefit-list li {
    position: relative;
    padding-left: 2rem;
    color: #294f49;
    font-size: clamp(1rem, 1.45vw, 1.18rem);
    font-weight: 750;
    line-height: 1.4;
}

.alt-home-benefit-list li::before {
    position: absolute;
    top: -.08rem;
    left: 0;
    color: var(--coral-dark);
    content: "\2713";
    font-size: 1.25rem;
    font-weight: 900;
}

.alt-home-volunteer-note {
    max-width: 45rem;
    margin: 1.55rem 0 0;
    color: #5f706c;
    font-size: .94rem;
    font-style: italic;
    line-height: 1.55;
}

.alt-home-hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    grid-area: actions;
    gap: 1rem 1.35rem;
}

.alt-home-ann-panel {
    display: grid;
    align-self: start;
    justify-items: center;
}

.alt-home-ann-panel > img {
    display: block;
    width: min(100%, 28rem);
    height: auto;
    filter: drop-shadow(0 1.4rem 1.6rem rgba(29, 69, 62, .16));
}

.alt-home-ann-actions {
    display: flex;
    width: 100%;
    align-items: stretch;
    justify-content: center;
    gap: 1.25rem;
    margin-top: .5rem;
}

.alt-home-ann-actions .button {
    min-width: 0;
    flex: 1 1 0;
    padding-inline: 1rem;
    text-align: center;
}

.alt-home-text-link {
    color: var(--ink-deep);
    font-weight: 850;
    text-decoration-thickness: .12rem;
    text-underline-offset: .24rem;
}

.alt-home-example-card {
    position: relative;
    grid-area: example;
    padding: clamp(1.5rem, 3vw, 2.35rem);
    overflow: hidden;
    border: .55rem solid rgba(255, 255, 255, .9);
    border-radius: 1.5rem;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 2rem 4rem rgba(29, 69, 62, .2);
}

.alt-home-example-card::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: .4rem;
    background: linear-gradient(90deg, var(--gold), var(--coral-dark), #5aa88a);
    content: "";
}

.alt-home-example-heading {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1.4rem;
    border-bottom: 1px solid #d7e0dc;
}

.alt-home-example-heading .eyebrow {
    margin-bottom: .45rem;
    color: var(--coral-dark);
}

.alt-home-example-heading h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3vw, 2.65rem);
    font-weight: 500;
    line-height: 1;
}

.alt-home-example-heading > span {
    max-width: 8.5rem;
    padding: .55rem .7rem;
    border-radius: 999px;
    color: #365b54;
    background: #e7f0ec;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .04em;
    line-height: 1.25;
    text-align: center;
    text-transform: uppercase;
}

.alt-home-example-task {
    padding: 1.55rem 0 1.2rem;
}

.alt-home-example-task > p {
    margin: 0 0 .35rem;
    color: var(--coral-dark);
    font-size: .75rem;
    font-weight: 950;
    letter-spacing: .12em;
}

.alt-home-example-task h3 {
    margin: 0 0 .55rem;
    color: var(--ink-deep);
    font-size: clamp(1.45rem, 2.4vw, 2rem);
    line-height: 1.12;
}

.alt-home-example-task > span {
    color: #58706b;
    line-height: 1.5;
}

.alt-home-example-choices {
    display: grid;
    gap: .65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.alt-home-example-choices li {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .8rem 1rem;
    border: 1px solid #d8dfdc;
    border-radius: .75rem;
    color: var(--ink-deep);
    background: #fffdf8;
    font-weight: 850;
}

.alt-home-example-choices span {
    display: grid;
    width: 1.8rem;
    height: 1.8rem;
    flex: 0 0 auto;
    border-radius: 50%;
    color: white;
    background: var(--ink-deep);
    font-size: .78rem;
    place-items: center;
}

.alt-home-example-support {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1rem;
    margin-top: 1.2rem;
    padding-top: 1.1rem;
    border-top: 1px solid #d7e0dc;
    color: #355b54;
    font-size: .82rem;
    font-weight: 850;
}

.alt-home-example-support span {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.alt-home-example-support b {
    display: grid;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 50%;
    color: white;
    background: var(--coral-dark);
    font-size: .75rem;
    place-items: center;
}

.alt-home-example-note {
    margin: .85rem 0 0;
    color: #687a76;
    font-size: .78rem;
    line-height: 1.45;
}

.alt-home-paths {
    padding: clamp(4.5rem, 8vw, 7.5rem) 0;
}

.alt-home-section-heading {
    max-width: 100%;
    margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.alt-home-section-heading h2 {
    margin: 0;
    font-size: clamp(3rem, 6vw, 5.4rem);
    line-height: .95;
    letter-spacing: -.04em;
}

.alt-home-path-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.alt-home-path-card {
    position: relative;
    display: flex;
    min-height: 20rem;
    padding: clamp(1.6rem, 3vw, 2.35rem);
    overflow: hidden;
    border: 1px solid #d7ddd7;
    border-top: .45rem solid var(--card-accent, var(--gold));
    border-radius: 1.25rem;
    flex-direction: column;
    background: rgba(255, 255, 255, .76);
    box-shadow: 0 1.2rem 2.2rem rgba(34, 72, 65, .09);
}

.alt-home-path-registration {
    --card-accent: #dbaf4d;
}

.alt-home-path-vote {
    --card-accent: #d5684a;
}

.alt-home-path-friends {
    --card-accent: #58a989;
}

.alt-home-path-number {
    position: absolute;
    top: .7rem;
    right: 1.1rem;
    color: rgba(26, 70, 63, .07);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 6rem;
    line-height: 1;
}

.alt-home-path-card h3 {
    position: relative;
    margin: 2.6rem 0 1rem;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3vw, 2.65rem);
    font-weight: 500;
    line-height: 1;
}

.alt-home-path-card p {
    position: relative;
    margin: 0;
    color: #526b67;
    font-size: 1.02rem;
    line-height: 1.65;
}

.alt-home-path-card a {
    position: relative;
    margin-top: auto;
    padding-top: 2rem;
    color: var(--ink-deep);
    font-weight: 900;
    text-decoration: none;
}

.alt-home-path-card a:hover,
.alt-home-path-card a:focus-visible {
    color: var(--coral-dark);
    text-decoration: underline;
    text-underline-offset: .25rem;
}

.alt-home-dashboard {
    padding: clamp(4rem, 7vw, 6.5rem) 0;
    color: white;
    background:
        radial-gradient(circle at 92% 12%, rgba(231, 177, 74, .14), transparent 25rem),
        linear-gradient(145deg, #17443d, #0c2f2b);
}

.alt-home-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(15rem, .72fr) minmax(0, 1.45fr);
    align-items: center;
    gap: clamp(2rem, 6vw, 5.5rem);
}

.alt-home-dashboard-copy h2 {
    margin: 0 0 1.25rem;
    font-size: clamp(2.8rem, 5vw, 4.8rem);
    line-height: .98;
}

.alt-home-dashboard-copy > p:not(.eyebrow) {
    color: #d6e4df;
    font-size: 1.05rem;
    line-height: 1.7;
}

.alt-home-dashboard-copy a {
    display: inline-block;
    margin-top: .7rem;
    color: var(--gold);
    font-weight: 900;
}

.alt-home-dashboard-shot {
    margin: 0;
    overflow: hidden;
    border: .55rem solid rgba(255, 255, 255, .92);
    border-radius: 1.1rem;
    background: white;
    box-shadow: 0 2rem 3.2rem rgba(0, 0, 0, .3);
}

.alt-home-browser-bar {
    display: flex;
    align-items: center;
    gap: .36rem;
    height: 1.55rem;
    padding: 0 .6rem;
    background: #f2eee6;
}

.alt-home-browser-bar i {
    width: .52rem;
    height: .52rem;
    border-radius: 50%;
    background: #db6a4b;
}

.alt-home-browser-bar i:nth-child(2) {
    background: #dfb24f;
}

.alt-home-browser-bar i:nth-child(3) {
    background: #6aaf94;
}

.alt-home-dashboard-shot img {
    display: block;
    width: 100%;
    height: auto;
}

.alt-home-local {
    padding: clamp(4rem, 7vw, 6rem) 0;
    background: #fffaf1;
}

.alt-home-local-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 2rem 4rem;
}

.alt-home-local h2 {
    max-width: 50rem;
    margin: 0;
    font-size: clamp(2.5rem, 5vw, 4.4rem);
    line-height: 1;
    letter-spacing: -.035em;
}

.alt-home-local div > p:last-child {
    max-width: 48rem;
    margin: 1.25rem 0 0;
    color: #4c6863;
    font-size: 1.08rem;
    line-height: 1.7;
}

.alt-home-finish {
    padding: 3rem 0;
    color: white;
    background: var(--coral-dark);
}

.alt-home-finish-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.alt-home-finish h2 {
    margin: 0;
    font-size: clamp(1.65rem, 2.7vw, 2.45rem);
    line-height: 1.12;
}

.alt-home-finish .eyebrow {
    margin-bottom: .55rem;
    color: #ffe6aa;
}

.alt-home-finish .button-coral {
    color: var(--ink-deep);
    border-color: white;
    background: white;
}

@media (max-width: 980px) {
    .alt-home-hero-grid,
    .alt-home-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .alt-home-hero-grid {
        gap: 2rem;
    }

    .alt-home-ann-panel {
        width: min(100%, 32rem);
        justify-self: center;
    }

    .alt-home-path-grid {
        grid-template-columns: 1fr;
    }

    .alt-home-path-card {
        min-height: 0;
    }

    .alt-home-path-card a {
        margin-top: 1.5rem;
        padding-top: 0;
    }
}

@media (max-width: 720px) {
    .alt-home-hero {
        padding-top: 1.5rem;
    }

    .alt-home-local-grid {
        grid-template-columns: 1fr;
    }

    .alt-home-local .button {
        width: 100%;
    }

    .alt-home-finish-inner {
        align-items: stretch;
        flex-direction: column;
    }

    .alt-home-finish .button {
        width: 100%;
    }
}

@media (max-width: 470px) {
    .alt-home-hero-copy h1 {
        font-size: 3.25rem;
    }

    .alt-home-hero-actions,
    .alt-home-hero-actions .button {
        width: 100%;
    }

    .alt-home-hero-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .alt-home-example-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .alt-home-example-heading > span {
        max-width: none;
        align-self: start;
    }

    .alt-home-ann-panel > img {
        width: min(84vw, 20rem);
    }

    .alt-home-ann-actions {
        flex-direction: column;
    }

    .alt-home-ann-actions .button {
        width: 100%;
    }
}

.index-welcome-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(4rem, 8vw, 7.5rem) 0 clamp(4.5rem, 8vw, 7rem);
    color: white;
    background:
        radial-gradient(circle at 88% 15%, rgba(223, 109, 80, .28), transparent 26rem),
        radial-gradient(circle at 7% 95%, rgba(233, 183, 90, .16), transparent 24rem),
        var(--ink-deep);
}

.index-welcome-hero::before,
.index-welcome-hero::after {
    position: absolute;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 50%;
    content: "";
}

.index-welcome-hero::before {
    top: -18rem;
    right: -13rem;
    width: 42rem;
    height: 42rem;
}

.index-welcome-hero::after {
    right: 7rem;
    bottom: -21rem;
    width: 34rem;
    height: 34rem;
}

.index-welcome-shell {
    --index-clock-size: 9.2rem;
    position: relative;
    z-index: 1;
}

.index-welcome-copy {
    max-width: 66rem;
    padding-right: 9.5rem;
}

.index-welcome-copy > .eyebrow {
    max-width: 45rem;
    color: var(--gold);
    font-size: clamp(.74rem, 1.35vw, .9rem);
}

.index-welcome-copy h1,
.index-story-copy h1,
.index-story-copy h2,
.index-joining-band h2,
.index-information-heading h2,
.index-closing-inner h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
}

.index-welcome-copy h1 {
    margin: 0 0 1.6rem;
    font-size: clamp(3.7rem, 8vw, 7.2rem);
    line-height: .94;
    letter-spacing: -.055em;
}

.index-welcome-copy > p:not(.eyebrow) {
    max-width: 52rem;
    color: #d7e4e0;
    font-size: clamp(1rem, 1.45vw, 1.12rem);
    line-height: 1.78;
}

.index-welcome-copy .index-ann-lede {
    margin: 0;
    color: #fffaf1;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.4rem, 2.7vw, 2.05rem);
    line-height: 1.42;
}

.index-ann-introduction {
    display: grid;
    grid-template-columns: clamp(7.5rem, 13vw, 10rem) minmax(0, 1fr);
    align-items: center;
    gap: clamp(1rem, 3vw, 1.75rem);
    max-width: 52rem;
    margin: -.4rem 0 1.2rem;
}

.index-ann-lede strong {
    color: white;
    font-weight: 500;
}

.index-ann-lede em {
    color: var(--gold);
    font-style: normal;
}

.index-ann-greeting {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
    filter: drop-shadow(0 1.2rem 1.3rem rgba(0, 0, 0, .24));
}

.index-dropcap::first-letter {
    float: left;
    margin: .08em .1em 0 0;
    color: var(--gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.25em;
    line-height: .72;
}

.index-election-countdown {
    position: absolute;
    top: var(--index-clock-size);
    right: 0;
    display: grid;
    z-index: 2;
    width: var(--index-clock-size);
    min-height: var(--index-clock-size);
    align-content: center;
    justify-items: center;
    padding: 1rem;
    color: var(--ink-deep);
    border: .2rem solid var(--gold);
    border-radius: 1.4rem;
    background: #fffaf1;
    box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, .22);
    text-align: center;
    transform: none;
}

.index-election-countdown strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.25rem;
    font-weight: 500;
    line-height: .9;
}

.index-election-countdown span {
    margin-top: .45rem;
    font-size: .73rem;
    font-weight: 900;
    letter-spacing: .035em;
    line-height: 1.25;
    text-transform: uppercase;
}

.index-election-countdown small {
    margin-top: .45rem;
    color: var(--coral-dark);
    font-size: .75rem;
    font-weight: 800;
}

.index-election-pendulum {
    position: absolute;
    top: calc(var(--index-clock-size) + 8.35rem);
    right: 0;
    z-index: 1;
    width: var(--index-clock-size);
    height: clamp(19rem, 25vw, 22rem);
    pointer-events: none;
}

.index-election-pendulum-arm {
    --index-pendulum-angle: 0deg;
    position: absolute;
    top: 0;
    left: calc(50% - 2.45rem);
    width: 4.9rem;
    height: 100%;
    transform: rotate(var(--index-pendulum-angle));
    transform-origin: 50% 0;
    will-change: transform;
}

.index-election-pendulum-arm::before {
    position: absolute;
    top: 0;
    bottom: 2.35rem;
    left: 50%;
    width: .3rem;
    border-radius: 999px;
    background: linear-gradient(90deg, #765019 0%, #c99735 22%, #f7dfa0 48%, #bb8129 72%, #6f4916 100%);
    box-shadow: 0 .25rem .55rem rgba(0, 0, 0, .42);
    content: "";
    transform: translateX(-50%);
}

.index-election-pendulum-arm::after {
    position: absolute;
    top: -.25rem;
    left: 50%;
    width: .82rem;
    height: .82rem;
    border: .16rem solid #f3d583;
    border-radius: 50%;
    background: var(--ink-deep);
    box-shadow: 0 .16rem .4rem rgba(0, 0, 0, .35);
    content: "";
    transform: translateX(-50%);
}

.index-election-pendulum-bob {
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 4.9rem;
    height: 4.9rem;
    border: .3rem solid #e6bd58;
    border-radius: 50%;
    background:
        radial-gradient(circle at 36% 29%, rgba(255, 255, 255, .88), transparent 13%),
        radial-gradient(circle, #fff8df 0 24%, #d29a31 26% 31%, #f4d684 33% 47%, #96621c 49% 54%, #dfb44f 56% 70%, #805217 72% 77%, #efcc70 79% 100%);
    box-shadow:
        0 1rem 1.65rem rgba(0, 0, 0, .36),
        inset 0 0 0 .18rem rgba(255, 255, 255, .52),
        inset 0 0 1rem rgba(98, 61, 14, .28);
    transform: translateX(-50%);
}

.index-election-pendulum-bob::before {
    position: absolute;
    inset: .48rem;
    border: 1px solid rgba(105, 67, 16, .62);
    border-radius: 50%;
    box-shadow:
        inset 0 0 0 .16rem rgba(255, 245, 194, .38),
        0 0 0 .13rem rgba(117, 74, 18, .25);
    content: "";
}

.index-election-pendulum-bob::after {
    position: absolute;
    bottom: -.72rem;
    left: 50%;
    width: 1.05rem;
    height: 1rem;
    background: linear-gradient(90deg, #8c5c1c, #f0ce75 48%, #825317);
    clip-path: polygon(18% 0, 82% 0, 100% 35%, 50% 100%, 0 35%);
    content: "";
    filter: drop-shadow(0 .22rem .2rem rgba(0, 0, 0, .32));
    transform: translateX(-50%);
}

.index-election-pendulum-collar {
    position: absolute;
    bottom: 4.25rem;
    left: 50%;
    z-index: 1;
    width: 1.35rem;
    height: 1.45rem;
    border: .15rem solid #c28f2e;
    border-radius: 48% 48% 32% 32%;
    background:
        radial-gradient(circle at 38% 28%, #fff0ba 0 10%, transparent 12%),
        linear-gradient(90deg, #835519, #edc96c 48%, #794b15);
    box-shadow: 0 .3rem .5rem rgba(0, 0, 0, .34);
    transform: translateX(-50%);
}

.index-welcome-actions {
    margin-top: 2rem;
}

.button-hero-outline {
    color: white;
    border-color: rgba(255, 255, 255, .55);
    background: rgba(255, 255, 255, .05);
    box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .22), 0 5px 11px rgba(0, 0, 0, .12);
}

.button-hero-outline:hover,
.button-hero-outline:focus-visible {
    color: var(--ink-deep);
    border-color: var(--gold);
    background: var(--gold);
}

.index-friends-section {
    padding: clamp(4rem, 8vw, 7.5rem) 0;
    background:
        radial-gradient(circle at 88% 9%, rgba(233, 183, 90, .19), transparent 25rem),
        #f8f3e8;
}

.index-friends-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(24rem, 1.1fr);
    align-items: center;
    gap: clamp(2.5rem, 7vw, 6.5rem);
}

.index-story-copy h1,
.index-story-copy h2,
.index-joining-band h2,
.index-information-heading h2,
.index-closing-inner h2 {
    color: var(--ink-deep);
    font-size: clamp(2.6rem, 5vw, 4.6rem);
    line-height: 1.04;
    letter-spacing: -.035em;
}

.index-story-copy p:not(.eyebrow),
.index-joining-band p:not(.eyebrow),
.index-information-heading p:not(.eyebrow) {
    color: #4e625c;
    font-size: clamp(1rem, 1.5vw, 1.13rem);
    line-height: 1.75;
}

.index-circle-card {
    position: relative;
    width: min(35rem, 100%);
    margin-inline: auto;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid rgba(23, 59, 54, .14);
    border-radius: 1.6rem;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 2rem 4.5rem rgba(13, 42, 39, .17);
    transform: rotate(1.4deg);
}

.index-circle-card h2,
.index-circle-card h3 {
    margin: .1rem 0 0;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.55rem, 3vw, 2.15rem);
    font-weight: 500;
}

.index-circle-card .landing-circle-wheel .circle-wheel {
    max-width: 25rem;
}

.index-circle-card .privacy-whisper {
    margin: .8rem 0 0;
    color: var(--muted);
    font-size: .73rem;
    text-align: center;
}

.index-joining-band {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: clamp(1.5rem, 4vw, 3rem);
    max-width: 68rem;
    margin-top: clamp(4rem, 8vw, 7rem);
    padding-top: clamp(3rem, 6vw, 5rem);
    border-top: 1px solid rgba(23, 59, 54, .17);
}

.index-joining-art {
    display: block;
    width: clamp(12rem, 23vw, 18rem);
    height: auto;
    align-self: center;
    border-radius: 1.75rem;
    box-shadow: 0 1.25rem 3rem rgba(13, 42, 39, .11);
}

.public-privacy-section {
    overflow: hidden;
    background: #f7f1e5;
}

.public-privacy-shell {
    display: flow-root;
}

.public-privacy-art {
    float: right;
    width: min(35vw, 25rem);
    height: auto;
    margin: -1rem 0 1.5rem clamp(2rem, 5vw, 4rem);
    border-radius: 48% 48% 1.6rem 1.6rem;
    box-shadow: 0 1.6rem 3.8rem rgba(13, 42, 39, .13);
    shape-outside: margin-box;
}

.public-privacy-shell > p {
    max-width: 53rem;
    color: #4e625c;
    font-size: clamp(1rem, 1.5vw, 1.13rem);
    line-height: 1.75;
}

.public-privacy-shell .public-privacy-source-note {
    margin: 2rem 0;
    padding: 1rem 1.15rem;
    color: #3f544e;
    border-left: .28rem solid var(--gold);
    background: rgba(255, 255, 255, .62);
    font-size: .85rem;
}

.public-privacy-source-note a {
    color: var(--coral-dark);
    font-weight: 800;
}

.index-information-heading > p > strong {
    color: var(--ink-deep);
    font-weight: 800;
}

.index-information-section {
    padding: clamp(4rem, 8vw, 7.5rem) 0;
    background: var(--paper);
}

.index-information-heading {
    max-width: 55rem;
    margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.index-information-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.index-information-grid article {
    position: relative;
    display: flex;
    min-height: 23rem;
    flex-direction: column;
    padding: clamp(1.5rem, 3vw, 2.25rem);
    border: 1px solid rgba(23, 59, 54, .14);
    border-radius: 1.25rem;
    background: white;
    box-shadow: 0 1rem 2.7rem rgba(13, 42, 39, .07);
}

.index-information-grid article:nth-child(2) {
    border-top: .42rem solid var(--coral);
}

.index-information-grid h3 {
    margin: 1.2rem 0 .9rem;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    font-weight: 500;
    line-height: 1.12;
}

.index-information-grid p {
    color: var(--muted);
    line-height: 1.68;
}

.index-information-grid .text-link {
    margin-top: auto;
}

.index-information-number {
    display: grid;
    width: 2.8rem;
    height: 2.8rem;
    place-items: center;
    color: var(--ink-deep);
    border-radius: 50%;
    background: var(--gold);
    font-weight: 950;
}

.index-source-introduction {
    margin: 2rem 0 .9rem;
    color: var(--muted);
    font-size: .85rem;
}

.index-source-introduction strong {
    margin-right: .35rem;
    color: var(--ink-deep);
}

.index-official-sources {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.index-official-sources a {
    display: block;
    min-height: 6.5rem;
    padding: 1.1rem 1.2rem;
    color: var(--ink-deep);
    border: 1px solid rgba(23, 59, 54, .14);
    border-top: .32rem solid var(--gold);
    border-radius: .9rem;
    background: #fff8e8;
    text-decoration: none;
}

.index-official-sources a:nth-child(2) {
    border-top-color: var(--coral);
    background: #fff1ec;
}

.index-official-sources a:nth-child(3) {
    border-top-color: var(--teal);
    background: #edf3ef;
}

.index-official-sources a:hover,
.index-official-sources a:focus-visible {
    box-shadow: 0 .7rem 1.5rem rgba(13, 42, 39, .1);
    transform: translateY(-2px);
}

.index-official-sources span,
.index-official-sources strong {
    display: block;
}

.index-official-sources span {
    margin-bottom: .35rem;
    color: var(--muted);
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.index-official-sources strong {
    font-size: .82rem;
    line-height: 1.35;
}

.index-closing-section {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
    color: white;
    background:
        radial-gradient(circle at 88% 20%, rgba(233, 183, 90, .2), transparent 23rem),
        var(--teal);
}

.index-closing-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: clamp(1.5rem, 3.5vw, 3.5rem);
}

.index-closing-inner h2 {
    max-width: 48rem;
    margin-bottom: 1rem;
    color: white;
}

.index-closing-inner p:not(.eyebrow) {
    max-width: 48rem;
    margin: 0;
    color: #d9e7e3;
    font-size: 1.05rem;
    line-height: 1.7;
}

.index-closing-inner p em {
    color: var(--gold);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.12em;
    white-space: nowrap;
}

.index-closing-ann {
    display: block;
    width: clamp(6.5rem, 10vw, 9rem);
    height: auto;
    filter: drop-shadow(0 1rem 1.4rem rgba(0, 0, 0, .22));
}

.index-closing-actions {
    display: grid;
    min-width: 13rem;
    gap: .75rem;
}

@media (max-width: 980px) {
    .index-welcome-copy {
        padding-right: 0;
    }

    .index-welcome-copy > .eyebrow {
        padding-right: 0;
    }

    .index-election-countdown {
        position: static;
        width: 100%;
        min-height: 0;
        grid-template-columns: auto minmax(0, 1fr) auto;
        align-items: center;
        justify-items: start;
        gap: .75rem;
        margin-bottom: 2.3rem;
        padding: .85rem 1rem;
        transform: none;
    }

    .index-election-countdown strong {
        font-size: 2.2rem;
    }

    .index-election-countdown span {
        margin-top: 0;
        text-align: left;
    }

    .index-election-countdown small {
        margin-top: 0;
        white-space: nowrap;
    }

    .index-election-pendulum {
        display: none;
    }

    .index-friends-grid {
        grid-template-columns: 1fr;
    }

    .index-story-copy {
        max-width: 48rem;
    }

    .index-circle-card {
        width: min(39rem, 100%);
        transform: rotate(.7deg);
    }

    .public-privacy-art {
        width: min(40vw, 22rem);
    }

    .index-information-grid {
        grid-template-columns: 1fr;
    }

    .index-information-grid article {
        min-height: 0;
    }

    .index-information-grid .text-link {
        margin-top: 1rem;
    }

    .index-official-sources {
        grid-template-columns: 1fr;
    }

    .index-closing-inner {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .index-closing-actions {
        grid-column: 1 / -1;
        display: flex;
        flex-wrap: wrap;
    }
}

@media (max-width: 720px) {
    .index-welcome-hero {
        padding-top: 2.5rem;
    }

    .index-welcome-copy > .eyebrow {
        padding-right: 0;
    }

    .index-ann-greeting {
        width: 100%;
        margin: 0;
    }

    /* The general Circle page becomes a card grid at this breakpoint. The
       Index preview is intentionally still a Circle, so restore its radial
       positioning after the shared small-screen rule has run. */
    .index-circle-card .landing-circle-wheel .circle-wheel {
        display: block;
        aspect-ratio: 1;
        background:
            radial-gradient(circle at center, transparent 0 39%, rgba(34, 80, 72, .24) 39.3% 39.8%, transparent 40.1%),
            repeating-conic-gradient(from -18deg, rgba(34, 80, 72, .17) 0deg .8deg, transparent .8deg 36deg);
    }

    .index-circle-card .landing-circle-wheel .circle-leader,
    .index-circle-card .landing-circle-wheel .circle-seat {
        position: absolute;
        transform: translate(-50%, -50%);
    }

    .index-circle-card .landing-circle-wheel .circle-leader {
        top: 50%;
        left: 50%;
    }

    .index-circle-card .landing-circle-wheel .circle-seat-position-1 { top: 8%; left: 50%; }
    .index-circle-card .landing-circle-wheel .circle-seat-position-2 { top: 18%; left: 76%; }
    .index-circle-card .landing-circle-wheel .circle-seat-position-3 { top: 39%; left: 92%; }
    .index-circle-card .landing-circle-wheel .circle-seat-position-4 { top: 65%; left: 92%; }
    .index-circle-card .landing-circle-wheel .circle-seat-position-5 { top: 86%; left: 76%; }
    .index-circle-card .landing-circle-wheel .circle-seat-position-6 { top: 94%; left: 50%; }
    .index-circle-card .landing-circle-wheel .circle-seat-position-7 { top: 86%; left: 24%; }
    .index-circle-card .landing-circle-wheel .circle-seat-position-8 { top: 65%; left: 8%; }
    .index-circle-card .landing-circle-wheel .circle-seat-position-9 { top: 39%; left: 8%; }
    .index-circle-card .landing-circle-wheel .circle-seat-position-10 { top: 18%; left: 24%; }

    .index-joining-band {
        grid-template-columns: 1fr;
    }

    .index-joining-art {
        width: min(100%, 22rem);
        justify-self: center;
    }

    .public-privacy-art {
        float: none;
        display: block;
        width: min(100%, 22rem);
        margin: 0 auto 2.5rem;
    }

    .public-privacy-shell > p {
        max-width: none;
    }

    .index-closing-inner {
        grid-template-columns: 1fr;
    }

    .index-closing-ann {
        width: 8rem;
        justify-self: center;
        margin: -1rem 0;
    }

    .index-closing-actions {
        grid-column: auto;
        display: flex;
        flex-wrap: wrap;
    }
}

@media (max-width: 470px) {
    .index-welcome-copy h1 {
        font-size: 3.65rem;
    }

    .index-election-countdown {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .index-election-countdown small {
        grid-column: 2;
    }

    .index-ann-greeting {
        width: 100%;
    }

    .index-welcome-actions,
    .index-welcome-actions .button,
    .index-closing-actions,
    .index-closing-actions .button {
        width: 100%;
    }

    .index-circle-card {
        padding: 1rem .8rem 1.1rem;
        transform: none;
    }

    .index-circle-card .preview-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .2rem;
    }

    .index-ann-introduction {
        grid-template-columns: 6.6rem minmax(0, 1fr);
        align-items: start;
        gap: .8rem;
    }

    .index-dropcap::first-letter {
        font-size: 2.85em;
    }
}

/* Registration workflow ------------------------------------------------- */

.registration-checklist-page .visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    clip-path: inset(50%) !important;
}

.registration-workflow-hero {
    padding: clamp(2.25rem, 4vw, 3.5rem) 0 clamp(1.25rem, 2vw, 1.75rem);
    background:
        radial-gradient(circle at 84% 8%, rgba(233, 183, 90, .22), transparent 30%),
        linear-gradient(180deg, #fffaf1 0%, #f3f6f1 100%);
}

.registration-workflow-hero .journey-hero-grid {
    align-items: start;
    row-gap: clamp(15px, 2.5vw, 24px);
}

.registration-workflow-subhead {
    max-width: 54rem !important;
    color: var(--ink) !important;
    font-size: clamp(1.2rem, 2vw, 1.4rem) !important;
    line-height: 1.55;
}

.account-checklist-step-prompt {
    margin: .8rem 0 0;
    color: var(--coral-dark) !important;
    font-size: clamp(1.08rem, 1.7vw, 1.3rem);
    font-weight: 900;
}

.registration-identity-panel {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid rgba(23, 59, 54, .17);
    border-radius: 17px;
    background: rgba(255, 255, 255, .74);
    box-shadow: 0 12px 30px rgba(13, 42, 39, .07);
}

.registration-identity-panel > div {
    min-width: 0;
    padding: 14px 19px;
}

.registration-identity-panel > div + div {
    border-left: 1px solid rgba(23, 59, 54, .13);
}

.registration-identity-panel p {
    margin: 0 0 5px;
}

.registration-identity-panel strong,
.registration-identity-panel address,
.registration-identity-panel address span,
.registration-identity-panel > div > span {
    display: block;
}

.registration-identity-panel strong,
.registration-identity-panel address {
    color: var(--ink-deep);
    font-size: 1rem;
    font-style: normal;
    font-weight: 850;
    line-height: 1.42;
}

.registration-identity-panel > div > span {
    margin-top: 5px;
    color: var(--muted);
    font-size: .78rem;
}

.registration-identity-panel a {
    display: inline-block;
    margin-top: 8px;
    font-size: .82rem;
    font-weight: 900;
}

.registration-workflow-content {
    padding-top: clamp(1.5rem, 3vw, 2.5rem);
    background:
        radial-gradient(circle at 74% 18%, rgba(202, 226, 216, .36), transparent 31%),
        linear-gradient(180deg, #f4f7f3 0%, #fffdf8 100%);
}

.registration-workflow-content > .page-shell > .message-area {
    margin: 0 0 22px;
}

.registration-fast-path {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(20px, 4vw, 44px);
    margin-bottom: 28px;
    padding: clamp(22px, 4vw, 34px);
    border: 1px solid rgba(22, 89, 79, .2);
    border-left: 7px solid var(--teal);
    border-radius: 20px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 18px 44px rgba(13, 42, 39, .09);
}

.registration-fast-path h2,
.registration-fast-path p {
    margin-bottom: 0;
}

.registration-fast-path h2 {
    margin-top: 4px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 3vw, 2.65rem);
    font-weight: 500;
}

.registration-fast-path h2 + p {
    max-width: 720px;
    margin-top: 8px;
    color: var(--muted);
}

.registration-fast-path-actions,
.registration-current-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.registration-fast-path-actions form,
.registration-current-actions form {
    margin: 0;
}

.registration-workflow-grid {
    display: grid;
    grid-template-columns: minmax(0, 680px) minmax(290px, 380px);
    justify-content: center;
    align-items: start;
    gap: clamp(24px, 4vw, 48px);
}

.registration-task-tree,
.registration-phase,
.registration-task-list {
    min-width: 0;
}

.registration-abc {
    margin: 0 0 15px 60px;
    color: var(--coral-dark);
    font-size: .75rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.registration-abc strong {
    color: var(--ink-deep);
}

.registration-phase + .registration-phase {
    margin-top: 28px;
}

.registration-phase-header {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    margin-bottom: 12px;
}

.registration-phase-header > span {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 50%;
    color: white;
    background: var(--teal);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
}

.registration-phase-header h2,
.registration-phase-header p {
    margin: 0;
}

.registration-phase-header h2 {
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.65rem;
    font-weight: 500;
}

.registration-phase-header p {
    margin-top: 2px;
    color: var(--muted);
    font-size: .9rem;
}

.registration-task-list {
    display: grid;
    gap: 10px;
    margin: 0 0 0 22px;
    padding: 0 0 0 36px;
    border-left: 2px solid rgba(22, 89, 79, .18);
    list-style: none;
}

.registration-task {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-height: 94px;
    padding: 19px 20px;
    border: 1px solid rgba(23, 59, 54, .14);
    border-radius: 15px;
    background: rgba(255, 255, 255, .84);
    box-shadow: 0 8px 22px rgba(13, 42, 39, .055);
    scroll-margin-top: 105px;
}

.registration-task.is-current {
    padding: 23px 24px;
    border: 2px solid rgba(22, 89, 79, .66);
    background: white;
    box-shadow: 0 16px 34px rgba(13, 42, 39, .12);
}

.registration-task:target {
    outline: 4px solid rgba(233, 183, 90, .42);
    outline-offset: 4px;
}

.registration-task.is-complete {
    background: #eef6f1;
}

.registration-task.is-locked {
    color: #707874;
    background: rgba(243, 244, 241, .74);
}

.registration-task-marker {
    position: absolute;
    top: 22px;
    left: -55px;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 3px solid #f4f7f3;
    border-radius: 50%;
    color: var(--ink-deep);
    background: #e5e8e4;
    font-size: .86rem;
    font-weight: 900;
}

.account-checklist-task-marker {
    width: 52px;
    height: 32px;
    border-radius: 999px;
    font-size: .68rem;
    letter-spacing: .01em;
    white-space: nowrap;
}

.registration-task.is-current .registration-task-marker {
    color: white;
    background: var(--coral-dark);
}

.registration-task.is-complete .registration-task-marker {
    color: white;
    background: var(--teal);
}

.registration-task-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.registration-next-task {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 7px;
    padding: 7px 10px;
    border-radius: 999px;
    color: white;
    background: var(--coral-dark);
    box-shadow: 0 5px 12px rgba(161, 68, 48, .2);
    font-size: .69rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.registration-task-meta {
    margin: 0 0 3px;
    color: var(--coral-dark);
    font-size: .67rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.registration-task h3 {
    margin: 0;
    color: var(--ink-deep);
    font-size: 1.17rem;
}

.registration-task-body > p:not(.registration-task-meta) {
    margin: 7px 0 0;
    font-size: .92rem;
}

.registration-complete-note {
    color: var(--teal);
}

.registration-locked-note {
    color: #818884;
    font-size: .8rem !important;
    font-weight: 800;
}

.registration-undo-button {
    display: grid;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(161, 68, 48, .28);
    border-radius: 50%;
    color: var(--coral-dark);
    background: white;
    cursor: pointer;
}

.registration-undo-button:hover,
.registration-undo-button:focus-visible {
    color: white;
    background: var(--coral-dark);
}

.registration-undo-button svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.registration-current-actions {
    display: block;
    margin-top: 17px;
    padding-top: 15px;
    border-top: 1px solid var(--line);
}

.registration-current-actions > .button,
.registration-current-actions > form,
.registration-current-actions > .registration-method-form {
    margin-right: 10px;
    margin-bottom: 8px;
}

.registration-record-check {
    display: grid;
    justify-items: start;
    width: 100%;
    gap: 15px;
}

.registration-decision-question {
    margin: 2px 0 0 !important;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.28rem, 2.2vw, 1.62rem) !important;
    font-weight: 600;
}

.registration-decision-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.registration-decision-actions form {
    margin: 0;
}

.registration-choice {
    min-width: 92px;
    padding: 10px 22px;
    border: 2px solid transparent;
    border-radius: 999px;
    color: white;
    box-shadow: 0 7px 16px rgba(13, 42, 39, .14);
    cursor: pointer;
    font-size: .82rem;
    font-weight: 950;
    letter-spacing: .08em;
}

.registration-choice-yes {
    border-color: #23734d;
    background: #2d865c;
}

.registration-choice-yes:hover,
.registration-choice-yes:focus-visible {
    background: #1f6a45;
}

.registration-choice-help {
    border-color: #a94331;
    background: #b94b37;
}

.registration-choice-help:hover,
.registration-choice-help:focus-visible,
.registration-choice-help[aria-expanded="true"] {
    background: #8f3425;
}

.registration-inline-help {
    margin-top: 19px;
    padding: clamp(18px, 3vw, 25px);
    border: 2px solid rgba(169, 67, 49, .27);
    border-radius: 14px;
    background: #fff8ea;
}

.registration-inline-help[hidden] {
    display: none;
}

.registration-inline-help h4 {
    margin: 0;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.55rem;
}

.registration-inline-help > details {
    padding: 13px 0;
    border-top: 1px solid rgba(97, 73, 29, .19);
}

.registration-inline-help > details > summary {
    color: var(--ink-deep);
    cursor: pointer;
    font-weight: 900;
}

.registration-inline-help > details p {
    margin: 9px 0 0;
}

.registration-needs-update {
    margin: 15px 0;
    padding: 15px;
    border-radius: 11px;
    background: white;
}

.registration-needs-update p,
.registration-needs-update form {
    margin: 0;
}

.registration-needs-update form {
    margin-top: 10px;
}

.registration-help-links {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: 11px;
}

.registration-help-links a {
    color: var(--teal);
    font-size: .88rem;
    font-weight: 900;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

.registration-method-form {
    display: grid;
    width: 100%;
    gap: 14px;
}

.registration-method-form fieldset {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 14px;
    margin: 0;
    padding: 0;
    border: 0;
}

.registration-method-form legend {
    grid-column: 1 / -1;
    margin-bottom: 8px;
    font-weight: 900;
}

.registration-method-form label {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 7px 10px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fffdf8;
    font-size: .88rem;
    font-weight: 800;
}

.registration-method-form input {
    width: 17px;
    height: 17px;
    margin: 0;
    accent-color: var(--teal);
}

.registration-method-form .button {
    justify-self: start;
}

.registration-help-rail {
    position: sticky;
    top: 92px;
    display: grid;
    gap: 13px;
}

.registration-help-card {
    padding: 22px;
    border: 1px solid rgba(23, 59, 54, .14);
    border-radius: 16px;
    background: rgba(255, 253, 248, .95);
    box-shadow: 0 11px 28px rgba(13, 42, 39, .075);
}

.registration-help-card h2 {
    margin: 4px 0 9px;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.5rem;
    font-weight: 500;
}

.registration-help-card p {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: .88rem;
}

.registration-help-card a {
    display: inline-block;
    margin-top: 10px;
    overflow-wrap: anywhere;
    font-weight: 900;
}

.registration-help-current {
    color: white;
    border-color: var(--teal);
    background: var(--teal);
}

.registration-help-current .eyebrow,
.registration-help-current h2,
.registration-help-current p {
    color: white;
}

.registration-trouble-intro {
    margin: 12px 0 14px !important;
}

.registration-deadline-warning,
.registration-local-warning {
    padding: 11px 12px;
    border-radius: 9px;
}

.registration-deadline-warning {
    color: #722719 !important;
    background: #fff0eb;
}

.registration-local-warning {
    color: #61491d !important;
    background: #fff4d9;
}

.registration-source-date {
    font-size: .73rem !important;
}

.registration-help-fallback {
    background: #eef5f1;
}

.registration-history {
    max-width: 1110px;
    margin: 38px auto 0;
    padding: 18px 22px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: rgba(255, 255, 255, .76);
}

.registration-history summary {
    cursor: pointer;
    color: var(--ink-deep);
    font-weight: 900;
}

.registration-history ol {
    display: grid;
    gap: 8px;
    margin: 16px 0 0;
    padding-left: 22px;
}

.registration-history li span {
    margin-left: 8px;
    color: var(--muted);
    font-size: .8rem;
}

.registration-history li p {
    margin: 2px 0 0;
    color: var(--muted);
    font-size: .84rem;
}

.registration-finish-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1110px;
    gap: clamp(40px, 10vw, 140px);
}

.registration-finish-actions form {
    margin: 0;
}

.registration-reset-button {
    border-color: rgba(161, 68, 48, .55);
    color: var(--coral-dark);
    background: white;
}

.registration-reset-button:hover,
.registration-reset-button:focus-visible {
    color: white;
    background: var(--coral-dark);
}

@media (max-width: 980px) {
    .registration-workflow-grid {
        grid-template-columns: 1fr;
    }

    .registration-help-rail {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .registration-identity-panel {
        grid-template-columns: 1fr 1fr;
    }

    .registration-identity-panel > div:last-child {
        grid-column: 1 / -1;
        border-top: 1px solid rgba(23, 59, 54, .13);
        border-left: 0;
    }
}

@media (max-width: 700px) {
    .registration-fast-path {
        grid-template-columns: 1fr;
    }

    .registration-fast-path-actions,
    .registration-current-actions,
    .registration-fast-path-actions .button,
    .registration-current-actions .button,
    .registration-fast-path > .button {
        width: 100%;
    }

    .registration-fast-path-actions form,
    .registration-current-actions form {
        width: 100%;
    }

    .registration-help-rail,
    .registration-identity-panel,
    .registration-method-form fieldset {
        grid-template-columns: 1fr;
    }

    .registration-identity-panel > div + div,
    .registration-identity-panel > div:last-child {
        grid-column: auto;
        border-top: 1px solid rgba(23, 59, 54, .13);
        border-left: 0;
    }

    .registration-task-heading {
        flex-wrap: wrap;
    }

    .registration-next-task {
        order: -1;
    }

    .registration-task-list {
        margin-left: 17px;
        padding-left: 27px;
    }

    .registration-task-marker {
        left: -46px;
    }

    .registration-finish-actions {
        align-items: stretch;
        flex-direction: column-reverse;
        gap: 18px;
    }

    .registration-finish-actions form,
    .registration-finish-actions .button {
        width: 100%;
    }
}

/* Account benefits visual tour ----------------------------------------- */
.account-benefits-page {
    background: #f8f8f3;
}

.account-benefits-page figure {
    margin: 0;
}

.account-benefits-page figure img {
    display: block;
    max-width: 100%;
    height: auto;
}

.account-benefits-page figcaption {
    color: var(--muted);
    font-size: .82rem;
    font-style: italic;
    line-height: 1.45;
}

.account-tour-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(3.2rem, 7vw, 6.5rem) 0 clamp(2.8rem, 6vw, 5.5rem);
    background:
        radial-gradient(circle at 8% 18%, rgba(233, 183, 90, .22), transparent 24rem),
        radial-gradient(circle at 94% 82%, rgba(223, 109, 80, .12), transparent 26rem),
        linear-gradient(135deg, #fffaf0 0%, #f6f4ea 48%, #eaf3ee 100%);
}

.account-tour-hero::after {
    position: absolute;
    z-index: -1;
    right: -7rem;
    bottom: -10rem;
    width: 30rem;
    height: 30rem;
    border: 1px solid rgba(34, 80, 72, .12);
    border-radius: 50%;
    box-shadow:
        0 0 0 3rem rgba(255, 255, 255, .2),
        0 0 0 6rem rgba(34, 80, 72, .035);
    content: "";
}

.account-tour-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(22rem, .98fr);
    align-items: center;
    gap: clamp(2rem, 5vw, 5.5rem);
}

.account-tour-hero-copy h1 {
    max-width: 11ch;
    margin: .55rem 0 1.25rem;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 6.2vw, 5.75rem);
    font-weight: 500;
    line-height: .98;
}

.account-tour-lede {
    max-width: 39rem;
    color: #36544f;
    font-size: clamp(1.08rem, 2vw, 1.3rem);
    line-height: 1.65;
}

.account-tour-promises {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin: 1.7rem 0 2rem;
}

.account-tour-promises span {
    padding: .5rem .75rem;
    border: 1px solid rgba(34, 80, 72, .16);
    border-radius: 999px;
    color: var(--teal);
    background: rgba(255, 255, 255, .72);
    font-size: .78rem;
    font-weight: 850;
}

.account-tour-actions,
.account-tour-finish-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.account-tour-text-link {
    color: var(--teal);
    font-weight: 850;
    text-underline-offset: .22em;
}

.account-tour-hero-art {
    position: relative;
    padding: .7rem;
    border: 1px solid rgba(23, 59, 54, .12);
    border-radius: 1.6rem;
    background: rgba(255, 253, 248, .82);
    box-shadow: 0 2.5rem 5rem rgba(13, 42, 39, .15);
    transform: rotate(.7deg);
}

.account-tour-hero-art img {
    border-radius: 1.05rem;
}

.account-tour-hero-art figcaption {
    padding: .7rem .55rem .2rem;
    text-align: right;
}

.account-tour-main > section {
    padding: clamp(3.8rem, 8vw, 7rem) 0;
}

.account-tour-section-heading {
    max-width: 52rem;
    margin-bottom: clamp(2rem, 5vw, 3.5rem);
}

.account-tour-section-heading-centered {
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.account-tour-section-heading h2,
.account-tour-feature-copy h2,
.account-tour-circle-copy h2,
.account-tour-finish h2 {
    margin: .55rem 0 1rem;
    color: var(--ink-deep);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.4rem, 4.8vw, 4.4rem);
    font-weight: 500;
    line-height: 1.02;
}

.account-tour-section-heading > p:not(.eyebrow, .account-tour-number),
.account-tour-feature-copy > p:not(.eyebrow, .account-tour-number),
.account-tour-circle-copy > p:not(.eyebrow, .account-tour-number) {
    color: var(--muted);
    font-size: 1.06rem;
    line-height: 1.75;
}

.account-tour-number {
    margin-bottom: .45rem;
    color: var(--coral-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
}

.account-tour-doorways {
    border-top: 1px solid rgba(23, 59, 54, .08);
    border-bottom: 1px solid rgba(23, 59, 54, .1);
    background: var(--paper);
}

.account-tour-doorways .account-tour-section-heading {
    margin-bottom: 1.5rem;
}

.account-tour-doorways .account-tour-section-heading h2 {
    font-size: clamp(2rem, 4vw, 3.25rem);
}

.account-tour-menu-shot {
    width: min(100%, 48rem);
    margin: 0 auto !important;
    padding: .9rem 1.25rem;
    border: 1px solid rgba(23, 59, 54, .12);
    border-radius: 1rem;
    background: white;
    box-shadow: var(--small-shadow);
}

.account-tour-menu-shot img {
    width: 100%;
}

.account-tour-dashboard {
    background:
        radial-gradient(circle at 8% 88%, rgba(233, 183, 90, .12), transparent 24rem),
        #eef5f1;
}

.account-tour-feature-grid {
    display: grid;
    grid-template-columns: minmax(16rem, .72fr) minmax(0, 1.55fr);
    align-items: center;
    gap: clamp(2.5rem, 6vw, 5.5rem);
}

.account-tour-checks,
.account-tour-circle-points {
    display: grid;
    gap: .75rem;
    padding: 0;
    margin: 1.5rem 0 0;
    list-style: none;
}

.account-tour-checks li,
.account-tour-circle-points li {
    position: relative;
    padding-left: 1.7rem;
    font-weight: 750;
}

.account-tour-checks li::before,
.account-tour-circle-points li::before {
    position: absolute;
    top: .18rem;
    left: 0;
    display: grid;
    width: 1.15rem;
    height: 1.15rem;
    place-items: center;
    border-radius: 50%;
    color: white;
    background: #4d9973;
    content: "\2713";
    font-size: .72rem;
    font-weight: 900;
}

.account-tour-browser-frame {
    overflow: hidden;
    border: 1px solid rgba(23, 59, 54, .13);
    border-radius: 1.2rem;
    background: white;
    box-shadow: 0 1.7rem 3.8rem rgba(13, 42, 39, .13);
}

.account-tour-browser-bar {
    display: flex;
    gap: .38rem;
    padding: .65rem .85rem;
    border-bottom: 1px solid #e2e6e2;
    background: #f4f4ef;
}

.account-tour-browser-bar i {
    display: block;
    width: .58rem;
    height: .58rem;
    border-radius: 50%;
    background: #c8d2cd;
}

.account-tour-browser-bar i:first-child {
    background: var(--coral);
}

.account-tour-browser-bar i:nth-child(2) {
    background: var(--gold);
}

.account-tour-browser-bar i:last-child {
    background: #78a993;
}

.account-tour-browser-frame > img {
    width: 100%;
}

.account-tour-browser-frame figcaption {
    padding: .75rem 1rem .9rem;
    border-top: 1px solid #edf0ed;
    background: white;
}

.account-tour-local {
    background:
        radial-gradient(circle at 94% 20%, rgba(223, 109, 80, .09), transparent 26rem),
        var(--cream);
}

.account-tour-location-shot {
    overflow: hidden;
    margin-bottom: clamp(2rem, 5vw, 3.5rem) !important;
    padding: .65rem;
    border: 1px solid rgba(23, 59, 54, .14);
    border-radius: 1.15rem;
    background: var(--paper);
    box-shadow: var(--small-shadow);
}

.account-tour-location-shot img {
    width: 100%;
    border-radius: .65rem;
}

.account-tour-location-shot figcaption {
    padding: .75rem .75rem .25rem;
}

.account-tour-local-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(16rem, .65fr);
    align-items: center;
    gap: clamp(1.5rem, 4vw, 3rem);
}

.account-tour-local-note {
    padding: clamp(1.7rem, 4vw, 2.7rem);
    border-radius: 1.2rem;
    color: #e6efeb;
    background:
        radial-gradient(circle at 100% 0, rgba(233, 183, 90, .18), transparent 16rem),
        var(--teal);
    box-shadow: var(--shadow);
}

.account-tour-local-note h3,
.account-tour-plan-copy h3 {
    margin: .55rem 0 1rem;
    color: white;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3.3vw, 3rem);
    font-weight: 500;
}

.account-tour-local-note p:not(.eyebrow) {
    color: #d9e7e3;
    line-height: 1.75;
}

.account-tour-local-note p:last-child {
    margin-bottom: 0;
}

.account-tour-guidance {
    background: #f8f8f3;
}

.account-tour-checklist-shot {
    margin-bottom: clamp(2.5rem, 6vw, 5rem) !important;
}

.account-tour-plan-grid {
    display: grid;
    grid-template-columns: minmax(17rem, .72fr) minmax(20rem, 1.28fr);
    align-items: center;
    gap: clamp(2rem, 6vw, 5rem);
    overflow: hidden;
    padding: clamp(1.5rem, 4vw, 3.5rem);
    border-radius: 1.4rem;
    background:
        radial-gradient(circle at 92% 8%, rgba(233, 183, 90, .19), transparent 22rem),
        var(--ink-deep);
    box-shadow: var(--shadow);
}

.account-tour-plan-copy {
    color: #d9e7e3;
}

.account-tour-plan-copy > p:not(.eyebrow) {
    color: #d9e7e3;
    line-height: 1.75;
}

.account-tour-plan-whisper {
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, .16);
    font-weight: 800;
}

.account-tour-plan-shot {
    width: min(100%, 32rem);
    justify-self: center;
    overflow: hidden;
    padding: .65rem;
    border-radius: .9rem;
    background: white;
    box-shadow: 0 2rem 4rem rgba(0, 0, 0, .25);
    transform: rotate(1deg);
}

.account-tour-plan-shot img {
    width: 100%;
}

.account-tour-plan-shot figcaption {
    padding: .65rem .45rem .15rem;
}

.account-tour-circle {
    color: #dfece7;
    background:
        radial-gradient(circle at 12% 8%, rgba(233, 183, 90, .17), transparent 25rem),
        linear-gradient(135deg, #173b36, #0d2a27);
}

.account-tour-circle-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, .72fr);
    align-items: center;
    gap: clamp(2.5rem, 7vw, 7rem);
}

.account-tour-circle-copy h2 {
    color: white;
}

.account-tour-circle-copy > p:not(.eyebrow, .account-tour-number) {
    color: #d9e7e3;
}

.account-tour-circle-copy .account-tour-number {
    color: var(--gold);
}

.account-tour-circle-points {
    margin-bottom: 2rem;
}

.account-tour-circle-points li::before {
    color: var(--ink-deep);
    background: var(--gold);
}

.account-tour-circle-shot {
    width: min(100%, 30rem);
    justify-self: center;
    padding: .8rem;
    border-radius: 1.25rem;
    background: white;
    box-shadow: 0 2.4rem 5rem rgba(0, 0, 0, .3);
    transform: rotate(-1deg);
}

.account-tour-circle-shot img {
    width: 100%;
}

.account-tour-circle-shot figcaption {
    padding: .7rem .55rem .1rem;
}

.account-tour-finish {
    background:
        radial-gradient(circle at 90% 10%, rgba(233, 183, 90, .23), transparent 22rem),
        var(--teal);
}

.account-tour-finish-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2.5rem;
}

.account-tour-finish h2 {
    margin-top: .45rem;
    color: var(--gold);
    font-size: clamp(2.2rem, 4vw, 3.6rem);
}

.account-tour-finish p:not(.eyebrow) {
    max-width: 43rem;
    margin-bottom: 0;
    color: #d9e7e3;
    font-size: 1.05rem;
}

@media (max-width: 980px) {
    .account-tour-hero-grid,
    .account-tour-feature-grid,
    .account-tour-local-grid,
    .account-tour-plan-grid,
    .account-tour-circle-grid {
        grid-template-columns: 1fr;
    }

    .account-tour-hero-copy h1 {
        max-width: 13ch;
    }

    .account-tour-hero-art {
        width: min(100%, 42rem);
        justify-self: center;
    }

    .account-tour-feature-copy,
    .account-tour-circle-copy {
        max-width: 47rem;
    }

    .account-tour-local-note {
        max-width: 42rem;
    }

    .account-tour-circle-shot {
        justify-self: start;
    }

    .account-tour-finish-inner {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 620px) {
    .account-tour-hero {
        padding-top: 2.6rem;
    }

    .account-tour-hero-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .account-tour-hero-copy h1 {
        font-size: clamp(2.65rem, 13vw, 4rem);
    }

    .account-tour-promises {
        align-items: stretch;
        flex-direction: column;
    }

    .account-tour-promises span {
        width: fit-content;
    }

    .account-tour-actions,
    .account-tour-finish-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .account-tour-actions .button,
    .account-tour-finish-actions .button,
    .account-tour-circle-copy .button {
        width: 100%;
    }

    .account-tour-text-link {
        padding: .4rem;
        text-align: center;
    }

    .account-tour-section-heading h2,
    .account-tour-feature-copy h2,
    .account-tour-circle-copy h2 {
        font-size: clamp(2.15rem, 11vw, 3.2rem);
    }

    .account-tour-menu-shot {
        padding: .65rem;
    }

    .account-tour-browser-frame,
    .account-tour-location-shot,
    .account-tour-plan-grid,
    .account-tour-circle-shot {
        border-radius: .85rem;
    }

    .account-tour-plan-grid {
        grid-template-columns: minmax(0, 1fr);
        padding: 1.2rem;
    }

    .account-tour-plan-shot,
    .account-tour-circle-shot,
    .account-tour-hero-art {
        transform: none;
    }
}

/* First-time setup: one next step, with help available on request. */
.setup-checklist { padding: 2.5rem 0 3rem; background: #f7f8f3; }
.setup-shell { max-width: 880px; }
.setup-heading { margin-bottom: 1.6rem; display: grid; grid-template-columns: minmax(0, 1fr) 13rem; gap: 1rem 2rem; align-items: center; }
.setup-heading > :not(.setup-heading-intro):not(.checklist-gauge) { grid-column: 1 / -1; }
.setup-heading h1 { margin: .4rem 0 .8rem; font-size: clamp(2.3rem, 5vw, 3.6rem); line-height: 1.1; }
.setup-heading .setup-lede { font-size: 1.2rem; line-height: 1.5; }
.setup-progress { display: flex; align-items: center; gap: 1rem; margin: 1.25rem 0; font-size: .95rem; }
.setup-progress progress { width: 130px; height: .6rem; border: 0; border-radius: 1rem; overflow: hidden; background: #d9e4df; accent-color: #24544c; }
.setup-progress progress::-webkit-progress-bar { background: #d9e4df; }
.setup-progress progress::-webkit-progress-value { background: #24544c; }
.setup-progress progress::-moz-progress-bar { background: #24544c; }
.setup-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; }
.manual-account-checklist .account-check-row { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: .65rem; align-items: start; }
.account-check-form { margin: 0; padding: 0; }
.account-step-check { display: block; width: 72px; height: 80px; padding: 0; border: 0; background: transparent; cursor: pointer; border-radius: .3rem; }
.account-step-check[hidden] { display: none; }
.account-check-art { display: block; width: 100%; height: 100%; overflow: visible; }
.account-step-check:focus-visible { outline: 3px solid #a23e27; outline-offset: 2px; }
.account-step-check:hover { background: #e4efdf; }
.account-checklist-complete { padding: 1.1rem 1.3rem; margin-bottom: 1.4rem; background: #35e265; color: #083415; border: 2px solid #129333; border-radius: .7rem; font-size: clamp(1.35rem, 3vw, 1.85rem); font-weight: 850; }
.account-checklist-complete span { margin-right: .5rem; }
.account-check-notice, .manual-account-checklist .account-ready-note, .account-check-guidance { border-left: 4px solid #bc7620; padding: .8rem; background: #fff3d0; color: #47310b; font-weight: 700; }
@media (max-width: 620px) {
    .manual-account-checklist .account-check-row { grid-template-columns: 48px minmax(0, 1fr); gap: .45rem; }
    .account-step-check { width: 48px; height: 64px; }
}
.setup-step { background: #fff; border: 1px solid #b9cbc3; border-radius: 1rem; scroll-margin-top: 7rem; }
.setup-step.is-current { border: 2px solid #285c52; box-shadow: 0 0 0 4px #eee0b8, 0 10px 25px #183a360b; }
.setup-step > summary { display: grid; grid-template-columns: 4.4rem minmax(0, 1fr) auto 1rem; align-items: center; gap: .8rem; padding: 1.1rem 1.3rem; cursor: pointer; list-style: none; border-radius: .85rem; }
.setup-step > summary::-webkit-details-marker { display: none; }
.setup-step > summary::after { content: '+'; font-size: 1.5rem; text-align: center; }
.setup-step[open] > summary::after { content: '−'; }
.setup-step > summary h2 { margin: 0; font: inherit; font-size: 1.15rem; font-weight: 800; line-height: 1.4; }
.setup-step-number { color: #45665d; font-size: .95rem; font-weight: 750; }
.setup-step-state { color: #4c625c; font-size: .8rem; }
.setup-step.is-current .setup-step-state { color: #a23e27; font-weight: 800; }
.setup-step.is-current > summary h2 { font-size: 1.45rem; }
.setup-step.is-complete .setup-step-state { color: #285c52; }
.manual-account-checklist .setup-step-state { max-width: 13rem; font-size: 1rem; line-height: 1.35; font-weight: 800; text-align: right; color: #714500; }
.manual-account-checklist .setup-step.is-complete .setup-step-state { color: #285c52; }
.manual-account-checklist .account-next-action { background: #ffc857; color: #302308; border: 2px solid #805510; border-bottom-width: 4px; box-shadow: 0 3px 0 #80551033; font-weight: 800; text-decoration: none; }
.manual-account-checklist .account-optional-action { background: #fff; color: #34554c; border: 1px solid #82988f; box-shadow: none; font-weight: 650; text-decoration: none; }
.manual-account-checklist .button:focus-visible { outline: 3px solid #173f36; outline-offset: 4px; }
.manual-account-checklist .setup-step-content .account-action-label { margin-bottom: .4rem; color: #714500; font-size: 1rem; font-weight: 800; }
.manual-account-checklist .account-done-note { border-left: 4px solid #35b968; padding: .8rem; background: #eff8f1; color: #285c52; }
.manual-account-checklist button:disabled { flex-wrap: wrap; }
.manual-account-checklist .account-demo-label { display: block; flex-basis: 100%; font-size: .85rem; font-weight: 500; }
.account-preview-explanation { padding: .8rem 1rem; border: 1px dashed #805510; background: #fff3d0; color: #47310b; }
/* The same check-off interaction on the election and Circle checklists. */
.manual-workflow-checklist .account-check-row { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: .65rem; align-items: start; }
.manual-workflow-checklist .checklist-step-state { max-width: 13rem; font-size: 1rem; line-height: 1.35; font-weight: 800; text-align: right; color: #714500; }
.manual-workflow-checklist .checklist-task.is-complete .checklist-step-state { color: #285c52; }
.manual-workflow-checklist .checklist-task.is-complete .checklist-step-label::before { content: none; }
.manual-workflow-checklist :is(.button-primary, .button-voted, .account-next-action, .registration-choice-yes) { background: #ffc857; color: #302308; border: 2px solid #805510; border-bottom-width: 4px; box-shadow: 0 3px 0 #80551033; font-weight: 800; text-decoration: none; }
.manual-workflow-checklist .account-optional-action { background: #fff; color: #34554c; border: 1px solid #82988f; box-shadow: none; font-weight: 650; text-decoration: none; }
.manual-workflow-checklist .button:focus-visible { outline: 3px solid #173f36; outline-offset: 4px; }
.manual-workflow-checklist .account-action-label { color: #714500; font-weight: 800; }
.manual-workflow-checklist .account-ready-note { border-left: 4px solid #bc7620; padding: .8rem; background: #fff3d0; color: #47310b; font-weight: 700; }
.manual-workflow-checklist .account-done-note { border-left: 4px solid #35b968; padding: .8rem; background: #eff8f1; color: #285c52; }
.manual-workflow-checklist .registration-undo-button { width: auto; min-height: 44px; gap: .5rem; padding-inline: .6rem; }
@media (max-width: 620px) {
    .manual-workflow-checklist .account-check-row { grid-template-columns: 48px minmax(0, 1fr); gap: .45rem; }
    .manual-workflow-checklist .account-step-check { width: 48px; height: 64px; }
    .manual-workflow-checklist .checklist-step-state { max-width: 9rem; font-size: .95rem; }
}
.setup-step-content { padding: 0 1.4rem 1.4rem; overflow-wrap: anywhere; }
.setup-step-content > p { margin: .25rem 0 1.15rem; font-size: 1.1rem; line-height: 1.55; }
.setup-step-content .button { min-height: 48px; }
.setup-step-explanation { color: #53645e; }
.setup-help { margin-top: 1rem; border-top: 1px solid #d9e4df; padding-top: .4rem; }
.setup-help > summary { padding: .7rem 0; min-height: 44px; cursor: pointer; color: #24544c; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.setup-help p { font-size: 1rem; line-height: 1.6; margin: .5rem 0; }
.setup-help a, .setup-exits a, .welcome-design-preview a, .invitation-browse-link { text-decoration: underline; text-underline-offset: .2em; }
.setup-step > summary:focus-visible, .setup-help > summary:focus-visible, .setup-exits a:focus-visible { outline: 3px solid #a23e27; outline-offset: 3px; }
.setup-exits { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: 1.6rem; }
.setup-exits a { display: inline-flex; align-items: center; min-height: 44px; }
.setup-reassurance { color: #53645e; font-size: .9rem; margin: .5rem 0 0; }
.setup-invitation-note { border-left: 3px solid #285c52; padding-left: .8rem; }
.welcome-design-preview { margin-block: 1rem; border: 1px dashed #a98b45; border-radius: .6rem; padding: .8rem 1rem; background: #fff8df; font-size: .9rem; }
.welcome-design-preview p { margin: 0 0 .5rem; }
.welcome-design-preview nav { display: flex; gap: .4rem 1rem; flex-wrap: wrap; }
.welcome-design-preview nav a { min-height: 36px; display: inline-flex; align-items: center; }
.invitation-introduction-page .invitation-welcome-hero { padding-block: 2.5rem; }
.invitation-introduction-page .portal-shell { align-items: start; gap: 2rem 3rem; }
.invitation-introduction-page .portal-copy h1 { font-size: clamp(2.3rem, 4.5vw, 3.6rem); }
.invitation-introduction-page .portal-copy > p { max-width: 34rem; font-size: 1.2rem; }
.invitation-introduction { max-width: 40rem; color: #405e58; font-size: 1.2rem; line-height: 1.65; }
.invitation-introduction p { margin: 1.25rem 0 0; }
.invitation-welcome-actions { min-width: 0; }
.invitation-welcome-ann { display: block; width: min(240px, 65%); height: auto; margin: 0 auto 1.25rem; }
.invitation-introduction-page .decision-card h2 { font-size: clamp(1.65rem, 3vw, 2.2rem); }
.invitation-browse-link { display: inline-block; padding-block: .8rem; }
.setup-checklist button:disabled, .invitation-introduction-page button:disabled { cursor: default; opacity: .7; }
@media (max-width: 620px) {
    .setup-checklist { padding-top: 1.5rem; }
    .setup-step > summary { grid-template-columns: minmax(0, 1fr) auto 1rem; gap: .4rem .5rem; padding: 1rem; }
    .setup-step-number { grid-column: 1; grid-row: 1; }
    .setup-step-state { grid-column: 2; grid-row: 1; }
    .manual-account-checklist .setup-step-state { max-width: 9rem; font-size: .95rem; }
    .setup-step > summary::after { grid-column: 3; grid-row: 1; }
    .setup-step > summary h2 { grid-column: 1 / -1; grid-row: 2; }
    .setup-step-content { padding: 0 1rem 1.2rem; }
    .setup-step-content .button { width: 100%; white-space: normal; text-align: center; }
    .setup-progress { flex-wrap: wrap; gap: .5rem 1rem; }
    .invitation-welcome-ann { display: none; }
}

/* Stage 6: focused checklists. Existing form/progress rules remain unchanged. */
.focused-checklist-page .journey-hero { padding-block: 2rem 1rem; }
.focused-checklist-page .journey-hero-grid { max-width: 900px; gap: 1rem 2rem; }
.focused-checklist-page .journey-hero h1 { font-size: clamp(2rem, 4vw, 3.1rem); margin-bottom: .6rem; }
.focused-checklist-page .registration-workflow-subhead { font-size: 1.15rem; margin-bottom: 0; }
.checklist-gauge { display: grid; justify-items: center; align-content: start; gap: .3rem; max-width: 15rem; justify-self: center; padding: .5rem; text-align: center; color: #173b36; }
.checklist-gauge .dashboard-gauge-face { width: 10rem; margin: 0 auto .6rem; }
.checklist-gauge .dashboard-gauge-readout { font-size: 1rem; }
.checklist-gauge-label { font-size: 1.1rem; }
.checklist-gauge-status { font-size: .85rem; font-weight: 750; }
.checklist-gauge-hint { font-size: .85rem; line-height: 1.4; margin-top: .3rem; }
.focused-checklist-page .registration-workflow-content { padding-top: 1rem; }
.focused-checklist-page .registration-workflow-content > .page-shell,
.focused-checklist-page .registration-workflow-hero > .page-shell { max-width: 900px; }
.checklist-orientation { grid-column: 1 / -1; margin-block: .8rem; }
.checklist-continue { display: inline-block; color: #a53d27; font-weight: 800; text-decoration: underline; text-underline-offset: .2em; padding-block: .6rem; line-height: 1.5; }
.checklist-orientation p { font-size: .95rem; color: #53645e; margin: .1rem 0 .35rem; }
.checklist-orientation > a:not(.checklist-continue) { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; }
.checklist-context { grid-column: 1 / -1; width: 100%; border-block: 1px solid #cfddd6; }
.checklist-context > summary { cursor: pointer; padding: .85rem .2rem; font-weight: 700; color: #24544c; }
.focused-checklist-page .registration-identity-panel { margin-block: 0 1rem; }
.focused-checklist-page .registration-fast-path { padding: 1rem 1.2rem; gap: 1rem; margin-bottom: 1.5rem; }
.focused-checklist-page .registration-fast-path h2 { font-size: 1.4rem; }
.focused-checklist-page .registration-fast-path p { font-size: 1rem; margin: .35rem 0 0; }
.focused-checklist-page .registration-workflow-grid { display: block; }
.focused-checklist-page .registration-phase-header { grid-template-columns: 34px minmax(0, 1fr); gap: .6rem; margin: 1.3rem 0 .7rem; }
.focused-checklist-page .registration-phase-header > span { height: 34px; width: 34px; font-size: 1rem; }
.focused-checklist-page .registration-phase-header h2 { font-size: 1.35rem; }
.focused-checklist-page .registration-task-list { margin: 0; padding: 0; border: 0; gap: .65rem; }
.focused-checklist-page .registration-task-list > li { list-style: none; min-width: 0; }
.focused-checklist-page .checklist-task { display: block; min-height: 0; padding: 0; color: #173b36; border-radius: .85rem; box-shadow: 0 4px 12px #173d3409; scroll-margin-top: 115px; }
.focused-checklist-page .checklist-task.is-current { border: 2px solid #558b7d; box-shadow: 0 0 0 4px #ebd49c70, 0 8px 24px #173d3414; }
.checklist-task > summary { display: grid; grid-template-columns: 4.2rem minmax(0, 1fr) auto 1rem; gap: .75rem; align-items: center; list-style: none; cursor: pointer; padding: 1rem 1.2rem; min-height: 70px; }
.checklist-task > summary::-webkit-details-marker { display: none; }
.checklist-task > summary::after { content: '+'; color: #456a60; font-size: 1.3rem; text-align: center; }
.checklist-task[open] > summary::after { content: '−'; }
.checklist-task > summary h3 { font-size: 1.12rem; line-height: 1.4; margin: 0; }
.checklist-task.is-current > summary h3 { font-size: 1.35rem; }
.checklist-step-label { font-size: .85rem; font-weight: 800; color: #44675c; white-space: nowrap; }
.checklist-step-state { font-size: .8rem; color: #49695f; }
.checklist-task.is-current .checklist-step-state { color: #a53d27; font-weight: 800; }
.checklist-task.is-complete .checklist-step-label::before { content: '✓ '; }
.focused-checklist-page .registration-task-body { padding: 0 1.2rem 1.2rem; overflow-wrap: anywhere; }
.focused-checklist-page .registration-task-body > p:not(.registration-task-meta) { font-size: 1.05rem; line-height: 1.6; margin: .5rem 0 1rem; }
.focused-checklist-page .registration-task-meta { font-size: .7rem; color: #566f64; }
.focused-checklist-page .registration-task-heading { align-items: center; }
.focused-checklist-page .registration-locked-note { color: #53645e; }
.focused-checklist-page .registration-current-actions { margin-top: 1rem; }
.focused-checklist-page .registration-current-actions .button { min-height: 48px; }
.checklist-reference { border: 1px solid #d7e1d9; border-radius: .6rem; background: #f7faf6; margin-block: .8rem; }
.checklist-reference > summary,
.registration-inline-help > summary { padding: .8rem; cursor: pointer; font-size: .95rem; font-weight: 700; color: #24544c; min-height: 44px; }
.checklist-reference-grid { display: grid; gap: .75rem; padding: .7rem; }
.focused-checklist-page .checklist-reference .registration-help-card { padding: 1rem; margin: 0; border: 1px solid #d4dfd6; box-shadow: none; }
.focused-checklist-page .checklist-reference h2 { font-size: 1.35rem; }
.focused-checklist-page .checklist-reference p { font-size: 1rem; }
.checklist-deadline-alert { padding: .7rem; border-left: 4px solid #b44c30; background: #fff5df; color: #79321f; }
.focused-checklist-page .registration-inline-help { padding: .5rem; margin-top: 1rem; }
.focused-checklist-page .registration-inline-help[data-shortcut-ready="true"]:not([open]) { display: none; }
.focused-checklist-page .registration-inline-help > summary { color: #a53d27; }
.focused-checklist-page .registration-inline-help > :not(summary) { margin-inline: .5rem; }
.focused-checklist-page .registration-inline-help[open] > summary { border-bottom: 1px solid #d4dfd6; margin-bottom: .7rem; }
.checklist-task > summary:focus-visible,
.checklist-context > summary:focus-visible,
.checklist-reference > summary:focus-visible,
.registration-inline-help > summary:focus-visible,
.checklist-continue:focus-visible { outline: 3px solid #b44c30; outline-offset: 3px; }
.focused-checklist-page .registration-history { margin-top: 1.5rem; }
.focused-checklist-page .registration-finish-actions { gap: 2rem; flex-wrap: wrap; }
@media (max-width: 620px) {
    .focused-checklist-page .journey-hero-grid { grid-template-columns: minmax(0, 1fr); }
    .setup-heading { grid-template-columns: minmax(0, 1fr); }
    .checklist-gauge { max-width: 100%; grid-template-columns: 7.5rem minmax(0, 1fr); column-gap: 1rem; align-items: center; justify-items: start; text-align: left; width: 100%; }
    .checklist-gauge > [role="progressbar"] { grid-column: 1; grid-row: 1 / span 3; }
    .checklist-gauge .dashboard-gauge-face { width: 7.5rem; margin: 0; }
    .checklist-gauge-label, .checklist-gauge-status, .checklist-gauge-hint { grid-column: 2; }
    .focused-checklist-page .checklist-task > summary { grid-template-columns: minmax(0, 1fr) auto 1rem; gap: .35rem .5rem; padding: .9rem 1rem; }
    .checklist-step-label { grid-column: 1; grid-row: 1; }
    .checklist-step-state { grid-column: 2; grid-row: 1; }
    .checklist-task > summary::after { grid-column: 3; grid-row: 1; }
    .checklist-task > summary h3 { grid-column: 1 / -1; grid-row: 2; }
    .focused-checklist-page .registration-task-body { padding: 0 1rem 1rem; }
    .focused-checklist-page .registration-fast-path { display: block; }
    .focused-checklist-page .registration-fast-path-actions { margin-top: .8rem; }
    .focused-checklist-page .button { white-space: normal; text-align: center; }
    .focused-checklist-page .registration-current-actions > form,
    .focused-checklist-page .registration-current-actions > .button { width: 100%; }
    .focused-checklist-page .registration-current-actions form > .button { width: 100%; }
}

/* A short, optional tour rather than another onboarding assignment. */
.benefits-brief { background: linear-gradient(160deg, #fffcf5, #eef4ef); padding: 2.25rem 0 3rem; }
.benefits-brief-heading { max-width: 860px; margin: 0 auto 2rem; text-align: center; }
.benefits-brief-heading h1 { font-family: Georgia, serif; font-weight: 500; font-size: clamp(2.3rem, 4.4vw, 3.65rem); line-height: 1.12; margin: .4rem 0 .8rem; }
.benefits-brief-heading > p:not(.eyebrow) { font-size: 1.15rem; line-height: 1.55; max-width: 660px; margin: 0 auto 1.1rem; }
.benefits-brief-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; align-items: start; }
.benefits-brief-card { border: 1px solid #d0dcd5; border-radius: 1.2rem; overflow: hidden; background: #fff; box-shadow: 0 10px 28px #173d3410; }
.benefits-brief-visual { position: relative; height: 220px; margin: 0; overflow: hidden; display: flex; align-items: center; justify-content: center; padding: 1rem 1rem 2.3rem; }
.benefits-brief-visual figcaption { position: absolute; bottom: .65rem; left: .5rem; right: .5rem; text-align: center; font-size: .9rem; line-height: 1.4; }
.benefits-brief-visual img { width: 100%; height: auto; max-height: 100%; object-fit: contain; }
.benefits-brief-gauges { background: #173d38; color: #fff8e5; }
.benefits-brief-gauges img { border-radius: .3rem; }
.benefits-brief-checklist { background: #edf3ec; color: #24483e; padding-inline: .65rem; }
.benefits-brief-checklist img { border-radius: .65rem .65rem 0 0; box-shadow: 0 4px 15px #173d341a; }
.benefits-brief-plan { background: #e7eee7; color: #24483e; }
.benefits-paper { background: #fffdf6; border: 1px solid #cccfbd; width: min(250px, 92%); padding: .8rem 1.1rem; box-shadow: 4px 7px 0 #24483e12; transform: rotate(-3deg); }
.benefits-paper-brand { float: right; font-size: .65rem; font-weight: 800; }
.benefits-paper > strong { display: block; font-family: Georgia, serif; font-size: 1.2rem; border-bottom: 2px solid #24483e; padding-bottom: .4rem; clear: both; }
.benefits-paper > div { margin-top: .5rem; }
.benefits-paper > div > span { font-size: .55rem; letter-spacing: .08em; display: block; font-weight: 700; }
.benefits-paper i { display: block; height: .6rem; border-bottom: 1px solid #c9d3c8; }
.benefits-brief-friends { background: #fbf2e3; color: #24483e; }
.benefits-brief-friends img { width: auto; max-width: 100%; }
.benefits-brief-copy { padding: 1.35rem; }
.benefits-brief-copy h2 { font-size: 1.45rem; line-height: 1.3; margin: 0 0 .75rem; }
.benefits-brief-copy > p { font-size: 1.04rem; line-height: 1.6; margin: 0 0 1rem; min-height: 5rem; }
.benefits-brief-copy details { border-top: 1px solid #d9e3dc; padding-top: .25rem; }
.benefits-brief-copy summary { cursor: pointer; padding: .7rem 0; min-height: 44px; font-weight: 700; font-size: .95rem; color: #24544c; text-decoration: underline; text-underline-offset: .2em; }
.benefits-brief-copy details p { font-size: 1rem; line-height: 1.6; margin: .5rem 0; }
.benefits-brief-copy a, .benefits-brief-finish a:not(.button) { text-decoration: underline; text-underline-offset: .2em; }
.benefits-brief-copy summary:focus-visible { outline: 3px solid #b24930; outline-offset: 3px; }
.benefits-brief-finish { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; background: #214f47; color: #fffdf2; padding: 1.5rem 1.75rem; margin-top: 1.5rem; border-radius: 1rem; }
.benefits-brief-finish h2 { color: #f3d796; font-family: Georgia, serif; font-size: 1.6rem; margin: 0 0 .4rem; }
.benefits-brief-finish p { margin: 0 0 .35rem; }
.benefits-brief-finish a:not(.button) { color: #fffdf2; display: inline-flex; align-items: center; min-height: 44px; }
.benefits-brief-finish .button { flex-shrink: 0; }
@media (max-width: 980px) {
    .benefits-brief-grid { grid-template-columns: minmax(0, 1fr); max-width: 650px; margin-inline: auto; }
    .benefits-brief-card { display: grid; grid-template-columns: 42% minmax(0, 1fr); }
    .benefits-brief-visual { height: 100%; min-height: 245px; }
    .benefits-brief-finish { max-width: 650px; margin-inline: auto; flex-direction: column; text-align: center; }
}
@media (max-width: 560px) {
    .benefits-brief { padding-top: 1.4rem; }
    .benefits-brief-card { display: block; }
    .benefits-brief-visual { height: 180px; min-height: 0; }
    .benefits-brief-plan { height: 210px; }
    .benefits-brief-copy { padding: 1.1rem; }
    .benefits-brief-copy > p { min-height: 0; }
    .benefits-brief-finish { padding: 1.3rem; }
    .benefits-brief-finish .button { width: 100%; white-space: normal; }
}
