:root {
  --paper: #f7f4ed;
  --paper-deep: #e8eee7;
  --surface: #fcfbf7;
  --ink: #20302a;
  --muted: #5e6c64;
  --line: #d5ddd5;
  --accent: #376b5a;
  --accent-soft: #e2eee8;
  --accent-hover: #285446;
  --accent-contrast: #fffdf7;
  --warm: #965c40;
  --focus: #b46843;
  --radius: 8px;
  --radius-large: 18px;
  --h1-size: clamp(3rem, 5.2vw, 5.2rem);
  --page-intro-gap: 48px;
  --shell: min(1180px, calc(100% - 48px));
  color-scheme: light;
  font-family: "Avenir Next", "Segoe UI", ui-sans-serif, system-ui, sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.55;
}

:root[data-theme="dark"] {
  --paper: #171a17;
  --paper-deep: #232923;
  --surface: #1d241f;
  --ink: #f1eee6;
  --muted: #b7b9b0;
  --line: #3a433b;
  --accent: #79b39e;
  --accent-soft: #294036;
  --accent-hover: #91c8b2;
  --accent-contrast: #10241c;
  --warm: #e39a74;
  --focus: #e39a74;
  color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --paper: #171a17;
    --paper-deep: #232923;
    --surface: #1d241f;
    --ink: #f1eee6;
    --muted: #b7b9b0;
    --line: #3a433b;
    --accent: #79b39e;
    --accent-soft: #294036;
    --accent-hover: #91c8b2;
    --accent-contrast: #10241c;
    --warm: #e39a74;
    --focus: #e39a74;
    color-scheme: dark;
  }
}

