body.welcome-page { background:#faf9f5; color:#14322e; font-family:'Nunito Sans',sans-serif; min-height:100svh; }
.welcome-main { width:min(100% - 40px,520px); margin:auto; padding:clamp(20px,3vh,40px) 0 28px; }
.welcome-brand { display:flex; flex-direction:column; align-items:center; width:fit-content; margin:0 auto 22px; color:#163c35; font:700 23px/1.2 'Nunito',sans-serif; letter-spacing:-.035em; text-decoration:none; }
body[data-page=signup] .welcome-brand span { display:none; }
.welcome-mascot { display:block; width:120px; height:120px; transform-origin:50% 85%; animation:welcome-wave 3.4s ease-in-out 2; }
@keyframes welcome-wave { 0%,100% {transform:rotate(0)} 20% {transform:rotate(-4deg) translateY(-3px)} 40% {transform:rotate(3deg) translateY(-2px)} 60% {transform:rotate(-2deg)} 80% {transform:rotate(1deg)} }
.welcome-card { padding:32px 36px; border:1px solid #e9ede5; border-radius:32px; background:#fff; box-shadow:0 12px 40px #163c3505; }
.welcome-card h1 { margin:0 0 12px; font:700 32px/1.2 'Nunito',sans-serif; letter-spacing:-.035em; text-align:center; text-wrap:balance; }
.welcome-card .intro { margin:0 0 26px; font-size:15px; line-height:1.7; color:#6c7e7b; text-align:center; text-wrap:pretty; }
.welcome-card label { margin:20px 0 8px; color:#29493f; font-size:14px; font-weight:700; }
.welcome-card input:not([type=checkbox]) { min-height:50px; border:1px solid #d6e1d8; border-radius:14px; padding:12px 14px; background:#fdfefd; color:#14322e; }
.welcome-card input::placeholder { color:#85938d; font-size:14px; }
.welcome-card input:focus { border-color:#749a83; }
.password-field { position:relative; }
.password-field input { padding-right:54px!important; }
/* Edge also adds an eye while typing. These fields already have our own toggle. */
.password-field input[type="password"]::-ms-reveal { display:none; }
.welcome-card .password-toggle { position:absolute; top:3px; right:4px; display:grid; place-items:center; width:44px; height:44px; min-height:44px; margin:0; padding:0; border:0; border-radius:11px; background:transparent; color:#6c7e7b; }
.welcome-card .password-toggle:hover:not(:disabled) { background:#eef7f1; color:#163c35; }
.password-toggle svg { width:20px; height:20px; pointer-events:none; }
.password-toggle .eye-off { display:none; }
.password-toggle[aria-pressed=true] .eye { display:none; }
.password-toggle[aria-pressed=true] .eye-off { display:block; }
.welcome-card .field-help,.welcome-card .join-password-help { margin:9px 0 0; color:#6c7e7b; font-size:12px; line-height:1.65; }
.welcome-card button[type=submit],.welcome-primary,.welcome-card .join-primary { display:flex; align-items:center; justify-content:center; gap:12px; min-height:52px; margin:26px 0 0; padding:14px 24px; border:0; border-radius:28px; background:#c9f2de; color:#163c35; font-size:16px; font-weight:700; text-decoration:none; text-align:center; }
.welcome-card button[type=submit]:hover:not(:disabled),.welcome-primary:hover,.welcome-card .join-primary:hover { background:#b9e9d1; color:#163c35; }
.welcome-card button:disabled { opacity:.65; cursor:wait; }
.form-note { margin:14px 0 0; text-align:center; font-size:12px; line-height:1.6; color:#6c7e7b; }
.welcome-card .auth-links { justify-content:center; gap:10px 24px; margin-top:24px; font-size:13px; color:#6c7e7b; line-height:1.6; }
.welcome-card .auth-links a { color:#486c60; }
.welcome-card .feedback { padding:16px; border-radius:16px; font-size:14px; line-height:1.65; background:#eef7f1; color:#36594c; }
.welcome-card .feedback.error { background:#fcf0ea; color:#884630; }
.welcome-card .email-help { margin-top:24px; padding-top:20px; border-top:1px solid #edf1ea; font-size:12px; line-height:1.65; color:#6c7e7b; }
.welcome-card .email-help summary { text-align:center; }
.welcome-card .email-help p { margin:12px 0 8px; }
.welcome-card .email-help .link-button { font-size:12px; }
.welcome-help { margin:22px 0 0; text-align:center; font-size:13px; line-height:1.6; color:#6c7e7b; }
.welcome-help a { color:#486c60; }
.welcome-card .join-confirm { margin-top:20px; font-weight:400; font-size:13px; }
.welcome-card .join-confirm input { accent-color:#3b8060; }
.welcome-card .secondary-links { font-size:13px; line-height:1.6; text-align:center; color:#6c7e7b; }
.welcome-card .join-account,.welcome-card #join-content>p { font-size:14px; line-height:1.7; color:#6c7e7b; overflow-wrap:anywhere; }
.welcome-card #join-description { overflow-wrap:anywhere; }
body[data-auth-state=complete] .auth-links,body[data-auth-state=complete] #feedback { display:none; }
.completion-login { width:100%; }
.welcome-complete-mark { display:none; align-items:center; justify-content:center; width:56px; height:56px; margin:0 auto 20px; border-radius:50%; background:#eef7f1; color:#3b8060; }
body[data-auth-state=complete] .welcome-complete-mark { display:flex; }
@media(max-width:480px) { .welcome-main {width:min(100% - 32px,520px);padding-top:14px} .welcome-card {padding:28px 24px;border-radius:28px} .welcome-card h1 {font-size:29px} .welcome-brand {margin-bottom:20px;font-size:21px} .welcome-mascot {width:108px;height:108px} }
@media(prefers-reduced-motion:reduce) { .welcome-mascot {animation:none} }
body[data-cabinet-auth]{background:#fcf8f2;color:#1f3a33}body[data-cabinet-auth] .welcome-main{max-width:420px}body[data-cabinet-auth] .welcome-card{padding:25px 4px;border:0;background:transparent;box-shadow:none;border-radius:0}body[data-cabinet-auth] .welcome-card h1,body[data-cabinet-auth] .welcome-card .intro{text-align:left}body[data-cabinet-auth] .welcome-card .intro{line-height:1.5;color:#56675f}body[data-cabinet-auth] .welcome-brand span{display:none}body[data-cabinet-auth] .welcome-mascot{width:68px;height:68px}body[data-cabinet-auth] .welcome-help{display:none}body[data-cabinet-auth] .welcome-card button[type=submit],body[data-cabinet-auth] .welcome-primary{background:#c4442e;color:#fff}body[data-cabinet-auth] .welcome-card button[type=submit]:hover:not(:disabled),body[data-cabinet-auth] .welcome-primary:hover{background:#a93424;color:#fff}body[data-cabinet-auth] .welcome-card .client-text-button{border:0;background:transparent;color:#56675f;text-decoration:underline;cursor:pointer;font:inherit;font-size:14px;padding:12px}body[data-cabinet-auth] [hidden]{display:none!important}body[data-email-proof] .welcome-brand{display:none}body[data-email-proof] .welcome-main{padding-top:32px}
