/* Member login only: independent from public-page section styles. */
body#member-login-page { margin:0; min-height:100vh; color:#e7f7ff; font-family:'Plus Jakarta Sans',sans-serif; background:radial-gradient(ellipse at 12% 50%,#08799966,transparent 60%),linear-gradient(125deg,#06283e,#073256 60%,#041a30); }
#member-login-page .login-shell { position:relative; isolation:isolate; min-height:calc(100svh - 48px); padding:48px 28px 24px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
#member-login-page .member-water { position:absolute; inset:0; z-index:-1; pointer-events:none; overflow:hidden; }
#member-login-page .member-water span { position:absolute; width:850px; height:560px; border:1px solid #86eaff25; border-radius:50%; box-shadow:inset 0 24px 30px #6ce3ff08,0 16px 0 #81eaff06; animation:member-login-current 16s ease-in-out infinite alternate; }
#member-login-page .member-water span:nth-child(1) { top:-360px; left:-160px; }
#member-login-page .member-water span:nth-child(2) { bottom:-420px; left:10%; animation-delay:-6s; }
#member-login-page .member-water span:nth-child(3) { top:5%; right:-650px; height:850px; animation-delay:-10s; }
#member-login-page .member-login-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,440px); align-items:center; gap:76px; width:100%; max-width:1120px; }
#member-login-page .member-welcome { min-width:0; }
#member-login-page .member-home { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-bottom:32px; font-size:12px; color:#b2d6e9; }
#member-login-page .member-home svg { width:16px; height:16px; }
#member-login-page .member-eyebrow { display:block; color:#7de8f8; font-size:10px; font-weight:800; letter-spacing:.18em; }
#member-login-page .member-welcome h2 { margin:18px 0 16px; font:800 clamp(32px,3.2vw,45px)/1.12 'Outfit',sans-serif; letter-spacing:-.025em; color:#fff; }
#member-login-page .member-welcome h2 span { color:#72e9fc; }
#member-login-page .member-welcome > p { max-width:380px; color:#b9d9e8; font-size:14px; line-height:1.8; }
#member-login-page .member-portal-art { display:block; width:100%; max-width:440px; height:auto; margin:16px auto 0; }
#member-login-page .member-art-float { animation:member-login-float 7s ease-in-out infinite alternate; }
#member-login-page .member-preview-features { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
#member-login-page .member-preview-features span { display:flex; align-items:center; gap:7px; padding:9px 11px; border:1px solid #77d9ef30; border-radius:12px; background:#79dfff09; font-size:10px; color:#c8e7f3; }
#member-login-page .member-preview-features svg { width:16px; height:16px; color:#6de5f5; }
#member-login-page .member-form-wrap { min-width:0; }
#member-login-page .login-card { padding:36px; border:1px solid #8bdcf54d; border-radius:30px; background:linear-gradient(150deg,#174864,#0e2f49); box-shadow:0 7px 0 #031c304d,0 28px 65px -30px #000d22; }
#member-login-page .login-card h1 { font-size:29px; line-height:1.2; }
#member-login-page .login-card p { color:#bdd8e7; line-height:1.75; }
#member-login-page .login-input { display:block; min-height:52px; width:100%; border:1px solid #83c5e34d; background:#08243b; color:#fff; border-radius:14px; padding:14px 16px; font-size:16px; transition:border-color .2s,box-shadow .2s; }
#member-login-page .login-input::placeholder { color:#90afc3; font-size:14px; }
#member-login-page .login-input:focus { border-color:#64deef; outline:0; box-shadow:0 0 0 4px #45d8f01f; }
#member-login-page .login-input:-webkit-autofill { -webkit-text-fill-color:#fff; -webkit-box-shadow:0 0 0 1000px #08243b inset; caret-color:#fff; }
#member-login-page .member-password-wrap { position:relative; }
#member-login-page #member-password { padding-right:76px; }
#member-login-page .member-password-toggle { position:absolute; right:6px; top:4px; min-height:44px; min-width:60px; border-radius:10px; color:#8aeefb; font-size:12px; font-weight:700; }
#member-login-page #login-form > button { min-height:52px; border:1px solid #40d8f0; background:linear-gradient(115deg,#006bd2,#00a9ce); border-radius:14px; box-shadow:0 4px 0 #004c7b,0 12px 22px -12px #00bde455; }
#member-login-page :is(a,button):focus-visible { outline:3px solid #70eafa; outline-offset:4px; }
#member-login-page .login-notice { line-height:1.6; }
#member-login-page .member-login-footer { margin:0; padding:18px 20px; text-align:center; color:#95b6ca; font-size:11px; }
#member-login-page.member-motion-paused :is(.member-water span,.member-art-float) { animation-play-state:paused; }
@keyframes member-login-current { from { transform:translate(-12px,-8px) rotate(-20deg); } to { transform:translate(12px,14px) rotate(-12deg); } }
@keyframes member-login-float { from { transform:translateY(0); } to { transform:translateY(-6px); } }
@media(max-width:1023px) {
 #member-login-page .member-login-layout { gap:32px; grid-template-columns:minmax(0,1fr) minmax(0,400px); }
 #member-login-page .login-card { padding:28px; }
 #member-login-page .member-welcome h2 { font-size:32px; }
 #member-login-page .member-preview-features { flex-direction:column; align-items:flex-start; }
}
@media(max-width:767px) {
 #member-login-page .login-shell { padding:18px 18px 12px; min-height:calc(100svh - 50px); }
 #member-login-page .member-login-layout { display:flex; flex-direction:column; gap:12px; max-width:440px; }
 #member-login-page .member-welcome { width:100%; }
 #member-login-page .member-home { margin:0; }
 #member-login-page .member-welcome > :not(.member-home) { display:none; }
 #member-login-page .member-form-wrap { width:100%; }
 #member-login-page .login-card { padding:28px 22px; border-radius:24px; }
 #member-login-page .login-card h1 { font-size:27px; }
}
@media(prefers-reduced-motion:reduce) {
 #member-login-page :is(.member-water span,.member-art-float) { animation:none; }
 #member-login-page :is(.login-input,button) { transition:none; transform:none; }
}

