:root{--motion-fast:220ms;--motion-card:320ms;--motion-ease:cubic-bezier(.2,.8,.2,1);--motion-lift:3px}
/* All cards/layouts share these tokens; authors select a preset, not timings. */
.content-card{transition:transform var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) ease}
.content-card-action>span,.content-card-action>.link-arrow{display:inline-block;transition:transform var(--motion-fast) var(--motion-ease)}
.insight-tile-image,.insight-tile-summary,.insight-expand{transition-duration:var(--motion-card);transition-timing-function:var(--motion-ease)}
.insight-tile-summary{transform:translateY(8px)}
.insight-tile:focus-within .insight-tile-image{opacity:.18;transform:scale(1.025)}
.insight-tile:focus-within .insight-tile-summary{opacity:1;transform:none}
[data-motion="subtle"]{--motion-fast:180ms;--motion-card:260ms;--motion-lift:1px}
@media(hover:hover) and (pointer:fine){
 .content-card[href]:hover{transform:translateY(calc(-1 * var(--motion-lift)))}
 .content-card:hover .content-card-action>span,.content-card:hover .content-card-action>.link-arrow{transform:translateX(4px)}
 .insight-tile:hover .insight-tile-image{opacity:.18;transform:scale(1.025)}
 .insight-tile:hover .insight-tile-summary{opacity:1;transform:none}
}
.content-card:focus-visible .content-card-action>span{transform:translateX(4px)}
.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;pointer-events:none;background:linear-gradient(90deg,#a100ff,#76b5ff);transform-origin:left;transform:scaleX(0)}
.article-toc a[aria-current="location"]{color:#d3a0ff;font-weight:700;border-left:2px solid #a100ff;padding-left:10px}
@keyframes brand-ambient{from{translate:0 0}to{translate:-10px 8px}}
body[data-motion-ambient="true"]:not([data-motion="off"]):not(.motion-reduced) .home-hero .hero-lines{animation:brand-ambient 2.4s ease-in-out 2 alternate}
body[data-motion="subtle"] .home-hero .hero-lines{animation:none}
body[data-motion-ambient="true"]:not([data-motion="off"]):not([data-motion="subtle"]):not(.motion-reduced) .home-hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 80% 45%,#a100ff14,transparent 60%);animation:brand-ambient 2.4s ease-in-out 2 alternate}
/* Explicit off and OS preference retain all content and instant interaction states. */
body[data-motion-site="off"] *,body[data-motion-page="off"] *,[data-motion-setting="off"],[data-motion-setting="off"] *,[data-motion="off"],[data-motion="off"] *{animation:none!important;transition:none!important}
body[data-motion-site="off"] .content-card,body[data-motion-page="off"] .content-card,[data-motion="off"].content-card,[data-motion="off"].insight-tile{transform:none!important}
[data-motion="off"] .content-card-action>span,[data-motion="off"] .insight-tile-image,[data-motion="off"] .insight-tile-summary,[data-motion="off"] .insight-expand{transform:none!important}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .insight-tile,.content-card,.content-card-action>span,.insight-tile-image,.insight-tile-summary,.insight-expand{transform:none!important}
 .reading-progress{display:none}
}
