:root{--accent:#7c8cff;--accent-strong:#6366f1;--accent-glow:rgba(124,140,255,.55);--success:#34d399;--success-strong:#10b981;--danger:#fb7185;--danger-strong:#f43f5e;--warning:#fbbf24;--glass-bg:hsla(0,0%,100%,.07);--glass-bg-strong:hsla(0,0%,100%,.12);--glass-border:hsla(0,0%,100%,.16);--glass-border-strong:hsla(0,0%,100%,.28);--glass-shadow:0 8px 40px rgba(8,11,40,.45);--text:#eef1ff;--text-dim:rgba(238,241,255,.66);--text-faint:rgba(238,241,255,.42);--radius:20px;--radius-sm:12px;--blur:22px}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100vh;overscroll-behavior-y:none}body{font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Apple SD Gothic Neo,Malgun Gothic,sans-serif;color:var(--text);background:#f2f3f5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.glass{position:relative;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);-webkit-backdrop-filter:blur(var(--blur)) saturate(140%);backdrop-filter:blur(var(--blur)) saturate(140%);box-shadow:var(--glass-shadow)}.glass:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(180deg,hsla(0,0%,100%,.35),hsla(0,0%,100%,0) 40%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.glass-strong{background:var(--glass-bg-strong);border-color:var(--glass-border-strong)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:var(--radius-sm);font:inherit;font-weight:600;font-size:15px;padding:13px 20px;cursor:pointer;color:var(--text);transition:transform .12s ease,box-shadow .2s ease,background .2s ease,opacity .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:9px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:active{transform:translateY(1px) scale(.99)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--accent) 0,var(--accent-strong) 100%);box-shadow:0 8px 24px -6px var(--accent-glow)}.btn-primary:hover:not(:disabled){box-shadow:0 12px 30px -6px var(--accent-glow);transform:translateY(-1px)}.btn-success{background:linear-gradient(135deg,var(--success) 0,var(--success-strong) 100%);box-shadow:0 8px 24px -6px rgba(16,185,129,.5)}.btn-success:hover:not(:disabled){transform:translateY(-1px)}.btn-ghost{background:var(--glass-bg);border-color:var(--glass-border);color:var(--text);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-ghost:hover:not(:disabled){background:var(--glass-bg-strong)}.btn-danger{background:transparent;border-color:rgba(251,113,133,.5);color:var(--danger)}.btn-danger:hover:not(:disabled){background:rgba(251,113,133,.12);border-color:var(--danger)}.btn-block{width:100%}.btn-google{background:#fff;color:#1f2937;font-weight:600}.btn-google:hover:not(:disabled){background:#f3f4f6;transform:translateY(-1px);box-shadow:0 12px 30px -10px rgba(0,0,0,.5)}.input{width:100%;padding:12px 14px;border-radius:var(--radius-sm);background:hsla(0,0%,100%,.06);border:1px solid var(--glass-border);color:var(--text);font:inherit;font-size:15px;outline:none;transition:border .18s ease,box-shadow .18s ease,background .18s ease}.input::placeholder{color:var(--text-faint)}.input:focus{border-color:var(--accent);background:hsla(0,0%,100%,.1);box-shadow:0 0 0 3px rgba(124,140,255,.22)}.badge{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;font-size:12.5px;font-weight:600;border:1px solid var(--glass-border);background:var(--glass-bg)}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-pulse{animation:pulse 1.6s ease-in-out infinite}.dot-success{background:var(--success);box-shadow:0 0 10px var(--success)}.dot-warning{background:var(--warning);box-shadow:0 0 10px var(--warning)}.dot-danger{background:var(--danger);box-shadow:0 0 10px var(--danger)}.dot-idle{background:var(--text-faint)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}.spinner{width:20px;height:20px;border:2.5px solid hsla(0,0%,100%,.2);border-top:2.5px solid var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(1turn)}}.progress-track{height:8px;border-radius:999px;background:hsla(0,0%,100%,.1);overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-strong));box-shadow:0 0 12px var(--accent-glow);transition:width .8s ease}.toast-wrap{position:fixed;top:20px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:10px;max-width:min(360px,calc(100vw - 40px))}.toast{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;border-radius:var(--radius-sm);background:rgba(20,24,56,.72);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 10px 34px rgba(0,0,0,.4);animation:toastIn .32s cubic-bezier(.22,1,.36,1);font-size:14px}.toast.leaving{animation:toastOut .28s ease forwards}.toast-bar{width:3px;align-self:stretch;border-radius:3px;flex-shrink:0}.toast-success .toast-bar{background:var(--success)}.toast-error .toast-bar{background:var(--danger)}.toast-info .toast-bar{background:var(--accent)}@keyframes toastIn{0%{opacity:0;transform:translateX(40px) scale(.96)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes toastOut{to{opacity:0;transform:translateX(40px) scale(.96)}}.page{position:relative;z-index:1}.center,.page{min-height:100vh}.center{display:flex;align-items:center;justify-content:center;padding:24px}.fade-in{animation:fadeIn .5s ease both}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}a{color:var(--accent)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}