/* ── Desktop: whole login fits one screen (no vertical scroll) ─────────── */
@media (min-width:768px) {
 body#member-login-page { display:flex; flex-direction:column; height:100svh; min-height:560px; overflow-y:auto; }
 #member-login-page .login-shell { flex:1 1 auto; min-height:0; padding:clamp(12px,3vh,40px) 28px clamp(4px,1vh,12px); }
 #member-login-page .member-login-layout { max-height:100%; }
 #member-login-page .member-login-footer { flex:0 0 auto; padding:6px 20px 10px; }
 /* Left column scales with the screen height */
 #member-login-page .member-home { margin-bottom:clamp(10px,3vh,32px); min-height:36px; }
 #member-login-page .member-welcome h2 { margin:clamp(8px,1.6vh,18px) 0 clamp(8px,1.4vh,16px); font-size:clamp(28px,min(3.2vw,5.6vh),45px); }
 #member-login-page .member-welcome > p { line-height:1.65; }
 #member-login-page .member-portal-art { width:auto; max-width:100%; height:clamp(150px,30vh,280px); margin-top:clamp(4px,1.2vh,16px); }
 #member-login-page .member-preview-features { margin-top:clamp(8px,1.6vh,18px); }
 /* Card spacing scales with the screen height */
 #member-login-page .login-card { padding:clamp(20px,3.6vh,40px) clamp(24px,2.6vw,40px); }
 #member-login-page .login-card > .text-center { margin-bottom:clamp(12px,2.4vh,32px); }
 #member-login-page .login-card > .text-center > * + * { margin-top:clamp(4px,0.9vh,12px); }
 #member-login-page .login-card > .text-center > div:first-child { margin-bottom:clamp(8px,1.8vh,28px); }
 #member-login-page .login-card h1 { padding-top:0; font-size:clamp(22px,3.4vh,30px); }
 #member-login-page .login-card > .text-center > p { font-size:clamp(12.5px,1.8vh,14px); line-height:1.6; }
 #member-login-page #login-form > * + * { margin-top:clamp(10px,1.8vh,20px); }
 #member-login-page #login-form .space-y-2 > * + * { margin-top:6px; }
 #member-login-page .login-input { min-height:clamp(44px,6.4vh,52px); padding-top:10px; padding-bottom:10px; }
 #member-login-page .member-password-toggle { top:50%; transform:translateY(-50%); min-height:38px; }
 #member-login-page #login-form > button { min-height:clamp(44px,6.4vh,52px); padding-top:0; padding-bottom:0; }
 #member-login-page .login-card > .mt-4 { margin-top:clamp(8px,1.6vh,16px); }
 #member-login-page .login-card > .mt-6 { margin-top:clamp(8px,1.6vh,24px); }
}
/* Very short screens: drop the decorative extras before anything else */
@media (min-width:768px) and (max-height:640px) {
 #member-login-page .member-preview-features { display:none; }
 #member-login-page .login-card > .mt-6 { display:none; }
}
