/* Modern enhancement layer: adaptive motion, image artwork and accessible focus. */
.brand-copy { display:block; }.brand .custom-logo-link { display:grid; width:3rem; height:3rem; place-items:center; overflow:hidden; border-radius:50%; }.brand .custom-logo { width:3rem; height:3rem; object-fit:cover; }
.hero-art { width:100%; max-width:24rem; justify-self:center; overflow:hidden; border:1px solid var(--gvs-line); border-radius:1rem; background:#fff; padding:2rem; box-shadow:0 16px 32px rgba(27,42,74,.15); }.hero-art__image { display:block; width:100%; aspect-ratio:2 / 3; object-fit:cover; }.hero-art:has(.hero-art__image) { transform:translateZ(0); }
a,button,input,textarea { transition:color .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease; }a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid rgba(201,111,94,.55); outline-offset:3px; }.post-card,.related-card,.hero-art { will-change:transform; }.post-card:hover,.related-card:hover { transform:translateY(-.3rem); }.hero-art:hover { transform:translateY(-.25rem) rotate(.2deg); box-shadow:0 20px 40px rgba(27,42,74,.2); }
@media (prefers-reduced-motion:no-preference) { .hero-art { animation:gvs-float 6s ease-in-out infinite; }.hero::before { position:absolute; inset:auto -6rem -8rem auto; width:18rem; height:18rem; border-radius:50%; background:rgba(255,255,255,.38); content:""; filter:blur(2px); animation:gvs-breathe 7s ease-in-out infinite; }.hero { isolation:isolate; }.hero > * { position:relative; z-index:1; }.post-card,.related-card { animation:gvs-enter .55s both; }.post-card:nth-child(2),.related-card:nth-child(2) { animation-delay:.1s; }.post-card:nth-child(3) { animation-delay:.2s; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }
@keyframes gvs-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-.7rem); } }@keyframes gvs-breathe { 0%,100% { transform:scale(.94); opacity:.45; } 50% { transform:scale(1.06); opacity:.75; } }@keyframes gvs-enter { from { opacity:0; transform:translateY(.8rem); } to { opacity:1; transform:translateY(0); } }
@media (min-width:768px) { .hero-art { justify-self:center; }.hero-art__image { min-height:31rem; }.hero-verse { font-size:clamp(2.25rem,3.1vw,3rem); } }
