/* Shared entrance art: vector mascot, CSS orbits and lightweight product previews. */
.welcome-layout{display:grid;grid-template-columns:minmax(340px,.9fr) minmax(480px,1.15fr);align-items:center;gap:clamp(30px,6vw,100px);width:min(1320px,100%);margin:auto;position:relative;z-index:1;padding:44px 0}
.welcome-copy{text-align:left;max-width:520px}.welcome-copy .eyebrow{color:#c5e49c;font-size:10px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 22px}.welcome-copy h1{font-size:clamp(48px,4.8vw,76px);line-height:1.04;letter-spacing:-.055em;font-weight:500;margin:0 0 24px;color:#f1f4e9}.welcome-copy h1 em{font-family:Georgia,serif;font-weight:400;color:#d6eead}.welcome-copy .intro{font-size:15px;line-height:1.8;color:#b4c1ac;max-width:390px;margin:0 0 30px}.welcome-copy .welcome-actions{max-width:380px}.welcome-top{display:flex;justify-content:space-between;align-items:center;width:100%;position:relative;z-index:2}.welcome-top img{width:130px;height:44px;object-fit:contain}.welcome-top span{font-size:11px;color:#acbba1}.welcome-bottom{display:flex;justify-content:space-between;color:#91a18a;font-size:11px;width:100%;gap:16px;position:relative;z-index:1}
.welcome-universe{position:relative;height:540px;width:100%;isolation:isolate}.welcome-universe:before{content:'';position:absolute;inset:10%;border-radius:50%;background:radial-gradient(circle,#b6e77525,transparent 67%);filter:blur(30px)}.universe-orbit{position:absolute;border:1px solid #c4e6a51b;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-24deg);width:92%;height:70%}.orbit-two{width:70%;height:99%;transform:translate(-50%,-50%) rotate(35deg)}.universe-orbit:after{content:'';position:absolute;top:16%;left:13%;width:7px;height:7px;border-radius:50%;background:#d9f3b3;box-shadow:0 0 22px #d0eea9}.universe-core{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px}.universe-core img{width:128px;height:128px;filter:drop-shadow(0 18px 34px #0006)}.universe-core>span{font-size:11px;letter-spacing:.06em;color:#c3d7b2}.moment{position:absolute;padding:23px;border:1px solid #e4f7ca25;border-radius:20px;background:linear-gradient(130deg,#344b35ed,#1c2c22f5);box-shadow:0 20px 50px #0003,inset 0 1px #ffffff08;animation:welcome-rise .9s both}.moment-label{display:block;font-size:9px;letter-spacing:.15em;color:#aec59a;margin-bottom:12px}.moment strong{display:block;font-size:17px;line-height:1.5;font-weight:500;color:#eff4e7;letter-spacing:-.3px}.moment-day{top:5px;left:0;width:285px;transform:rotate(-4deg)}.moment-task{display:flex;align-items:center;gap:9px;color:#c7d2be;font-size:11px;margin-top:15px}.moment-task b{background:#d4eaae19;color:#d6f3af;border:1px solid #cbeba936;border-radius:50%;height:20px;width:20px;display:grid;place-items:center;font-size:11px}.moment-progress{height:4px;background:#d8f5ae13;border-radius:4px;margin-top:20px}.moment-progress i{display:block;width:72%;height:100%;background:#c5e69a;border-radius:inherit}.moment-travel{right:0;bottom:42px;width:245px;transform:rotate(5deg);animation-delay:.15s}.mini-earth{width:78px;height:78px;border-radius:50%;margin:-58px 0 20px auto;background:radial-gradient(circle at 30% 25%,#ffffff33,transparent 55%),url('../assets/maps/passport-relief.webp') center/auto 100%;box-shadow:inset -15px -9px 20px #142419aa,0 12px 25px #0004;border:1px solid #afc9a355}.moment-detail{display:block;font-size:10px;color:#9fb293;margin-top:12px}.moment-thought{left:-10px;bottom:48px;width:228px;transform:rotate(-3deg);animation-delay:.3s}.thought-star{display:block;color:#d4f39f;font-size:23px;margin-bottom:13px}.universe-caption{position:absolute;bottom:0;left:0;right:0;text-align:center;color:#8da181;font-size:10px;letter-spacing:.06em}
@keyframes welcome-rise{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}@media(min-width:1450px){.welcome-universe{height:600px}.moment-travel{bottom:65px}.moment-thought{bottom:70px}}@media(max-width:1050px){.welcome-layout{gap:28px;grid-template-columns:1fr 1fr}.moment-day{width:245px}.moment-thought{width:200px;left:0}.moment-travel{width:205px;bottom:10px}.welcome-universe{height:510px}.universe-caption{bottom:-22px}.moment{padding:18px}}@media(max-width:760px){.welcome-layout{grid-template-columns:1fr}.welcome-copy{max-width:460px;margin:auto}.welcome-universe{display:none}.welcome-top span{display:none}}@media(prefers-reduced-motion:reduce){.moment{animation:none}}

/* Keep the full entrance in view on typical laptop browser windows. */
.universe-core>span{display:none}@media(min-width:761px) and (max-height:800px){.welcome-layout{padding:24px 0}.welcome-universe{height:480px}.moment-travel{bottom:24px}.moment-thought{bottom:28px}}

/* Step two reuses the original luminous particle entrance, with login beneath it. */
.auth-entrance .welcome-layout{display:flex;flex-direction:column;gap:0;padding:20px 0}.auth-entrance .welcome-copy{text-align:center;max-width:560px;display:contents}.auth-entrance .eyebrow,.auth-entrance .intro{display:none}.auth-entrance #welcome{font-size:clamp(38px,4.5vw,64px);text-align:center;order:0;margin:0}.auth-entrance #welcome-art{order:1;width:min(620px,100%);height:230px}.auth-entrance .welcome-actions{order:2;width:330px;max-width:100%;text-align:center}.auth-entrance .entry-particle-stage,.account-onboarding .entry-particle-stage{height:230px;width:100%;position:relative}.entry-particle-stage canvas{width:100%;height:100%;display:block}.auth-entrance .back{display:block;padding:14px;background:#d8f797;color:#23311c;border-radius:12px;font-weight:600}.entering-workspace .welcome-actions{opacity:0;transition:opacity .3s}.entering-workspace{animation:welcome-exit 1.6s forwards}@keyframes welcome-exit{0%,65%{opacity:1}100%{opacity:0}}@media(prefers-reduced-motion:reduce){.entering-workspace{animation:none}}

/* Quiet, consistent footer on both public entrance steps and account setup. */
.welcome-legal{display:flex;justify-content:center;align-items:center;position:relative;z-index:2;flex-shrink:0;padding-top:16px}.welcome-legal .entry-links{display:flex;align-items:center;gap:14px}.welcome-legal .entry-link-placeholder{font-size:11px;color:#aab8a3;margin-right:8px;cursor:default}.welcome-legal .entry-social-placeholder{display:grid;place-items:center;width:28px;height:28px;color:#aab8a3;cursor:default}.welcome-legal svg{display:block;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.account-onboarding>.welcome-legal{width:100%}

/* Page two deliberately matches Preview entrance: same ink background,
   Manrope headline, luminous green and full-size particle sculpture. */
.auth-entrance .login-scene,.account-onboarding{background:radial-gradient(ellipse at 50% 45%,#182820 0%,#101814 46%,#0c110f 100%);color:#f3f5ec;padding:clamp(20px,3vw,42px)}
.auth-entrance .welcome-layout{margin:auto;padding:20px 0;flex:0 0 auto;width:100%}.auth-entrance #welcome,.account-entry-centre h1{font-family:Manrope,system-ui,sans-serif;font-size:clamp(30px,4vw,54px);font-weight:400;line-height:1.06;letter-spacing:-.055em;margin:0}.auth-entrance #welcome em,.account-entry-centre h1 em{font-family:inherit;font-style:normal;font-weight:400;color:#dbf7ad;letter-spacing:-.04em}.auth-entrance #welcome-art{width:min(100%,850px);height:clamp(230px,42vh,390px);margin:12px 0 20px}.auth-entrance .entry-particle-stage{height:100%;width:100%}.account-entry-centre{width:min(100%,850px)}.account-onboarding .entry-particle-stage{height:clamp(230px,42vh,390px);margin:12px 0 20px}.auth-entrance .primary,.auth-entrance .back{border-radius:40px;background:#d9f976;color:#253019}.auth-entrance #welcome-footer{margin-top:auto}.auth-entrance .welcome-legal{justify-content:flex-start}.auth-entrance #providers{display:flex;justify-content:center;gap:10px}.auth-entrance #providers .social{width:auto;flex:1;padding:10px;font-size:11px;flex-direction:column;gap:6px;min-height:62px}.auth-entrance .login-divider{margin:4px 0 12px}.auth-entrance #login-status{margin-top:12px}.auth-entrance .entering-workspace{pointer-events:none}.auth-entrance.entering-workspace{animation:original-entry-exit 2.4s ease-in-out forwards}.auth-entrance.entering-workspace #welcome,.auth-entrance.entering-workspace #welcome-footer{opacity:0;transition:opacity .65s}@keyframes original-entry-exit{0%,48%{opacity:1}72%{opacity:.7}100%{opacity:0}}@media(max-height:800px){.auth-entrance #welcome-art,.account-onboarding .entry-particle-stage{height:220px;margin:8px 0 14px}.auth-entrance .welcome-layout{padding:14px 0}}@media(prefers-reduced-motion:reduce){.auth-entrance.entering-workspace{animation:none}}

/* Disabled providers remain identifiable without implying a live connection. */
.auth-entrance #providers .social:disabled{opacity:.65;cursor:not-allowed}.auth-entrance #providers .social small{font-size:9px;color:#b4c2a7}.auth-entrance #providers .social>span{font-size:22px;line-height:22px}
/* Keep provider choices and the footer visible on laptop-height displays. */
@media(max-height:800px){.auth-entrance #welcome-art{height:165px}.auth-entrance .login-scene{padding-top:22px;padding-bottom:22px}.auth-entrance #providers .social{min-height:76px;padding:8px}.auth-entrance #welcome{font-size:42px}.auth-entrance .welcome-layout{padding:8px 0}}

/* Two explicit pages: branded landing, then a compact and clearly labelled login.
   Reserve footer space instead of letting the provider controls push it off-screen. */
.entrance-brand{flex-shrink:0;position:relative;z-index:2;display:flex;align-items:center;height:42px}.entrance-brand a{display:inline-flex}.entrance-brand img{display:block;object-fit:contain}.login-heading{font-size:18px;line-height:1.3;font-weight:500;letter-spacing:-.3px;margin:0 0 12px;color:#edf3e5}.auth-entrance .login-scene{min-height:100dvh;padding:22px 38px 20px;gap:0}.auth-entrance .welcome-layout{margin:8px auto auto;padding:0}.auth-entrance #welcome{font-size:clamp(32px,3.5vw,48px)}.auth-entrance #welcome-art{height:clamp(110px,20vh,190px);margin:0 0 6px}.auth-entrance .welcome-actions{width:350px}.auth-entrance #providers .social{min-height:70px;padding:7px;gap:4px;margin-bottom:8px}.auth-entrance .login-divider{margin:0 0 10px}.auth-entrance input,.auth-entrance .primary{min-height:42px}.auth-entrance input{padding:10px 14px}.auth-entrance #login-status{margin:10px 0 0;min-height:18px}.auth-entrance #welcome-footer{width:100%;padding-top:14px;margin-top:auto}.auth-entrance .welcome-legal{padding-top:0;min-height:28px}@media(max-height:700px){.auth-entrance #welcome-art{height:100px}.auth-entrance #welcome{font-size:32px}.auth-entrance .login-scene{padding-top:16px}.auth-entrance .welcome-layout{margin-top:0}}

/* The sculpture is the focal point; compact icon choices make room beneath it. */
.auth-entrance #welcome-art{height:clamp(210px,32vh,390px);margin:5px 0 12px}.auth-entrance #providers{gap:12px;margin-bottom:12px}.auth-entrance #providers .social{flex:0 0 54px;width:54px;min-height:46px;height:46px;padding:11px;border-radius:13px}.auth-entrance #providers .social img{width:23px;height:23px;filter:invert(92%) sepia(10%) saturate(200%);object-fit:contain}.auth-entrance .login-heading{margin-bottom:10px}.password-label{margin-top:10px}.auth-secondary{display:flex;justify-content:space-between;gap:12px;margin-top:12px}.auth-secondary button{width:auto;min-height:24px;border:0;background:none;padding:0;font-size:10px;color:#b8c9aa}.auth-secondary button:hover{color:#e0f7b5;background:none}.auth-entrance #login-status:empty{display:none}@media(max-height:800px){.auth-entrance #welcome-art{height:180px}.auth-entrance #welcome{font-size:34px}.auth-entrance .login-scene{padding-top:15px}.auth-entrance .welcome-layout{margin-top:0}.auth-entrance .entrance-brand{height:35px}.auth-entrance #welcome-footer{padding-top:8px}}
@media(max-height:800px){.auth-entrance .login-scene{padding-top:10px;padding-bottom:12px}.auth-entrance .password-label{margin-top:7px}.auth-entrance input,.auth-entrance .primary{min-height:38px}.auth-entrance input{padding:8px 14px}.auth-entrance .auth-secondary{margin-top:8px}}

/* An active session can resume without resubmitting credentials. */
.switch-account{display:block;width:auto;min-height:24px;margin:8px auto 0;padding:0;border:0;background:none;color:#adbea3;font-size:10px;cursor:pointer}.auth-entrance .back{margin-top:12px;padding:10px}

/* Shared footer links remain accessible on narrow entrance screens. */
.welcome-legal .entry-links{flex-wrap:wrap}.welcome-legal .entry-links>a{font-size:11px;color:#c5d1ba;text-decoration:none;white-space:nowrap}.welcome-legal .entry-links>a:hover{text-decoration:underline}

/* Waitlist keeps the particle artwork as the focus and gives the single action
   a quiet, readable hierarchy. It shares the entrance's existing responsive grid. */
.waitlist-entrance .welcome-actions{width:min(100%,410px)}
.waitlist-entrance .login-heading{font-size:25px;letter-spacing:-.7px;margin:10px 0}
.waitlist-copy{font-size:13px;line-height:1.7;color:#aab9a2;max-width:350px;margin:0 auto 22px}
.waitlist-entrance input,.waitlist-entrance .primary{min-height:48px;border-radius:12px}
.waitlist-privacy{font-size:10px;line-height:1.8;color:#94a38b;text-align:center;margin:14px 0 0}
.waitlist-privacy a{color:#b5c8a5;text-underline-offset:3px}
.waitlist-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
#waitlist-status{font-size:13px;color:#d3ef9d;line-height:1.7;margin:16px 0}
#waitlist-status:empty{display:none}#waitlist-status.error{color:#f1b9a8}
@media(max-height:800px){.waitlist-entrance #welcome-art{height:170px}.waitlist-copy{margin-bottom:16px}.waitlist-entrance .login-heading{font-size:22px}}

/* Keep the verification step aligned with the email field, with its own label
   and breathing room. Scope this to the private sign-in entrance. */
.auth-entrance .login-code-field{margin-top:20px;text-align:left;width:100%}
.auth-entrance .login-code-field label{margin:0 0 9px}
.auth-entrance .login-code{display:block;width:100%;min-height:48px;letter-spacing:.18em;font-variant-numeric:tabular-nums}
.auth-entrance .login-code::placeholder{letter-spacing:normal}
/* Keep the silhouette visible until its final lift, then fade the page. */
@keyframes original-entry-exit{0%,78%{opacity:1}100%{opacity:0}}

/* Let the completed elephant remain visible; only the final handoff fades. */
.auth-entrance.entering-workspace,.account-onboarding.entering-workspace{animation:inoku-arrival-fade 2.4s linear forwards}
@keyframes inoku-arrival-fade{0%,82%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.auth-entrance.entering-workspace,.account-onboarding.entering-workspace{animation:none}}
