/* Login Intro: source scenes Opening 0–2s, Split 2–3.6s, Form 3.6–5.8s, Settle 5.8–7.8s. */
@font-face{font-family:AuthJost;src:url('/static/fonts/Jost-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:AuthJost;src:url('/static/fonts/Jost-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:AuthJost;src:url('/static/fonts/Jost-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:AuthMarcellus;src:url('/static/fonts/Marcellus-400.ttf') format('truetype');font-weight:400;font-display:swap}
body.auth-login-page{--font-ui:AuthJost,'Helvetica Neue',Arial,sans-serif;--font-body:var(--font-ui);--font-display:AuthMarcellus,Georgia,serif;--font-heading:var(--font-display);background:#FDFBF8;overflow-x:clip}
.auth-login-page .site-main{overflow:clip}
.auth-intro{--intro-draw:cubic-bezier(.65,0,.35,1);--intro-enter:cubic-bezier(.215,.61,.355,1);position:relative;min-height:100vh;min-height:100svh;grid-template-columns:minmax(0,42.708333%) minmax(0,1fr);background:#FDFBF8;font-family:AuthJost,'Helvetica Neue',Arial,sans-serif;transform-origin:50% 50%}
.auth-intro .auth-v2__brand{position:absolute;inset:0 auto 0 0;width:42.708333%;padding:0;min-height:0;background:#4B2A7D;z-index:2}
.auth-intro .auth-v2__brand::before,.auth-intro .auth-v2__brand::after{display:none}
.auth-intro .auth-v2__logo{position:absolute;left:50%;top:calc(50% - 50px);width:min(21.875vw,420px);height:auto;max-width:none;transform:translate(-50%,-50%);object-position:center;z-index:1}
.auth-intro__tagline{position:absolute;top:calc(50% + 150px);left:8%;width:84%;margin:0;color:white;text-align:center;font:400 clamp(18px,1.354167vw,26px)/1.4 AuthMarcellus,Georgia,serif;z-index:1}
.auth-intro__mandalas{position:absolute;inset:0;pointer-events:none}
.auth-intro__mandala{position:absolute;height:auto;max-width:none;transform:translate(-50%,-50%);opacity:.2;animation:auth-mandala-turn 45s linear infinite}
.auth-intro__mandala--one{left:-6.25vw;top:13.889%;width:min(29.167vw,560px)}
.auth-intro__mandala--two{left:calc(100% - 3.646vw);top:91.667%;width:min(23.958vw,460px);animation-direction:reverse}
.auth-intro__mandala--three{left:calc(100% - 7.8125vw);top:6.481%;width:min(12.5vw,240px);opacity:.16;animation-duration:32.727s}
.auth-intro .auth-v2__main{grid-column:2;min-width:0;padding:48px clamp(32px,5vw,96px);box-sizing:border-box}
.auth-intro .auth-v2__card{width:min(100%,460px)}
.auth-intro .auth-v2__eyebrow{margin:0 0 14px;letter-spacing:.12em;font-size:13px;font-weight:500;color:#5B369F}
.auth-intro .auth-v2__card h1{font:400 clamp(38px,3vw,52px)/1.15 AuthMarcellus,Georgia,serif;letter-spacing:0;color:#2B2430}
.auth-intro .auth-v2__lead{margin:14px 0 28px;font-size:18px;line-height:1.6;color:#6B5F53;text-wrap:pretty}
.auth-intro .auth-v2__form{gap:20px}
.auth-intro .auth-v2__field label{font-size:15px;font-weight:500;color:#2B2430}
.auth-intro .auth-v2__field input{border-color:#DCCBB4;font-family:inherit;font-size:17px;font-weight:400}
body.auth-login-page #login-email,body.auth-login-page #login-password{border-radius:14px!important;min-height:53px;font-family:AuthJost,'Helvetica Neue',Arial,sans-serif;font-size:17px}
.auth-intro__password{position:relative;min-width:0}
body.auth-login-page .auth-intro__password #login-password{width:100%;padding-right:56px}
.auth-intro__password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:#5B369F;cursor:pointer}
.auth-intro__password-toggle[hidden]{display:none}
.auth-intro__password-toggle:hover{background:#F1E9FA}
.auth-intro__password-toggle:focus-visible{outline:2px solid #8459C4;outline-offset:1px}
.auth-intro__password-slash{display:none}
.auth-intro__password-toggle[data-visible=true] .auth-intro__password-slash{display:block}
.auth-intro .auth-v2__field input:focus{border-color:#8459C4;box-shadow:0 0 0 3px #F1E9FA}
.auth-intro .auth-v2__row{justify-content:flex-end;margin-top:-8px;font-size:15px}
.auth-intro .auth-v2__row a{font-weight:500;color:#5B369F}
.auth-intro .auth-v2__button{font-weight:500;background:#5B369F}
.auth-intro .auth-v2__button:hover{background:#4B2A7D}
.auth-intro .auth-v2__note{margin:28px 0 0;padding:0;border:0;font-size:14px;text-align:center;color:#6B5F53}
/* CSS alone completes the intro, so a missing script cannot hide the form permanently. */
.auth-intro[data-auth-intro=play]:not(.auth-intro--ready){animation:auth-intro-camera 7.8s ease-in-out both}
.auth-intro[data-auth-intro=play]:not(.auth-intro--ready) .auth-v2__brand{animation:auth-panel-split 1.3s var(--intro-draw) 2s backwards}
.auth-intro[data-auth-intro=play]:not(.auth-intro--ready) .auth-v2__logo{animation:auth-logo-opening 2s var(--intro-enter) both,auth-logo-split 1.3s var(--intro-draw) 2s backwards}
.auth-intro[data-auth-intro=play]:not(.auth-intro--ready) .auth-intro__mandalas{animation:auth-mandalas-in 2.4s ease-in-out .4s both}
.auth-intro[data-auth-intro=play]:not(.auth-intro--ready) .auth-intro__tagline{animation:auth-form-rise .9s var(--intro-enter) 3s backwards}
.auth-intro[data-auth-intro=play]:not(.auth-intro--ready) .auth-v2__main{animation:auth-form-visible .01s 3.6s backwards}
.auth-intro[data-auth-intro=play]:not(.auth-intro--ready) .auth-intro__rise{animation:auth-form-rise .9s var(--intro-enter) var(--intro-at) backwards}
@keyframes auth-intro-camera{from{transform:scale(1.035)}to{transform:scale(1)}}
@keyframes auth-panel-split{from{width:100%}to{width:42.708333%}}
@keyframes auth-logo-opening{0%,12.5%{opacity:0;filter:blur(14px);scale:.92}77.5%{opacity:1}100%{opacity:1;filter:blur(0);scale:1}}
@keyframes auth-logo-split{from{width:min(29.167vw,560px);top:50%}to{width:min(21.875vw,420px);top:calc(50% - 50px)}}
@keyframes auth-mandalas-in{from{opacity:0}to{opacity:1}}
@keyframes auth-mandala-turn{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes auth-form-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes auth-form-visible{from{visibility:hidden}to{visibility:visible}}
@media(max-width:860px){
  .auth-intro{grid-template-columns:minmax(0,1fr);grid-template-rows:260px 1fr;transform-origin:50% 40%}
  .auth-intro .auth-v2__brand{inset:0 0 auto;width:100%;height:260px;border-radius:0 0 28px 28px}
  .auth-intro .auth-v2__logo{top:140px;width:190px}
  .auth-intro__tagline,.auth-intro__mandala--three{display:none}
  .auth-intro__mandala--one{left:-40px;top:50px;width:220px}
  .auth-intro__mandala--two{left:calc(100% + 20px);top:calc(100% - 30px);width:260px}
  .auth-intro .auth-v2__main{grid-column:1;grid-row:2;padding:36px 24px max(40px,env(safe-area-inset-bottom));place-items:start center}
  .auth-intro .auth-v2__eyebrow{font-size:12px;margin-bottom:10px}
  .auth-intro .auth-v2__card h1{font-size:34px}
  .auth-intro .auth-v2__lead{font-size:16px;line-height:1.55;margin:10px 0 24px}
  .auth-intro .auth-v2__form{gap:16px}
  .auth-intro .auth-v2__row{margin-top:-6px}
  .auth-intro .auth-v2__note{margin-top:24px;font-size:13px}
  .auth-intro[data-auth-intro=play]:not(.auth-intro--ready) .auth-v2__brand{animation-name:auth-panel-collapse}
  .auth-intro[data-auth-intro=play]:not(.auth-intro--ready) .auth-v2__logo{animation-name:auth-logo-opening,auth-logo-mobile-split}
  @keyframes auth-panel-collapse{from{height:100svh;border-radius:0}to{height:260px;border-radius:0 0 28px 28px}}
  @keyframes auth-logo-mobile-split{from{width:280px;top:50svh}to{width:190px;top:140px}}
}
@media(prefers-reduced-motion:reduce){
  .auth-intro,.auth-intro *{animation:none!important;transition:none!important}
}
