/* The shared editorial vocabulary changes decoration, never reading geometry. */
[data-motion-family] :where(a,button,summary,input,textarea,select){transition:text-decoration-color 180ms ease,outline-color 180ms ease,box-shadow 180ms ease}
[data-motion-family] :where(a,button,summary,input,textarea,select):focus-visible{outline:2px solid var(--red,currentColor);outline-offset:4px}
[data-motion-family] :where(.top a,.nav a,footer a,.footer a){text-decoration-line:underline;text-decoration-color:transparent;text-underline-offset:.28em;text-decoration-thickness:1px}
[data-motion-family] :where(.top a,.nav a,footer a,.footer a):is(:hover,:focus-visible){text-decoration-color:currentColor}
[data-motion-family] :where(.btn,button):active{box-shadow:inset 0 0 0 2px currentColor}
[data-motion-family] :where(input,textarea,select):focus-visible{box-shadow:0 0 0 1px var(--red,currentColor)}
.motion-heading{position:relative}
.motion-heading::before{content:"";position:absolute;inset-inline-start:-12px;top:.22em;width:5px;height:.65em;border-inline-start:1px solid var(--red,currentColor);border-top:1px solid var(--red,currentColor);transform:scaleY(0);transform-origin:top;transition:transform 600ms cubic-bezier(.2,.7,.2,1);pointer-events:none}
[data-motion-family="guide"] .hero .motion-heading::before{border-color:currentColor}
.motion-heading.is-registered::before{transform:scaleY(1)}
.motion-heading.motion-title::before{height:.85em;width:7px;transition-duration:850ms}
/* Index entries and evidence blocks resolve their existing editorial boundaries. */
.motion-boundary{position:relative}
.motion-boundary::after{content:"";position:absolute;top:0;inset-inline-start:0;width:min(64px,25%);height:1px;background:var(--red,currentColor);transform:scaleX(0);transform-origin:left;transition:transform 650ms cubic-bezier(.2,.7,.2,1);pointer-events:none}
.motion-boundary.is-registered::after{transform:scaleX(1)}
[data-motion-family="guide"] .motion-boundary::after,[data-motion-family="archive"] .motion-boundary::after{width:1px;height:32px;transform:scaleY(0);transform-origin:top}
[data-motion-family="guide"] .motion-boundary.is-registered::after,[data-motion-family="archive"] .motion-boundary.is-registered::after{transform:scaleY(1)}
[data-motion-family] :where(.essay,.card,.term,.step,.entry):focus-within{outline:1px solid var(--red,currentColor);outline-offset:5px}
[data-motion-family] details>summary{transition:text-decoration-color 180ms ease;text-decoration-line:underline;text-decoration-color:transparent;text-underline-offset:.25em}
[data-motion-family] details[open]>summary,[data-motion-family] details>summary:focus-visible{text-decoration-color:currentColor}
@media(hover:hover){[data-motion-family] :where(.btn,button):hover{box-shadow:inset 0 0 0 1px currentColor}}
@media(prefers-reduced-motion:reduce){
 [data-motion-family] :where(a,button,summary,input,textarea,select),.motion-heading::before,.motion-heading.motion-title::before,.motion-boundary::after{transition:none}
 .motion-heading::before{transform:scaleY(1)}
 .motion-boundary::after{transform:scaleX(1)}
 [data-motion-family="guide"] .motion-boundary::after,[data-motion-family="archive"] .motion-boundary::after{transform:scaleY(1)}
}
@media print{.motion-heading::before,.motion-boundary::after{display:none}}

/* Contextual product links retain the approved paragraph typography. */
.contextual-legibi{color:inherit;font:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
[data-motion-family="home"] section[id],[data-motion-family="home"] #person{scroll-margin-top:88px}
/* Incoming identity links must settle before font swapping can shift a smooth scroll. */
html:has(#person:target){scroll-behavior:auto}
@media(max-width:900px){
 .top .wrap{padding-top:14px;padding-bottom:14px}
 .mobile-nav summary{min-height:44px;line-height:44px;cursor:pointer}
 .mobile-nav nav{gap:8px}
 .mobile-nav nav a{display:flex;align-items:center;min-height:44px}
 /* An expanded native menu must not cover content, including without JS. */
 .top:has(.mobile-nav[open]){position:relative}
}
