@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&display=swap");@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css");:root{--bg-base:#0d0d1a;--bg-surface:#13132a;--bg-card:rgba(255,255,255,0.04);--bg-card-hover:rgba(255,255,255,0.07);--bg-glass:rgba(255,255,255,0.06);--primary:#FF6B35;--primary-glow:rgba(255,107,53,0.4);--secondary:#FF2D78;--secondary-glow:rgba(255,45,120,0.35);--accent:#A855F7;--accent-glow:rgba(168,85,247,0.35);--teal:#00E5C3;--teal-glow:rgba(0,229,195,0.3);--yellow:#FFD60A;--text-primary:#FFFFFF;--text-secondary:rgba(255,255,255,0.7);--text-muted:rgba(255,255,255,0.4);--text-dim:rgba(255,255,255,0.2);--border:rgba(255,255,255,0.1);--border-bright:rgba(255,255,255,0.18);--shadow-sm:0 2px 8px rgba(0,0,0,0.3);--shadow-md:0 8px 24px rgba(0,0,0,0.4);--shadow-lg:0 20px 60px rgba(0,0,0,0.5);--shadow-glow-primary:0 0 20px rgba(255,107,53,0.5),0 0 40px rgba(255,107,53,0.2);--shadow-glow-secondary:0 0 20px rgba(255,45,120,0.5),0 0 40px rgba(255,45,120,0.2);--grad-primary:linear-gradient(135deg,#FF6B35,#FF2D78);--grad-accent:linear-gradient(135deg,#A855F7,#3B82F6);--grad-teal:linear-gradient(135deg,#00E5C3,#3B82F6);--grad-bg:linear-gradient(180deg,#0d0d1a,#12102a 50%,#0d0d1a);--grad-card:linear-gradient(135deg,rgba(255,255,255,0.07),rgba(255,255,255,0.02));--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--radius-full:9999px;--header-height:70px;--transition:0.2s cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box;padding:0;margin:0}html{scroll-behavior:smooth}body{background:var(--grad-bg);background-attachment:fixed;color:var(--text-primary);font-family:Nunito,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;justify-content:center;background-color:#0d0d1a}.app-container,body{min-height:100vh;display:flex}.app-container{width:100%;max-width:600px;background:linear-gradient(180deg,#0f0f23,#12102a);position:relative;flex-direction:column;overflow:hidden}.app-container:before{top:-200px;left:50%;transform:translateX(-50%);width:500px;height:500px;background:radial-gradient(circle,rgba(168,85,247,.15) 0,transparent 70%)}.app-container:after,.app-container:before{content:"";position:fixed;pointer-events:none;z-index:0}.app-container:after{bottom:-100px;left:20%;width:300px;height:300px;background:radial-gradient(circle,rgba(255,45,120,.12) 0,transparent 70%)}.glass-card{background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--radius-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.grad-text{background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}button{cursor:pointer;border:none;background:none;font-family:inherit;transition:transform var(--transition),background-color var(--transition),box-shadow var(--transition)}button:active{transform:scale(.95)}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-bright);border-radius:2px}.onboarding-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;animation:onboardingFadeIn .4s ease-out}.onboarding-overlay.onboarding-exit{animation:onboardingFadeOut .4s ease-in forwards}.onboarding-modal{width:100%;max-width:400px;max-height:85vh;overflow-y:auto;background:linear-gradient(180deg,#1a1a35,#13132a);border:1px solid var(--border-bright);border-radius:var(--radius-xl);padding:32px 24px 24px;position:relative;animation:onboardingSlideUp .5s cubic-bezier(.16,1,.3,1)}.onboarding-modal.onboarding-modal-exit{animation:onboardingSlideDown .4s ease-in forwards}.onboarding-progress{display:flex;gap:8px;justify-content:center;margin-bottom:28px}.onboarding-progress-dot{width:32px;height:4px;border-radius:2px;background:var(--border);transition:background .3s,width .3s}.onboarding-progress-dot.active{background:var(--grad-primary);width:40px}.onboarding-content{text-align:center;animation:onboardingContentFade .3s ease-out}.onboarding-emoji{font-size:56px;margin-bottom:16px;line-height:1}.onboarding-title{font-size:22px;font-weight:800;color:var(--text-primary);margin-bottom:8px;line-height:1.3}.onboarding-subtitle{font-size:14px;color:var(--text-secondary);white-space:pre-line;line-height:1.6;margin-bottom:24px}.onboarding-features{display:flex;flex-direction:column;gap:12px;text-align:left;margin-bottom:8px}.onboarding-feature-item{display:flex;gap:12px;align-items:flex-start;padding:14px;background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--radius-md)}.onboarding-feature-icon{font-size:24px;line-height:1;flex-shrink:0;margin-top:2px}.onboarding-feature-item strong{font-size:14px;font-weight:700;color:var(--text-primary);display:block;margin-bottom:2px}.onboarding-feature-item p{font-size:12px;color:var(--text-muted);line-height:1.4}.onboarding-location{display:flex;flex-direction:column;align-items:center;gap:8px}.onboarding-btn-location{display:flex;align-items:center;gap:8px;padding:14px 28px;background:var(--grad-primary);color:#fff;font-size:16px;font-weight:700;border-radius:var(--radius-full);box-shadow:var(--shadow-glow-primary);transition:transform .15s,box-shadow .15s}.onboarding-btn-location:hover{transform:scale(1.03);box-shadow:0 0 30px rgba(255,107,53,.6),0 0 60px rgba(255,107,53,.3)}.onboarding-location-status{display:flex;align-items:center;gap:10px;padding:14px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:600}.onboarding-location-status.requesting{color:var(--yellow)}.onboarding-location-status.granted{color:var(--teal);background:rgba(0,229,195,.1);border:1px solid rgba(0,229,195,.2)}.onboarding-location-status.denied{color:var(--secondary);background:rgba(255,45,120,.1);border:1px solid rgba(255,45,120,.2);flex-direction:column;text-align:center}.onboarding-location-hint{font-size:12px;color:var(--text-muted);font-weight:400;margin-top:4px}.onboarding-spinner{width:20px;height:20px;border:3px solid transparent;border-top:3px solid var(--yellow);border-radius:50%;animation:spin .8s linear infinite}.onboarding-btn-skip{font-size:13px;color:var(--text-muted);padding:8px 16px;border-radius:var(--radius-full);transition:color .2s}.onboarding-btn-skip:hover{color:var(--text-secondary)}.onboarding-consent{display:flex;flex-direction:column;gap:12px;text-align:left}.onboarding-consent-item{display:flex;align-items:flex-start;gap:10px;padding:12px;background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:border-color .2s}.onboarding-consent-item:has(input:checked){border-color:var(--teal);background:rgba(0,229,195,.05)}.onboarding-consent-item input[type=checkbox]{width:18px;height:18px;margin-top:1px;flex-shrink:0;accent-color:var(--teal);cursor:pointer}.onboarding-consent-text{font-size:13px;color:var(--text-secondary);line-height:1.5}.onboarding-consent-required{color:var(--secondary);font-weight:700;font-size:12px}.onboarding-consent-detail-btn{font-size:11px;color:var(--accent);margin-left:6px;text-decoration:underline;padding:2px 4px}.onboarding-consent-detail{padding:12px 14px;margin:-4px 0 4px;background:rgba(168,85,247,.05);border:1px solid rgba(168,85,247,.15);border-radius:var(--radius-sm);font-size:11px;color:var(--text-muted);line-height:1.7}.onboarding-consent-detail p{margin-bottom:3px}.onboarding-consent-detail strong{color:var(--text-secondary)}.onboarding-consent-all{display:flex;align-items:center;gap:10px;padding:12px;background:rgba(0,229,195,.06);border:1px dashed rgba(0,229,195,.3);border-radius:var(--radius-md);cursor:pointer;font-size:14px;font-weight:700;color:var(--teal)}.onboarding-consent-all input[type=checkbox]{width:18px;height:18px;accent-color:var(--teal);cursor:pointer}.onboarding-footer{margin-top:24px}.onboarding-btn-primary{width:100%;padding:16px;background:var(--grad-primary);color:#fff;font-size:16px;font-weight:800;border-radius:var(--radius-full);box-shadow:var(--shadow-glow-primary);transition:transform .15s,box-shadow .15s,opacity .2s}.onboarding-btn-primary:hover:not(:disabled){transform:scale(1.02);box-shadow:0 0 30px rgba(255,107,53,.6),0 0 60px rgba(255,107,53,.3)}.onboarding-btn-primary:disabled{opacity:.35;cursor:not-allowed;transform:none}@keyframes onboardingFadeIn{0%{opacity:0}to{opacity:1}}@keyframes onboardingFadeOut{0%{opacity:1}to{opacity:0}}@keyframes onboardingSlideUp{0%{opacity:0;transform:translateY(40px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes onboardingSlideDown{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(40px) scale(.96)}}@keyframes onboardingContentFade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(1turn)}}.loc-toast{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:8888;width:calc(100% - 32px);max-width:400px;background:linear-gradient(135deg,#1e1e3a,#1a1a30);border:1px solid var(--border-bright);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-lg),0 0 30px rgba(255,107,53,.15);animation:toastSlideIn .4s cubic-bezier(.16,1,.3,1)}.loc-toast.loc-toast-exit{animation:toastSlideOut .3s ease-in forwards}.loc-toast-content{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.loc-toast-icon{font-size:24px;line-height:1;flex-shrink:0}.loc-toast-text strong{font-size:14px;font-weight:700;color:var(--text-primary);display:block;margin-bottom:2px}.loc-toast-text p{font-size:12px;color:var(--text-muted);line-height:1.4}.loc-toast-close{margin-left:auto;font-size:16px;color:var(--text-muted);padding:4px;flex-shrink:0}.loc-toast-actions{display:flex;gap:8px}.loc-toast-btn-primary{flex:1 1;padding:10px;background:var(--grad-primary);color:#fff;font-size:13px;font-weight:700;border-radius:var(--radius-full)}.loc-toast-btn-secondary{flex:1 1;padding:10px;background:var(--bg-glass);border:1px solid var(--border);color:var(--text-secondary);font-size:13px;font-weight:600;border-radius:var(--radius-full)}.loc-guide-overlay{position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;animation:onboardingFadeIn .3s ease-out}.loc-guide-modal{width:100%;max-width:360px;background:linear-gradient(180deg,#1e1e3a,#13132a);border:1px solid var(--border-bright);border-radius:var(--radius-xl);padding:28px 24px 20px}.loc-guide-header{display:flex;align-items:center;gap:10px;margin-bottom:20px}.loc-guide-header span{font-size:28px}.loc-guide-header h3{font-size:16px;font-weight:700;color:var(--text-primary);line-height:1.3}.loc-guide-steps{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.loc-guide-step{display:flex;align-items:flex-start;gap:12px}.loc-guide-step-num{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--grad-primary);color:#fff;font-size:12px;font-weight:800;border-radius:50%}.loc-guide-step p{font-size:13px;color:var(--text-secondary);line-height:1.5;padding-top:2px}.loc-guide-close-btn,.loc-guide-step strong{color:var(--text-primary)}.loc-guide-close-btn{width:100%;padding:14px;background:var(--bg-glass);border:1px solid var(--border);font-size:14px;font-weight:700;border-radius:var(--radius-full)}@keyframes toastSlideIn{0%{opacity:0;transform:translateX(-50%) translateY(-20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translateX(-50%) translateY(0)}to{opacity:0;transform:translateX(-50%) translateY(-20px)}}.onboarding-location-denied-box{display:flex;flex-direction:column;align-items:center;gap:14px}.onboarding-location-denied-box .onboarding-location-status.denied{flex-direction:row;text-align:left;gap:8px;width:100%;padding:12px 16px}.onboarding-location-denied-box .onboarding-btn-location{background:linear-gradient(135deg,#A855F7,#3B82F6);box-shadow:0 0 20px rgba(168,85,247,.4),0 0 40px rgba(168,85,247,.15);font-size:15px;padding:12px 24px}.onboarding-location-denied-box .onboarding-btn-location:hover{box-shadow:0 0 30px rgba(168,85,247,.6),0 0 60px rgba(168,85,247,.25)}.onboarding-settings-guide{width:100%;padding:18px 16px;background:rgba(168,85,247,.06);border:1px solid rgba(168,85,247,.2);border-radius:var(--radius-md);text-align:left}.onboarding-guide-header{display:flex;align-items:center;gap:8px;margin-bottom:16px}.onboarding-guide-header span{font-size:22px}.onboarding-guide-header strong{font-size:14px;color:var(--text-primary)}.onboarding-guide-steps{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.onboarding-guide-step{display:flex;align-items:flex-start;gap:10px}.onboarding-guide-step-num{width:22px;height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--grad-accent);color:#fff;font-size:11px;font-weight:800;border-radius:50%}.onboarding-guide-step p{font-size:13px;color:var(--text-secondary);line-height:1.5;padding-top:1px}.onboarding-btn-guide-retry{width:100%;padding:12px;background:var(--grad-accent);color:#fff;font-size:14px;font-weight:700;border-radius:var(--radius-full);box-shadow:0 0 16px rgba(168,85,247,.3)}.onboarding-btn-guide-retry:hover{box-shadow:0 0 24px rgba(168,85,247,.5);transform:scale(1.02)}.onboarding-guide-desc{font-size:12px;color:var(--text-muted);line-height:1.5;margin-bottom:14px}.onboarding-guide-actions{display:flex;flex-direction:column;gap:8px}.onboarding-btn-location-settings{background:linear-gradient(135deg,#A855F7,#3B82F6)!important;box-shadow:0 0 20px rgba(168,85,247,.4),0 0 40px rgba(168,85,247,.15)!important}.onboarding-btn-location-settings:hover{box-shadow:0 0 30px rgba(168,85,247,.6),0 0 60px rgba(168,85,247,.25)!important}