* { box-sizing: border-box; }
body { margin: 0; }
main { min-width: 0; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { cursor: pointer; }
.shell { width: var(--shell); max-width: 100%; min-width: 0; margin-inline: auto; }
.skip-link { position: absolute; left: 16px; top: -60px; z-index: 5; padding: 10px 14px; background: var(--ink); color: var(--paper); }
.skip-link:focus { top: 16px; }
.site-header { border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 4; backdrop-filter: blur(12px); }
.header-inner { display: grid; align-items: center; min-width: 0; }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { grid-area: brand; display: inline-flex; align-items: center; font-weight: 700; }
.brand-mark { display: grid; place-items: center; border: 1px solid var(--accent); color: var(--accent); border-radius: 50%; font-family: system-ui, sans-serif; }
.site-nav { grid-area: nav; display: flex; min-width: 0; max-width: 100%; }
.site-nav a { gap: 7px; }
.nav-icon { width: 15px; height: 15px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; opacity: .78; transition: opacity .18s ease, transform .18s ease; }
.site-nav a:hover .nav-icon, .site-nav a.is-active .nav-icon { opacity: 1; transform: translateY(-1px); }
.theme-control { position: relative; color: var(--muted); }
.theme-trigger { display: inline-flex; align-items: center; justify-content: center; width: 54px; padding: 6px; border: 1px solid var(--line); color: var(--ink); }
.theme-trigger:hover, .theme-trigger[aria-expanded="true"], .language-trigger:hover, .language-switcher[open] .language-trigger { border-color: var(--accent); }
.theme-trigger-icon, .theme-option svg { display: inline-grid; place-items: center; width: 18px; height: 18px; }
.theme-trigger-icon svg, .theme-option svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.theme-menu, .language-menu { position: absolute; top: calc(100% + 8px); z-index: 5; display: grid; gap: 2px; padding: 6px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); box-shadow: 0 14px 30px rgba(0, 0, 0, .16); }
.theme-menu { right: 0; justify-items: center; min-width: 0; }
.theme-menu[hidden] { display: none; }
.theme-option { display: flex; align-items: center; justify-content: center; width: 44px; min-height: 44px; padding: 0; border: 0; color: var(--muted); background: transparent; }
.theme-option:hover, .theme-option:focus-visible, .theme-option[aria-checked="true"], .language-option:hover, .language-option:focus-visible, .language-option.is-selected { color: var(--ink); background: var(--accent-soft); }
.hero h1, .page-heading h1, .test-heading h1, .article-page h1, .empty-page h1 { max-width: 760px; margin: 14px 0 20px; font: 600 var(--h1-size)/.98 Georgia, ui-serif, serif; letter-spacing: -.06em; }
.eyebrow { margin: 0; color: var(--accent); font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.lede { max-width: 610px; margin: 0; color: var(--muted); font-size: clamp(1.05rem, 1.8vw, 1.25rem); }
.action-row { display: flex; flex-wrap: wrap; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 10px 18px; border: 1px solid transparent; font-weight: 700; }
.button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, .theme-trigger:focus-visible, .theme-option:focus-visible { outline: 3px solid var(--warm); outline-offset: 3px; }
.button-primary { background: var(--accent); color: var(--accent-contrast); }
.button-primary:hover { background: var(--accent-hover); }
.button-quiet { border-color: var(--line); color: var(--muted); background: transparent; }
.button-quiet:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.text-link, .back-link { color: var(--accent); font-weight: 700; }
.text-link:hover, .back-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.section-block { border-top: 1px solid var(--line); }
.section-block h2 { max-width: 560px; margin: 12px 0 0; font: 500 clamp(1.9rem, 4vw, 3.2rem)/1.04 Georgia, ui-serif, serif; letter-spacing: -.045em; }
.split-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding-bottom: 28px; }
.test-list { border-top: 1px solid var(--line); }.page-list { margin-bottom: 60px; }
.list-row { display: grid; grid-template-columns: 60px minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--line); }
.list-index { color: var(--warm); font-weight: 700; }.list-main { display: grid; gap: 4px; }.list-main strong { font: 500 1.35rem/1.15 Georgia, ui-serif, serif; }.list-main small { color: var(--muted); font-size: .9rem; }.list-meta { display: flex; align-items: center; color: var(--muted); font-size: .8rem; white-space: nowrap; }.list-meta span:last-child { color: var(--accent); font-size: 1.25rem; }
.article-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); margin-bottom: 78px; }.article-teaser { display: flex; min-height: 260px; flex-direction: column; align-items: flex-start; padding: 30px; background: var(--paper); }.article-teaser:hover { background: var(--accent-soft); }.article-teaser h2, .article-teaser h3 { margin: 18px 0 12px; font: 500 clamp(1.5rem, 3vw, 2.45rem)/1.04 Georgia, ui-serif, serif; letter-spacing: -.04em; }.article-teaser p { margin: 0 0 24px; color: var(--muted); }.article-teaser .text-link { margin-top: auto; }.back-link { color: var(--muted); font-size: .9rem; }
.note-block { max-width: 1160px; margin-bottom: 80px; padding: 24px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.note-block p { display: inline; margin-left: 16px; color: var(--muted); }.assessment-progress { display: flex; align-items: center; color: var(--muted); font-size: .82rem; }.progress-track { flex: 1; overflow: hidden; }.progress-track span { display: block; height: 100%; width: 0; background: var(--accent); transition: width .24s ease; }.question-card { min-inline-size: 0; margin: 0; padding: 0; border: 0; }.question-card legend { font: 500 clamp(1.8rem, 4vw, 3.3rem)/1.05 Georgia, ui-serif, serif; letter-spacing: -.04em; }.likert { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; align-items: center; }.likert-end { grid-row: 1; min-width: 0; color: var(--muted); font-size: .75rem; line-height: 1.3; text-align: center; overflow-wrap: anywhere; }.likert-end:first-child { grid-column: 1; }.likert-end:last-child { grid-column: 5; }.likert-option input { opacity: 0; }.likert-option span { display: grid; place-items: center; width: 54px; height: 54px; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); font-weight: 700; cursor: pointer; }.likert-option input:checked + span { background: var(--accent); color: var(--accent-contrast); border-color: var(--accent); }.assessment-actions { justify-content: space-between; margin-top: 55px; }.form-status { min-height: 1.4em; font-size: .9rem; }.result-panel { border-top: 1px solid var(--ink); }.result-panel h2 { margin: 10px 0; font: 500 clamp(2rem, 4vw, 3.3rem)/1 Georgia, ui-serif, serif; }.result-panel p { color: var(--muted); }.result-copy { max-width: 720px; }.result-next { margin: 32px 0; padding-top: 22px; border-top: 1px solid var(--line); }.result-next h3 { margin: 0 0 12px; font: 500 1.35rem/1.15 Georgia, ui-serif, serif; }.result-next ul { margin: 0; padding-left: 20px; color: var(--muted); }.result-next li + li { margin-top: 6px; }.score-list { display: grid; margin: 28px 0; }.score-row { display: grid; gap: 12px; align-items: center; font-size: .9rem; }.article-page h1 { max-width: 800px; }.article-subtitle { margin: 0 0 58px; color: var(--muted); }.article-body h2 { margin: 48px 0 14px; font: 500 2rem/1.1 Georgia, ui-serif, serif; letter-spacing: -.035em; }.article-body h3 { margin: 36px 0 10px; font: 700 1.2rem/1.2 system-ui, sans-serif; }.article-body p { margin: 0 0 18px; }.article-body ul, .article-body ol { margin: 18px 0 28px; padding-left: 24px; }.article-body li { margin: 8px 0; }.article-body a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.dashboard-layout { display: grid; }.profile-summary h2 { max-width: 420px; margin: 14px 0; font: 500 2.7rem/1 Georgia, ui-serif, serif; letter-spacing: -.045em; }.profile-summary p, .dashboard-history p { color: var(--muted); }.timeline { display: grid; gap: 0; border-top: 1px solid var(--line); }.timeline p { border-bottom: 1px solid var(--line); }.dashboard-results { border-top: 1px solid var(--line); }.dashboard-results h2 { margin: 10px 0 28px; font: 500 clamp(1.7rem, 3vw, 2.5rem)/1.05 Georgia, ui-serif, serif; letter-spacing: -.04em; }.dashboard-result { padding: 20px 0 26px; border-top: 1px solid var(--line); }.dashboard-result h3 { margin: 0; font: 500 1.25rem/1.1 Georgia, ui-serif, serif; }.data-tools { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }.data-tools h2 { font: 500 clamp(1.7rem, 3vw, 2.5rem)/1.05 Georgia, ui-serif, serif; letter-spacing: -.04em; }.data-tools p { color: var(--muted); }.data-tool-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; align-content: start; }.data-tool-actions .button { font-size: .8rem; }.data-tool-actions .form-status { flex-basis: 100%; margin: 4px 0 0; }
.empty-page { padding-block: var(--page-intro-gap) 150px; min-height: 65svh; }.site-footer { border-top: 1px solid var(--line); color: var(--muted); font-size: .8rem; }.footer-inner { min-height: 100px; }.footer-inner p { margin: 0; }
@media (max-width: 760px) { :root { --shell: min(1160px, calc(100% - 32px)); --page-intro-gap:24px; }.header-inner { min-height: 66px; }.site-nav { font-size: .76rem; flex-wrap: wrap; row-gap: 4px; }.hero { grid-template-columns: 1fr; gap: 40px; }.data-tools { grid-template-columns: 1fr; gap: 1px; }.section-block { padding-block: 54px; }.split-heading { align-items: start; flex-direction: column; }.list-row { grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; }.list-main strong { font-size: 1.05rem; }.list-meta { display: grid; gap: 0; justify-items: end; font-size: .7rem; }.list-meta span:first-child { display: none; }.article-grid { grid-template-columns: 1fr; }.assessment-progress { gap: 8px; font-size: .72rem; }.likert { gap: 6px; }.likert-end { font-size: .7rem; }.likert-option span { width: 100%; height: 52px; border-radius: var(--radius); }.assessment-actions { margin-top: 36px; }.data-tools { padding-bottom: 70px; }.data-tool-actions { align-items: stretch; flex-direction: column; }.data-tool-actions .button { width: 100%; }.footer-inner { align-items: flex-start; flex-direction: column; justify-content: center; gap: 6px; } }
@media (max-width: 760px) { .header-inner { grid-template-columns: 1fr auto; grid-template-areas: "brand actions" "nav preferences"; row-gap: 10px; padding-block: 10px; }.site-nav { justify-self: stretch; justify-content: space-between; gap: 12px; }.header-preferences { justify-self: end; } }
@media (max-width: 480px) { .site-nav { font-size: .74rem; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }

.account-area { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.account-email { max-width: 18ch; overflow: hidden; text-overflow: ellipsis; }
.account-logout-button { min-height: 40px; padding: 6px 0; border: 0; color: var(--muted); background: transparent; font-size: .75rem; font-weight: 700; }
.account-logout-button:hover { color: var(--warm); }
.account-page { max-width: 760px; min-height: 70svh; padding-block: var(--page-intro-gap) 110px; }
.account-page h1 { max-width: 720px; margin: 14px 0 18px; font: 500 var(--h1-size)/.97 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.06em; }
.account-lede { max-width: 610px; margin: 0 0 34px; color: var(--muted); font-size: 1.1rem; }
.account-form { display: grid; gap: 18px; max-width: 480px; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-large); background: var(--surface); }
.form-field { display: grid; gap: 7px; }
.form-field label { color: var(--ink); font-size: .82rem; font-weight: 700; }
.password-control { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.form-field input { width: 100%; min-height: 48px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: var(--paper); }
.password-control input { min-width: 0; border-radius: 12px 0 0 12px; }
.password-toggle { min-width: 86px; min-height: 48px; padding: 10px 13px; border: 1px solid var(--line); border-left: 0; border-radius: 0 12px 12px 0; color: var(--muted); background: var(--paper); font-size: .76rem; font-weight: 700; white-space: nowrap; }
.password-toggle:hover { color: var(--ink); background: var(--accent-soft); }
.form-field input:focus { border-color: var(--accent); }
.form-field small { color: var(--muted); font-size: .76rem; }
.account-switch, .account-trust { margin: 18px 0 0; color: var(--muted); font-size: .85rem; }
.account-switch a { color: var(--accent); font-weight: 700; }
.account-trust { display: flex; align-items: center; gap: 8px; }
.account-notice { display: grid; gap: 8px; max-width: 620px; margin: 30px 0; padding: 18px 20px; border-left: 3px solid var(--accent); background: var(--accent-soft); }
.account-notice span { color: var(--muted); }
.account-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.account-security { margin-top: 58px; border-top: 1px solid var(--line); }
.account-section-heading { max-width: 650px; padding-top: 30px; }
.account-section-heading h2 { margin: 11px 0 8px; font: 500 clamp(1.9rem, 4vw, 3rem)/1.04 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.045em; }
.account-section-heading h3, .account-security-section h3 { margin: 8px 0; font: 500 clamp(1.5rem, 3vw, 2.1rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.04em; }
.account-section-heading p:not(.eyebrow), .account-security-section p:not(.eyebrow) { max-width: 620px; color: var(--muted); }
.account-section-heading-compact { padding-top: 0; }
.account-security-section { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 22px 34px; align-items: center; padding: 30px 0; border-top: 1px solid var(--line); }
.account-security-section > .account-section-heading, .account-security-section > .account-sessions-state, .account-security-section > .account-sessions-list, .account-security-section > .account-sessions-action-status, .account-security-section > [data-sessions-retry], .account-security-section > .account-nojs-note { grid-column: 1 / -1; }
.account-security-section > .account-section-heading + .account-sessions-state { margin-top: -8px; }
.account-security-section > p { margin: 0; }
.account-sessions-state { min-height: 1.4em; color: var(--muted); font-size: .9rem; }
.account-sessions-state[data-state="error"] { color: var(--warm); }
.account-sessions-list { display: grid; gap: 0; margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.account-session-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line); }
.account-session-copy strong { display: block; color: var(--ink); }
.account-session-copy p { margin: 6px 0 0; color: var(--muted); font-size: .78rem; }
.account-session-revoke { min-height: 42px; padding-inline: 15px; font-size: .76rem; }
.account-sessions-action-status { color: var(--accent); font-size: .85rem; }
.account-danger-zone { border-top-color: color-mix(in srgb, var(--warm) 35%, var(--line)); }
.account-danger-zone h3 { color: var(--warm); }
.button-danger { border: 1px solid color-mix(in srgb, var(--warm) 60%, var(--line)); color: var(--warm); background: transparent; }
.button-danger:hover { color: var(--paper); background: var(--warm); }
.account-nojs-note { color: var(--muted); font-size: .82rem; }
.account-nojs-note a { color: var(--accent); font-weight: 700; }
.account-delete-enhanced { justify-self: end; }
.account-dialog { position: fixed; inset: 0; z-index: 20; display: grid; place-items: center; padding: 24px; background: color-mix(in srgb, var(--ink) 36%, transparent); }
.account-dialog[aria-hidden="true"] { display: none; }
.account-dialog-card { position: relative; width: min(100%, 460px); padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-large); color: var(--ink); background: var(--surface); box-shadow: 0 24px 70px rgba(0, 0, 0, .22); }
.account-dialog-card h2 { margin: 10px 0; font: 500 2rem/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.04em; }
.account-dialog-card > p:not(.eyebrow) { color: var(--muted); }
.account-dialog-close { position: absolute; top: 12px; right: 14px; width: 38px; height: 38px; border: 0; color: var(--muted); background: transparent; font-size: 1.5rem; }
.account-dialog-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.account-dialog-actions .form-status { flex-basis: 100%; }
.account-dialog-actions .form-field { flex-basis: 100%; }
@media (max-width: 600px) {
  .account-security { margin-top: 46px; }
  .account-security-section { grid-template-columns: 1fr; gap: 16px; padding-block: 24px; }
  .account-security-section > .button, .account-delete-enhanced { justify-self: start; }
  .account-session-item { grid-template-columns: 1fr; gap: 14px; }
  .account-session-revoke { justify-self: start; }
  .account-dialog { padding: 16px; }
  .account-dialog-card { padding: 24px 20px; }
}

/* Career Compass / quiet guidance direction */
html { scroll-behavior: smooth; }
[hidden] { display: none !important; }
body { font-family: "Avenir Next", "Segoe UI", system-ui, sans-serif; line-height: 1.55; background: var(--paper); }
::selection { color: var(--accent-contrast); background: var(--accent); }
h1, h2, h3 { text-wrap: balance; }

.site-header { border-bottom-color: color-mix(in srgb, var(--line) 88%, transparent); background: color-mix(in srgb, var(--paper) 88%, transparent); }
.header-inner { grid-template-columns: auto minmax(0, 1fr) auto auto; grid-template-areas: "brand nav preferences actions"; gap: 20px; min-height: 72px; }
.brand { gap: 11px; font-family: "Iowan Old Style", Baskerville, Georgia, serif; font-size: 1.12rem; letter-spacing: -.025em; }
.brand-mark { width: 30px; height: 30px; border-width: 1.5px; }
.brand-mark svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.header-actions { grid-area: actions; display: flex; align-items: center; justify-content: flex-end; gap: 14px; min-width: 0; }
.header-preferences { grid-area: preferences; display: flex; align-items: center; gap: 8px; }
.language-switcher { position: relative; }
.language-trigger { display: inline-flex; align-items: center; justify-content: center; min-width: 54px; min-height: 44px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: var(--surface); font-size: .75rem; font-weight: 700; letter-spacing: .04em; cursor: pointer; }
.language-trigger::-webkit-details-marker { display: none; }
.language-menu { left: 0; min-width: 136px; margin: 0; }
.language-option { min-height: 44px; padding: 6px 12px; border: 0; border-radius: 8px; color: var(--muted); background: transparent; font-size: .75rem; font-weight: 700; letter-spacing: .04em; }
.account-link { color: var(--accent); font-size: .78rem; font-weight: 700; white-space: nowrap; }
.brand { min-height: 44px; }
.text-link { display: inline-flex; align-items: center; min-height: 44px; }
.account-link { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; }
.account-icon { width: 17px; height: 17px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.site-nav { justify-self: end; gap: 26px; color: var(--muted); font-size: .87rem; }
.site-nav a { border-bottom: 1px solid transparent; transition: color .18s ease, border-color .18s ease; }
.site-nav a:hover, .site-nav a.is-active { color: var(--ink); border-color: var(--accent); }
.theme-trigger { border-radius: 999px; background: var(--surface); }
.theme-trigger:hover, .theme-trigger[aria-expanded="true"], .language-trigger:hover, .language-switcher[open] .language-trigger { background: var(--accent-soft); }
.theme-option { border-radius: 8px; }

.hero { display: grid; align-items: start; grid-template-columns: minmax(0, 1.04fr) minmax(340px, .96fr); gap: clamp(48px, 8vw, 104px); min-height: min(700px, calc(100svh - 73px)); padding-block: var(--page-intro-gap) clamp(48px, 5.5vw, 72px); }
.hero h1, .page-heading h1, .test-heading h1, .article-page h1, .empty-page h1 { font-family: "Iowan Old Style", Baskerville, Georgia, serif; font-weight: 600; }
.hero h1 { max-width: 720px; letter-spacing: -.07em; }
.hero .lede { max-width: 610px; }
.hero-copy { position: relative; z-index: 1; }
.action-row { align-items: center; gap: 24px; margin-top: 30px; }
.button { min-height: 48px; border-radius: 999px; padding-inline: 20px; transition: background .18s ease, border-color .18s ease, color .18s ease, filter .18s ease; }
.button:hover { filter: brightness(.98); }
.button-primary { box-shadow: 0 8px 20px color-mix(in srgb, var(--accent) 14%, transparent); }
.button-secondary { border: 1px solid var(--accent); color: var(--accent); background: transparent; }
.button-secondary:hover { color: var(--accent-contrast); background: var(--accent); }
.trust-line { display: flex; align-items: center; gap: 8px; margin: 18px 0 0; color: var(--muted); font-size: .82rem; }
.trust-icon { display: inline-grid; place-items: center; width: 17px; height: 17px; border: 1px solid color-mix(in srgb, var(--accent) 55%, var(--line)); border-radius: 50%; color: var(--accent); font-size: .67rem; font-weight: 800; }
.hero-map { position: relative; min-height: 440px; padding: 28px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--line) 92%, var(--accent)); border-radius: 26px; background: var(--paper-deep); isolation: isolate; }
.hero-map::before { content: ""; position: absolute; inset: 0; z-index: -2; pointer-events: none; }
.hero-map::after { content: ""; position: absolute; width: 310px; height: 310px; right: -122px; top: 58px; z-index: -1; border: 1px solid color-mix(in srgb, var(--accent) 18%, transparent); border-radius: 50%; background: color-mix(in srgb, var(--accent-soft) 72%, transparent); box-shadow: 0 0 0 34px color-mix(in srgb, var(--accent) 5%, transparent); }
.map-header, .map-labels { position: relative; z-index: 3; }
.map-header { display: flex; justify-content: space-between; color: var(--muted); font-size: .67rem; font-weight: 800; letter-spacing: .14em; }
.map-header span:last-child { color: var(--ink); font-variant-numeric: tabular-nums; }
.map-path { position: relative; z-index: 0; height: 260px; margin: 22px 0 4px; overflow: hidden; }
.map-svg { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; overflow: hidden; pointer-events: none; }
.map-orbit { fill: none; stroke: color-mix(in srgb, var(--muted) 45%, transparent); stroke-width: 1.1; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.map-orbit-wide { opacity: .78; }
.map-orbit-mid { opacity: .42; }
.map-orbit-high { opacity: .28; }
.map-route, .map-arrowhead { fill: none; stroke: color-mix(in srgb, var(--muted) 64%, transparent); stroke-width: 1.15; vector-effect: non-scaling-stroke; opacity: .78; transition: stroke .24s ease, opacity .24s ease, filter .24s ease; }
.map-route { stroke-linecap: round; stroke-linejoin: round; }
.map-arrowhead { stroke-linecap: round; stroke-linejoin: round; }
.map-route[data-state="complete"], .map-arrowhead[data-state="complete"] { stroke: var(--accent); opacity: 1; filter: drop-shadow(0 0 4px color-mix(in srgb, var(--accent) 55%, transparent)); }
.map-node { position: absolute; z-index: 2; display: grid; place-items: center; width: 76px; height: 76px; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); background: color-mix(in srgb, var(--paper-deep) 76%, var(--surface)); transition: border-color .24s ease, background .24s ease, color .24s ease, opacity .24s ease, box-shadow .24s ease, text-shadow .24s ease; }
.map-node b { font: 500 1.4rem/1 "Iowan Old Style", Baskerville, Georgia, serif; font-variant-numeric: tabular-nums; }
.map-node-one { left: 8%; top: 58%; }
.map-node-two { left: 44%; top: 33%; }
.map-node-three { right: 5%; top: 8%; }
.map-node[data-state="current"] { border-color: var(--warm); color: var(--warm); background: color-mix(in srgb, var(--paper-deep) 76%, var(--surface)); box-shadow: 0 0 0 8px color-mix(in srgb, var(--warm) 11%, transparent), 0 0 24px color-mix(in srgb, var(--warm) 22%, transparent); animation: map-current-pulse 2.8s ease-in-out infinite; }
.map-node[data-state="current"] b { text-shadow: 0 0 15px color-mix(in srgb, var(--warm) 60%, transparent); }
.map-node[data-state="complete"] { border-color: var(--accent); color: var(--accent); background: color-mix(in srgb, var(--accent-soft) 76%, var(--paper-deep)); box-shadow: 0 0 0 8px color-mix(in srgb, var(--accent) 11%, transparent), 0 0 28px color-mix(in srgb, var(--accent) 25%, transparent); }
.map-node[data-state="complete"] b { text-shadow: 0 0 16px color-mix(in srgb, var(--accent) 72%, transparent); }
.map-node[data-state="upcoming"] { box-shadow: none; opacity: .72; }
@keyframes map-current-pulse { 0%, 100% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--warm) 11%, transparent), 0 0 24px color-mix(in srgb, var(--warm) 18%, transparent); } 50% { box-shadow: 0 0 0 12px color-mix(in srgb, var(--warm) 5%, transparent), 0 0 31px color-mix(in srgb, var(--warm) 28%, transparent); } }
.map-labels { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; border-top: 1px solid color-mix(in srgb, var(--line) 78%, transparent); padding-top: 18px; background: var(--paper-deep); }
.map-labels span { display: grid; gap: 3px; }
.map-labels strong { font: 500 1.1rem/1.1 "Iowan Old Style", Baskerville, Georgia, serif; }
.map-labels small { color: var(--muted); font-size: .72rem; }

