/* ===== Space D polish layer (shared) ===== */
:root{--pz-e:cubic-bezier(.2,.7,.2,1)}
.pz-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:9999;background:linear-gradient(90deg,var(--pz-a),var(--pz-a2));transform-origin:0 50%;transform:scaleX(0);pointer-events:none;opacity:.85}
html.pz{scroll-behavior:smooth}
html.pz body{overflow-x:clip}
html.pz .rv{transition:opacity .85s var(--pz-e),transform .95s var(--pz-e),filter 1s var(--pz-e);transition-delay:var(--d,0s)}
html.pz .rv:not(.in){transform:translateY(26px)}
html.pz .rv.pz-done{transition:opacity .6s var(--pz-e),transform .6s var(--pz-e),border-color .4s,box-shadow .5s var(--pz-e),background-color .4s;transition-delay:0s}
html.pz h2.rv{transition:opacity .9s var(--pz-e),transform 1s var(--pz-e),filter 1.1s var(--pz-e);transition-delay:var(--d,0s)}
html.pz h2.rv:not(.in){filter:blur(7px)}
html.pz img.pz-img{clip-path:inset(6% 4% 6% 4%);scale:1.08;transition:clip-path 1.4s var(--pz-e),scale 2s var(--pz-e),transform 1.2s var(--pz-e),filter .7s ease}
html.pz img.pz-img.pz-in{clip-path:inset(0 0 0 0);scale:1}
/* button sheen: a soft light sweep on hover */
.btn{position:relative;overflow:hidden;isolation:isolate}
html.pz .btn:after{content:"";position:absolute;top:-10%;bottom:-10%;left:-70%;width:45%;background:linear-gradient(100deg,transparent,var(--pz-sheen,rgba(255,255,255,.32)),transparent);transform:skewX(-20deg);pointer-events:none;z-index:1}
html.pz .btn:hover:after{transform:skewX(-20deg) translateX(480%);transition:transform 1.05s var(--pz-e)}
@keyframes pzkbs{from{scale:1}to{scale:1.045}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.pz-progress{transition:none}img.pz-img{clip-path:none!important;scale:1!important}}

/* ===== Ridgeholt — site tuning ===== */
:root{--pz-a:#2f8cff;--pz-a2:#7cc0ff;--pz-sheen:rgba(255,255,255,.34)}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.065) translate(-.8%,-.5%)}}
.hero .bg{animation-duration:20s}
.nav-in{transition:background .4s,color .4s,box-shadow .4s,height .5s var(--pz-e)}
.nav.scrolled .nav-in{height:60px}
.links a{position:relative;transition:opacity .3s,color .3s}
.links a:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;border-radius:2px;background:var(--sky);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--pz-e)}
.links a:hover:after{transform:scaleX(1);transform-origin:left}
.btn{transition:transform .45s var(--pz-e),box-shadow .45s var(--pz-e),background .3s}
.btn-p:hover{box-shadow:0 18px 36px -12px rgba(47,140,255,.75)}
.pj{transition:transform .9s var(--pz-e),box-shadow .9s var(--pz-e)}
.pj:hover{transform:translateY(-6px);box-shadow:0 34px 60px -30px rgba(11,31,58,.55)}
.pj img,.tile.img img{transition:transform 1.4s var(--pz-e),clip-path 1.4s var(--pz-e),scale 2s var(--pz-e)}
.pj:hover img{transform:scale(1.045)}.tile.img:hover img{transform:scale(1.04)}
.tile{transition:transform .8s var(--pz-e),box-shadow .8s var(--pz-e)}
.rev,.stat{transition:transform .8s var(--pz-e),box-shadow .8s var(--pz-e),opacity .85s var(--pz-e)}
.rev.pz-done:hover,.stat.pz-done:hover{transform:translateY(-4px);box-shadow:0 26px 50px -30px rgba(11,31,58,.35)}
footer .pz-note{margin-top:14px;font-size:.78rem;opacity:.7}
