/* Shared password recovery surfaces. */
.password-dialog{width:min(460px,calc(100vw - 28px));max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid #ffc56e65;border-radius:28px;background:#21152e;color:#fff4e5;box-shadow:0 28px 100px #0009;font-family:Arial,sans-serif;overflow:auto}
.password-dialog::backdrop{background:#0b0715b8;backdrop-filter:blur(8px)}
.password-dialog[open]{animation:password-arrive .35s ease both}
.password-dialog-inner{position:relative;padding:30px;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 100% 0%,#a66cff25,transparent 65%),linear-gradient(150deg,#35203e,#191123)}
.password-close{position:absolute;right:16px;top:16px;width:34px;height:34px;padding:0;border:1px solid #c6a0ff40;border-radius:11px;background:#ffffff08;color:#efddff;cursor:pointer;font-size:22px}
.password-kicker{display:block;margin-bottom:9px;color:#ffc56e;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.password-dialog h2{margin:0 0 12px;font-size:28px;line-height:1.2;letter-spacing:-.03em;color:#fff4e5;text-align:left}
.password-dialog p{margin:0 0 22px;color:#cebed9;line-height:1.65;font-size:14px;text-align:left}
.password-art{position:relative;width:142px;height:100px;margin:0 0 18px;pointer-events:none}
.password-art::before{content:'';position:absolute;width:82px;height:82px;top:9px;left:25px;border:1px solid #ffc56e40;border-radius:50%;background:#a66cff12;box-shadow:0 0 35px #a66cff18}
.password-art svg{position:relative;display:block;width:100%;height:100%;overflow:visible}
.password-spirit{transform-origin:70px 45px;animation:password-float 4.5s ease-in-out infinite}
.password-star{animation:password-twinkle 3.5s ease-in-out infinite}.password-star-two{animation-delay:-1.7s}
.password-form{display:grid;gap:16px}.password-field{display:grid;gap:8px}.password-field label{color:#eee0f6;font-size:12px;font-weight:700}
html body .password-field input{width:100%;min-width:0;box-sizing:border-box;margin:0;padding:14px 16px;min-height:48px;border:1px solid #b695cf50;border-radius:13px;background:#100b18;color:#fff5eb;font:14px Arial,sans-serif;outline:none}
html body .password-field input::placeholder{color:#aa96b9}html body .password-field input:focus{border-color:#ffc56e;box-shadow:0 0 0 3px #ffc56e18}
.password-help{display:block;color:#bba5ca;font-size:12px;line-height:1.6}.password-actions{display:grid;gap:10px;margin-top:5px}
html body .password-primary,html body .password-secondary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;box-sizing:border-box;min-height:48px;padding:13px 18px;border-radius:13px;font:700 14px Arial,sans-serif;text-decoration:none;cursor:pointer}
html body .password-primary{background:linear-gradient(115deg,#ffc56e,#ff9a58);border:1px solid #ffd18a;color:#28162f;box-shadow:0 6px 22px #ff923d18}
html body .password-secondary{background:#ffffff06;border:1px solid #c6a0ff45;color:#e1caee}
html body .password-primary:hover:not(:disabled){filter:brightness(1.07)}html body .password-secondary:hover:not(:disabled){background:#a66cff15;border-color:#c6a0ff80}
html body .password-primary:disabled,html body .password-secondary:disabled,.password-close:disabled{opacity:.65;cursor:wait}
.password-dialog :is(button,a,input):focus-visible,.password-card :is(button,a,input):focus-visible{outline:2px solid #ffc56e;outline-offset:3px}
.password-error{padding:12px 14px;border:1px solid #ff9baa60;border-radius:12px;background:#ff718912;color:#ffc1cb;font-size:13px;line-height:1.6;text-align:left}
.password-error[hidden],.password-dialog [hidden],.password-card [hidden]{display:none!important}
.password-result-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:15px;border:1px solid #bbff8255;border-radius:14px;background:#bbff8215;color:#baffbe;font-size:25px}
.password-dialog .password-note{margin:15px 0 0;font-size:12px;color:#bba5ca}.password-dialog [role="status"]{overflow-wrap:anywhere}
html body[data-halloween-page="reset-password"]{box-sizing:border-box;padding:28px 18px;min-height:100dvh}
html body .box.password-card{position:relative;isolation:isolate;box-sizing:border-box;width:min(480px,100%);padding:32px;border:1px solid #ffc56e50;border-radius:28px;background:radial-gradient(ellipse at 100% 0%,#a66cff20,transparent 65%),linear-gradient(150deg,#2f1c39f5,#191123f7);box-shadow:0 24px 80px #0007}
.password-card .hw-season-badge,.password-card .hw-countdown{display:none}.password-card .hw-brand-home{margin:0 0 24px}.password-card .password-art{margin:0 auto 18px}
.password-card h1{margin:0 0 10px;color:#fff4e5;font-size:30px;letter-spacing:-.03em;text-align:left}
html body .password-card>p{margin:0 0 25px;color:#cebed9;text-align:left;font-size:14px;line-height:1.65}
.password-input-wrap{position:relative}html body .password-input-wrap input{padding-right:65px}
.password-reveal{position:absolute;right:7px;top:7px;width:52px;min-height:34px;padding:0;border:0;border-radius:8px;background:#a66cff18;color:#e1caee;font:700 11px Arial,sans-serif;cursor:pointer}
html body .password-card .back-link{display:block;margin-top:20px;color:#ffc56e;text-align:center;font-size:13px}
@keyframes password-arrive{from{opacity:0;transform:translateY(15px) scale(.97)}to{opacity:1;transform:none}}
@keyframes password-float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-5px) rotate(3deg)}}
@keyframes password-twinkle{0%,100%{opacity:.35}50%{opacity:1}}
html.hw-paused :is(.password-spirit,.password-star),html.hw-asleep :is(.password-spirit,.password-star){animation-play-state:paused!important}
@media(max-width:480px){.password-dialog-inner{padding:26px 22px}.password-dialog h2{font-size:25px}html body .box.password-card{padding:26px 22px}.password-card h1{font-size:27px}html body .password-field input{font-size:16px}}
@media(prefers-reduced-motion:reduce){.password-dialog[open],.password-spirit,.password-star{animation:none!important}}
