/* Editorial motion system — restrained movement, motion-safe fallback */
@media (prefers-reduced-motion:no-preference){
 .masthead h1 .title-line{display:inline-block;transform-origin:bottom left;animation:letter-rise .95s cubic-bezier(.18,.75,.2,1) both}
 .masthead h1 .title-two{animation-delay:.14s}
 .masthead-translation{animation:fade-up .7s .38s both}
 .masthead-note{animation:fade-up .7s .52s both}
 .masthead-top{animation:fade-in .75s .05s both}
 .masthead-bottom{animation:fade-in .75s .65s both}
 body.motion-ready .reveal:not(.in-view){opacity:0;transform:translateY(21px)}
 body.motion-ready .reveal{transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.16,1,.3,1);will-change:transform,opacity}
 body.motion-ready .reveal.in-view{opacity:1;transform:translateY(0)}
 .masthead{position:relative;isolation:isolate}
 .masthead:before{content:"";position:absolute;z-index:-1;left:0;right:0;top:0;height:92%;opacity:0;pointer-events:none;background:radial-gradient(ellipse 430px 360px at var(--mx,60%) var(--my,40%),rgba(154,67,53,.055),transparent 78%);transition:opacity .7s}
 .masthead:hover:before{opacity:1}
 .post-open h3{transition:transform .32s cubic-bezier(.16,1,.3,1),color .2s}
 .feed-item:hover .post-open h3{transform:translateX(5px)}
 .feed-item{transition:background .35s,transform .35s}
 .aside-link svg{transition:transform .3s cubic-bezier(.16,1,.3,1)}
 .aside-link:hover svg{transform:translate(3px,-3px)}
 .primary-action span{display:inline-block;transition:transform .35s cubic-bezier(.16,1,.3,1)}
 .primary-action:hover span{transform:translate(3px,-2px) rotate(-8deg)}
 .topnav a{position:relative}
 .topnav a:after{content:"";position:absolute;left:0;bottom:-7px;width:100%;height:1px;background:var(--accent);transform-origin:left;transform:scaleX(0);transition:transform .3s}
 .topnav a:hover:after,.topnav a:focus-visible:after{transform:scaleX(1)}
 .masthead-translation{transition:letter-spacing .65s}
 .masthead:hover .masthead-translation{letter-spacing:.065em}
 .compose-dialog,.reader-dialog{animation:modal-enter .45s cubic-bezier(.16,1,.3,1) both}
 .overlay-backdrop{animation:veil-in .3s ease both}
 .toast.visible{animation:toast-in .4s cubic-bezier(.16,1,.3,1) both}
}
@keyframes letter-rise{from{opacity:0;transform:translateY(40px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes fade-up{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
@keyframes modal-enter{from{opacity:0;transform:translateY(24px) scale(.985)}to{opacity:1;transform:none}}
@keyframes veil-in{from{opacity:0}to{opacity:1}}
@keyframes toast-in{from{transform:translate(-50%,12px);opacity:0}to{transform:translate(-50%,0);opacity:1}}
