.reveal{transition:opacity var(--transition-slow),transform var(--transition-slow)}
.js .reveal{opacity:0}
.js .reveal[data-reveal="up"]{transform:translateY(40px)}
.js .reveal[data-reveal="left"]{transform:translateX(-40px)}
.js .reveal[data-reveal="right"]{transform:translateX(40px)}
.js .reveal[data-reveal="fade"]{transform:scale(0.95)}
.js .reveal.visible,.no-js .reveal{opacity:1;transform:none}
.scroll-top{position:fixed;bottom:2rem;right:2rem;width:44px;height:44px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border-color);color:var(--accent-light);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:999;opacity:0;visibility:hidden;transform:translateY(12px);transition:all var(--transition-base);box-shadow:var(--shadow-md)}
.scroll-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
.scroll-top:hover{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 24px var(--accent-glow);transform:translateY(-3px)}
:focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}
::selection{background:var(--accent);color:#fff}
::-webkit-scrollbar{width:8px}
::-webkit-scrollbar-track{background:var(--bg-primary)}
::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--accent-wood)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important}html{scroll-behavior:auto}}
