/* Login composition only: Pawe rests her elbow on the card's right corner. */
.login-page .site-body{min-height:100dvh;display:flex;flex-direction:column}
.login-page #main-content{flex:1;display:flex;align-items:center;justify-content:center;padding-block:22px 30px}
.login-stage{--pawe-height:clamp(540px,calc(100dvh - 220px),820px);--card-width:440px;position:relative;display:grid;grid-template-columns:var(--card-width) calc(var(--pawe-height) * .54);align-items:start;width:max-content;max-width:100%;isolation:isolate}
.login-stage::before{content:'';position:absolute;z-index:-1;width:90%;height:75%;left:6%;top:12%;border-radius:50%;background:radial-gradient(ellipse,#f8e9e95c,transparent 67%);pointer-events:none}
.login-card.panel{position:relative;z-index:1;width:var(--card-width);margin-top:calc(var(--pawe-height) * .237);padding:34px 36px 29px;border:1px solid #e5cbd9;border-radius:25px;background:linear-gradient(145deg,#fffaf3,#fff2ee);box-shadow:0 5px 0 #bd96c53b,0 18px 48px #6545731a}
.login-welcome{margin-bottom:23px}
.login-welcome .eyebrow{font-size:10px;letter-spacing:2px;color:#896094}
.login-welcome h1{font:600 clamp(29px,3vw,38px)/1.12 'Fredoka','Nunito',sans-serif;letter-spacing:-.6px;color:#543064;margin:13px 0 8px}
.login-welcome p{font-size:13px;color:#8c708f;margin:0;line-height:1.5}
.login-card .form-row{margin-bottom:17px}
.login-card label{display:block;font-size:12px;font-weight:800;margin-bottom:7px;color:#684573}
.login-card input{width:100%;height:48px;background:#fffdf9;border:1px solid #ddc9df;border-radius:12px;color:#563960;padding:10px 13px;font-size:15px;box-shadow:inset 0 2px 3px #67477905}
.login-card input:focus{outline:3px solid #d6b9e08c;outline-offset:2px;border-color:#a77bb6}
.login-password{position:relative}
.login-password input{padding-right:65px}
.password-reveal{position:absolute;right:6px;top:6px;min-width:49px;height:36px;padding:5px 8px;border:0;border-radius:8px;background:#f2e7f5;color:#785286;font:800 11px 'Nunito',sans-serif}
.password-reveal[hidden]{display:none}
.password-reveal:focus-visible,.login-card a:focus-visible{outline:3px solid #b383be;outline-offset:3px}
.login-card .login-submit{width:100%;margin-top:3px}
.login-register{font-size:12px;color:#8c708f;text-align:center;margin:20px 0 16px}
.login-register a{font-weight:900;color:#714487}
.login-password-label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:7px}.login-card .login-password-label label{margin:0}.login-password-label a{color:#714487;font-size:11px;font-weight:800}
.login-guest{display:flex;align-items:center;justify-content:center;gap:8px;padding-top:16px;border-top:1px solid #eadbe7;color:#8b6e94;font-size:11px;font-weight:800}
.login-character{position:relative;z-index:2;margin-left:calc(var(--pawe-height) * -.12);width:calc(var(--pawe-height) * 2 / 3);height:var(--pawe-height);pointer-events:none;user-select:none}
.login-character img{display:block;width:100%;height:100%;max-width:none;object-fit:contain}
.login-card .form-error{font-size:12px;margin:0 0 16px;border-radius:10px}
@media(max-width:1280px){.login-stage{--card-width:390px}.login-card.panel{padding:29px 30px 25px}}
@media(max-width:800px){.login-stage{--card-width:350px;--pawe-height:560px}.login-card.panel{padding:27px 26px 25px}.login-welcome h1{font-size:30px}}
@media(min-width:701px) and (max-height:900px){
 .login-page #main-content{padding-block:14px 16px}
 .login-page .site-footer{min-height:56px;padding-block:7px}
 .login-page .footer-inner{min-height:0;font-size:11px}
 .login-card.panel{padding:24px 30px}
 .login-welcome{margin-bottom:16px}
 .login-welcome .eyebrow{font-size:9px}
 .login-welcome h1{font-size:30px;margin:8px 0 5px}
 .login-welcome p{font-size:12px;line-height:1.5}
 .login-card .form-row{margin-bottom:12px}
 .login-card label{font-size:11px;line-height:1.2;margin-bottom:5px}
 .login-card input{height:44px}
 .password-reveal{height:32px}
 .login-card .login-submit{min-height:44px;padding-block:10px}
 .login-register{margin:14px 0 10px}
 .login-guest{padding-top:11px}
}
@media(max-width:700px){
 .login-page #main-content{align-items:flex-start;padding-block:12px 28px;width:min(430px,calc(100% - 30px))}
 .login-stage{display:block;width:100%;max-width:100%;padding-top:120px}
 .login-card.panel{width:100%;margin-top:0;padding:27px 25px 25px;border-radius:22px}
 .login-character{position:absolute;top:0;right:3px;width:120px;height:180px;margin:0}
 .login-welcome{margin-bottom:23px}
 .login-welcome h1{font-size:28px;max-width:210px}
 .login-welcome p{max-width:215px}
}
@media(prefers-reduced-motion:reduce){.login-card .login-submit{transition:none;transform:none}}
