/* Welcome concept: one centred logo, a quiet glass panel and a phone behind it. */
.welcome-entry{min-height:100svh;background:radial-gradient(ellipse at 70% 40%,#e9ddfa8a,transparent 55%),radial-gradient(ellipse at 20% 85%,#efe6ff99,transparent 50%),#faf8fd}
.welcome-entry:before{display:none}
.welcome-entry main.auth-main{display:grid;grid-template-columns:minmax(0,1fr);place-items:center;min-height:100svh;max-width:none;padding:80px 24px;margin:0;gap:0!important;overflow:hidden}
.welcome-stage{position:relative;width:min(100%,420px);isolation:isolate}
.welcome-panel{position:relative;z-index:2;padding:40px 26px 30px;border:1px solid #ffffffed;border-radius:30px;background:transparent}
.welcome-panel:before{content:"";position:absolute;inset:-1px;z-index:-1;border:1px solid #ffffffed;border-radius:inherit;background:linear-gradient(135deg,#ffffffed,#fffffff2);box-shadow:0 24px 80px #73509c0b;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.welcome-entry .auth-header{display:flex;justify-content:center;width:100%;padding:0;margin:0 0 42px;max-width:none}
.welcome-title{margin:0;line-height:1.2}
.welcome-entry .auth-header .brand{margin:0;font-size:clamp(37px,10vw,48px);letter-spacing:-2.5px;line-height:1.2;font-weight:800}
.welcome-entry .entry-login{min-height:56px;font-size:15px;border-radius:15px;padding:16px 20px;background:linear-gradient(115deg,#9865e8,#7943d8);box-shadow:0 6px 22px #8551d51c}
.welcome-entry .entry-login .icon{width:19px;height:19px}
.welcome-entry .entry-signup{min-height:52px;margin:10px 0 16px;border-radius:14px;background:#ffffff80;color:#775299;font-size:14px}
.welcome-entry .entry-signup:hover{background:#f3edfc}
.welcome-entry .social-buttons{grid-template-columns:1fr 1fr;gap:10px}
.welcome-entry .social-button{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;padding:12px 8px;min-height:48px;font-size:13px;color:#30273c;border-color:#ece7f2;background:#ffffffa8}
.welcome-entry .social-button>small{width:100%;text-align:center;font-size:9px;line-height:1.3}
.welcome-entry .social-note{font-size:10px;color:#806d92;line-height:1.6;margin:12px 2px 0}
.welcome-entry .auth-loading{min-height:190px}
.welcome-phone{pointer-events:none;position:absolute;z-index:0;width:285px;height:595px;right:-85px;top:-125px;border:3px solid #c7bdcc;border-radius:48px;padding:7px;background:linear-gradient(120deg,#fff,#dfd6e5);box-shadow:9px 18px 42px #674b7a20;transform:rotate(-14deg);opacity:.58}
.welcome-phone-screen{position:relative;width:100%;height:100%;overflow:hidden;border-radius:38px;background:#f8f5fd;border:2px solid #44394b}
.welcome-phone-screen img{display:block;position:absolute;top:-18px;left:0;width:100%;height:auto}
.welcome-phone-island{position:absolute;top:9px;left:50%;transform:translateX(-50%);width:78px;height:20px;border-radius:20px;background:#322c39;box-shadow:0 -18px 0 22px #f8f5fd}
.brand-intro-active .welcome-entry .auth-main{visibility:visible}
.brand-intro-active .welcome-entry .auth-header{z-index:211}
.brand-intro-active .welcome-panel{z-index:211;background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.brand-intro-active .welcome-entry .entry-controls{visibility:visible;animation:welcome-scene-reveal 2.7s both}
.brand-intro-active .welcome-panel:before{animation:welcome-scene-reveal 2.7s both}
.brand-intro-active .welcome-phone{visibility:visible;animation:welcome-phone-enter 1.1s 1.55s cubic-bezier(.16,1,.3,1) both}
@keyframes welcome-scene-reveal{0%,57%{opacity:0}100%{opacity:1}}
@keyframes welcome-phone-enter{from{opacity:0;transform:translate(160px,65px) rotate(-26deg) scale(.8)}to{opacity:.58;transform:translate(0,0) rotate(-14deg) scale(1)}}
@keyframes welcome-controls-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:761px){.welcome-stage{width:460px}.welcome-entry main.auth-main{padding:140px 32px}.welcome-panel{padding:46px 38px 34px;border-radius:34px}.welcome-phone{width:330px;height:688px;right:-135px;top:-145px}.welcome-entry .auth-header .brand{font-size:52px}.welcome-entry .auth-header{margin-bottom:46px}}
@media(max-width:360px){.welcome-entry main.auth-main{padding:65px 20px}.welcome-panel{padding:32px 20px 25px}.welcome-entry .auth-header{margin-bottom:32px}.welcome-phone{right:-65px;width:250px;height:520px;top:-100px}}
@media(prefers-reduced-motion:reduce){.welcome-ready .welcome-phone,.welcome-ready .entry-controls{animation:none}}
.welcome-phone-screen:after{box-sizing:border-box;content:"9:41";position:absolute;inset:0 0 auto;height:32px;background:#f8f5fd;padding:11px 18px;font-size:8px;color:#777080}
.welcome-phone-island{z-index:1;box-shadow:none}

/* Reserve space for the phone greeting above the controls on each viewport. */
@media(max-width:760px){
  .welcome-entry{min-height:100vh;min-height:100dvh}
  .welcome-entry main.auth-main{
    display:flex;flex:0 0 auto;flex-direction:column;align-items:center;justify-content:flex-start;
    min-height:100vh;min-height:100dvh;
    padding:clamp(130px,22vh,190px) 24px max(28px,env(safe-area-inset-bottom));
    padding-top:max(clamp(130px,22dvh,190px),calc(env(safe-area-inset-top) + 44px));
  }
  .welcome-stage{flex:none;width:min(100%,420px)}
  .welcome-phone{top:-165px;right:-65px}
}
@media(max-width:760px) and (max-height:700px){
  .welcome-entry main.auth-main{padding:clamp(80px,18vh,126px) 20px max(24px,env(safe-area-inset-bottom));padding-top:max(clamp(80px,18dvh,126px),calc(env(safe-area-inset-top) + 20px))}
  .welcome-panel{padding:28px 22px 24px}
  .welcome-entry .auth-header{margin-bottom:28px}
  .welcome-entry .entry-login{min-height:50px;padding:14px 18px}
  .welcome-entry .entry-signup{min-height:46px;margin:8px 0 12px}
  .welcome-phone{top:-135px;width:250px;height:520px}
}
@media(max-height:500px) and (orientation:landscape){
  .welcome-entry main.auth-main{display:grid;place-items:center;min-height:100vh;min-height:100dvh;padding:16px max(24px,env(safe-area-inset-right)) 16px max(24px,env(safe-area-inset-left))}
  .welcome-stage{width:min(100%,440px)}
  .welcome-panel{padding:20px 28px}
  .welcome-entry .auth-header{margin-bottom:14px}
  .welcome-entry .auth-header .brand{font-size:34px}
  .welcome-entry .entry-login{min-height:44px;padding:12px 18px}
  .welcome-entry .entry-signup{min-height:40px;margin:6px 0 8px}
  .welcome-entry .social-button{min-height:40px;padding:8px}
  .welcome-entry .social-note{font-size:9px;margin-top:8px}
  .welcome-phone{top:-50px}
}

.auth-legal{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:24px;color:#81758e;font-size:12px}.auth-legal a{color:inherit;text-underline-offset:3px}.auth-legal a:focus-visible{outline:2px solid #8550d3;outline-offset:4px}
