.auth-body{min-height:100vh;background:var(--soft)}.auth-main{min-height:100vh;justify-content:center;padding:40px 16px;position:relative;overflow:hidden}.auth-back,.auth-main{display:flex;align-items:center}.auth-back{position:absolute;top:20px;left:24px;z-index:2;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid rgba(20,12,45,.12);background:var(--white);box-shadow:0 2px 6px rgba(43,23,100,.06);font-family:var(--font-inter),system-ui,sans-serif;font-size:.875rem;font-weight:500;color:var(--muted);text-decoration:none;transition:color .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}.auth-back:hover{color:var(--purple);background:var(--purple-soft);border-color:rgba(109,40,217,.25);box-shadow:0 4px 14px rgba(43,23,100,.1);transform:translateY(-1px)}.auth-back:active{transform:scale(.97);box-shadow:0 2px 6px rgba(43,23,100,.06)}.auth-back:focus-visible{outline:2px solid var(--purple);outline-offset:3px}.auth-orb{position:absolute;border-radius:50%;pointer-events:none}.auth-orb--1{width:640px;height:640px;background:radial-gradient(circle,rgba(109,40,217,.09) 0,transparent 68%);top:-200px;right:-120px}.auth-orb--2{width:480px;height:480px;background:radial-gradient(circle,rgba(255,138,61,.06) 0,transparent 70%);bottom:-140px;left:-140px}.auth-card{position:relative;z-index:1;width:100%;max-width:428px;background:var(--white);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:40px}.auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:36px;text-decoration:none}.auth-logo .auth-logo__name{transition:color .2s var(--ease)}.auth-logo:hover .auth-logo__name{color:var(--purple)}.auth-logo__img{width:30px;height:30px;object-fit:contain}.auth-logo__name{font-size:1.1875rem}.auth-heading,.auth-logo__name{font-family:Sora,system-ui,sans-serif;font-weight:800;color:var(--ink);letter-spacing:-.02em}.auth-heading{font-size:clamp(1.5rem,3vw,1.875rem);line-height:1.1;margin-bottom:8px;text-wrap:balance}.auth-subheading{color:var(--muted);line-height:1.5;margin-bottom:32px}.auth-btn-google,.auth-subheading{font-family:Inter,system-ui,sans-serif;font-size:.9375rem}.auth-btn-google{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 20px;background:var(--white);border:1px solid rgba(20,12,45,.14);border-radius:999px;font-weight:500;color:var(--ink);cursor:pointer;transition:border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease);box-shadow:0 2px 6px rgba(43,23,100,.06)}.auth-btn-google:hover{border-color:rgba(109,40,217,.22);box-shadow:0 6px 18px rgba(43,23,100,.1);transform:translateY(-1px)}.auth-btn-google:active{transform:scale(.98)!important;box-shadow:0 2px 6px rgba(43,23,100,.06)!important}.auth-btn-google:focus-visible{outline:2px solid var(--purple);outline-offset:3px}.auth-divider{display:flex;align-items:center;gap:12px;margin:22px 0;font-family:Inter,system-ui,sans-serif;font-size:.8125rem;color:var(--muted)}.auth-divider:after,.auth-divider:before{content:"";flex:1;height:1px;background:var(--line)}.auth-form{gap:16px}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:6px}.auth-label{font-size:.875rem;font-weight:500;color:var(--ink-2)}.auth-input,.auth-label{font-family:Inter,system-ui,sans-serif}.auth-input{width:100%;padding:11px 16px;background:var(--soft);border:1px solid rgba(20,12,45,.1);border-radius:var(--radius-sm);font-size:.9375rem;color:var(--ink);transition:border-color .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease);box-sizing:border-box}.auth-input::placeholder{color:rgba(90,91,117,.5)}.auth-input:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px rgba(109,40,217,.12);background:var(--white)}.auth-btn-primary{width:100%;padding:13px 20px;background:linear-gradient(135deg,var(--purple) 0,var(--purple-3) 100%);color:var(--white);border:none;border-radius:999px;font-family:Inter,system-ui,sans-serif;font-size:.9375rem;font-weight:600;cursor:pointer;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:box-shadow .18s var(--ease),transform .18s var(--ease);box-shadow:0 10px 26px rgba(109,40,217,.35)}.auth-btn-primary:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(108deg,transparent 38%,rgba(255,255,255,.18) 50%,transparent 62%);transform:translateX(-120%);transition:transform .55s cubic-bezier(.22,1,.36,1);pointer-events:none}.auth-btn-primary:hover:after{transform:translateX(120%)}.auth-btn-primary:active{transform:translateY(0) scale(.97)!important;box-shadow:0 4px 14px rgba(109,40,217,.25)!important}.auth-btn-primary:hover{background:linear-gradient(135deg,var(--purple-2) 0,var(--purple-3) 100%);box-shadow:0 16px 36px rgba(109,40,217,.45);transform:translateY(-2px)}.auth-btn-primary:focus-visible{outline:2px solid var(--purple);outline-offset:3px}.auth-btn-primary--link{display:flex;margin-top:28px}.auth-note{margin-top:24px;font-family:Inter,system-ui,sans-serif;font-size:.8125rem;color:var(--muted);line-height:1.55}.auth-note,.auth-note--center{text-align:center}.auth-link{color:var(--purple);font-weight:500;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-error{display:flex;align-items:flex-start;gap:9px;padding:12px 14px;background:var(--red-soft);border:1px solid rgba(220,38,38,.2);border-radius:12px;font-family:Inter,system-ui,sans-serif;font-size:.875rem;color:#b02020;line-height:1.45;margin-bottom:20px}.auth-error svg{flex-shrink:0;margin-top:1px;color:var(--red)}@keyframes auth-spin{to{transform:rotate(1turn)}}.auth-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(20,12,45,.18);border-top:2px solid var(--ink);border-radius:50%;animation:auth-spin .65s linear infinite;flex-shrink:0}.auth-spinner--white{border-color:rgba(255,255,255,.3);border-top-color:var(--white)}.auth-btn-google:disabled{opacity:.65;cursor:not-allowed;transform:none!important;box-shadow:0 2px 6px rgba(43,23,100,.04)!important}.auth-btn-primary:disabled{opacity:.75;cursor:not-allowed;transform:none!important;box-shadow:0 6px 14px rgba(109,40,217,.2)!important}.auth-btn-google:disabled:after,.auth-btn-primary:disabled:after{display:none}.auth-card--centered{text-align:center}.auth-card--centered .auth-logo{justify-content:center;margin-bottom:28px}.auth-card--centered .auth-heading{margin-bottom:10px}.auth-status-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;margin:0 auto 22px}.auth-status-icon--success{background:var(--purple-soft);color:var(--purple)}.auth-status-icon--error{background:var(--red-soft);color:var(--red)}.auth-subheading--center{text-align:center}@keyframes auth-card-in{0%{opacity:0;transform:translateY(22px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes auth-fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-orb-drift-1{0%,to{transform:translate(0) scale(1)}35%{transform:translate(-24px,18px) scale(1.05)}70%{transform:translate(16px,-12px) scale(.97)}}@keyframes auth-orb-drift-2{0%,to{transform:translate(0) scale(1)}40%{transform:translate(18px,-22px) scale(1.06)}75%{transform:translate(-14px,12px) scale(.96)}}@media (prefers-reduced-motion:no-preference){.auth-card{animation:auth-card-in .65s cubic-bezier(.16,1,.3,1) both}.auth-card>*{animation:auth-fade-up .5s cubic-bezier(.22,1,.36,1) both}.auth-card>:first-child{animation-delay:.15s}.auth-card>:nth-child(2){animation-delay:.22s}.auth-card>:nth-child(3){animation-delay:.29s}.auth-card>:nth-child(4){animation-delay:.36s}.auth-card>:nth-child(5){animation-delay:.42s}.auth-card>:nth-child(6){animation-delay:.48s}.auth-card>:nth-child(7){animation-delay:.54s}.auth-card>:nth-child(8){animation-delay:.6s}.auth-orb--1{animation:auth-orb-drift-1 14s ease-in-out infinite}.auth-orb--2{animation:auth-orb-drift-2 18s ease-in-out infinite;animation-delay:-5s}}@media (prefers-reduced-motion:reduce){.auth-back,.auth-btn-google,.auth-btn-primary,.auth-input{transition:none}.auth-back:hover,.auth-btn-google:hover,.auth-btn-primary:hover{transform:none}.auth-spinner{animation:none;border-top-color:currentColor;opacity:.6}}@media (max-width:480px){.auth-card{padding:28px 24px;border-radius:16px}.auth-back{top:12px;left:12px;padding:8px 10px}}