a{transition:color .2s ease,background-color .2s ease,border-color .2s ease,opacity .2s ease}
.main-nav>a:not(.button),.site-footer a,.text-link,.back-link,.category-tile,.listing-card,.admin-module-card,.social-link{transition:color .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease,opacity .2s ease}
.main-nav>a:not(.button):hover,.site-footer a:hover,.text-link:hover{transform:translateY(-1px)}
.page-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;align-content:center;gap:15px;background:var(--cream);color:var(--pine);opacity:1;visibility:visible;transition:opacity .42s ease,visibility .42s ease}
.page-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.page-loader-mark{position:relative;display:grid;place-items:center;width:70px;height:70px;padding:10px;border-radius:22px;background:linear-gradient(135deg,var(--pine),var(--sun));color:#fff;line-height:1;box-shadow:0 12px 28px color-mix(in srgb,var(--pine) 24%,transparent);animation:loaderPulse 1.35s ease-in-out infinite}
.page-loader-mark img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 5px rgba(12,10,34,.2))}
.page-loader-mark:after{content:'';position:absolute;inset:-8px;border:1px solid color-mix(in srgb,var(--sun) 58%,transparent);border-radius:25px;animation:loaderRing 1.35s ease-out infinite}
.page-loader-text{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
@keyframes loaderPulse{0%,100%{transform:translateY(0) scale(.98);box-shadow:0 12px 28px color-mix(in srgb,var(--pine) 22%,transparent)}50%{transform:translateY(-4px) scale(1);box-shadow:0 17px 34px color-mix(in srgb,var(--pine) 32%,transparent)}}
@keyframes loaderRing{0%{opacity:.65;transform:scale(.85)}100%{opacity:0;transform:scale(1.23)}}
@media(prefers-reduced-motion:reduce){a,.main-nav>a:not(.button),.site-footer a,.text-link,.back-link,.category-tile,.listing-card,.admin-module-card,.social-link{transition:none}.page-loader-mark,.page-loader-mark:after{animation:none}.page-loader{transition:none}}
