:root{--session-logged-in:0;--session-logged-out:1;--user-name:"사용자";--user-email:"인증된 사용자"}.logged-out-view{display:block;opacity:1;transition:opacity .2s ease}.logged-in-view{transition:opacity .2s ease}.logged-in-view,:root[style*="--session-logged-in: 1"] .logged-out-view{display:none;opacity:0}:root[style*="--session-logged-in: 1"] .logged-in-view{display:block;opacity:1}.premium-content{filter:blur(4px);-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;transition:filter .3s ease}:root[style*="--session-logged-in: 1"] .premium-content{filter:blur(0);-webkit-user-select:auto;-moz-user-select:auto;user-select:auto;pointer-events:auto}.premium-overlay{display:flex;opacity:1;transition:opacity .3s ease}.welcome-message,:root[style*="--session-logged-in: 1"] .premium-overlay{display:none;opacity:0}.welcome-message{transition:opacity .3s ease}:root[style*="--session-logged-in: 1"] .welcome-message{display:block;opacity:1}.user-name:after{content:var(--user-name)}.user-email:after{content:var(--user-email)}.welcome-user:after{content:var(--user-name) "님 환영합니다! 🎉"}.user-avatar{width:36px;height:36px;border-radius:50%;border:2px solid #10b981;background-color:#f3f4f6;background-size:cover;background-position:50%;background-repeat:no-repeat;display:flex;align-items:center;justify-content:center;font-size:18px;overflow:hidden}@media (min-width:640px){.user-avatar{width:40px;height:40px;font-size:20px}}:root.has-user-image .user-avatar{background-image:var(--user-image)}:root{--user-image:none}.auth-google-button{display:inline-flex;align-items:center;padding:8px 16px;border:1px solid transparent;font-size:14px;font-weight:500;border-radius:6px;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);color:white;background-color:#4f46e5;transition:all .15s ease-in-out}.auth-google-button:hover{background-color:#4338ca}.auth-google-button:focus{outline:none;box-shadow:0 0 0 3px rgba(79,70,229,.3)}.auth-logout-button{display:inline-flex;align-items:center;padding:8px 16px;border:1px solid #d1d5db;font-size:14px;font-weight:500;border-radius:6px;color:#374151;background-color:white;transition:all .15s ease-in-out}.auth-logout-button:hover{background-color:#f9fafb}.auth-logout-button:focus{outline:none;box-shadow:0 0 0 3px rgba(79,70,229,.3)}.google-icon{width:20px;height:20px;margin-right:8px}.auth-card{background-color:white;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);overflow:hidden;border-radius:8px}.auth-card-content{padding:20px 16px}@media (min-width:640px){.auth-card-content{padding:24px}}.auth-card-title{font-size:18px;line-height:24px;font-weight:500;color:#111827}.auth-card-description{margin-top:8px;max-width:36rem;font-size:14px;color:#6b7280}.auth-card-actions{margin-top:20px}.user-profile{font-size:18px;line-height:24px;font-weight:500;color:#111827;display:flex;align-items:center;gap:12px}.user-profile .user-avatar{flex-shrink:0}.header-login{position:relative}.header-login-button{display:inline-flex;align-items:center;padding:6px 12px;border:1px solid #d1d5db;font-size:14px;font-weight:500;border-radius:6px;color:#374151;background-color:white;cursor:pointer;transition:all .15s ease-in-out}.header-login-button:hover{background-color:#f9fafb;border-color:#9ca3af}.header-profile{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background-color .15s ease-in-out}.header-profile:hover{background-color:#f3f4f6}.header-profile-button .user-avatar{width:32px;height:32px;border:2px solid #e5e7eb}.header-user-name{font-size:14px;font-weight:500;color:#374151;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-user-name:after{content:var(--user-name)}.header-avatar{position:relative}.header-default-avatar{width:32px;height:32px;border-radius:50%;border:2px solid #e5e7eb;background-color:#f9fafb;display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;transition:all .15s ease-in-out}.header-default-avatar:hover{border-color:#9ca3af;background-color:#f3f4f6}.header-user-name-display{font-size:14px;font-weight:500;color:#374151}