/* Login art direction follows the supplied Pinterest reference.
   Publisher artwork is displayed directly; this palette is scoped to login. */
body.welcomemode{
  --login-bg:#e4ebf8;--login-ink:#0b1738;--login-muted:#485b80;
  --login-light:#ffffff;--login-shadow:#b7c5e2;--login-field:#e2eafa;
  --login-outline:#7185a7;--login-rule:#b1bfda;
  background:var(--login-bg);color:var(--login-ink)
}
body.welcomemode[data-login-theme=dark]{
  --login-bg:#17243f;--login-ink:#f2f5ff;--login-muted:#b7c7e7;
  --login-light:#35486b;--login-shadow:#091326;--login-field:#1a2a48;
  --login-outline:#6c86b2;--login-rule:#52698e
}
.welcomemode .login-stage{position:relative;isolation:isolate;min-height:100dvh;padding:100px 24px 42px;overflow:hidden;background:var(--login-bg)}
.welcomemode .login-stage:before,.welcomemode .login-stage:after{content:'';position:absolute;z-index:-1;width:380px;height:380px;pointer-events:none;border-radius:50%;background:var(--login-bg);border:2px solid #ffffffa6;box-shadow:inset -18px -18px 28px var(--login-light),inset 16px 16px 35px var(--login-shadow),0 0 0 28px #b7ccf8,0 0 0 31px #f8fbff,0 18px 38px #6089dc55}
.welcomemode .login-stage:before{left:-225px;top:-250px}
.welcomemode .login-stage:after{right:-245px;bottom:-245px;width:450px;height:450px}
.welcomemode .login-topline{position:absolute;inset:26px 32px auto;display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--login-muted);font-size:10px;font-weight:700;letter-spacing:2px}
.welcomemode .login-theme{min-height:44px;padding:10px 16px;border:1px solid #ffffff8c;border-radius:15px;background:var(--login-bg);color:var(--login-ink);font-size:11px;letter-spacing:0;box-shadow:6px 6px 14px var(--login-shadow),-6px -6px 14px var(--login-light)}
.welcomemode .login-panel{width:min(100%,520px);margin:0 auto;text-align:center;min-width:0}
.welcomemode .login-mark{display:flex;align-items:center;justify-content:center;width:300px;height:146px;max-width:90%;margin:0 auto 32px;border:1px solid #ffffffb0;border-radius:38px;background:linear-gradient(145deg,#f7faff,#dfe8fa);box-shadow:16px 16px 34px var(--login-shadow),-15px -15px 30px var(--login-light),inset 2px 2px 3px #fff9;padding:20px}
.welcomemode .login-mark img{display:block;width:260px;max-width:100%;max-height:100%;height:auto;object-fit:contain}
.welcomemode .login-panel>h1{font-family:Manrope,'DM Sans',Arial,sans-serif;color:var(--login-ink);font-size:43px;line-height:1.2;font-weight:800;letter-spacing:-1.7px;margin:0 0 11px}
.welcomemode .login-subtitle{color:var(--login-muted);font-size:15px;line-height:1.6;letter-spacing:1.1px;margin:0 0 32px}
.welcomemode .authform{gap:12px;margin:22px 0 0;text-align:left}
.welcomemode .authform label{color:var(--login-muted);font-size:12px;font-weight:700;letter-spacing:.1px}
.welcomemode .authform input{margin:0;width:100%;min-height:65px;padding:19px 24px;border:1px solid var(--login-outline);border-radius:22px;background:var(--login-field);color:var(--login-ink);font-size:17px;box-shadow:inset 5px 5px 11px var(--login-shadow),inset -5px -5px 11px var(--login-light),5px 5px 16px #9faedb24}
.welcomemode .authform input::placeholder{color:var(--login-muted);opacity:1}
.welcomemode .authform .primary{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:65px;padding:18px 24px;margin:10px 0 0;border:1px solid #91b9ff;border-radius:23px;background:linear-gradient(115deg,#176eec 0%,#1459ef 42%,#2231df 100%);color:#fff;font-size:16px;font-weight:800;letter-spacing:.15px;box-shadow:0 12px 25px #2c55dc55,inset 0 2px 3px #badeff99,inset 0 -3px 8px #14239b66}
.welcomemode .authform .primary:hover{background:linear-gradient(115deg,#125bd2,#2131cf);border-color:#6f9cef;box-shadow:0 9px 20px #2145c755,inset 0 1px 3px #c8e3ff88}
.welcomemode .authform .primary:active{transform:translateY(1px)}
.welcomemode .authform input:focus-visible,.welcomemode button:focus-visible{outline:3px solid #155cea;outline-offset:4px}
.welcomemode .authform input[inputmode=numeric]{font-size:24px;letter-spacing:9px;text-align:center}
.welcomemode .authhelper,.welcomemode .authprivacy{color:var(--login-muted);font-size:12px;line-height:1.7;margin:6px 0}
.welcomemode .authhelper:empty,.welcomemode .autherror:empty{display:none}
.welcomemode .autherror{min-height:0;color:#a92d4a;font-size:12px;line-height:1.65;margin:0}
.welcomemode .authprivacy{border:0;padding:0;margin:20px 0 0}
.welcomemode .authcodeinfo{margin:24px 0;color:var(--login-muted);font-size:13px;line-height:1.75}
.welcomemode .authcodeinfo h2{font-size:22px;color:var(--login-ink);letter-spacing:-.6px;margin:10px 0}
.welcomemode .authcodeinfo .eyebrow{color:var(--login-muted);font-size:10px;letter-spacing:2px}
.welcomemode .authsecondary{justify-content:center;margin:20px 0;gap:12px}
.welcomemode .authsecondary button,.welcomemode .authchannel{min-height:44px;padding:11px 17px;border:1px solid #ffffff82;border-radius:15px;background:var(--login-bg);color:var(--login-ink);font-size:12px;box-shadow:5px 5px 12px var(--login-shadow),-5px -5px 12px var(--login-light)}
.welcomemode .authstatus{border:1px solid var(--login-rule);border-radius:20px;padding:18px 20px;background:var(--login-bg);color:var(--login-muted);font-size:13px;line-height:1.7;box-shadow:inset 4px 4px 9px var(--login-shadow),inset -4px -4px 9px var(--login-light)}
.welcomemode .authstatus button{display:inline-flex;min-height:44px;margin-top:8px;border-radius:12px;border-color:var(--login-outline);background:var(--login-bg);color:var(--login-ink)}
.welcomemode .login-catalog{display:flex;flex-direction:column;align-items:center;gap:7px;margin:26px 0 28px}
.welcomemode .login-catalog button{min-height:44px;padding:11px 18px;border:0;background:transparent;color:#1b53c8;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.welcomemode .login-catalog span{font-size:11px;line-height:1.7;color:var(--login-muted)}
.welcomemode .login-publications{width:min(100%,1040px);min-width:0;margin:30px auto 0;text-align:left}
.welcomemode .latest-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 5px 16px}
.welcomemode .latest-heading h2{color:var(--login-ink);font-size:18px;font-weight:800;letter-spacing:-.5px;margin:0}
.welcomemode .latest-heading p{color:var(--login-muted);font-size:10px;line-height:1.6;margin:4px 0 0}
.welcomemode .latest-toggle,.welcomemode .latest-status button{min-height:44px;padding:10px 16px;border:1px solid var(--login-rule);border-radius:14px;background:var(--login-bg);color:var(--login-ink);font-size:11px;font-weight:700;box-shadow:4px 4px 9px var(--login-shadow),-4px -4px 9px var(--login-light)}
.welcomemode .latest-status{min-height:180px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;color:var(--login-muted);font-size:13px;line-height:1.7;margin:0;border:1px solid var(--login-rule);border-radius:24px}
.welcomemode .latest-rail{overflow:hidden;border:1px solid var(--login-rule);border-radius:24px;padding:24px 0 19px;background:var(--login-field);box-shadow:inset 5px 5px 12px var(--login-shadow),inset -5px -5px 12px var(--login-light);scrollbar-width:thin;scrollbar-color:var(--login-outline) transparent}
.welcomemode .latest-rail:focus-visible{outline:3px solid #155cea;outline-offset:4px}
.welcomemode .latest-track{display:flex;width:max-content;animation:latest-books-scroll var(--latest-duration,48s) linear infinite}
.welcomemode .latest-group{display:flex;gap:24px;padding:0 24px 0 0}
.welcomemode .latest-book{flex:0 0 110px;width:110px;margin:0;text-align:center}
.welcomemode .latest-book img{display:block;width:110px;height:156px;object-fit:contain;border-radius:3px;filter:drop-shadow(4px 6px 5px #142a4b24);background:transparent}
.welcomemode .latest-book figcaption{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:var(--login-muted);font-size:10px;line-height:1.6;height:32px;margin:12px 0 0;padding:0 2px}
.welcomemode .latest-rail:hover .latest-track,.welcomemode .latest-rail:focus-within .latest-track,.welcomemode .latest-rail.is-paused .latest-track{animation-play-state:paused}
.welcomemode .latest-rail.is-paused{overflow-x:auto}
.welcomemode .login-foot{margin:30px 0 0;text-align:center;color:var(--login-muted);font-size:10px;font-weight:600;letter-spacing:1.6px;line-height:1.8}
@keyframes latest-books-scroll{to{transform:translateX(-50%)}}
.welcomemode[data-login-theme=dark] .login-catalog button{color:#97baff}
.welcomemode[data-login-theme=dark] .autherror{color:#ffb2c2}
.welcomemode[data-login-theme=dark] .authform input:focus-visible,.welcomemode[data-login-theme=dark] button:focus-visible{outline-color:#97baff}
.welcomemode[data-login-theme=dark] .latest-rail:focus-visible{outline-color:#97baff}
@media(min-width:1500px){.welcomemode .login-stage{padding-top:90px}.welcomemode .login-mark{margin-bottom:35px}}
@media(max-width:600px){.welcomemode .login-stage{padding:85px 24px 32px}.welcomemode .login-topline{inset:20px 24px auto;font-size:8px}.welcomemode .login-theme{font-size:10px;padding:9px 12px}.welcomemode .login-mark{width:260px;height:126px;margin-bottom:28px;border-radius:32px;padding:16px}.welcomemode .login-panel>h1{font-size:35px;letter-spacing:-1.4px}.welcomemode .login-subtitle{font-size:13px;letter-spacing:.8px;margin-bottom:25px}.welcomemode .authform input,.welcomemode .authform .primary{min-height:60px;border-radius:20px}.welcomemode .authform input{padding:16px 20px}.welcomemode .authform .primary{font-size:14px}.welcomemode .latest-heading h2{font-size:16px}.welcomemode .latest-group{gap:20px;padding-right:20px}.welcomemode .latest-book{width:94px;flex-basis:94px}.welcomemode .latest-book img{width:94px;height:136px}.welcomemode .latest-rail{padding:20px 0 16px;border-radius:20px}.welcomemode .login-stage:before{left:-290px;top:-290px}.welcomemode .login-stage:after{right:-340px;bottom:-350px}.welcomemode .login-foot{letter-spacing:1px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.welcomemode .authform .primary:active{transform:none}.welcomemode .latest-track{animation:none}.welcomemode .latest-rail{overflow-x:auto}.welcomemode .latest-copy,.welcomemode .latest-toggle{display:none}}
