:root { --interaction-edge:#1974a8; --interaction-glow:rgba(36,139,196,.11); }
html[data-theme="night"] { --interaction-edge:#89cffa; --interaction-glow:rgba(119,200,246,.10); }
:is(.card,.article-card,.dimension-card,.dimension-detail,.support-option,.aside-card,.metric-context,.feature-copy,.social-channel,.social-consent,.tool-panel,.form-panel,.checkin-controls,.crt-post) { position:relative; }
/* Stable surfaces: light follows the cursor while text and form fields stay still. */
@media (hover:hover) and (pointer:fine) {
 :is(.card,.article-card,.dimension-card,.dimension-detail,.support-option,.aside-card,.metric-context,.feature-copy,.social-channel,.social-consent,.tool-panel,.form-panel,.checkin-controls,.crt-post)::after { content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; background:radial-gradient(320px circle at var(--pointer-x,50%) var(--pointer-y,50%),var(--interaction-glow),transparent 75%); opacity:0; transition:opacity .2s ease; }
 :is(.card,.article-card,.dimension-card,.dimension-detail,.support-option,.aside-card,.metric-context,.feature-copy,.social-channel,.social-consent,.tool-panel,.form-panel,.checkin-controls,.crt-post)[data-mouse-active]::after { opacity:1; }
 :is(.card,.article-card,.dimension-card,.dimension-detail,.support-option,.aside-card,.metric-context,.social-channel,.social-consent,.tool-panel,.form-panel,.checkin-controls):hover { border-color:var(--interaction-edge); box-shadow:0 12px 32px rgba(0,0,0,.12),0 0 0 1px color-mix(in srgb,var(--interaction-edge) 40%,transparent); }
 :is(a[href],button,summary,input,select,textarea) { transition:color .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
 :is(.button,.site-menu-toggle,.header-support,button[type="submit"]):not(:disabled):hover { transform:translateY(-2px); box-shadow:0 6px 18px rgba(0,0,0,.20),0 0 0 1px var(--interaction-edge); }
 :is(.button,.site-menu-toggle,.header-support,button[type="submit"]):not(:disabled):active { transform:translateY(0) scale(.98); }
 :is(.header-links a:not(.header-support),.site-menu a,.dimension-index a):hover { box-shadow:inset 0 -2px var(--interaction-edge); }
 :is(.appearance-slider button,.appearance-options button,.filter-button):hover { box-shadow:inset 0 0 0 1px var(--interaction-edge); }
 .social-icon:hover { box-shadow:0 0 0 3px color-mix(in srgb,var(--interaction-edge) 30%,transparent); }
 :is(.card-link,.article-link,.feed-links a,.footer-grid a:not(.brand):not(.social-icon),.prose a):hover { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:.3em; }
 :is(input,select,textarea):not(:disabled):hover { border-color:var(--interaction-edge); box-shadow:0 0 0 2px color-mix(in srgb,var(--interaction-edge) 22%,transparent); }
 :is(summary,[role="slider"]):hover { color:var(--interaction-edge); }
 input[type="range"] { accent-color:var(--interaction-edge); }
}
:is(input,select,textarea):focus-visible { border-color:var(--interaction-edge); box-shadow:0 0 0 3px color-mix(in srgb,var(--interaction-edge) 25%,transparent); }
:is(.card,.article-card,.dimension-card,.support-option):focus-within { border-color:var(--interaction-edge); }
/* No conflicting 3D tilt on text panels; retain the activity cards' flip behaviour. */
.card,.dimension-card,.support-option { transform:none; will-change:auto; }
@media (prefers-reduced-motion:reduce) {
 :is(a,button,summary,input,select,textarea,.card,.article-card,.dimension-card,.dimension-detail,.support-option,.aside-card,.metric-context,.social-channel,.social-consent,.tool-panel,.form-panel,.checkin-controls) { transition:none!important; }
 :is(.button,.site-menu-toggle,.header-support,.social-icon,button[type="submit"]):hover,:is(.button,.site-menu-toggle,.header-support,button[type="submit"]):active { transform:none!important; }
 :is(.card,.article-card,.dimension-card,.dimension-detail,.support-option,.aside-card,.metric-context,.feature-copy,.social-channel,.social-consent,.tool-panel,.form-panel,.checkin-controls,.crt-post)::after { display:none; }
}
@media print { [data-mouse-active]::after { display:none!important; } }
.form-panel :is(input,select,textarea)[aria-invalid="true"] { border-color:var(--danger)!important; }