.section-block { padding-block: 88px; }
.section-heading h2, .split-heading h2 { font-family: "Iowan Old Style", Baskerville, Georgia, serif; }
.section-heading > p:last-child { max-width: 420px; margin: 17px 0 0; color: var(--muted); }
.starter-section { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr); gap: clamp(42px, 8vw, 120px); align-items: start; }
.section-heading h2 { max-width: 470px; margin: 12px 0 0; font-size: clamp(2rem, 4vw, 3.35rem); line-height: 1.02; letter-spacing: -.05em; }
.starter-panel { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-large); background: var(--surface); }
.starter-panel-top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; color: var(--muted); font-size: .76rem; }
.step-badge { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: var(--accent-contrast); background: var(--accent); font-size: .7rem; font-weight: 800; }
.starter-meta { letter-spacing: .03em; }
.recommended-label { margin-left: auto; color: var(--warm); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.starter-panel h3 { max-width: 580px; margin: 32px 0 10px; font: 500 clamp(1.75rem, 3vw, 2.6rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.045em; }
.starter-panel p { max-width: 650px; margin: 0 0 24px; color: var(--muted); }
.catalog-starter { margin-bottom: 48px; }
.catalog-starter-copy { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.catalog-starter-copy h2 { margin: 26px 0 8px; font: 500 clamp(1.65rem, 3vw, 2.4rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.045em; }
.catalog-starter-copy p { margin: 0; }
.list-intro { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 22px 0 12px; }
.list-intro p:last-child { margin: 0; color: var(--muted); font-size: .9rem; }
.list-row { min-height: 84px; padding-block: 20px; }
.list-row:hover { border-radius: 8px; background: var(--accent-soft); color: var(--ink); }
.list-row:hover .list-main strong { color: var(--accent); }
.list-main strong { font-family: "Iowan Old Style", Baskerville, Georgia, serif; font-size: 1.45rem; }
.list-main small { max-width: 680px; line-height: 1.45; }
.list-index { padding-inline-start: 8px; font-size: .7rem; letter-spacing: .08em; }
.list-meta { gap: 14px; }
.note-block { margin-top: 20px; padding-block: 24px; }

.page-heading, .test-heading { padding-block: var(--page-intro-gap) 54px; }
.page-heading h1, .test-heading h1 { max-width: 860px; margin-top: 14px; font-size: var(--h1-size); line-height: .97; }
.test-heading { padding-block-end: 30px; }
.test-heading h1 { max-width: 780px; }
.test-heading .lede { max-width: 620px; font-size: 1.04rem; }
.page-heading .trust-line { margin-top: 26px; }
.back-link { transition: color .18s ease; }
.back-link:hover { color: var(--accent); }
.test-heading-meta, .article-meta { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 14px; }
:is(.hero-copy,.page-heading,.article-page,.account-page,.empty-page,.career-report-header)>.eyebrow,.profile-hero>div:first-child>.eyebrow{min-height:44px}
.test-duration { color: var(--muted); font-size: .78rem; }
.test-heading .trust-line { margin-top: 24px; }

.dashboard-heading { padding-bottom: 44px; }
.dashboard-section-nav { display: flex; flex-wrap: wrap; gap: 0 24px; margin-block: -20px 36px; border-bottom: 1px solid var(--line); }
.dashboard-section-nav a { padding: 11px 0; color: var(--muted); font-size: .82rem; text-decoration: none; }
.dashboard-section-nav a:hover, .dashboard-section-nav a[aria-current="page"] { color: var(--accent); }
.dashboard-section-nav a[aria-current="page"] { border-bottom: 2px solid var(--accent); font-weight: 700; }
.dashboard-subpage-heading { padding-bottom: 32px; }
.dashboard-plan-empty { padding: 18px 0; border-top: 1px solid var(--line); color: var(--muted); }
.dashboard-plan-empty a { color: var(--accent); font-weight: 700; }
.dashboard-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; background: transparent; border: 0; margin-bottom: 42px; }
.profile-summary, .dashboard-history { min-height: 310px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-large); background: var(--surface); }
.next-step-panel { background: var(--accent-soft); border-color: color-mix(in srgb, var(--accent) 22%, var(--line)); }
.profile-summary h2, .dashboard-history h2 { margin: 14px 0 12px; font: 500 clamp(2rem, 4vw, 3.2rem)/1 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.05em; }
.profile-summary p:not(.eyebrow), .dashboard-history p { color: var(--muted); }
.profile-summary .button { margin-top: 18px; }
.local-status { display: flex; align-items: center; gap: 8px; margin-top: 28px; font-size: .76rem; }
.status-dot { display: inline-block; width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 12%, transparent); }
.dashboard-journey { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 28px 0 0; padding: 18px 0 0; border-top: 1px solid color-mix(in srgb, var(--accent) 22%, var(--line)); list-style: none; }
.dashboard-journey-step { min-width: 0; }
.dashboard-journey-link { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "number status" "label label"; gap: 8px 9px; min-height: 74px; padding: 10px; border: 1px solid transparent; border-radius: 12px; color: var(--ink); transition: background .18s ease, border-color .18s ease; }
.dashboard-journey-link:hover { border-color: color-mix(in srgb, var(--accent) 32%, var(--line)); background: color-mix(in srgb, var(--paper) 62%, transparent); }
.dashboard-journey-link:focus-visible { position: relative; z-index: 1; }
.dashboard-journey-step[data-state="current"] .dashboard-journey-link { border-color: color-mix(in srgb, var(--accent) 42%, var(--line)); background: color-mix(in srgb, var(--paper) 82%, transparent); }
.dashboard-journey-step[data-state="upcoming"] .dashboard-journey-link { color: var(--muted); }
.dashboard-journey-number { grid-area: number; display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); font-size: .68rem; font-weight: 800; }
.dashboard-journey-step[data-state="complete"] .dashboard-journey-number { border-color: var(--accent); background: var(--accent); color: var(--accent-contrast); }
.dashboard-journey-step[data-state="current"] .dashboard-journey-number { border-color: var(--warm); color: var(--warm); }
.dashboard-journey-label { grid-area: label; min-width: 0; overflow: hidden; font-size: .82rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-journey-status { grid-area: status; justify-self: end; align-self: center; color: var(--muted); font-size: .66rem; font-weight: 700; white-space: nowrap; }
.dashboard-journey-step[data-state="current"] .dashboard-journey-status { color: var(--warm); }
.dashboard-journey-step[data-state="complete"] .dashboard-journey-status { color: var(--accent); }
.timeline { margin-top: 22px; }
.timeline p { display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; gap: 12px; margin: 0; padding: 13px 0; border-top: 1px solid var(--line); font-size: .88rem; }
.timeline p:last-child { border-bottom: 1px solid var(--line); }
.timeline strong { color: var(--accent); }
.timeline-label { min-width: 0; overflow: hidden; color: var(--ink); text-overflow: ellipsis; white-space: nowrap; }
.timeline time { color: var(--muted); font-size: .75rem; white-space: nowrap; }
.account-prompt { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; margin-bottom: 46px; padding: 28px 30px; border: 1px solid var(--line); border-radius: var(--radius-large); background: var(--paper-deep); }
.account-prompt h2 { margin: 11px 0 6px; font: 500 clamp(1.65rem, 3vw, 2.35rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.045em; }
.account-prompt p:not(.eyebrow) { max-width: 650px; margin: 0; color: var(--muted); }
.account-benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-width: 760px; margin: 24px 0 0; padding: 0; list-style: none; }
.account-benefit { display: flex; align-items: center; gap: 9px; min-width: 0; padding-top: 12px; border-top: 1px solid color-mix(in srgb, var(--accent) 24%, var(--line)); color: var(--muted); font-size: .76rem; line-height: 1.35; }
.account-benefit svg { width: 18px; height: 18px; flex: 0 0 auto; fill: none; stroke: var(--accent); stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.account-prompt-side { display: grid; justify-items: end; gap: 9px; }
.future-note { color: var(--muted); font-size: .72rem; }
.dashboard-results { padding-block: 42px 78px; }
.dashboard-results h2, .data-tools h2 { font-family: "Iowan Old Style", Baskerville, Georgia, serif; }
.dashboard-result { padding-block: 24px 30px; }
.dashboard-result h3 { font-family: "Iowan Old Style", Baskerville, Georgia, serif; font-size: 1.45rem; }
.dashboard-result-label { margin: 8px 0 0; color: var(--accent) !important; font-weight: 700; }
.dashboard-reading-guide { margin: 34px 0 10px; padding: 24px 0 28px; border-block: 1px solid var(--line); }
.dashboard-reading-guide h2, .dashboard-reading-guide h3 { margin: 10px 0 0; font: 500 clamp(1.45rem, 2.6vw, 2.1rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.04em; }
.dashboard-reading-guide-intro { max-width: 700px; margin: 10px 0 0; color: var(--muted); }
.dashboard-reading-guide-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 24px; }
.dashboard-reading-guide-item { min-width: 0; padding-top: 14px; border-top: 2px solid var(--accent); }
.dashboard-reading-guide-item h4 { margin: 8px 0; font: 500 1.2rem/1.12 "Iowan Old Style", Baskerville, Georgia, serif; }
.dashboard-reading-guide-copy { margin: 0; color: var(--muted); font-size: .82rem; }
.dashboard-reading-guide-boundary { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid var(--line); color: var(--muted); font-size: .75rem; line-height: 1.45; }
.test-expectations { margin: 0 auto 42px; }
.test-expectations-note { display: flex; align-items: center; gap: 8px; margin: 24px 0 0; color: var(--muted); font-size: .76rem; }
.dashboard-action-plan { padding-block: 42px 54px; border-top: 1px solid var(--line); }
.dashboard-action-plan-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.dashboard-action-plan-heading h2 { margin: 10px 0 8px; font: 500 clamp(1.7rem, 3vw, 2.5rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.04em; }
.dashboard-action-plan-heading p:not(.eyebrow) { max-width: 660px; margin: 0; color: var(--muted); }
.dashboard-action-plan-progress { flex: 0 0 auto; margin: 0; color: var(--accent); font-size: .78rem; font-weight: 700; white-space: nowrap; }
.dashboard-action-plan-list { display: grid; gap: 0; margin: 28px 0 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.dashboard-action-plan-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; padding: 19px 0; border-bottom: 1px solid var(--line); }
.dashboard-action-plan-copy { min-width: 0; }
.dashboard-action-plan-copy h3 { margin: 7px 0 5px; font: 500 1.25rem/1.12 "Iowan Old Style", Baskerville, Georgia, serif; }
.dashboard-action-plan-copy > p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: .84rem; }
.dashboard-action-plan-item[data-state="done"] .dashboard-action-plan-copy h3 { color: var(--muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.dashboard-action-plan-actions { display: flex; align-items: center; justify-content: end; gap: 16px; flex-wrap: wrap; }
.action-plan-check { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--muted); font-size: .78rem; font-weight: 700; cursor: pointer; }
.action-plan-check input { width: 20px; height: 20px; margin: 0; accent-color: var(--accent); }
.dashboard-article-guidance { padding-block: 34px 58px; border-top: 1px solid var(--line); }
.dashboard-article-guidance-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.dashboard-article-guidance-heading h2 { margin: 10px 0 8px; font: 500 clamp(1.7rem, 3vw, 2.5rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.04em; }
.dashboard-article-guidance-heading p:not(.eyebrow) { max-width: 680px; margin: 0; color: var(--muted); }
.dashboard-article-guidance-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; margin-top: 28px; }
.dashboard-article-guidance-card { min-width: 0; padding: 18px 0 0; border-top: 2px solid var(--accent); }
.dashboard-article-guidance-card h3 { margin: 9px 0 8px; font: 500 clamp(1.35rem, 2.3vw, 1.85rem)/1.08 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.035em; }
.dashboard-article-guidance-title { color: var(--ink); text-decoration: none; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.dashboard-article-guidance-title:hover { color: var(--accent); text-decoration: underline; }
.dashboard-article-guidance-preview { max-width: 560px; margin: 0; color: var(--muted); font-size: .86rem; }
.dashboard-article-guidance-reason { max-width: 560px; margin: 17px 0 18px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--ink); font-size: .78rem; line-height: 1.5; }
.dashboard-attempt-changes-mark { display: inline-grid; width: 42px; height: 42px; place-items: center; border: 1px solid color-mix(in srgb, var(--accent) 45%, var(--line)); border-radius: 50%; color: var(--accent); font: 500 1.3rem/1 Georgia, ui-serif, serif; }
.dashboard-attempt-change-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; margin-top: 30px; }
.dashboard-attempt-change-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.dashboard-attempt-change-heading h3 { margin: 0; }
.dashboard-attempt-change-state { max-width: 150px; color: var(--accent); font-size: .68rem; font-weight: 800; line-height: 1.3; text-align: right; }
.dashboard-attempt-change[data-state="stable"] .dashboard-attempt-change-state { color: var(--muted); }
.dashboard-attempt-change[data-state="version-changed"] .dashboard-attempt-change-state { color: var(--warm); }
.dashboard-change-dates { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 10px; align-items: end; margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--line); }
.dashboard-change-date { display: grid; gap: 4px; min-width: 0; }
.dashboard-change-date:last-child { text-align: right; }
.dashboard-change-date-label { color: var(--muted); font-size: .68rem; }
.dashboard-change-date time { overflow: hidden; font-size: .78rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-change-dates-arrow { color: var(--accent); font-size: 1.1rem; line-height: 1; }
.dashboard-change-labels { display: grid; gap: 4px; margin-top: 14px; }
.dashboard-change-labels p { overflow: hidden; margin: 0; color: var(--muted); font-size: .77rem; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-change-list { grid-template-columns: 1fr; gap: 7px; margin-top: 18px; }
.dashboard-change-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: center; }
.dashboard-change-values { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.dashboard-change-delta { min-width: 48px; color: var(--accent); font-weight: 800; text-align: right; font-variant-numeric: tabular-nums; }
.dashboard-change-row[data-direction="down"] .dashboard-change-delta { color: var(--warm); }
.dashboard-change-row[data-direction="same"] .dashboard-change-delta { color: var(--muted); }
.dashboard-attempt-change-note { margin: 16px 0 0; padding-top: 13px; border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; line-height: 1.5; }
.result-comparison, .dashboard-comparison { margin: 28px 0 8px; padding: 18px 0 0; border-top: 1px solid var(--line); }
.result-comparison h3, .dashboard-comparison h3 { margin: 0 0 7px; font: 500 1.2rem/1.1 Georgia, ui-serif, serif; }
.comparison-summary { margin: 0 0 12px; color: var(--muted); font-size: .86rem; }
.comparison-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.comparison-row { display: flex; justify-content: space-between; gap: 10px; padding: 9px 11px; border: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 72%, var(--paper-deep)); font-size: .84rem; }
.comparison-row strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.comparison-positive { color: var(--accent); font-weight: 700; }
.comparison-negative { color: var(--warm); font-weight: 700; }
.comparison-neutral { color: var(--muted); font-weight: 700; }
@media (max-width: 820px) { .dashboard-reading-guide-list { grid-template-columns: 1fr; } .dashboard-action-plan-heading { align-items: start; flex-direction: column; gap: 12px; } .dashboard-action-plan-progress { align-self: start; } .dashboard-action-plan-item { grid-template-columns: 1fr; gap: 14px; } .dashboard-action-plan-actions { justify-content: start; } .dashboard-article-guidance-heading { align-items: start; flex-direction: column; gap: 14px; } .dashboard-article-guidance-list { grid-template-columns: 1fr; gap: 26px; } .dashboard-attempt-changes-mark { display: none; } .dashboard-attempt-change-list { grid-template-columns: 1fr; } }

@media (max-width: 460px) {
  .dashboard-attempt-change { padding: 17px; }
  .dashboard-attempt-change-heading { flex-direction: column; gap: 7px; }
  .dashboard-attempt-change-state { max-width: none; text-align: left; }
  .dashboard-change-row { grid-template-columns: minmax(0, 1fr) auto; }
  .dashboard-change-values { grid-column: 1; grid-row: 2; font-size: .7rem; }
  .dashboard-change-delta { grid-column: 2; grid-row: 1 / span 2; }
}
.data-tools { gap: 56px; align-items: start; padding-block: 38px 100px; }
.data-tools h2 { margin: 11px 0 8px; }
.data-tool-actions { justify-content: flex-start; }
.data-tool-actions .button { border-radius: 999px; }

.assessment-shell { max-width: 920px; min-inline-size: 0; padding-bottom: 120px; }
.assessment-progress { flex-wrap: wrap; gap: 12px; }
.progress-track { min-width: 140px; height: 7px; border-radius: 999px; background: var(--line); }
.progress-track span { border-radius: inherit; }
.autosave-label { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; color: var(--muted); font-size: .75rem; }
.autosave-label[data-autosave-state="saving"], .autosave-label[data-autosave-state="saved"], .autosave-label[data-autosave-state="restored"] { color: var(--accent); }
.autosave-label[data-autosave-state="error"] { color: var(--warm); }
.autosave-retry { min-height: 30px; padding: 4px 9px; border: 1px solid currentColor; border-radius: 999px; color: inherit; background: transparent; font-size: .72rem; font-weight: 700; }
.question-stack { margin-top: 46px; }
.question-card legend { max-width: 760px; margin-bottom: 38px; font-family: "Iowan Old Style", Baskerville, Georgia, serif; pointer-events: none; }
.likert-guidance { max-width: 760px; margin: -20px 0 20px; color: var(--muted); font-size: .86rem; line-height: 1.45; }
.likert-option { position: relative; display: grid; grid-row: 2; min-width: 0; justify-items: center; }
.likert-option input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.likert-option span { border-color: var(--line); background: var(--surface); }
.likert-option input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 3px; }
.likert-option input:checked + span { box-shadow: 0 0 0 5px color-mix(in srgb, var(--accent) 14%, transparent); }
.question-flag { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 24px; padding: 9px 12px; border: 1px dashed var(--line); border-radius: 999px; color: var(--muted); background: transparent; font-size: .76rem; font-weight: 700; transition: border-color .18s ease, color .18s ease, background .18s ease; }
.question-flag:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
.question-flag[aria-pressed="true"] { border-style: solid; border-color: color-mix(in srgb, var(--accent) 50%, var(--line)); color: var(--accent); background: var(--accent-soft); }
.question-flag-icon { display: inline-grid; width: 18px; height: 18px; place-items: center; }
.question-flag-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; }
.question-flag[aria-pressed="true"] .question-flag-icon svg { fill: currentColor; }
.assessment-actions { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; }
.assessment-actions [data-review-return] { grid-column: 1 / -1; justify-self: start; }
.assessment-hint { color: var(--muted); font-size: .77rem; text-align: center; }
.form-status { color: var(--warm); }
.assessment-review { margin-top: 24px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-large); background: var(--surface); }
.assessment-review h2 { max-width: 680px; margin: 11px 0 12px; font: 500 clamp(2rem, 4vw, 3.2rem)/1 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.05em; }
.assessment-review h2:focus { outline: none; }
.assessment-review h2:focus-visible { outline: 3px solid var(--warm); outline-offset: 4px; }
.review-summary { margin: 0; color: var(--muted); }
.review-help { max-width: 680px; margin: 10px 0 0; color: var(--muted); font-size: .9rem; line-height: 1.45; }
.review-unanswered { min-height: 1.4em; margin: 12px 0 0; color: var(--warm); font-size: .9rem; }
.review-unanswered[data-state="saved"] { color: var(--accent); }
.review-flagged { margin-top: 24px; padding: 18px; border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line)); border-radius: 14px; background: color-mix(in srgb, var(--accent-soft) 45%, var(--surface)); }
.review-flagged h3, .review-list-heading { margin: 0; font: 600 .82rem/1.3 system-ui, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.review-flagged > p { margin: 9px 0 0; color: var(--muted); font-size: .84rem; }
.review-flagged-list { display: grid; gap: 9px; margin: 14px 0 0; padding: 0; list-style: none; }
.review-flagged-list:empty { display: none; }
.review-item.is-flagged { border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); background: var(--surface); }
.review-list-heading { margin-top: 26px; }
.review-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 26px 0; padding: 0; list-style: none; }
.review-item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 10px; align-items: baseline; width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: var(--paper); text-align: left; font-size: .82rem; font-weight: 700; }
.review-item-number { color: var(--muted); white-space: nowrap; }
.review-item-question { min-width: 0; overflow-wrap: anywhere; font-weight: 600; }
.review-item-answer { grid-column: 2; color: var(--muted); font-size: .75rem; font-weight: 600; }
.review-item:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
.review-item.is-unanswered { border-style: dashed; color: var(--warm); }
.review-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-top: 20px; border-top: 1px solid var(--line); }
.review-actions .button:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.result-panel { margin-top: 70px; padding: 36px 0 0; border-top-width: 2px; }
.result-panel h2:focus { outline: none; }
.result-panel h2:focus-visible { outline: 3px solid var(--warm); outline-offset: 5px; }
.result-panel h2 { font-family: "Iowan Old Style", Baskerville, Georgia, serif; font-size: clamp(2.4rem, 5vw, 4.4rem); letter-spacing: -.06em; }
.result-label { color: var(--accent) !important; font-size: 1.1rem; font-weight: 700; }
.result-callout { max-width: 720px; margin: 26px 0 12px; color: var(--ink) !important; font: 500 clamp(1.25rem, 2.2vw, 1.7rem)/1.22 "Iowan Old Style", Baskerville, Georgia, serif; }
.result-chart-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-top: 44px; padding-top: 20px; border-top: 1px solid var(--line); }
.result-chart-heading h3 { margin: 0; font: 600 1rem/1.2 system-ui, sans-serif; }
.result-chart-heading span { color: var(--muted); font-size: .73rem; }




