/* Shared wow layer for every page: page transitions, custom cursor, scroll progress */
.veil{position:fixed;inset:0;z-index:120;background:var(--pine-950);display:grid;place-items:center;transform:translateY(101%);visibility:hidden;transition:transform .7s var(--ease),visibility 0s .7s;pointer-events:none}
.veil img{width:56px;opacity:0;transition:opacity .3s .3s}
.veil.in{transform:none;visibility:visible;transition:transform .7s var(--ease);pointer-events:all}
.veil.in img{opacity:1;animation:veilspin 1.4s linear infinite}
@keyframes veilspin{to{transform:rotate(360deg)}}
.arrive{position:fixed;inset:0;z-index:119;background:var(--pine-950);display:grid;place-items:center;pointer-events:none;animation:arriveOut .9s var(--ease) .15s forwards}
.arrive img{width:56px;animation:arriveMark .9s var(--ease) both}
@keyframes arriveOut{to{transform:translateY(-101%)}}
@keyframes arriveMark{from{transform:rotate(-90deg) scale(.6);opacity:.2}to{transform:none;opacity:1}}

.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:61;background:var(--cream);transform-origin:0 50%;transform:scaleX(0);pointer-events:none;opacity:.85}

html.has-cursor, html.has-cursor *{cursor:none!important}
html.has-cursor input[type="text"], html.has-cursor input[type="email"], html.has-cursor textarea{cursor:text!important}
.cur-dot,.cur-ring{position:fixed;left:0;top:0;pointer-events:none;z-index:130;border-radius:50%}
.cur-dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--cream);mix-blend-mode:difference}
.cur-ring{mix-blend-mode:difference;width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(252,237,215,.55);display:grid;place-items:center;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .35s,border-color .35s}
.cur-ring span{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--pine);opacity:0;transition:opacity .2s}
.cur-ring.hover{width:64px;height:64px;margin:-32px 0 0 -32px;border-color:transparent;background:rgba(252,237,215,.16);backdrop-filter:blur(2px)}
.cur-ring.label{mix-blend-mode:normal;width:86px;height:86px;margin:-43px 0 0 -43px;background:var(--cream);border-color:var(--cream)}
.cur-ring.label span{opacity:1}
.cur-ring.down{width:28px;height:28px;margin:-14px 0 0 -14px}
@media (prefers-reduced-motion:reduce){.veil,.arrive{display:none}}
