/* Everyday History: public presentation only; application tokens remain intact. */
:root {
    --vj-public-font-display: "Newsreader", Georgia, "Times New Roman", serif;
    --vj-public-canvas: #faf7f2;
    --vj-public-surface: #ffffff;
    --vj-public-surface-soft: #f2eee7;
    --vj-public-text: #20332f;
    --vj-public-muted: #52645e;
    --vj-public-border: #deded5;
    --vj-public-action: #0f766e;
    --vj-public-action-hover: #115e59;
    --vj-public-on-action: #ffffff;
    --vj-public-highlight: #b43b0b;
    --vj-public-shadow: 0 4px 20px rgb(32 51 47 / 5%);
}
.app-shell.theme-dark, .public-site.theme-dark, :root[data-vj-theme="dark"] .vj-app-loader.public-site {
    --vj-public-canvas: #121e20;
    --vj-public-surface: #1c2c2e;
    --vj-public-surface-soft: #233638;
    --vj-public-text: #eef4f0;
    --vj-public-muted: #bdcdc7;
    --vj-public-border: #415653;
    --vj-public-action: #79cdc0;
    --vj-public-action-hover: #9adfd4;
    --vj-public-on-action: #122a28;
    --vj-public-highlight: #f0a27d;
    --vj-public-shadow: 0 4px 20px rgb(0 0 0 / 12%);
}
.app-shell.public-site, .public-site.vj-error-page, .public-site.vj-app-loader {
    --vj-marketing-bg-primary: var(--vj-public-canvas);
    --vj-marketing-bg-secondary: var(--vj-public-surface-soft);
    --vj-marketing-surface: var(--vj-public-surface);
    --vj-marketing-surface-elevated: var(--vj-public-surface);
    --vj-marketing-surface-muted: var(--vj-public-surface-soft);
    --vj-marketing-text-primary: var(--vj-public-text);
    --vj-marketing-text-muted: var(--vj-public-muted);
    --vj-marketing-text-muted-strong: var(--vj-public-muted);
    --vj-marketing-accent: var(--vj-public-action);
    --vj-marketing-highlight: var(--vj-public-highlight);
    --vj-marketing-cta: var(--vj-public-action);
    --vj-marketing-cta-hover: var(--vj-public-action-hover);
    --vj-marketing-border: var(--vj-public-border);
    --vj-marketing-border-strong: var(--vj-public-border);
    --vj-public-hero-title-size: clamp(2.375rem, 4.7vw, 4rem);
    --vj-public-section-title-size: clamp(1.9rem, 3.3vw, 2.75rem);
    --vj-public-radius-card: 0.75rem;
    --vj-public-radius-panel: 0.75rem;
    --vj-public-radius-notice: 0.5rem;
    --vj-public-eyebrow-marketing: var(--vj-public-highlight);
    --vj-public-eyebrow-trust: var(--vj-public-action);
    --vj-public-eyebrow-neutral: var(--vj-public-muted);
    --vj-color-on-accent: var(--vj-public-on-action);
    --vj-color-surface-highlight: var(--vj-public-surface);
    --vj-color-surface-warm: var(--vj-public-canvas);
    --vj-elevation-panel: var(--vj-public-shadow);
    --vj-elevation-panel-strong: var(--vj-public-shadow);
    --vj-elevation-navbar-public: none;
    --vj-focus-ring: 0 0 0 3px var(--vj-public-action);
    --vj-font-display: var(--vj-public-font-display);
    --vj-text-primary: var(--vj-public-text);
    --vj-text-muted: var(--vj-public-muted);
    --vj-text-muted-strong: var(--vj-public-muted);
    --vj-border-soft: var(--vj-public-border);
    --vj-surface-theme: var(--vj-public-surface);
    --vj-surface-panel: var(--vj-public-surface);
    --vj-surface-alt: var(--vj-public-surface-soft);
    --vj-page-bg: var(--vj-public-canvas);
    --vj-page-bg-accent: var(--vj-public-surface-soft);
    --vj-surface-theme-elevated: var(--vj-public-surface);
    --vj-surface-soft: var(--vj-public-surface-soft);
    --vj-surface-panel-muted: var(--vj-public-surface-soft);
    --vj-surface-panel-elevated: var(--vj-public-surface);
    --bs-body-color: var(--vj-public-text);
    --bs-secondary-color: var(--vj-public-muted);
    --bs-body-bg: var(--vj-public-canvas);
    --bs-border-color: var(--vj-public-border);
    color: var(--vj-public-text);
    background: var(--vj-public-canvas);
}
.public-site .app-main { background: var(--vj-public-canvas); }
.public-site :is(.landing-page-shell, .pricing-page, .auth-page, .privacy-page, .processor-page) {
    --landing-font-display: var(--vj-public-font-display);
    --vj-page-bg: var(--vj-public-canvas);
    --vj-surface-theme: var(--vj-public-surface);
    --vj-surface-theme-elevated: var(--vj-public-surface);
    --vj-surface-panel: var(--vj-public-surface);
    --vj-surface-soft: var(--vj-public-surface-soft);
    --vj-surface-input: var(--vj-public-surface);
    --vj-text-primary: var(--vj-public-text);
    --vj-text-muted: var(--vj-public-muted);
    --vj-text-muted-strong: var(--vj-public-muted);
    --vj-text: var(--vj-public-text);
    --vj-border-soft: var(--vj-public-border);
    --vj-border: var(--vj-public-border);
    --vj-on-accent: var(--vj-public-on-action);
    --vj-surface-brand: var(--vj-public-action);
    --vj-surface-brand-elevated: var(--vj-public-action-hover);
    --vj-surface-brand-border: var(--vj-public-action);
    color: var(--vj-public-text);
    background: var(--vj-public-canvas);
}
.public-site :is(h1, h2, h3) { text-wrap: balance; }
.app-shell.public-site :is(.landing-page-shell, .pricing-page, .auth-page, .privacy-page, .processor-page) h1 {
    font-family: var(--vj-public-font-display);
    font-size: var(--vj-public-hero-title-size);
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: -0.025em;
}
.public-site :is(.public-section-header__title, .landing-section-header__title, .public-cta-band__title, .pricing-section-title) {
    font-family: var(--vj-public-font-display);
    font-size: var(--vj-public-section-title-size);
    font-weight: 400;
    line-height: 1.15;
}
.public-site :is(.vj-btn, .vj-btn-outline, .vj-btn-quiet) {
    border-radius: 0.5rem;
    min-height: 2.75rem;
    font-family: var(--vj-font-sans);
}
.public-site :is(a, button, input, select, textarea, summary):focus-visible {
    outline: 2px solid var(--vj-public-action);
    outline-offset: 4px;
}
.public-site .vj-navbar-public { background: var(--vj-public-canvas); backdrop-filter: none; }
.public-site .vj-navbar-public .vj-brand-subtitle { display: none; }
.public-site .vj-navbar-public .vj-nav-link-cta {
    border-radius: 0.5rem;
    background: var(--vj-public-action);
    color: var(--vj-public-on-action);
}
.public-site .vj-footer {
    color: var(--vj-public-text);
    background: var(--vj-public-surface-soft);
    border-top: 1px solid var(--vj-public-border);
}
.public-site .vj-footer :is(.app-footer-link, .app-footer-copy, .app-footer-meta) { color: var(--vj-public-muted); }
.public-site .vj-footer :is(.vj-brand, .app-footer-title) { color: var(--vj-public-text); }
.public-site .public-footer-links { display: grid; grid-template-columns: 1fr; gap: .5rem 1.5rem; }
.public-site .public-footer-links a { padding-block: .2rem; }
.public-site .public-footer-links a:hover { color: var(--vj-public-text); }
.public-site :is(.auth-page, .processor-page) { padding-top: var(--vj-public-hero-space-top); padding-bottom: var(--vj-public-section-space); }
.public-site .auth-surface { max-width: 46rem; margin-inline: auto; padding: 0; background: transparent; border: 0; box-shadow: none; }
.public-site :is(.auth-card, .auth-panel, .signup-card, .login-card, .confirm-email-card) {
    border: 1px solid var(--vj-public-border);
    border-radius: var(--vj-public-radius-card);
    box-shadow: var(--vj-public-shadow);
    background: var(--vj-public-surface);
}
.public-site .auth-header { text-align: left; margin-bottom: 2rem; }
.public-site .auth-card .card-body { padding: clamp(1.25rem, 3vw, 2rem); }
.public-site .form-control { border-color: var(--vj-public-border); color: var(--vj-public-text); background: var(--vj-public-surface); min-height: 2.75rem; }
.public-site :is(.login-page__brand-mark, .signup-page__brand-mark, .confirm-email-page__brand-mark) { border: 0; background: transparent; width: 3rem; }
.public-site :is(.login-page__trust-panel, .signup-page__trust-panel) { box-shadow: none; border-radius: .75rem; }
.public-site .privacy-shell { max-width: 48rem; }
.public-site :is(.privacy-shell, .processor-shell) { border-radius: .75rem; box-shadow: none; }
.public-site .privacy-shell p { line-height: 1.8; }
.public-site .privacy-shell h2 { font-size: clamp(1.45rem, 2.5vw, 1.9rem); }
.public-site .processor-table :is(th, td) { white-space: normal; overflow-wrap: anywhere; }
.public-site .processor-table { min-width: 0; }
@media (max-width: 767.98px) {
    .public-site :is(.auth-surface, .privacy-shell, .processor-shell) { width: 100%; }
    .public-site .public-footer-links { grid-template-columns: 1fr; }
    .public-site .processor-table thead { display: none; }
    .public-site .processor-table :is(tbody, tr, th, td) { display: block; width: 100%; }
    .public-site .processor-table tr { margin-block: 1rem; border: 1px solid var(--vj-public-border); border-radius: .5rem; padding: .75rem; }
    .public-site .processor-table td::before { content: attr(data-label); display: block; font-weight: 600; font-size: .8rem; color: var(--vj-public-action); margin-bottom: .25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .public-site *, .public-site *::before, .public-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

.public-site .auth-page > .auth-panel { max-width: 46rem; margin-inline: auto; padding: clamp(1.25rem, 3vw, 2.5rem); }
.public-site .auth-panel__header { display: grid; gap: .75rem; margin-bottom: 1.75rem; }
.public-site .form-select { background-color: var(--vj-public-surface); color: var(--vj-public-text); border-color: var(--vj-public-border); min-height: 2.75rem; }
.public-site :is(.public-zero-knowledge-claims, .resources-newsletter__card) { border-radius: .75rem; box-shadow: none; }
.public-site .public-zero-knowledge-claims h2 { font-family: var(--vj-public-font-display); font-size: var(--vj-public-section-title-size); font-weight: 400; }
.public-site .public-zero-knowledge-claims p { max-width: 52rem; line-height: 1.75; }
.public-site .public-zero-knowledge-claims__eyebrow { color: var(--vj-public-action); font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; }

.app-shell.public-site :is(a, button).vj-btn, .public-site.vj-error-page :is(a, button).vj-btn { background: var(--vj-public-action); color: var(--vj-public-on-action); border-color: var(--vj-public-action); box-shadow: none; }
.app-shell.public-site :is(a, button).vj-btn:hover { background: var(--vj-public-action-hover); color: var(--vj-public-on-action); border-color: var(--vj-public-action-hover); transform: none; }
.app-shell.public-site :is(a, button).vj-btn-outline { color: var(--vj-public-action); border-color: var(--vj-public-action); }

.app-shell.public-site header.vj-navbar.vj-navbar-public { background: var(--vj-public-canvas); backdrop-filter: none; box-shadow: none; border-bottom: 1px solid var(--vj-public-border); }

.public-site .pricing-page { --plans-font-display: var(--vj-public-font-display); }
.public-site .pricing-page .plan-card { border-radius: .75rem; background: var(--vj-public-surface); box-shadow: var(--vj-public-shadow); transform: none; border-color: var(--vj-public-border); }
.public-site .pricing-page .plan-card--featured { border-color: var(--vj-public-action); }
.public-site .pricing-page .plan-card::before { background: var(--vj-public-action); }
.public-site .pricing-page .plan-card__title { font-family: var(--vj-public-font-display); font-weight: 400; line-height: 1.2; }
.public-site .pricing-page .vj-surface-panel { border-radius: .75rem; box-shadow: var(--vj-public-shadow); }
.public-site.vj-error-page { min-height: 100svh; }
.public-site .vj-error-heading { font-family: var(--vj-public-font-display); font-size: clamp(2rem, 5vw, 3rem); line-height: 1.15; margin-bottom: 1.5rem; font-weight: 400; }

.vj-app-loader.public-site { background: var(--vj-public-canvas); min-height: 100svh; }
.vj-app-loader.public-site .vj-app-loader__card { border: 1px solid var(--vj-public-border); border-radius: .75rem; background: var(--vj-public-surface); box-shadow: var(--vj-public-shadow); max-width: 28rem; }
.vj-app-loader.public-site .vj-app-loader__title { font-family: var(--vj-public-font-display); font-weight: 400; font-size: 2rem; line-height: 1.15; color: var(--vj-public-text); }
.vj-app-loader.public-site .vj-app-loader__copy { color: var(--vj-public-muted); }
.vj-app-loader.public-site .vj-app-loader__brand { object-fit: contain; margin-block: 1.5rem; }

.app-shell.public-site .auth-panel__header { background: transparent; padding: 0; border-bottom: 0; }
.app-shell.public-site label.form-label { color: var(--vj-public-text); }
.app-shell.public-site :is(.auth-panel__reassurance, .form-text, .auth-page .text-muted) { color: var(--vj-public-muted); }

.app-shell.public-site:is(.theme-light, .theme-dark) footer.vj-footer { background: var(--vj-public-surface-soft); }
.app-shell.public-site .privacy-page aside.privacy-toc-banner { background: var(--vj-public-surface); color: var(--vj-public-text); border: 1px solid var(--vj-public-border); box-shadow: none; }
.app-shell.public-site .pricing-page section.pricing-hero { background: var(--vj-public-canvas); }
.app-shell.public-site .pricing-page :is(div.pricing-content-shell, div.pricing-cta-shell, div.pricing-trust-card) { --vj-panel-surface: var(--vj-public-surface); background: var(--vj-public-surface); box-shadow: var(--vj-public-shadow); }
.public-site .privacy-shell { min-width: 0; overflow-wrap: anywhere; }
@media (min-width: 992px) {
    .public-site .privacy-content-container { display: grid; grid-template-columns: minmax(0, 48rem) 14rem; align-items: start; justify-content: center; gap: 2rem; }
    .public-site .privacy-content-container .privacy-shell { grid-column: 1; grid-row: 1; width: 100%; }
    .app-shell.public-site .privacy-page aside.privacy-toc-banner { position: sticky; grid-column: 2; grid-row: 1; width: 100%; right: auto; top: calc(var(--vj-nav-offset) + 1rem); }
}
