/* Nav bar: stronger frosted glass once the page has scrolled, so the text behind it never fights the labels. */
.glass-nav{transition:background-color .5s ease,border-color .5s ease,box-shadow .5s ease,backdrop-filter .5s ease,-webkit-backdrop-filter .5s ease!important}
:root body.study-scrolled .glass-nav{backdrop-filter:blur(26px) saturate(155%)!important;-webkit-backdrop-filter:blur(26px) saturate(155%)!important;background-color:color-mix(in srgb,var(--glass) 60%,var(--bg) 40%)!important;border-color:color-mix(in srgb,var(--glass-line) 55%,#fff 45%)!important;box-shadow:0 10px 32px #15121a29,inset 0 1px 0 #ffffff59!important}
@media(prefers-reduced-motion:reduce){.glass-nav{transition:none!important}}

/* Buttons and links: soft colour flip and a nudging arrow on hover (mouse devices at desktop width). */
.arr{display:inline-block;transition:transform .35s cubic-bezier(.22,.8,.25,1)}
.arr[data-g="›"]{margin-right:.5em}.arr[data-g="→"],.arr[data-g="↗"],.arr[data-g="↓"]{margin-left:.5em}
@media(min-width:601px){
.actions a.primary,.actions a:not(.primary),.project-links a,.home-socials a,.home-mini a{transition:background-color .35s ease,color .35s ease,box-shadow .35s ease,border-color .35s ease,transform .35s cubic-bezier(.22,.8,.25,1)}
:root .actions a.primary:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent)}
:root .actions a:not(.primary):hover{color:var(--accent)}
:root .project-links a:hover,:root .home-socials a:hover,:root .home-mini a:hover{background:color-mix(in srgb,var(--accent) 20%,var(--pill));border-color:color-mix(in srgb,var(--accent) 55%,transparent);transform:translateY(-1px)}
a:hover>.arr[data-g="›"],a:hover>.arr[data-g="→"]{transform:translateX(4px)}
a:hover>.arr[data-g="↗"]{transform:translate(2px,-2px)}
a:hover>.arr[data-g="↓"]{transform:translateY(3px)}
}
@media(prefers-reduced-motion:reduce){.arr,.actions a,.project-links a,.home-socials a,.home-mini a{transition:none!important}}