.result-next { margin-top: 42px; padding: 24px 0 0; }
.result-next h3 { font-family: "Iowan Old Style", Baskerville, Georgia, serif; font-size: 1.55rem; }
.result-actions { display: flex; align-items: center; gap: 24px; margin-top: 36px; }
.result-insights { margin-top: 42px; }
.result-insight-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.result-insight { padding: 22px; border: 1px solid var(--line); border-radius: var(--radius-large); background: var(--surface); }
.result-insight-heading { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.result-insight h3 { margin: 0; font: 600 1.05rem/1.15 system-ui, sans-serif; }
.result-insight-heading span { flex: 0 0 auto; color: var(--accent); font-size: .72rem; font-weight: 700; }
.result-insight-description { margin-top: 18px; color: var(--ink) !important; line-height: 1.55; }
.result-insight h4 { margin: 20px 0 6px; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }
.result-insight h4 + p { margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.55; }

.article-page { padding-block: var(--page-intro-gap) 120px; }
.article-subtitle { max-width: 700px; margin-bottom: 18px; font-size: 1.3rem; line-height: 1.45; }
.article-body { max-width: 710px; font-size: 1.08rem; line-height: 1.75; }
.article-body h2 { font-family: "Iowan Old Style", Baskerville, Georgia, serif; }
.article-next { max-width: 710px; margin: 70px 0 34px; padding: 28px 0 0; border-top: 1px solid var(--line); }
.article-next h2 { margin: 12px 0 8px; font: 500 clamp(1.75rem, 3vw, 2.6rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.045em; }
.article-next p:not(.eyebrow) { color: var(--muted); }
.methodology-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: 860px; margin-top: 54px; }
.methodology-card { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-large); background: var(--surface); break-inside: avoid; }
.methodology-card h2 { margin: 10px 0 12px; font: 500 clamp(1.5rem, 2.5vw, 2.1rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.04em; }
.methodology-card > div { color: var(--muted); font-size: .92rem; line-height: 1.55; }
.methodology-source { margin: 20px 0 0; padding-top: 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; }
.site-footer { background: color-mix(in srgb, var(--paper-deep) 38%, var(--paper)); }

.profile-page { padding-bottom: 100px; }
.profile-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .42fr); gap: 48px; align-items: start; padding-block: var(--page-intro-gap) 62px; }
.profile-hero h1 { max-width: 780px; margin: 14px 0 20px; font: 500 var(--h1-size)/.97 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.06em; }
.profile-hero .lede { max-width: 680px; }
.profile-status { display: inline-flex; align-items: center; gap: 9px; margin: 28px 0 0; color: var(--accent); font-size: .78rem; font-weight: 700; }
.profile-hero-note { align-self: center; max-width: 270px; padding: 20px 0 20px 20px; border-left: 2px solid var(--accent); color: var(--muted); font-size: .8rem; line-height: 1.5; }
.profile-hero-note p { margin: 0; }
.profile-hero-mark { display: inline-grid; place-items: center; width: 32px; height: 32px; margin-bottom: 16px; color: var(--accent); }
.profile-hero-mark svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.profile-card { min-height: 410px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-large); background: var(--surface); }
.profile-card-future { background: var(--paper-deep); }
.profile-card h2 { max-width: 520px; margin: 12px 0 12px; font: 500 clamp(1.9rem, 3.2vw, 3rem)/1.03 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.05em; }
.profile-card > p:not(.eyebrow) { max-width: 560px; margin: 0; color: var(--muted); }
.profile-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 34px 0 0; padding: 0; }
.profile-stat { display: grid; gap: 8px; min-width: 0; padding-top: 12px; border-top: 1px solid var(--line); }
.profile-stat dt { color: var(--muted); font-size: .72rem; }
.profile-stat dd { margin: 0; color: var(--ink); font: 500 2.2rem/1 "Iowan Old Style", Baskerville, Georgia, serif; }
.profile-data-note { margin-top: 24px !important; font-size: .82rem; }
.profile-card-action { margin-top: 28px; }
.profile-benefits { display: grid; gap: 0; margin: 28px 0 0; padding: 0; list-style: none; }
.profile-benefits li { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 9px 0; border-top: 1px solid color-mix(in srgb, var(--accent) 24%, var(--line)); color: var(--muted); font-size: .84rem; }
.profile-benefits svg { width: 19px; height: 19px; flex: 0 0 auto; fill: none; stroke: var(--accent); stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.profile-next { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-top: 16px; padding-block: 42px 0; border-top: 1px solid var(--line); }
.profile-next h2 { margin: 11px 0 8px; font: 500 clamp(1.8rem, 3vw, 2.7rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.045em; }
.profile-next p:not(.eyebrow) { max-width: 630px; margin: 0; color: var(--muted); }

@media (max-width: 820px) {
  .profile-hero { grid-template-columns: 1fr; gap: 28px; }
  .profile-hero-note { max-width: none; }
  .profile-grid { grid-template-columns: 1fr; }
  .profile-card { min-height: auto; }
  .profile-next { align-items: start; flex-direction: column; }
}

@media (max-width: 600px) {
  .profile-page { padding-bottom: 72px; }
  .profile-hero { padding-block: var(--page-intro-gap) 42px; }
  .profile-card { padding: 22px; }
  .profile-card h2 { font-size: clamp(1.9rem, 9vw, 2.55rem); }
  .profile-stats { gap: 8px; }
  .profile-stat dd { font-size: 1.85rem; }
  .profile-next { padding-top: 32px; }
  .profile-next .button { width: 100%; }
}

@media (max-width: 820px) {
  .header-inner { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "brand actions" "nav preferences"; column-gap: 8px; row-gap: 8px; padding-block: 10px; }
  .site-nav { justify-self: stretch; justify-content: space-between; gap: 12px; }
  .header-preferences { justify-self: end; }
  .account-link { font-size: .72rem; }
  .hero { grid-template-columns: 1fr; min-height: auto; padding-block: var(--page-intro-gap) 84px; }
  .hero-map { max-width: 620px; min-height: 390px; }
  .starter-section, .dashboard-layout, .data-tools { grid-template-columns: 1fr; gap: 24px; }
  .catalog-starter-copy { align-items: start; flex-direction: column; }
  .account-prompt { grid-template-columns: 1fr; gap: 22px; }
  .account-benefits { grid-template-columns: 1fr; max-width: 520px; }
  .account-prompt-side { justify-items: start; }
}

@media (min-width: 601px) {
  .site-nav a { white-space: nowrap; }
}

@media (max-width: 600px) {
  :root { --h1-size: clamp(2.35rem, 10.5vw, 3.7rem); --shell: min(1180px, calc(100% - 32px)); }
  h1, h2, h3 { overflow-wrap: anywhere; }
  .brand { min-width: 0; font-size: .96rem; }
  .account-link { width: 44px; justify-content: center; padding-inline: 0; font-size: 0; }
  .account-link span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  .hero { padding-block: var(--page-intro-gap) 66px; }
  .hero .lede { font-size: 1.05rem; }
  .hero-map { min-height: 350px; padding: 20px; }
  .map-path { height: 224px; margin-bottom: 12px; }
  .map-node { width: 62px; height: 62px; }
  .map-node b { font-size: 1.1rem; }
  .map-labels { gap: 8px; }
  .map-labels strong { font-size: .95rem; }
  .map-labels small { font-size: .65rem; }
  .section-block { padding-block: 60px; }
  .starter-panel { padding: 22px; }
  .recommended-label { width: 100%; margin-left: 0; }
  .list-intro { align-items: start; flex-direction: column; gap: 4px; }
  .list-row { grid-template-columns: 28px minmax(0, 1fr) auto; gap: 9px; padding-block: 18px; }
  .list-row:hover { box-shadow: inset 3px 0 var(--accent); }
  .list-main strong { font-size: 1.15rem; }
  .list-main small { font-size: .78rem; }
  .list-meta { font-size: .68rem; }
  .page-heading { padding-block: var(--page-intro-gap) 38px; }
  .test-heading { padding-block: var(--page-intro-gap) 28px; }
  .page-heading h1, .test-heading h1, .article-page h1 { overflow-wrap: anywhere; hyphens: auto; }
  .site-nav { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; gap: 8px; padding-bottom: 2px; scrollbar-width: none; }
  .site-nav::-webkit-scrollbar { display: none; }
  .site-nav a { flex: 0 0 auto; }
  .trust-line { align-items: flex-start; font-size: .76rem; }
  .assessment-progress { align-items: center; }
  .progress-track { order: 3; flex-basis: 100%; }
  .autosave-label { margin-left: auto; }
  .dashboard-journey { grid-template-columns: 1fr; gap: 0; }
  .dashboard-section-nav { gap: 0 18px; margin-block: -12px 28px; }
  .dashboard-section-nav a { font-size: .76rem; }
  .dashboard-journey-link { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "number label status"; align-items: center; min-height: 48px; padding-inline: 8px; }
  .dashboard-journey-label { font-size: .86rem; }
  .question-stack { margin-top: 34px; }
  .question-card legend { margin-bottom: 28px; font-size: 1.7rem; }
  .assessment-actions { position: sticky; bottom: 0; z-index: 2; grid-template-columns: 1fr auto; gap: 12px; margin: 34px -16px 0; padding: 14px 16px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 88%, transparent); backdrop-filter: blur(12px); }
  .assessment-hint { grid-column: 1 / -1; grid-row: 1; text-align: left; }
  .assessment-actions [data-prev] { grid-column: 1; grid-row: 2; }
  .assessment-actions [data-review-return] { width: 100%; }
  .assessment-actions [data-next], .assessment-actions [data-complete] { grid-column: 2; grid-row: 2; }
  .assessment-review { padding: 22px; }
  .review-list { grid-template-columns: 1fr; }
  .review-actions { align-items: stretch; flex-direction: column-reverse; }
  .review-actions .button { width: 100%; }
  .result-chart-heading { align-items: start; flex-direction: column; gap: 6px; }
  .result-insight-list { grid-template-columns: 1fr; }
  .result-actions { align-items: stretch; flex-direction: column; gap: 16px; }
  .article-subtitle { margin-bottom: 44px; font-size: 1.12rem; }
  .article-body { font-size: 1rem; }
  .methodology-grid { grid-template-columns: 1fr; }
  .footer-inner { min-height: 120px; }
}

@media (max-width: 360px) {
  .header-inner { column-gap: 6px; }
  .brand { gap: 7px; font-size: .82rem; }
  .brand-mark { width: 26px; height: 26px; }
  .site-nav { justify-content: flex-start; flex-wrap: wrap; overflow-x: visible; column-gap: 8px; row-gap: 3px; }
  .site-nav a { flex: 0 1 auto; min-width: 0; }
  .site-nav a span { overflow-wrap: anywhere; }
}

@media (prefers-reduced-motion: reduce) {
  .button:hover, .list-row:hover { transform: none; }
  .map-node[data-state="current"] { animation: none; }
  .map-node, .map-route, .map-arrowhead, .question-flag { transition: none; }
}

/* Interaction polish: keep the editorial rhythm stable while still making state changes clear. */
.likert-option span { transition: background .18s ease, color .18s ease, border-color .18s ease; }
.likert-option span:hover { transform: none; border-color: var(--accent); background: var(--accent-soft); color: var(--ink); }
.review-item { transition: border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease; }
.review-item:hover { transform: none; box-shadow: inset 3px 0 var(--accent); }
.favorite-button:hover { transform: none; }
.list-row { transition: background .18s ease, color .18s ease, box-shadow .18s ease; }
.list-row:hover { padding-inline: 0; box-shadow: inset 3px 0 var(--accent); }
@media (max-width: 760px) {
  .list-row:hover { padding-inline: 0; }
}

.list-meta .list-status { color: var(--accent); font-weight: 700; }
.list-meta .list-status[data-state="complete"] { color: var(--muted); font-weight: 600; }
.list-meta .list-status[data-state="draft"] { color: var(--warm); }
.list-meta .list-status[data-state="stale"] { color: var(--warm); font-weight: 700; }
.form-status[data-state="saved"] { color: var(--accent); }
.form-status[data-state="error"] { color: var(--warm); }
.list-meta .list-arrow { color: var(--accent); font-size: 1.25rem; transform: translateX(-8px); }


.article-page { max-width: 1120px; }
.article-controls { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.article-controls label { display: grid; gap: 8px; color: var(--muted); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.article-controls input { width: min(420px, 68vw); min-height: 46px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: var(--surface); font-size: 1rem; letter-spacing: normal; text-transform: none; }
.article-controls input::placeholder { color: var(--muted); opacity: .8; }
.article-controls input:focus-visible { border-color: var(--accent); outline: 3px solid var(--focus); outline-offset: 2px; }
.article-filter-status { margin: 0 0 12px; color: var(--muted); font-size: .82rem; }
.article-filter-empty { margin-bottom: 80px; padding: 24px 0; border-bottom: 1px solid var(--line); color: var(--muted); }
.article-layout { display: grid; grid-template-columns: minmax(180px, 220px) minmax(0, 710px); align-items: start; gap: clamp(32px, 6vw, 78px); }
.article-toc { position: sticky; top: 98px; padding: 18px 0 18px 18px; border-left: 2px solid var(--line); }
.article-toc ol { display: grid; gap: 10px; margin: 14px 0 0; padding: 0; list-style: none; }
.article-toc li { line-height: 1.35; }
.article-toc li.toc-level-3 { padding-left: 14px; font-size: .88rem; }
.article-toc a { color: var(--muted); font-size: .88rem; }
.article-toc a:hover, .article-toc a:focus-visible { color: var(--accent); }
.article-progress { position: sticky; top: 72px; z-index: 3; height: 4px; margin: 0 0 42px; overflow: hidden; border-radius: 999px; background: var(--line); }
.article-progress span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--accent); transition: width .18s ease; }

.favorite-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 7px 11px; border: 1px dashed var(--line); border-radius: 999px; color: var(--muted); background: transparent; font-size: .75rem; font-weight: 700; transition: color .18s ease, border-color .18s ease, background .18s ease; }
.favorite-button:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
.favorite-button[aria-pressed="true"] { border-style: solid; border-color: color-mix(in srgb, var(--accent) 50%, var(--line)); color: var(--accent); background: var(--accent-soft); }
.favorite-button-compact { min-height: 30px; padding: 5px 9px; font-size: .68rem; }
.favorite-icon { display: inline-grid; width: 1.05rem; height: 1.05rem; place-items: center; line-height: 1; }
.favorite-icon-svg { width: 100%; height: 100%; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: fill .18s ease, transform .18s ease; }
.favorite-icon[data-favorite-icon-state="active"] .favorite-icon-svg { fill: currentColor; transform: scale(1.04); }

