/* Shared scroll-to-top control. Display state is managed by script.js. */
.scroll-top { position: fixed; z-index: 40; right: max(20px, env(safe-area-inset-right)); bottom: max(22px, env(safe-area-inset-bottom)); width: 58px; height: 58px; display: grid; place-content: center; gap: 2px; padding: 0; border: 1px solid rgba(255, 255, 255, .76); border-radius: 50%; background: rgba(10, 20, 39, .94); box-shadow: 0 10px 24px rgba(10, 20, 39, .25); color: #fff; cursor: pointer; opacity: 0; pointer-events: none; transform: translateY(13px) scale(.9); transition: opacity .34s var(--ease-out), transform .4s var(--ease-spring), background .3s var(--ease-out), border-color .3s var(--ease-out), box-shadow .3s var(--ease-out); }
.scroll-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
.scroll-top:hover { border-color: var(--accent); background: var(--accent); box-shadow: 0 14px 28px rgba(201, 78, 0, .3); transform: translateY(-3px) scale(1.04); }
.scroll-top:focus-visible { outline: 3px solid #acd55a; outline-offset: 3px; }
.scroll-top svg { width: 20px; height: 20px; margin: 0 auto; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.scroll-top span { font-family: var(--heading); font-size: 10px; font-weight: 700; letter-spacing: .08em; line-height: 1; }
@media (max-width: 760px) { .scroll-top { right: 15px; bottom: 15px; width: 52px; height: 52px; } }
@media (prefers-reduced-motion: reduce) { .scroll-top { transition: none; } .scroll-top:hover { transform: none; } }
