.vision-theme {
    --bg: #191a1b;
    --bg-alt: #131415;
    --surface: #222325;
    --surface-strong: #2b2c2e;
    --text: #e4e0d8;
    --text-strong: #f4f0e8;
    --muted: #aaa8a2;
    --line: #393a3b;
    --line-strong: #60615f;
    --accent: #ba5148;
    --accent-ink: #e08e83;
    --accent-contrast: #fff8f0;
    --page-gutter: clamp(22px, 5vw, 88px);
    --content-width: 1560px;
    --header-height: 88px;
    --font-display: var(--font-sans);
    background: var(--bg);
    color: var(--text);
}
html[data-theme="light"] .vision-theme {
    --bg: #f1eee7; --bg-alt: #e9e5dc; --surface: #faf7f1;
    --surface-strong: #e4dfd5; --text: #373731; --text-strong: #20211f;
    --muted: #6d6d64; --line: #d4cec2; --line-strong: #9d968a;
    --accent-ink: #9f3f36;
}
/* Shared visual primitives. Canvas contents and semantic status colours are preserved. */
.vision-theme { color-scheme: dark; font-family: var(--font-sans); }
html[data-theme="light"] .vision-theme { color-scheme: light; }
.vision-theme::before { display: none; }
.vision-theme :is(h1,h2,h3) { font-family: var(--font-sans); font-weight: 500; line-height: 1.15; letter-spacing: -.04em; text-transform: none; }
.vision-theme :is(button,input,select,textarea) { font-family: var(--font-sans); }
.vision-theme :is(input[type="checkbox"],input[type="radio"],input[type="range"]) { accent-color: var(--accent); }
.vision-theme :is(input,textarea,select)::placeholder { color: var(--muted); opacity: .8; }
.vision-theme :focus-visible { outline: 2px solid var(--accent-ink); outline-offset: 3px; }
.vision-theme .section-index { color: var(--accent-ink); font-size: .62rem; font-weight: 500; letter-spacing: .15em; }
.vision-theme .button { min-height: 48px; padding-inline: 24px; clip-path: none; border-radius: 0; font-weight: 500; font-size: .75rem; letter-spacing: .01em; text-transform: none; cursor: pointer; }
.vision-theme .button--accent { background: var(--accent); color: var(--accent-contrast); }
.vision-theme .button:not(.button--accent) { border: 1px solid var(--line-strong); background: transparent; color: var(--text-strong); }
.vision-theme :is(.button,.header-control,.interaction-button):hover { border-color: var(--accent-ink); }
.vision-theme :is(.header-control,.menu-toggle) { background: transparent; color: var(--text); }
.vision-theme :is(.flash,.auth-status,.form-status) { background: var(--surface); border-color: var(--line); box-shadow: 0 8px 30px #0002; }
.vision-theme :is(.flash--success,.auth-status--success,.form-status--success) { border-left-color: var(--success); }
.vision-theme :is(.flash--error,.auth-status--error,.form-status--error) { border-left-color: var(--danger); }
.vision-theme :is(.cookie-dialog,.quick-request-dialog,.share-dialog,.cart-dialog,.account-modal,.community-dialog) { background: var(--surface); color: var(--text); border-color: var(--line-strong); }
.vision-theme :is(.cookie-dialog,.quick-request-dialog,.share-dialog,.cart-dialog,.account-modal,.community-dialog)::backdrop { background: #0a0b0cd9; backdrop-filter: blur(8px); }
.vision-theme :is(.mobile-menu,.search-panel) { background: var(--bg); border-color: var(--line); }
.vision-theme .cookie-banner { background: var(--surface); border-color: var(--line-strong); border-top-color: var(--accent); }
.vision-theme :is(.cookie-choice,.cookie-settings-link) { font-weight: 500; text-transform: none; letter-spacing: .01em; }
.vision-theme .content-freshness { font-weight: 500; }
.vision-theme :is(.product-detail__status,.product-breadcrumbs strong,.project-detail__parts-link,.project-detail__actions > a,.product-family > span,.product-card__status > span,.cart-item__copy > small,.account-menu-card__top small,.account-menu-card__top b,.auth-story .section-index,.chapter-list > a > span,.news-card__link,.news-nav span,.news-builder-card > span) { color: var(--accent-ink); }
.vision-theme .product-detail__size-choice input:checked + span,
.vision-theme .product-detail__color-choice input:checked + span > b { color: var(--accent-ink); }
.vision-theme .content-freshness:not(.content-freshness--new) { color: var(--accent-ink); }
.vision-theme :is(.interaction-button,.share-button) { border-color: var(--line-strong); }
@media(prefers-reduced-motion:reduce) {
    .vision-theme *, .vision-theme *::before, .vision-theme *::after { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