/* Keep compact controls visually light while preserving reliable touch and keyboard targets. */
:where(a, button, input, select) { touch-action: manipulation; -webkit-tap-highlight-color: color-mix(in srgb, var(--accent) 18%, transparent); }
.site-nav a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 10px; }
.theme-trigger { min-height: 44px; }
.theme-option { min-height: 44px; }
.back-link { display: inline-flex; align-items: center; min-height: 44px; }
.favorite-button { min-height: 44px; }
.article-teaser-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; }
.article-teaser-link { display: flex; min-height: 194px; flex-direction: column; align-items: flex-start; width: 100%; }
.favorites-panel { padding-block: 42px 72px; border-top: 1px solid var(--line); }
.favorites-panel h2 { max-width: 620px; margin: 11px 0 8px; font: 500 clamp(1.7rem, 3vw, 2.5rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.04em; }
.favorites-intro { max-width: 620px; margin: 0; color: var(--muted); }
.favorites-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.favorite-group { padding: 22px; border: 1px solid var(--line); border-radius: var(--radius-large); background: var(--surface); }
.favorite-group, .favorite-list { min-width: 0; }
.favorite-group h3 { margin: 0 0 14px; font: 500 1.25rem/1.1 "Iowan Old Style", Baskerville, Georgia, serif; }
.favorite-list { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.favorite-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 9px; border-top: 1px solid var(--line); }
.favorite-list-link { min-width: 0; overflow: hidden; color: var(--ink); overflow-wrap: anywhere; text-overflow: ellipsis; white-space: normal; }
a.favorite-list-link:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.favorite-empty { margin: 0; color: var(--muted); font-size: .85rem; }

@media (max-width: 820px) {
  .favorites-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .favorite-list li { align-items: flex-start; flex-direction: column; gap: 8px; }
  .favorite-list .favorite-button { width: 100%; }
}

@media (max-width: 820px) {
  .list-meta .list-status { display: inline !important; }
  .list-meta .list-count { display: none; }
  .article-controls { align-items: start; flex-direction: column; gap: 14px; }
  .article-controls input { width: min(100%, 520px); }
  .article-layout { grid-template-columns: 1fr; gap: 32px; }
  .article-toc { position: static; padding: 18px 0 18px 16px; }
  .article-progress { top: 66px; margin-bottom: 32px; }
}

.button:focus-visible, button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, .favorite-button:focus-visible, .theme-trigger:focus-visible, .theme-option:focus-visible { outline: 3px solid var(--warm); outline-offset: 3px; }
h2[id], h3[id] { scroll-margin-top: 112px; }

@media print {
  @page { size: A4 portrait; margin: 16mm 14mm; }
  :root {
    --paper: #ffffff;
    --paper-deep: #f4f1ea;
    --surface: #ffffff;
    --ink: #1e2723;
    --muted: #4d5a53;
    --line: #b8c0b9;
    --accent: #285b4b;
    --accent-soft: #e7f0eb;
    --warm: #8c4b2f;
  }
  html, body { background: #ffffff !important; color: var(--ink) !important; }
  body { font-size: 11pt; }
  .site-header, .site-footer, .skip-link, .back-link, .trust-line, .assessment-progress, .assessment-actions, .article-controls, .article-progress, .favorite-button, .account-dashboard,
  .data-tools, .account-prompt, .button, .text-link { display: none !important; }
  .shell, .article-page { width: auto; max-width: none; margin: 0; }
  .test-heading, .dashboard-heading { padding: 0 0 12mm; }
  .test-heading h1, .page-heading h1 { max-width: none; margin-top: 5mm; font-size: 30pt; }
  .test-heading .lede, .dashboard-heading .lede { max-width: none; font-size: 12pt; }
  .assessment-shell { padding: 0; }
  .question-stack, .assessment-shell > form { display: none !important; }
  .result-panel { display: block !important; margin: 0; padding: 8mm 0 0; border-top: 2px solid var(--ink); }
  .result-panel h2 { font-size: 28pt; }
  .result-callout { max-width: none; font-size: 15pt; }
  .result-copy, .result-insight h4 + p, .result-insight-description { color: var(--ink) !important; }
  .result-insight-list { grid-template-columns: 1fr 1fr; gap: 6mm; }
  .result-insight { border-color: var(--line); break-inside: avoid; }
  .result-chart-heading { margin-top: 8mm; }
  .score-chart { max-height: 70mm; }
  .score-list, .result-next { break-inside: avoid; }
  .dashboard-layout { grid-template-columns: 1fr 1fr; gap: 5mm; background: transparent; border: 0; }
  .profile-summary, .dashboard-history { min-height: auto; padding: 6mm; border-color: var(--line); background: #ffffff; }
  .dashboard-results { padding: 8mm 0; }
  .dashboard-result { break-inside: avoid; }
  .dashboard-result .score-chart { max-height: 58mm; }
  .article-page { padding: 0; }
  .article-body { max-width: none; font-size: 11pt; }
  .article-layout { display: block; }
  .article-toc { display: none; }
  .article-next { break-before: page; }
  .methodology-grid { grid-template-columns: 1fr 1fr; }
  .methodology-card { padding: 5mm; }
}

.sync-panel { display: grid; grid-template-columns: 1fr auto; gap: 20px 36px; margin-bottom: 46px; padding: 28px 30px; border: 1px solid color-mix(in srgb, var(--accent) 36%, var(--line)); border-radius: var(--radius-large); background: var(--accent-soft); }
.sync-panel-copy h2 { margin: 11px 0 7px; font: 500 clamp(1.65rem, 3vw, 2.35rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.045em; }
.sync-panel-copy p:not(.eyebrow) { max-width: 650px; margin: 0; color: var(--muted); }
.sync-auto-toggle { display: flex; align-items: flex-start; gap: 10px; margin-top: 18px; color: var(--ink); font-weight: 700; }
.sync-auto-toggle input { flex: 0 0 auto; margin-top: .35em; accent-color: var(--accent); }
.sync-panel-copy p.sync-auto-help { margin-top: 7px; font-size: .8rem; }
.sync-panel-copy p.sync-auto-status { min-height: 1.4em; margin-top: 8px; font-size: .78rem; }
.sync-panel-actions { display: grid; justify-items: end; align-content: center; gap: 10px; }
.sync-note { margin: 0; color: var(--muted); font-size: .76rem; }
.sync-note .status-dot { display: inline-block; margin-right: 6px; }
.sync-preview { grid-column: 1 / -1; padding-top: 18px; border-top: 1px solid color-mix(in srgb, var(--accent) 24%, var(--line)); color: var(--ink); font-weight: 700; }
.sync-conflicts { grid-column: 1 / -1; display: grid; gap: 12px; }
.sync-conflict { display: grid; gap: 9px; margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.sync-conflict legend { padding: 0 5px; font-weight: 800; }
.sync-conflict-hint { margin: 0; color: var(--muted); font-size: .84rem; }
.sync-conflict-versions { display: grid; gap: 4px; padding: 9px 12px; border-left: 2px solid var(--accent); color: var(--muted); font-size: .84rem; }
.sync-conflict-versions p { margin: 0; }
.sync-conflict-versions strong { color: var(--ink); }
.sync-choice { display: flex; align-items: center; gap: 9px; min-height: 44px; color: var(--ink); cursor: pointer; }
.sync-choice input { accent-color: var(--accent); }
.sync-panel > [data-sync-commit] { justify-self: start; }
.sync-panel > [data-sync-status] { grid-column: 1 / -1; margin: 0; }
.completion-visual { margin: 8px 0 30px; padding: 18px 0 12px; border-block: 1px solid var(--line); }
.completion-chart { width: 100%; min-height: 120px; overflow: hidden; color: var(--accent); }
.completion-line { stroke: var(--line); stroke-width: 3; }
.completion-step { cursor: pointer; outline: none; }
.completion-node { fill: var(--surface); stroke: var(--line); stroke-width: 2; }
.completion-step[data-state="complete"] .completion-node { fill: var(--accent); stroke: var(--accent); }
.completion-step[data-state="in-progress"] .completion-node { stroke: var(--warm); }
.completion-step[data-selected="true"] .completion-node, .completion-step:focus-visible .completion-node { stroke: var(--warm); stroke-width: 4; }
.completion-number { fill: var(--ink); font: 800 12px system-ui, sans-serif; }
.completion-step[data-state="complete"] .completion-number { fill: var(--accent-contrast); }
.completion-label, .completion-status { fill: var(--ink); font: 700 12px system-ui, sans-serif; }
.completion-status { fill: var(--muted); font-size: 10px; font-weight: 500; }
.completion-detail { margin: 10px 0 0; color: var(--muted); font-size: .86rem; }

.dashboard-drafts { margin-bottom: 46px; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-large); background: var(--surface); }
.dashboard-drafts h2 { margin: 11px 0 8px; font: 500 clamp(1.65rem, 3vw, 2.35rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.045em; }
.dashboard-drafts > p:not(.eyebrow):not(.form-status) { max-width: 650px; margin: 0; color: var(--muted); }
.dashboard-drafts > ol { display: grid; gap: 0; margin: 26px 0 0; padding: 0; list-style: none; }
.dashboard-draft { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 18px 0; border-top: 1px solid var(--line); }
.dashboard-draft-copy { min-width: 0; }
.dashboard-draft h3 { margin: 0; overflow-wrap: anywhere; font: 500 1.25rem/1.1 "Iowan Old Style", Baskerville, Georgia, serif; }
.dashboard-draft-detail { margin: 7px 0 0; overflow-wrap: anywhere; color: var(--muted); font-size: .85rem; }
.dashboard-draft[data-state="active"] h3 { color: var(--accent); }
.dashboard-draft-actions { display: flex; align-items: center; justify-content: end; gap: 9px; flex-wrap: wrap; }
.dashboard-draft-actions .button { min-height: 44px; }
.dashboard-drafts-status { min-height: 1.3em; margin: -30px auto 46px; }

.account-dashboard { margin-bottom: 46px; padding-block: 30px 34px; border-block: 1px solid var(--line); }
.account-dashboard-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.account-dashboard-heading h2 { max-width: 680px; margin: 11px 0 8px; font: 500 clamp(1.8rem, 3.4vw, 2.8rem)/1.04 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.05em; }
.account-dashboard-heading p:not(.eyebrow) { max-width: 680px; margin: 0; color: var(--muted); }
.account-dashboard-status { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; color: var(--muted); font-size: .78rem; }
.account-dashboard-status p { margin: 0; }
.account-dashboard-status [data-state="saved"] { color: var(--accent); }
.account-dashboard-status [data-state="error"] { color: var(--warm); }
.account-dashboard-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 16px; margin-top: 28px; }
.account-overview, .account-activity { min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-large); background: var(--surface); }
.account-overview h3, .account-activity h3 { margin: 11px 0 8px; font: 500 clamp(1.6rem, 2.7vw, 2.25rem)/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.045em; }
.account-overview > p:not(.eyebrow) { margin: 0; color: var(--muted); }
.account-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 28px 0 0; }
.account-metrics div { min-width: 0; padding-top: 10px; border-top: 1px solid var(--line); }
.account-metrics dt { color: var(--muted); font-size: .72rem; }
.account-metrics dd { margin: 7px 0 0; font: 500 2rem/1 "Iowan Old Style", Baskerville, Georgia, serif; }
.account-completeness { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); }
.account-completeness-heading { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.account-completeness-heading .eyebrow { margin-bottom: 8px; }
.account-completeness-heading h4 { margin: 0; font: 500 1.3rem/1.05 "Iowan Old Style", Baskerville, Georgia, serif; letter-spacing: -.025em; }
.account-completeness-count { color: var(--accent); font-size: .78rem; line-height: 1.4; white-space: nowrap; }
.account-completeness-bar { height: 6px; margin-top: 18px; overflow: hidden; border-radius: 99px; background: var(--line); }
.account-completeness-bar span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--accent); transition: width .3s ease; }
.account-completeness-detail { margin: 12px 0 0; color: var(--muted); font-size: .82rem; }
.account-completeness-steps { display: grid; gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
.account-completeness-step { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 9px; min-height: 28px; color: var(--muted); font-size: .78rem; }
.account-completeness-marker { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid var(--line); border-radius: 50%; font-size: .68rem; font-weight: 700; }
.account-completeness-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-completeness-status { color: var(--muted); font-size: .7rem; white-space: nowrap; }
.account-completeness-step[data-state="complete"] .account-completeness-marker { color: var(--accent-contrast); border-color: var(--accent); background: var(--accent); }
.account-completeness-step[data-state="complete"] .account-completeness-label { color: var(--ink); }
.account-completeness-step[data-state="in-progress"] .account-completeness-marker { color: var(--warm); border-color: var(--warm); }
.account-completeness-step[data-state="in-progress"] .account-completeness-label, .account-completeness-step[data-state="in-progress"] .account-completeness-status { color: var(--warm); }
.account-completeness[data-cabinet-state="error"] { border-color: color-mix(in srgb, var(--warm) 45%, var(--line)); }
.account-next-link { margin-top: 24px; }
.account-drafts { display: grid; gap: 7px; margin: 18px 0 0; padding: 14px 0 0 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: .82rem; }
.account-activity-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.account-activity-heading h3 { margin-bottom: 0; }
.account-activity-note { color: var(--muted); font-size: .72rem; }
.account-activity-list { display: grid; gap: 0; margin: 22px 0 0; padding: 0; list-style: none; }
.account-activity-item { border-top: 1px solid var(--line); }
.account-activity-link { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 14px; min-height: 64px; padding: 10px 0; color: var(--ink); }
.account-activity-link:hover { color: var(--accent); }
.account-activity-copy { display: grid; min-width: 0; gap: 3px; }
.account-activity-copy strong, .account-activity-copy span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-activity-copy span { color: var(--muted); font-size: .78rem; }
.account-activity-kind { color: var(--accent); font-size: .72rem; font-weight: 700; white-space: nowrap; }
.account-activity-link time { color: var(--muted); font-size: .72rem; white-space: nowrap; }
.account-activity-empty, .account-dashboard-nojs { margin: 22px 0 0; color: var(--muted); font-size: .84rem; }
.account-activity-status { min-height: 1.3em; margin: 14px 0 0; color: var(--muted); font-size: .84rem; }
.account-activity-status[data-state="error"] { color: var(--warm); }
.account-activity-status[data-state="loading"] { color: var(--muted); }
.account-activity-more { margin-top: 14px; }
.account-dashboard-actions { min-height: 44px; margin-top: 16px; }
.account-dashboard-nojs { padding-top: 14px; border-top: 1px solid var(--line); }

@media (max-width: 820px) {
  .account-dashboard-heading { align-items: start; flex-direction: column; gap: 14px; }
  .account-dashboard-grid { grid-template-columns: 1fr; }
  .dashboard-draft { grid-template-columns: 1fr; align-items: start; }
  .dashboard-draft-actions { justify-content: start; }
}

@media (max-width: 560px) {
  .account-dashboard { padding-block: 24px 28px; }
  .dashboard-drafts { padding: 24px 20px; }
  .account-overview, .account-activity { padding: 20px; }
  .account-metrics dd { font-size: 1.7rem; }
  .account-completeness-step { grid-template-columns: 28px minmax(0, 1fr); }
  .account-completeness-status { grid-column: 2; }
  .account-activity-link { grid-template-columns: minmax(0, 1fr) auto; gap: 5px 12px; }
  .account-activity-kind { grid-column: 2; grid-row: 1; }
  .account-activity-link time { grid-column: 1 / -1; grid-row: 2; }
  .account-next-link, .account-dashboard-actions .button { width: 100%; }
  .dashboard-draft-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .dashboard-draft-actions .button { width: 100%; }
}

@media (max-width: 820px) {
  .sync-panel { grid-template-columns: 1fr; }
  .sync-panel-actions { justify-items: start; }
}

.score-chart { display: block; width: min(100%, 840px); margin-inline: auto; overflow: visible; }
.radar-grid-ring, .radar-spoke { fill: none; stroke: var(--line); stroke-width: 1; }
.radar-area { fill: currentColor; fill-opacity: .2; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; }
.radar-scale, .radar-value { fill: var(--muted); font: 600 11px system-ui, sans-serif; }
.radar-label { fill: var(--ink); font: 600 12px system-ui, sans-serif; }
.radar-axis { cursor: pointer; }
.radar-axis:focus-visible text, .radar-axis[data-selected="true"] text { fill: var(--accent); text-decoration: underline; }
.score-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; }
.score-row { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; padding: 8px 0; border-bottom: 1px solid var(--line); }
.score-row strong { min-width: 0; overflow-wrap: anywhere; }
.score-row span { flex: 0 0 auto; color: var(--muted); font-variant-numeric: tabular-nums; }
@media (max-width: 560px) { .score-list { grid-template-columns: 1fr; }.radar-label { font-size: 18px; }.radar-scale, .radar-value { font-size: 16px; } }
