/* Shared navigation underline and card perspective interactions. */
.nav nav a,.db-nav nav a,.portfolio-nav nav a{position:relative;border-bottom:0!important;padding-bottom:7px}
.nav nav a::after,.db-nav nav a::after,.portfolio-nav nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:center;transition:transform 250ms ease-out}
.nav nav a:hover::after,.nav nav a:focus-visible::after,.nav nav a.active::after,.db-nav nav a:hover::after,.db-nav nav a:focus-visible::after,.db-nav nav a.active::after,.portfolio-nav nav a:hover::after,.portfolio-nav nav a:focus-visible::after,.portfolio-nav nav a.active::after{transform:scaleX(1)}
.nav nav a:focus-visible,.db-nav nav a:focus-visible,.portfolio-nav nav a:focus-visible{outline:0}

.tilt-enabled{transform-style:preserve-3d;will-change:transform;backface-visibility:hidden;transform-origin:center;transition:box-shadow 280ms ease-out,filter 280ms ease-out}
.tilt-enabled.tilt-active{z-index:8;box-shadow:0 22px 55px rgba(30,24,20,.18);filter:saturate(1.02)}
.tilt-enabled img{backface-visibility:hidden}

.page-loader{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:rgba(248,247,244,.88);backdrop-filter:blur(5px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity 220ms ease-out,visibility 0s linear 220ms}
.page-loader.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.page-loader-dots{display:flex;align-items:center;gap:9px;height:32px}
.page-loader-dot{width:8px;height:8px;border-radius:50%;background:#1d1b19;animation:page-dot-bounce .5s ease-in-out infinite}
.page-loader-dot:nth-child(2){animation-delay:120ms}
.page-loader-dot:nth-child(3){animation-delay:240ms}
.page-loader-dot:nth-child(4){animation-delay:360ms}
@keyframes page-dot-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}

@media(hover:none),(pointer:coarse){.tilt-enabled{will-change:auto}.tilt-enabled:active{transform:scale(.985)!important}}
@media(prefers-reduced-motion:reduce){.nav nav a::after,.db-nav nav a::after,.portfolio-nav nav a::after{transition:none}.tilt-enabled{will-change:auto;transform:none!important;transition:none}.page-loader{transition:none}.page-loader-dot{animation:none;opacity:.72}}
