/* AlexProject 2.9 — устойчивое затемнение секций и дополнительные эффекты. */
main>section.scroll-dim,.site-footer.scroll-dim{opacity:.48;filter:brightness(.72) saturate(.72);transition:opacity .65s ease,filter .65s ease,transform .65s ease}
main>section.scroll-dim.is-visible,.site-footer.scroll-dim.is-visible{opacity:1;filter:none}
main>section.scroll-dim.is-visible:before{content:"";position:absolute;inset:10% 0 auto;height:42%;pointer-events:none;background:radial-gradient(ellipse at 50% 0,rgba(220,159,120,.08),transparent 68%);opacity:.8;animation:sectionPulse 7s ease-in-out infinite}
@keyframes sectionPulse{50%{opacity:.35;transform:translateY(16px) scale(.98)}}
body:not(.modal-open){user-select:none;-webkit-user-select:none}
input,textarea,select,[contenteditable="true"]{user-select:text;-webkit-user-select:text}
@media(prefers-reduced-motion:reduce){main>section.scroll-dim,.site-footer.scroll-dim{transition:none;filter:none;opacity:1}main>section.scroll-dim.is-visible:before{animation:none}}
/* AlexProject 2.9 — усиленная сетка, автопрокрутка и эффекты. */
#ambientCanvas{opacity:.82!important;mix-blend-mode:screen}
body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:2;background:radial-gradient(circle at 18% 22%,rgba(220,159,120,.07),transparent 27%),radial-gradient(circle at 82% 68%,rgba(124,104,205,.07),transparent 30%);mix-blend-mode:screen;animation:ambientBreath 12s ease-in-out infinite}
.project-card,.post-card,.cap-grid article,.process-track article{transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .45s,box-shadow .45s}
.project-card:hover,.post-card:hover,.cap-grid article:hover{transform:translateY(-8px) scale(1.012);border-color:rgba(220,159,120,.34);box-shadow:0 24px 80px rgba(0,0,0,.24),0 0 34px rgba(220,159,120,.08)}
@keyframes ambientBreath{50%{opacity:.55;transform:scale(1.03)}}
/* Дополнительный лёгкий кинетический слой: не блокирует клики и не мешает чтению. */
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;background:linear-gradient(112deg,transparent 0 43%,rgba(255,255,255,.025) 48%,transparent 53%);background-size:240% 100%;animation:scanSweep 15s ease-in-out infinite}
.grain{opacity:.12!important;animation:grainDrift 9s steps(2,end) infinite}
@keyframes scanSweep{0%,18%{background-position:-120% 0}58%,100%{background-position:120% 0}}
@keyframes grainDrift{0%,100%{transform:translate(0,0)}25%{transform:translate(-1%,1%)}50%{transform:translate(1%,-1%)}75%{transform:translate(0,-1%)}}
