/* Styles for js/motion.js: page curtain, first-visit preloader, gold cursor, headline word masks. */
:root{--ap-ease:cubic-bezier(.2,.7,.2,1)}

/* arrival after an internal link: a navy curtain lifts (set before first paint by motion.js) */
.ap-arrive body::before{content:"";position:fixed;inset:0;z-index:100000;background:#070E1E;pointer-events:none;
  animation:apLift .85s var(--ap-ease) .08s forwards}
@keyframes apLift{to{transform:translateY(-101%)}}
/* leaving: the curtain rises over the page */
.ap-curtain{position:fixed;inset:0;z-index:100000;background:#070E1E;transform:translateY(101%);pointer-events:all;
  transition:transform .5s var(--ap-ease)}
.ap-curtain::after{content:"";position:absolute;left:50%;top:50%;width:84px;height:1px;background:linear-gradient(90deg,transparent,#E3C987,transparent);
  transform:translate(-50%,-50%);opacity:0;transition:opacity .3s .15s}
.ap-curtain.in{transform:none}
.ap-curtain.in::after{opacity:1}

/* first-visit preloader (home only, once per session) */
html.ap-loading{overflow:hidden}
.ap-pre{position:fixed;inset:0;z-index:100001;background:radial-gradient(60% 70% at 50% 45%,#16294C 0%,#070E1E 70%);display:grid;place-items:center;
  transition:transform 1s var(--ap-ease) .05s}
.ap-pre.out{transform:translateY(-101%)}
.ap-pre-in{display:grid;justify-items:center;gap:10px;color:#F6F1E6;text-align:center}
.ap-pre-in svg{width:74px;height:68px;opacity:0;transform:translateY(14px) scale(.92);animation:apPreIn 1s var(--ap-ease) .1s forwards}
.ap-pre-in b{font-family:"Bodoni Moda",var(--serif,serif);font-weight:500;font-size:28px;letter-spacing:.42em;margin-right:-.42em;
  opacity:0;transform:translateY(10px);animation:apPreIn 1s var(--ap-ease) .35s forwards}
.ap-pre-in small{font:600 10px/1 var(--sans,"Manrope",sans-serif);letter-spacing:.6em;margin-right:-.6em;color:#E3C987;
  opacity:0;animation:apPreIn 1s var(--ap-ease) .6s forwards}
.ap-pre-in i{display:block;width:160px;height:1px;margin-top:18px;background:rgba(227,201,135,.25);position:relative;overflow:hidden}
.ap-pre-in i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#B08C43,#F0D79A);transform:scaleX(0);transform-origin:left;
  animation:apPreBar 1.5s cubic-bezier(.6,0,.2,1) .25s forwards}
@keyframes apPreIn{to{opacity:1;transform:none}}
@keyframes apPreBar{to{transform:scaleX(1)}}

/* the hero entrance waits underneath the curtain, then plays when it lifts */
html.ap-loading .hero *, html.ap-loading .top{animation-play-state:paused}

/* gold cursor (fine pointers only) */
html.ap-cursor-on, html.ap-cursor-on a, html.ap-cursor-on button, html.ap-cursor-on .btn, html.ap-cursor-on label, html.ap-cursor-on select{cursor:none}
html.ap-cursor-text input, html.ap-cursor-text textarea{cursor:text}
.ap-dot,.ap-ring{position:fixed;left:0;top:0;pointer-events:none;z-index:100002;opacity:0;transition:opacity .3s}
html.ap-cursor-on .ap-dot,html.ap-cursor-on .ap-ring{opacity:1}
html.ap-cursor-text .ap-dot,html.ap-cursor-text .ap-ring{opacity:0}
.ap-dot{width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#E3C987;mix-blend-mode:difference}
.ap-ring{width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;border:1px solid rgba(227,201,135,.75);
  transition:opacity .3s,width .35s var(--ap-ease),height .35s var(--ap-ease),margin .35s var(--ap-ease),background .3s,border-color .3s}
.ap-ring.hot{width:68px;height:68px;margin:-34px 0 0 -34px;background:rgba(227,201,135,.14);border-color:#E3C987}

/* headline word masks */
.ap-split .ap-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.ap-split .ap-w > span{display:inline-block}
.ap-split-ready .ap-split .ap-w > span{transform:translateY(112%);transition:transform 1s var(--ap-ease);transition-delay:calc(var(--i,0) * 70ms)}
.ap-split-ready .ap-split.ap-in .ap-w > span{transform:none}

@media (prefers-reduced-motion:reduce){
  .ap-arrive body::before,.ap-curtain,.ap-pre{display:none}
  .ap-split-ready .ap-split .ap-w > span{transform:none;transition:none}
}
@media print{.ap-curtain,.ap-pre,.ap-dot,.ap-ring{display:none}}
