.recovery-main{min-height:calc(100vh - 95px);background:radial-gradient(circle at 70% 32%,#393125 0%,transparent 38%),linear-gradient(130deg,#100f0e,#24201c 60%,#171411);color:#f5f1e8;display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,480px);align-items:center;gap:clamp(28px,7vw,110px);padding:70px max(7%,28px);overflow:hidden;position:relative}
.recovery-main:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle,#d4a74c33 1px,transparent 2px) 0 0/38px 38px;opacity:.13}
.recovery-story,.recovery-card{position:relative;z-index:1}
.recovery-eyebrow{font-size:11px;letter-spacing:.32em;color:#d4a74c;font-weight:700}
.recovery-story h1{font-size:clamp(42px,6vw,76px);line-height:1.03;letter-spacing:-.05em;margin:20px 0;max-width:660px}
.recovery-story h1 span{color:#d4a74c}
.recovery-story>p:not(.recovery-eyebrow){color:#c8bfb2;line-height:1.7;max-width:480px}
.recovery-art{height:170px;position:relative;margin:34px 0 0;max-width:400px}
.recovery-ring{position:absolute;left:112px;top:2px;width:160px;height:160px;border:1px solid #d4a74c55;border-radius:50%;box-shadow:0 0 45px #d4a74c1b;animation:recovery-breathe 5s ease-in-out infinite}
.recovery-ring:after{content:"";position:absolute;inset:17px;border:1px dashed #d4a74c77;border-radius:50%;animation:recovery-turn 18s linear infinite}
.recovery-envelope{position:absolute;left:163px;top:54px;width:58px;height:48px;border:2px solid #d4a74c;border-radius:5px;box-shadow:0 0 25px #d4a74c44;display:grid;place-items:center;font-size:28px;color:#d4a74c}
.recovery-envelope:before{content:"";position:absolute;top:1px;left:5px;width:43px;height:32px;border-bottom:2px solid #d4a74c;transform:rotate(-35deg);opacity:.5}
.recovery-card{background:#211c18eb;border:1px solid #9b75464f;box-shadow:0 30px 70px #0008,0 0 0 1px #ffffff0b inset;padding:clamp(28px,4vw,48px);border-radius:14px;backdrop-filter:blur(12px)}
.recovery-card .mini{font-size:11px;letter-spacing:.22em;color:#d4a74c;font-weight:700}
.recovery-card h2{font-size:31px;margin:10px 0}
.recovery-card>p{color:#c8bfb2;line-height:1.65;font-size:14px}
.recovery-card form{display:grid;gap:10px;margin-top:28px}
.recovery-card label{font-size:12px;font-weight:700;letter-spacing:.08em;color:#e5d5bd}
.recovery-card input{width:100%;box-sizing:border-box;background:#14110e;border:1px solid #6e5940;color:#fff;padding:16px;font:inherit;border-radius:5px;outline:none}
.recovery-card input:focus{border-color:#d4a74c;box-shadow:0 0 0 3px #d4a74c25}
.recovery-card button{background:#d4a74c;color:#15120f;border:0;padding:16px;margin-top:12px;font-weight:800;letter-spacing:.1em;cursor:pointer;border-radius:5px;transition:transform .2s,background .2s}
.recovery-card button:hover{background:#ebc77a;transform:translateY(-2px)}
.recovery-card button:disabled{opacity:.6;cursor:wait}
#resetMessage{min-height:22px;color:#e8c776;font-size:13px}
.recovery-back{color:#d4a74c;text-decoration:none;font-size:13px}
@keyframes recovery-breathe{50%{transform:scale(1.08);box-shadow:0 0 70px #d4a74c44}}
@keyframes recovery-turn{to{transform:rotate(360deg)}}
@media(max-width:800px){.recovery-main{grid-template-columns:1fr;padding:50px 22px}.recovery-art{display:none}.recovery-story h1{font-size:42px}.recovery-card{max-width:520px;width:100%;box-sizing:border-box}}
@media(prefers-reduced-motion:reduce){.recovery-ring,.recovery-ring:after{animation:none}.recovery-card button{transition:none}}

/* The password form keeps the recovery page's layout and colors. */
.recovery-main--new-password .recovery-lock{position:absolute;left:166px;top:64px;width:52px;height:47px;border:2px solid #d4a74c;border-radius:7px;box-shadow:0 0 25px #d4a74c44}
.recovery-main--new-password .recovery-lock:before{content:"";position:absolute;left:11px;top:-23px;width:26px;height:22px;border:2px solid #d4a74c;border-bottom:0;border-radius:18px 18px 0 0}
.recovery-main--new-password .recovery-lock:after{content:"";position:absolute;left:23px;top:17px;width:6px;height:11px;background:#d4a74c;border-radius:5px}
.recovery-main--new-password .recovery-card label:not(:first-child){margin-top:10px}
.recovery-main--new-password .recovery-card form[hidden]{display:none}
