:root{--white:#FFFFFF;--black:#000000;--gray-50:#F9FAFB;--gray-100:#F3F4F6;--gray-200:#E5E7EB;--gray-300:#D1D5DB;--gray-400:#9CA3AF;--gray-500:#6B7280;--gray-600:#4B5563;--gray-700:#374151;--gray-800:#1F2937;--gray-900:#111827;--pink-50:#FFF0F5;--pink-100:#FFE4EC;--pink-200:#FFB6C1;--pink-300:#FF9AAE;--pink-400:#FF6B9D;--pink-500:#FF4785;--pink-600:#E6316D;--purple-50:#F3E8FF;--purple-100:#E9D5FF;--purple-200:#DDA0DD;--purple-400:#A855F7;--purple-500:#9333EA;--red-50:#FEF2F2;--red-500:#EF4444;--red-600:#DC2626;--green-50:#F0FDF4;--green-500:#22C55E;--green-600:#16A34A;--yellow-50:#FEFCE8;--yellow-400:#FACC15;--yellow-500:#EAB308;--blue-50:#EFF6FF;--blue-500:#3B82F6;--blue-600:#2563EB;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--size-button-height:46px;--size-input-height:44px;--size-max-content:600px;--radius-sm:3px;--radius-md:5px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:15px;--radius-full:9999px;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"SF Mono",Monaco,"Cascadia Code",monospace;--text-xs:10px;--text-sm:12px;--text-base:14px;--text-lg:16px;--text-xl:18px;--text-2xl:20px;--text-3xl:24px;--text-4xl:28px;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--leading-tight:1.2;--leading-normal:1.4;--leading-relaxed:1.6;--shadow-sm:0 1px 2px rgba(0,0,0,0.05);--shadow-md:0 4px 6px rgba(0,0,0,0.1);--shadow-lg:0 10px 15px rgba(0,0,0,0.1);--duration-fast:150ms;--duration-normal:200ms;--duration-slow:300ms;--layer-dropdown:100;--layer-modal:200;--layer-overlay:300;--layer-toast:400;--color-primary:var(--pink-400);--color-primary-light:var(--pink-50);--color-primary-dark:var(--pink-600);--color-secondary:var(--purple-400);--color-secondary-light:var(--purple-50);--color-text:var(--black);--color-text-secondary:var(--gray-700);--color-text-muted:var(--gray-500);--color-text-disabled:var(--gray-400);--color-text-inverse:var(--white);--color-bg:var(--white);--color-bg-subtle:var(--gray-50);--color-bg-muted:var(--gray-100);--color-bg-inverse:var(--black);--color-border:var(--gray-200);--color-border-strong:var(--gray-300);--color-border-focus:var(--pink-400);--color-success:var(--green-600);--color-success-light:var(--green-50);--color-error:var(--red-500);--color-error-light:var(--red-50);--color-warning:var(--yellow-500);--color-warning-light:var(--yellow-50);--color-info:var(--blue-500);--color-info-light:var(--blue-50);--color-kakao:var(--yellow-400);--color-naver:#03C75A;--color-google:var(--white);--color-apple:var(--black);--spacing-1:var(--space-1);--spacing-2:var(--space-2);--spacing-3:var(--space-3);--spacing-4:var(--space-4);--spacing-5:var(--space-5);--spacing-6:var(--space-6);--spacing-8:var(--space-8);--spacing-10:var(--space-10);--spacing-12:var(--space-12);--spacing-16:var(--space-16);--height-button:var(--size-button-height);--height-input:var(--size-input-height);--max-width-content:var(--size-max-content);--font-family:var(--font-sans);--font-mono:var(--font-mono);--font-size-xs:var(--text-xs);--font-size-sm:var(--text-sm);--font-size-base:var(--text-base);--font-size-lg:var(--text-lg);--font-size-xl:var(--text-xl);--font-size-2xl:var(--text-2xl);--font-size-3xl:var(--text-3xl);--font-size-4xl:var(--text-4xl);--font-weight-normal:var(--weight-normal);--font-weight-medium:var(--weight-medium);--font-weight-semibold:var(--weight-semibold);--font-weight-bold:var(--weight-bold);--font-weight-extrabold:var(--weight-extrabold);--line-height-tight:var(--leading-tight);--line-height-normal:var(--leading-normal);--line-height-relaxed:var(--leading-relaxed);--shadow-sm:var(--shadow-sm);--shadow-md:var(--shadow-md);--shadow-lg:var(--shadow-lg);--transition-fast:var(--duration-fast) ease;--transition-normal:var(--duration-normal) ease;--transition-slow:var(--duration-slow) ease;--z-dropdown:var(--layer-dropdown);--z-modal:var(--layer-modal);--z-overlay:var(--layer-overlay);--z-toast:var(--layer-toast);--color-white:var(--white);--color-black:var(--black);--color-gray-50:var(--gray-50);--color-gray-100:var(--gray-100);--color-gray-200:var(--gray-200);--color-gray-300:var(--gray-300);--color-gray-400:var(--gray-400);--color-gray-500:var(--gray-500);--color-gray-600:var(--gray-600);--color-gray-700:var(--gray-700);--color-gray-800:var(--gray-800);--color-gray-900:var(--gray-900);--color-pink-1:var(--pink-400);--color-pink-2:var(--pink-200);--color-pink-6:var(--pink-50);--color-blue-600:var(--blue-600)}.app-layout{align-items:center;min-height:100dvh;background-color:var(--color-white);color:var(--color-black);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container,.app-layout{display:flex;flex-direction:column}.app-container{max-width:var(--max-width-content)}.app-container,.app-main{width:100%;flex:1 1}.container{width:100%;max-width:var(--max-width-content);margin:0 auto;padding:0 var(--spacing-4)}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-1{flex:1 1}.flex-center{display:flex;justify-content:center}.flex-center,.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing-1)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-5{gap:var(--spacing-5)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.p-4{padding:var(--spacing-4)}.px-4{padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.py-4{padding-bottom:var(--spacing-4)}.pt-4,.py-4{padding-top:var(--spacing-4)}.pb-4{padding-bottom:var(--spacing-4)}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.divider{display:flex;align-items:center;gap:var(--spacing-4)}.divider-line{flex:1 1;height:1px;background-color:var(--color-gray-200)}.divider-text{color:var(--color-gray-400);font-size:var(--font-size-sm)}.card{background-color:var(--color-white);border-radius:var(--radius-lg);overflow:hidden}.overlay{position:fixed;inset:0;background-color:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay)}.overlay-content{background-color:var(--color-white);padding:var(--spacing-6) var(--spacing-8);border-radius:var(--radius-xl)}.space-y-2>*+*{margin-top:var(--spacing-2)}.space-y-3>*+*{margin-top:var(--spacing-3)}.space-y-4>*+*{margin-top:var(--spacing-4)}.space-y-6>*+*{margin-top:var(--spacing-6)}.space-y-8>*+*{margin-top:var(--spacing-8)}.space-x-2>*+*{margin-left:var(--spacing-2)}.space-x-4>*+*{margin-left:var(--spacing-4)}.heading-xl{font-size:var(--font-size-4xl);font-weight:var(--font-weight-extrabold);line-height:var(--line-height-normal)}.heading-lg{font-size:var(--font-size-3xl)}.heading-lg,.heading-md{font-weight:var(--font-weight-bold);line-height:var(--line-height-normal)}.heading-md{font-size:var(--font-size-2xl)}.heading-sm{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-normal)}.text-lg{font-size:var(--font-size-lg)}.text-base,.text-lg{line-height:var(--line-height-relaxed)}.text-base{font-size:var(--font-size-base)}.text-sm{font-size:var(--font-size-sm)}.text-sm,.text-xs{line-height:var(--line-height-relaxed)}.text-xs{font-size:var(--font-size-xs)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--color-pink-1)}.text-secondary{color:var(--color-purple-1)}.text-success{color:var(--color-success)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);height:var(--height-button);padding:0 var(--spacing-4);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-normal);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:not(:disabled):hover{opacity:.9}.btn:not(:disabled):active{transform:scale(.98)}.btn-full{width:100%}.btn-primary{background-color:var(--color-pink-1);color:var(--color-white)}.btn-secondary{background-color:var(--color-purple-1);color:var(--color-white)}.btn-outline{background-color:transparent;border:1px solid var(--color-gray-200);color:var(--color-gray-600)}.btn-outline:not(:disabled):hover{background-color:var(--color-gray-50)}.btn-ghost{background-color:transparent;color:var(--color-gray-600)}.btn-ghost:not(:disabled):hover{background-color:var(--color-gray-100)}.btn-gray{background-color:var(--color-gray-300);color:var(--color-gray-500)}.btn-google{background-color:var(--color-google-bg);color:var(--color-google-text);border:1px solid var(--color-gray-200)}.btn-kakao{background-color:var(--color-kakao-bg);color:var(--color-kakao-text)}.btn-apple{background-color:var(--color-apple-bg);color:var(--color-apple-text)}.btn-email{background-color:var(--color-email-bg);color:var(--color-email-text)}.btn-icon{width:20px;height:20px;flex-shrink:0}.input{width:100%;height:var(--height-input);padding:var(--spacing-2);border:none;border-bottom:2px solid var(--color-gray-200);border-radius:0;font-size:var(--font-size-base);font-family:var(--font-family);background-color:transparent;outline:none;transition:border-color var(--transition-normal)}.input::placeholder{color:var(--color-gray-400)}.input:focus{border-bottom-color:var(--color-pink-1)}.input:disabled{background-color:var(--color-gray-50);color:var(--color-gray-500);cursor:not-allowed}.input-error{border-bottom-color:var(--color-error)}.input-success{border-bottom-color:var(--color-success)}.label{display:block;font-size:var(--font-size-base);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-3)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-3)}.error-message{font-size:var(--font-size-sm);color:var(--color-error);margin-top:var(--spacing-1)}.success-message{font-size:var(--font-size-xs);color:var(--color-success);display:flex;align-items:center;gap:var(--spacing-1)}.input-with-button{display:flex;align-items:flex-end;gap:var(--spacing-2)}.input-with-button .input-wrapper{flex:1 1}.input-with-button .btn{width:120px;flex-shrink:0}.text-error{color:var(--color-error)}.form-description,.text-muted{color:var(--color-gray-500)}.form-description{font-size:var(--font-size-sm)}