/* Public forms share the dashboard's surfaces, typography and pink accents. */
body.auth-page{min-width:320px;background:linear-gradient(rgba(8,4,8,.76),rgba(8,4,8,.91)),url('./tsumi_banner.png') center/cover fixed;color:#f5eff3}
.auth-page .auth-stage{min-height:calc(100dvh - 86px);width:min(1120px,92%);margin:auto;padding:54px 0 26px;display:flex;flex-direction:column;justify-content:center;gap:24px}
.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;align-items:stretch;border:1px solid #59364b;border-radius:20px;overflow:hidden;background:radial-gradient(ellipse at 25% 55%,#71355040,transparent 65%),#160f18;box-shadow:0 22px 60px #0005}.auth-layout.auth-register{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr)}
.auth-story{position:relative;isolation:isolate;overflow:hidden;padding:32px;border:0;border-radius:0;background:transparent;display:flex;flex-direction:column;min-height:550px;box-shadow:none}
.auth-story-top,.auth-story-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px}.auth-page .auth-eyebrow{font:700 10px/1.5 Arial,sans-serif;letter-spacing:1.8px;color:#c998b0;margin:0}.auth-edition{font-size:8px;letter-spacing:1.5px;color:#98758b}
.auth-story-copy{position:relative;z-index:2;margin-top:45px}.auth-story h2{font-size:clamp(38px,4.2vw,54px);line-height:1.05;letter-spacing:-2px;font-weight:500;margin:0 0 20px}.auth-story h2 span,.auth-card h1 span{color:#f3a1bc}.auth-story-copy p{max-width:320px;margin:0;font-size:13px;line-height:1.8;color:#b69cab}
.auth-art{position:relative;flex:1;min-height:220px;margin:16px 0 24px}.auth-art>img{position:absolute;width:114px;height:138px;object-fit:contain;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-9deg);filter:drop-shadow(0 0 30px #f3a1bc30)}
.auth-orbit{position:absolute;width:210px;height:210px;top:50%;left:50%;transform:translate(-50%,-50%);border:1px solid #ba708a30;border-radius:50%}.auth-orbit.inner{width:168px;height:168px;border-style:dashed;animation:auth-orbit 65s linear infinite}.auth-spark{position:absolute;color:#d695b1}.auth-spark.one{font-size:26px;right:15%;top:14%}.auth-spark.two{font-size:14px;left:17%;bottom:10%}
.auth-story-bottom{padding-top:18px;border-top:1px solid #65405760;color:#967186;font-size:8px;letter-spacing:1.4px}
.auth-page .auth-card{width:auto;min-width:0;margin:0;padding:38px;border:0;border-radius:0;background:transparent;box-shadow:none;display:flex;flex-direction:column;justify-content:center}
.auth-page .auth-card h1{max-width:380px;font-size:34px;line-height:1.12;font-weight:500;letter-spacing:-1.1px;margin:14px 0}.auth-page .auth-card>p:not(.auth-eyebrow):not(.auth-switch):not(.login-link){color:#b29baa;font-size:13px;line-height:1.75;margin:0}
.auth-page .auth-card form{display:grid;grid-template-columns:1fr;gap:0;margin:28px 0 0;width:100%}.auth-page .auth-card label{display:block;color:#d6bdcc;font-size:12px;line-height:1.5;font-weight:500;margin:0 0 8px}
.auth-page .auth-card input{display:block;width:100%;height:46px;min-width:0;padding:12px 14px;border:1px solid #604052;border-radius:8px;background:#100b12;color:#fff1f7;font:13px/1.4 Arial,sans-serif;margin:0 0 20px;outline:none;box-shadow:none;transition:border-color .2s,box-shadow .2s}
.auth-page .auth-card input::placeholder{color:#8e7788}.auth-page .auth-card input:focus-visible{border-color:#f3a1bc;box-shadow:0 0 0 3px #f3a1bc18}.auth-page .auth-card a:focus-visible,.auth-page .auth-card summary:focus-visible{outline:2px solid #f3a1bc;outline-offset:4px}
.auth-page .auth-card button[type=submit]{display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;margin:6px 0 0;padding:12px 18px;border-radius:8px;background:#f3a1bc!important;border-color:#f3a1bc!important;color:#24101b!important;font:700 13px/1.5 Arial,sans-serif;box-shadow:0 8px 24px #f3a1bc18!important}
.auth-page .auth-card button[type=submit]:hover{background:#ffd0df!important;border-color:#ffd0df!important;box-shadow:0 0 22px #f3a1bc35!important;transform:translateY(-1px)}
.auth-page .auth-switch,.auth-page .login-link{font-size:12px;line-height:1.7;color:#a98d9f;text-align:center;margin:23px 0 0;padding-top:20px;border-top:1px solid #3c2734}.auth-card a{color:#f3a1bc;text-decoration:none}.auth-card a:hover{text-decoration:underline;text-underline-offset:4px}
.auth-page .demo-details{margin:22px 0 0;border-top:1px solid #3c2734;padding:16px 0 0;font-size:11px;color:#9e8195}.demo-details summary{cursor:pointer;width:fit-content;color:#a98d9f}.auth-page .demo-details p{font-size:12px;line-height:1.9;color:#bda2b3;margin:12px 0 0}
.auth-page #login-message:empty,.auth-page #register-message:empty{display:none}.auth-page .auth-card #login-message:not(:empty),.auth-page .auth-card #register-message:not(:empty){min-height:0;margin-top:16px;padding:12px 14px;border:1px solid #714357;border-radius:8px;background:#301622;color:#f2b3c7;font-size:12px;line-height:1.7}.auth-page .auth-card #register-message.success{background:#13251d;border-color:#426c53;color:#a1dbb6}
.auth-page .auth-register .auth-card{padding:34px}.auth-page .auth-register h1{font-size:32px}.auth-page .auth-register form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}.auth-page .auth-register label{margin:0}.auth-page .auth-register input{margin:8px 0 0}.auth-page .auth-register .full{grid-column:1/-1}.auth-page .auth-register .license-entry{padding-top:17px;border-top:1px solid #3c2734}.auth-page .auth-register button[type=submit]{margin:0}
.auth-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;color:#8d7284;font-size:10px;letter-spacing:.3px}.auth-footer div{display:flex;gap:20px}.auth-footer a{color:#ad91a3;text-decoration:none}.auth-footer a:hover{color:#f3a1bc}
@keyframes auth-orbit{to{transform:translate(-50%,-50%) rotate(360deg)}}
@media(max-width:950px){.auth-page .auth-stage{width:92%;padding-top:36px}.auth-story{padding:26px}.auth-story h2{font-size:41px}.auth-page .auth-card,.auth-page .auth-register .auth-card{padding:28px}.auth-page .auth-register form{grid-template-columns:1fr;gap:14px}}
@media(max-width:760px){.auth-layout,.auth-layout.auth-register{grid-template-columns:1fr}.auth-page .auth-stage{width:min(520px,92%);min-height:calc(100dvh - 76px);padding-top:30px}.auth-story{display:flex;min-height:0;padding:26px 32px 0}.auth-story-copy{margin-top:24px}.auth-story h2{font-size:36px}.auth-story h2 br{display:none}.auth-story-copy p,.auth-art,.auth-story-bottom{display:none}.auth-page .auth-card{padding:32px}.auth-page .auth-register form{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-footer{flex-wrap:wrap;justify-content:center;text-align:center}}
@media(max-width:460px){.auth-page .auth-card,.auth-page .auth-register .auth-card{padding:26px 22px}.auth-page .auth-card h1,.auth-page .auth-register h1{font-size:29px}.auth-page .auth-register form{grid-template-columns:1fr}.auth-footer{font-size:9px}}
@media(prefers-reduced-motion:reduce){.auth-page *, .auth-page *::before,.auth-page *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* The register mascot sits on the upper-right edge of the card. */
.auth-page .auth-card .auth-username{position:relative;min-width:0;display:block;margin:0}

.auth-page .auth-register>.auth-mascot{position:absolute;width:151px;height:140px;object-fit:contain;right:-10px;top:-101px;z-index:2;pointer-events:none;filter:drop-shadow(0 5px 8px #0005)}
.auth-page .auth-register form{margin-top:28px}
@media(max-width:460px){.auth-story{padding:24px 22px 0}.auth-edition{font-size:7px}.auth-story h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){.auth-mascot{visibility:hidden}}

/* One compact surface, with the brand motif blended into its background. */
.auth-page .auth-stage{width:min(580px,92%)}
.auth-layout,.auth-layout.auth-register{position:relative;isolation:isolate;display:block;background:radial-gradient(ellipse at 90% 0%,#71355045,transparent 65%),#160f18}
.auth-layout::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:url('./tsumi_logo.png') right -35px top -35px/240px auto no-repeat;opacity:.07;transform:rotate(-9deg)}
.auth-page .auth-card,.auth-page .auth-register .auth-card{padding:36px}
.auth-page .auth-card h1{margin:0;font-size:30px}
.auth-card h1 span{color:#f3a1bc}
.auth-page .auth-switch,.auth-page .login-link{border-top:0;padding-top:0;margin-top:20px}
.auth-page .demo-details{margin-top:18px;padding-top:14px}
@media(max-width:460px){.auth-page .auth-card,.auth-page .auth-register .auth-card{padding:28px 22px}.auth-layout::before{background-size:190px}}

.auth-layout.auth-register{overflow:visible;margin-top:80px}
.auth-layout::before{border-radius:inherit;clip-path:inset(0 round 20px);transform:none}
