.login-shell{width:100%;max-width:480px;min-height:100dvh;background:var(--bg);position:relative;overflow:hidden;display:flex;flex-direction:column}.login-mesh-bg{position:absolute;top:0;left:0;right:0;height:420px;overflow:hidden;z-index:0}.login-mesh-bg .blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5}.login-mesh-bg .blob-1{width:220px;height:220px;background:#d4c5f9;top:-40px;left:-30px;animation:loginDrift1 8s ease-in-out infinite}.login-mesh-bg .blob-2{width:180px;height:180px;background:#b8d8f8;top:20px;right:-20px;animation:loginDrift2 10s ease-in-out infinite}.login-mesh-bg .blob-3{width:160px;height:160px;background:#f9d4d4;top:120px;left:40%;animation:loginDrift3 9s ease-in-out infinite}.login-mesh-bg .blob-4{width:140px;height:140px;background:#c5f0e0;top:60px;left:20%;animation:loginDrift4 7s ease-in-out infinite}@keyframes loginDrift1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,20px) scale(1.05)}}@keyframes loginDrift2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-20px,30px) scale(1.08)}}@keyframes loginDrift3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-15px,-20px) scale(1.04)}}@keyframes loginDrift4{0%,to{transform:translate(0) scale(1)}50%{transform:translate(25px,-15px) scale(1.06)}}.login-mesh-bg:after{content:"";position:absolute;bottom:0;left:0;right:0;height:160px;background:linear-gradient(to bottom,transparent,var(--bg));z-index:1}.login-content{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;padding:0 32px}.login-logo-area{margin-top:100px;text-align:center;padding-left:16px;animation:fadeUp .8s ease both}.login-logo{font-family:var(--sans);font-size:28px;font-weight:600;letter-spacing:-.02em;color:var(--fg)}.login-logo .ai{font-weight:400;color:var(--fg-secondary)}.login-headline{margin-top:28px;text-align:center;animation:fadeUp .8s ease .3s both}.login-headline h1{font-size:22px;font-weight:500;line-height:1.45;letter-spacing:-.02em;color:var(--fg)}.login-headline p{margin-top:10px;font-size:14px;font-weight:300;color:var(--fg-secondary);line-height:1.6}.login-card{margin-top:48px;width:100%;background:hsla(0,0%,100%,.7);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border:.5px solid rgba(0,0,0,.08);border-radius:24px;padding:36px 28px;box-shadow:0 2px 16px rgba(0,0,0,.05),inset 0 1px 0 #fff,inset 0 -1px 0 hsla(0,0%,100%,.3);position:relative;overflow:hidden;animation:fadeUp .8s ease .6s both}.login-card:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,hsla(0,0%,100%,.45),transparent);pointer-events:none;border-radius:24px 24px 0 0}.login-card h2{font-size:15px;font-weight:500;color:var(--fg);text-align:center;margin-bottom:6px;position:relative}.login-card .subtitle{font-size:12px;font-weight:300;color:var(--fg-secondary);text-align:center;margin-bottom:28px;position:relative}.login-error{position:relative;margin:0 0 16px;padding:10px 12px 10px 34px;border:1px solid #fca5a5;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:12px;line-height:1.5;text-align:left;white-space:pre-line}.login-error:before{content:"⚠";position:absolute;left:12px;top:10px;font-size:13px;line-height:1.5}.inapp-steps{position:relative;list-style:none;margin:0 0 20px;padding:16px 14px;border:.5px solid rgba(0,0,0,.08);border-radius:12px;background:hsla(0,0%,100%,.6);display:flex;flex-direction:column;gap:10px}.inapp-steps li{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:400;color:var(--fg);line-height:1.4}.inapp-steps .step-num{flex-shrink:0;width:20px;height:20px;border-radius:50%;background:var(--fg);color:var(--bg);font-size:11px;font-weight:500;display:flex;align-items:center;justify-content:center}.inapp-steps .step-text{flex:1}.inapp-steps .step-icon{display:inline-block;min-width:20px;padding:0 4px;text-align:center;font-weight:600;color:var(--fg);background:var(--bg-subtle,#f1f3f5);border-radius:4px}.social-buttons.inapp-fallback{position:relative;padding-top:14px;border-top:.5px dashed rgba(0,0,0,.1)}.social-buttons.inapp-fallback:before{content:"안 될 경우";position:absolute;top:-8px;left:50%;transform:translateX(-50%);background:hsla(0,0%,100%,.95);padding:0 8px;font-size:10px;font-weight:300;color:var(--fg-tertiary)}.inapp-help-link{display:block;margin:16px auto 0;background:none;border:none;padding:4px 8px;font-size:12px;font-weight:300;color:var(--fg-tertiary);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.social-buttons{flex-direction:column;gap:12px}.btn-social,.social-buttons{display:flex;position:relative}.btn-social{align-items:center;justify-content:center;gap:10px;width:100%;height:52px;border-radius:14px;border:none;font-family:var(--sans);font-size:15px;font-weight:500;cursor:pointer;transition:transform .15s ease,opacity .15s ease,box-shadow .2s ease}.btn-social:active{transform:scale(.97);opacity:.9}.btn-social.btn-blocked{cursor:not-allowed;opacity:.4}.btn-social.btn-blocked:active{transform:none}.btn-social svg{flex-shrink:0}.btn-google-blocked-note{margin-top:-4px;font-size:11px;font-weight:300;line-height:1.6;color:var(--fg-tertiary);text-align:center}.btn-google{background:#fff;color:#1d1d1f;border:.5px solid rgba(0,0,0,.12);box-shadow:0 1px 4px rgba(0,0,0,.06)}.btn-google:hover{box-shadow:0 2px 8px rgba(0,0,0,.1)}.btn-kakao{background:#fee500;color:#191919;box-shadow:0 1px 4px rgba(254,229,0,.3)}.btn-kakao:hover{box-shadow:0 2px 8px rgba(254,229,0,.4)}.btn-admin{background:var(--accent-soft);color:var(--fg-secondary);border:.5px solid var(--border)}.btn-admin:hover{box-shadow:0 2px 8px rgba(0,0,0,.08)}.btn-email{background:#1d1d1f;color:#fff;border:none;box-shadow:0 1px 6px rgba(0,0,0,.14)}.btn-email:hover{box-shadow:0 3px 12px rgba(0,0,0,.2)}.btn-email:disabled{cursor:default;opacity:.6}.btn-email-lead{font-weight:400;opacity:.6;margin-right:2px}.email-cta-caption{margin:0 2px;font-weight:500;line-height:1.5}.email-cta-caption,.email-form-lead{font-size:12px;color:#007aff;text-align:center}.email-form-lead{margin:0 2px 2px;font-weight:400;line-height:1.6}.email-form-lead b{font-weight:600}.remember-email{display:flex;align-items:center;gap:7px;margin:10px 2px 4px;font-size:12px;color:var(--fg-secondary);cursor:pointer;user-select:none}.remember-email input[type=checkbox]{width:15px;height:15px;accent-color:#007aff;cursor:pointer}.login-notice{position:relative;margin:0 0 16px;padding:11px 13px;border:1px solid rgba(255,149,0,.28);border-radius:10px;background:rgba(255,149,0,.07);color:var(--fg-secondary);font-size:12px;line-height:1.65;text-align:center}.login-notice b{color:var(--fg);font-weight:500}.email-form{display:flex;flex-direction:column;gap:12px;position:relative}.email-input{width:100%;height:52px;padding:0 16px;border-radius:14px;border:.5px solid rgba(0,0,0,.12);background:hsla(0,0%,100%,.85);font-family:var(--sans);font-size:15px;font-weight:400;color:var(--fg);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.email-input::placeholder{color:var(--fg-tertiary);font-weight:300;font-size:13px}.email-input:focus{border-color:rgba(0,0,0,.28);box-shadow:0 1px 4px rgba(0,0,0,.06)}.email-field{position:relative}.email-field .email-input{padding-right:40px}.email-check{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:15px;font-weight:700;pointer-events:none}.email-check.is-ok{color:#34c759}.email-check.is-bad{color:#ff3b30}.email-check-pw{right:44px}.email-pw-wrap{position:relative}.email-pw-wrap .email-input{padding-right:70px}.email-pw-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;padding:5px;background:none;border:none;color:var(--fg-tertiary);cursor:pointer}.email-pw-toggle:active{opacity:.6}.email-rule-hint{margin:-4px 4px 0;font-size:11px;font-weight:300;line-height:1.5;color:#ff3b30;text-align:left}.email-aux{display:flex;flex-direction:column;gap:6px;align-items:center;margin-top:2px}.auth-link-sm{font-size:12px;font-weight:300;color:var(--fg-tertiary);text-decoration:underline;text-underline-offset:2px}.auth-link,.auth-link-sm:hover{color:var(--fg-secondary)}.auth-link{display:block;margin:18px auto 0;text-align:center;font-size:13px;font-weight:300;text-decoration:underline;text-underline-offset:2px}.auth-divider{position:relative;text-align:center;margin:4px 0}.auth-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:.5px;background:rgba(0,0,0,.1)}.auth-divider span{position:relative;padding:0 10px;background:hsla(0,0%,100%,.85);font-size:11px;font-weight:300;color:var(--fg-tertiary)}.signup-email-emphasis{margin:4px 0 12px;padding:14px 12px;border-radius:12px;border:.5px solid rgba(0,122,255,.25);background:rgba(0,122,255,.06);color:#007aff;font-size:16px;font-weight:600;text-align:center;word-break:break-all}.signup-email-note{margin:0 0 20px;font-size:12px;font-weight:300;line-height:1.7;color:var(--fg-secondary);text-align:center}.login-success{position:relative;margin:0 0 16px;padding:10px 12px;border:1px solid rgba(52,168,83,.3);border-radius:8px;background:rgba(52,168,83,.08);color:#1e7e34;font-size:12px;line-height:1.5;text-align:center}.login-terms{margin-top:24px;text-align:center;animation:fadeUp .8s ease .75s both}.login-terms p{font-size:11px;font-weight:300;color:var(--fg-tertiary);line-height:1.7}.login-terms a{color:var(--fg-secondary);text-decoration:underline;text-underline-offset:2px}.login-footer{margin-top:auto;padding:32px 32px 40px;text-align:center;animation:fadeUp .8s ease .9s both}.login-footer p{font-size:11px;font-weight:300;color:var(--fg-tertiary)}.login-footer-biz{font-size:10px!important;color:var(--fg-tertiary)!important;font-weight:300!important;line-height:1.6!important;margin:0!important}.signup-confirm-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.4);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.signup-confirm-card{width:100%;max-width:340px;background:#fff;border-radius:20px;padding:26px 22px 20px;box-shadow:0 12px 40px rgba(0,0,0,.22);animation:fadeUp .25s ease both}.signup-confirm-card h3{font-size:17px;font-weight:600;color:var(--fg);text-align:center}.signup-confirm-card .sc-sub{margin-top:6px;font-size:12.5px;font-weight:300;color:var(--fg-secondary);text-align:center}.sc-rows{margin:18px 0 20px;border:.5px solid rgba(0,0,0,.08);border-radius:14px;overflow:hidden}.sc-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}.sc-row+.sc-row{border-top:.5px solid rgba(0,0,0,.06)}.sc-row span{flex-shrink:0;font-size:12px;font-weight:300;color:var(--fg-tertiary)}.sc-row b{font-size:14px;font-weight:500;color:var(--fg);text-align:right;word-break:break-all}.sc-cancel{display:block;width:100%;margin-top:10px;padding:10px 0;background:none;border:none;font-size:13px;font-weight:300;color:var(--fg-tertiary);cursor:pointer}@media (max-height:700px){.login-logo-area{margin-top:60px}.login-headline{margin-top:20px}.login-card{margin-top:32px}}