.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}.type-cycle{margin-top:24px;display:flex;align-items:center;gap:8px;padding-left:36px;animation:fadeUp .8s ease .45s both}.type-cycle .ming{font-family:var(--serif);font-size:20px;font-weight:300;color:var(--fg);position:relative;top:2px}.type-cycle .times{font-size:13px;color:var(--fg-tertiary);font-weight:300}.type-cycle .rotating{font-family:var(--sans);font-size:20px;font-weight:300;letter-spacing:.06em;color:var(--fg);width:80px;height:28px;position:relative;top:-2px;overflow:hidden}.type-cycle .rotating span{position:absolute;left:0;width:100%;text-align:left;transition:opacity .4s ease,transform .4s ease}.type-cycle .rotating span.active{opacity:1;transform:translateY(0)}.type-cycle .rotating span.exit-up{opacity:0;transform:translateY(-4px)}.type-cycle .rotating span.enter-down{opacity:0;transform:translateY(4px)}.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-weight:300;margin-bottom:28px}.login-card .subtitle,.login-error{font-size:12px;color:var(--fg-secondary);text-align:center;position:relative}.login-error{margin:0 0 16px;padding:10px 12px;border:1px solid var(--border,#e5e7eb);border-radius:8px;background:var(--bg-subtle,#f9fafb);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)}.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 svg{flex-shrink:0}.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)}.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}@media (max-height:700px){.login-logo-area{margin-top:60px}.login-headline{margin-top:20px}.login-card{margin-top:32px}}