/* Shared component contracts; loaded after legacy page layouts. */
.button,.ds-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-5);min-height:var(--target-min);padding:var(--space-3) var(--space-5);border:1px solid var(--color-ink);border-radius:var(--radius-control);background:var(--color-ink);color:var(--color-canvas);font:500 var(--text-ui)/1.4 var(--font-body);cursor:pointer;text-decoration:none;transition:background var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease)}
.button:hover,.ds-button:hover,.ds-button.is-hover{background:var(--color-action-hover);border-color:var(--color-action-hover);text-decoration:none}
.button:active,.ds-button:active{background:var(--color-accent-ink)}
.ds-button--secondary{background:transparent;color:var(--color-ink)}
.ds-button--secondary:hover{background:var(--color-surface-soft);color:var(--color-ink);border-color:var(--color-ink)}
.ds-button--text{padding-inline:var(--space-2);background:transparent;color:var(--color-ink);border-color:transparent;text-decoration:underline;text-underline-offset:4px}
.ds-button--text:hover{background:transparent;border-color:transparent;color:var(--color-accent-ink)}
.ds-button:disabled,.ds-button[aria-disabled=true]{background:var(--color-border-subtle);border-color:var(--color-border-subtle);color:var(--color-text-muted);cursor:not-allowed;pointer-events:none}
:where(a,button,input,select,textarea,summary):focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}
.ds-on-dark :where(a,button,input,summary):focus-visible,.radar :where(a,button,summary):focus-visible{outline-color:var(--color-accent)}
.ds-focus-preview{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-offset)}
.eyebrow,.meta{font-size:var(--text-caption);font-weight:600}.post small{font-size:var(--text-caption)}.post p{font-size:var(--text-ui)}
.post,.ds-card{border-color:var(--color-border-subtle)}.post:hover{background:var(--color-surface-hover)}
.filters button,.mentorchoices button,.share,nav a{min-height:var(--target-min)}
nav a{display:inline-flex;align-items:center}.filters input,.ds-input{min-height:var(--target-min);font:400 var(--text-body)/1.5 var(--font-body);border:1px solid var(--color-border-control);border-radius:var(--radius-control);background:transparent;color:var(--color-ink);padding:var(--space-3) var(--space-4)}
.filters input::placeholder,.ds-input::placeholder{color:var(--color-text-muted)}
.filters button,.mentorchoices button,.share{border-color:var(--color-border-control)}
.filters button.active,.mentorchoices button.active{border-color:var(--color-ink)}
.ds-input[aria-invalid=true]{border-color:var(--color-error)}.ds-label{display:block;font-size:var(--text-ui);font-weight:600;margin-bottom:var(--space-2)}.ds-help{margin-top:var(--space-2);font-size:var(--text-caption);color:var(--color-text-muted)}.ds-error{margin-top:var(--space-2);font-size:var(--text-ui);color:var(--color-error)}
.ds-tag{display:inline-flex;align-items:center;min-height:28px;padding:var(--space-1) var(--space-3);background:var(--color-surface-soft);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);font-size:var(--text-caption);color:var(--color-ink)}
.ds-callout{padding:var(--space-5);border-left:3px solid var(--color-accent-ink);background:var(--color-surface-soft)}
.ds-callout--error{border-color:var(--color-error);background:var(--color-error-surface)}
.ds-divider{border:0;border-top:1px solid var(--color-border-subtle);margin-block:var(--space-6)}
.ds-link{text-decoration:underline;text-underline-offset:4px}.ds-link:hover{color:var(--color-accent-ink)}
.ds-choice{min-height:44px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-control);border-radius:var(--radius-control);background:transparent;font:500 var(--text-ui)/1.5 var(--font-body);color:var(--color-ink);cursor:pointer}.ds-choice[aria-pressed=true]{background:var(--color-ink);color:var(--color-canvas);border-color:var(--color-ink)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.ds-on-dark .ds-button--secondary:hover{background:var(--color-action-hover);color:var(--paper);border-color:var(--paper)}

/* Focus & Impact v2: shared component shapes and interaction states. */
.button,.ds-button{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent);border-radius:var(--radius-control);padding:14px 28px;min-height:48px;font-weight:600;font-size:1rem;box-shadow:0 8px 18px -12px rgba(0,0,0,.35);gap:16px;transition:background .3s,transform .3s}
.button:hover,.ds-button:hover,.ds-button.is-hover{background:#ffedab;color:var(--color-accent-ink);border-color:#b78c00;transform:translateY(-2px)}
.button:active,.ds-button:active{background:#ffe582;transform:translateY(0)}
.ds-button--secondary,.ds-button--text{background:transparent;border-color:var(--color-accent-ink);color:var(--color-accent-ink);box-shadow:none}.ds-button--text{border-color:transparent;padding-inline:8px}
.ds-button--secondary:hover,.ds-button--text:hover{background:var(--color-surface-soft);color:var(--color-accent-ink);border-color:var(--color-accent-ink)}
.ds-on-dark .ds-button--secondary{color:var(--color-accent);border-color:var(--color-accent)}.ds-on-dark .ds-button--secondary:hover{background:var(--color-accent);color:var(--color-accent-ink)}
.post,.ds-card{border-radius:var(--radius-card)}.ds-input,.ds-choice{border-radius:8px}.ds-input{background:var(--color-canvas)}.ds-tag{background:var(--color-surface-soft);color:var(--color-accent-ink)}.ds-callout{border-radius:0 16px 16px 0}
:where(.hero,.intro,.radar,.contact,footer,body>header) :where(a,button,summary):focus-visible{outline-color:var(--color-accent)}
