@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap");@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css");:root{--bg-base:hsl(240,25%,4%);--bg-surface:hsl(240,22%,7%);--bg-surface-elevated:hsl(240,20%,12%);--bg-card:hsla(240,20%,10%,0.45);--bg-card-hover:hsla(240,20%,15%,0.6);--bg-glass:hsla(240,20%,8%,0.55);--bg-glass-heavy:hsla(240,25%,6%,0.85);--primary:hsl(16,100%,60%);--primary-glow:hsla(16,100%,60%,0.35);--secondary:hsl(340,100%,55%);--accent:hsl(270,95%,65%);--teal:hsl(172,100%,45%);--yellow:hsl(48,100%,50%);--text-primary:hsl(0,0%,100%);--text-secondary:hsl(240,10%,80%);--text-muted:hsl(240,8%,60%);--text-dim:hsl(240,5%,40%);--border:hsla(0,0%,100%,0.08);--border-bright:hsla(0,0%,100%,0.16);--border-glow:hsla(270,95%,65%,0.3);--shadow-sm:0 2px 8px hsla(0,0%,0%,0.4);--shadow-md:0 8px 24px hsla(0,0%,0%,0.5),0 2px 4px hsla(0,0%,100%,0.02) inset;--shadow-lg:0 20px 50px hsla(0,0%,0%,0.7),0 1px 2px hsla(0,0%,100%,0.05) inset;--shadow-glow-primary:0 0 24px hsla(16,100%,60%,0.4),0 0 60px hsla(16,100%,60%,0.15);--shadow-glow-secondary:0 0 24px hsla(340,100%,55%,0.4),0 0 60px hsla(340,100%,55%,0.15);--shadow-glow-accent:0 0 24px hsla(270,95%,65%,0.45),0 0 60px hsla(270,95%,65%,0.15);--grad-primary:linear-gradient(135deg,hsl(16,100%,60%),hsl(340,100%,55%));--grad-accent:linear-gradient(135deg,hsl(270,95%,65%),hsl(210,100%,55%));--grad-teal:linear-gradient(135deg,hsl(172,100%,45%),hsl(210,100%,55%));--grad-bg:radial-gradient(circle at 50% 0%,hsl(244,32%,12%) 0%,hsl(240,30%,5%) 50%,hsl(240,25%,3%) 100%);--grad-card:linear-gradient(135deg,hsla(0,0%,100%,0.06),hsla(0,0%,100%,0.01));--radius-sm:12px;--radius-md:18px;--radius-lg:28px;--radius-xl:36px;--radius-full:9999px;--transition:0.3s cubic-bezier(0.16,1,0.3,1)}*{box-sizing:border-box;padding:0;margin:0}html{scroll-behavior:smooth;font-size:16px}body{background:var(--grad-bg);background-attachment:fixed;color:var(--text-primary);font-family:Outfit,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;justify-content:center;overflow-x:hidden}.app-container,body{min-height:100vh;display:flex}.app-container{width:100%;max-width:100%;background:linear-gradient(180deg,hsla(240,25%,8%,.8),hsla(240,30%,4%,.95));position:relative;flex-direction:column;overflow:hidden;box-shadow:0 0 100px rgba(0,0,0,.8),0 0 2px hsla(0,0%,100%,.05)}@media (min-width:768px){.app-container{max-width:1024px;margin:0 auto;border-left:1px solid hsla(0,0%,100%,.03);border-right:1px solid hsla(0,0%,100%,.03)}}.app-container:before{top:-150px;left:50%;transform:translateX(-50%);width:600px;height:600px;background:radial-gradient(circle,hsla(270,95%,65%,.12) 0,transparent 65%)}.app-container:after,.app-container:before{content:"";position:fixed;pointer-events:none;z-index:0}.app-container:after{bottom:-50px;right:-50px;width:400px;height:400px;background:radial-gradient(circle,hsla(340,100%,55%,.08) 0,transparent 70%)}.glass-card{background:var(--bg-glass);border:1px solid var(--border);border-radius:var(--radius-lg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:var(--shadow-md);transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition)}.glass-card:hover{border-color:var(--border-bright);box-shadow:var(--shadow-lg)}.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 .2s cubic-bezier(.34,1.56,.64,1),background-color var(--transition),box-shadow var(--transition)}button:hover{transform:translateY(-2px)}button:active{transform:translateY(1px) scale(.97)}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.1);border-radius:99px;border:1px solid transparent}::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.25)}.onboarding-overlay{position:fixed;inset:0;z-index:9999;background:rgba(4,4,12,.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;padding:20px;animation:onboardingFadeIn .5s cubic-bezier(.16,1,.3,1)}.onboarding-overlay.onboarding-exit{animation:onboardingFadeOut .4s ease-in forwards}.onboarding-modal{width:100%;max-width:440px;max-height:80vh;overflow-y:auto;background:var(--bg-glass-heavy);border:1px solid var(--border-bright);border-radius:var(--radius-xl);padding:40px 32px 32px;position:relative;box-shadow:var(--shadow-lg),0 0 80px rgba(168,85,247,.1);animation:onboardingSlideUp .6s cubic-bezier(.34,1.56,.64,1)}.onboarding-modal.onboarding-modal-exit{animation:onboardingSlideDown .4s cubic-bezier(.16,1,.3,1) forwards}.onboarding-progress{display:flex;gap:10px;justify-content:center;margin-bottom:32px}.onboarding-progress-dot{width:16px;height:6px;border-radius:var(--radius-full);background:hsla(0,0%,100%,.1);transition:background .3s var(--transition),width .3s var(--transition)}.onboarding-progress-dot.active{background:var(--grad-primary);width:36px}.onboarding-content{text-align:center;animation:onboardingContentFade .4s cubic-bezier(.16,1,.3,1)}.onboarding-emoji{font-size:64px;margin-bottom:20px;line-height:1;display:inline-block;animation:onboardingEmojiPulse 2.5s ease-in-out infinite}.onboarding-title{font-size:26px;font-weight:800;color:var(--text-primary);margin-bottom:12px;line-height:1.3;letter-spacing:-.5px}.onboarding-subtitle{font-size:15px;color:var(--text-secondary);white-space:pre-line;line-height:1.7;margin-bottom:32px}.onboarding-features{display:flex;flex-direction:column;gap:14px;text-align:left;margin-bottom:12px}.onboarding-feature-item{display:flex;gap:16px;align-items:center;padding:18px;background:hsla(0,0%,100%,.02);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .2s,background .2s}.onboarding-feature-item:hover{border-color:var(--border-bright);background:hsla(0,0%,100%,.04)}.onboarding-feature-icon{font-size:32px;line-height:1;flex-shrink:0}.onboarding-feature-details{display:flex;flex-direction:column;gap:2px}.onboarding-feature-item strong{font-size:15px;font-weight:700;color:var(--text-primary)}.onboarding-feature-item p{font-size:13px;color:var(--text-muted);line-height:1.5}.onboarding-location{display:flex;flex-direction:column;align-items:center;gap:12px}.onboarding-btn-location{display:flex;align-items:center;gap:10px;padding:16px 36px;background:var(--grad-primary);color:#fff;font-size:16px;font-weight:700;border-radius:var(--radius-full);box-shadow:var(--shadow-glow-primary)}.onboarding-btn-location:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 0 35px hsla(16,100%,60%,.65)}.onboarding-location-status{display:flex;align-items:center;gap:12px;padding:16px 24px;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:hsla(172,100%,45%,.08);border:1px solid hsla(172,100%,45%,.2)}.onboarding-location-status.denied{color:var(--secondary);background:hsla(340,100%,55%,.08);border:1px solid hsla(340,100%,55%,.2);flex-direction:column;text-align:center}.onboarding-location-hint{font-size:13px;color:var(--text-muted);font-weight:400;margin-top:6px}.onboarding-spinner{width:22px;height:22px;border:3px solid transparent;border-top:3px solid var(--yellow);border-radius:50%;animation:spin .8s linear infinite}.onboarding-btn-skip{font-size:14px;color:var(--text-muted);padding:10px 20px;border-radius:var(--radius-full);transition:color .2s,background .2s}.onboarding-btn-skip:hover{color:var(--text-secondary);background:hsla(0,0%,100%,.04)}.onboarding-consent{display:flex;flex-direction:column;gap:14px}.onboarding-consent-item{display:flex;align-items:flex-start;gap:12px;padding:16px;background:hsla(0,0%,100%,.02);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition),background var(--transition)}.onboarding-consent-item:hover{border-color:var(--border-bright)}.onboarding-consent-item:has(input:checked){border-color:var(--teal);background:hsla(172,100%,45%,.04)}.onboarding-consent-item input[type=checkbox]{width:20px;height:20px;margin-top:2px;flex-shrink:0;accent-color:var(--teal);cursor:pointer}.onboarding-consent-text{font-size:14px;color:var(--text-secondary);line-height:1.6}.onboarding-consent-required{color:var(--secondary);font-weight:700;font-size:12px;margin-right:4px}.onboarding-consent-detail-btn{font-size:12px;color:var(--accent);margin-left:8px;text-decoration:underline;padding:2px 6px}.onboarding-consent-detail{padding:14px 18px;margin:-6px 0 6px;background:hsla(270,95%,65%,.05);border:1px solid hsla(270,95%,65%,.15);border-radius:var(--radius-sm);font-size:12px;color:var(--text-muted);line-height:1.8}.onboarding-consent-detail p{margin-bottom:6px}.onboarding-consent-detail strong{color:var(--text-secondary)}.onboarding-consent-all{display:flex;align-items:center;gap:12px;padding:16px;background:hsla(172,100%,45%,.06);border:1px dashed hsla(172,100%,45%,.3);border-radius:var(--radius-md);cursor:pointer;font-size:15px;font-weight:700;color:var(--teal)}.onboarding-consent-all input[type=checkbox]{width:20px;height:20px;accent-color:var(--teal);cursor:pointer}.onboarding-footer{margin-top:32px}.onboarding-btn-primary{width:100%;padding:18px;background:var(--grad-primary);color:#fff;font-size:16px;font-weight:800;border-radius:var(--radius-full);box-shadow:var(--shadow-glow-primary)}.onboarding-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 0 35px hsla(16,100%,60%,.65)}.onboarding-btn-primary:disabled{opacity:.3;cursor:not-allowed;transform:none;box-shadow:none}.onboarding-location-denied-box{display:flex;flex-direction:column;align-items:center;gap:16px}.onboarding-location-denied-box .onboarding-location-status.denied{flex-direction:row;text-align:left;gap:10px;width:100%;padding:14px 18px}.onboarding-location-denied-box .onboarding-btn-location{background:var(--grad-accent);box-shadow:var(--shadow-glow-accent);font-size:15px;padding:14px 28px}.onboarding-location-denied-box .onboarding-btn-location:hover{box-shadow:0 0 35px hsla(270,95%,65%,.65)}.onboarding-settings-guide{width:100%;padding:22px 18px;background:hsla(270,95%,65%,.04);border:1px solid hsla(270,95%,65%,.15);border-radius:var(--radius-md);text-align:left}.onboarding-guide-header{display:flex;align-items:center;gap:10px;margin-bottom:18px}.onboarding-guide-header span{font-size:24px}.onboarding-guide-header strong{font-size:15px;color:var(--text-primary)}.onboarding-guide-steps{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.onboarding-guide-step{display:flex;align-items:flex-start;gap:12px}.onboarding-guide-step-num{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--grad-accent);color:#fff;font-size:12px;font-weight:800;border-radius:50%}.onboarding-guide-step p{font-size:13px;color:var(--text-secondary);line-height:1.6;padding-top:1px}.onboarding-btn-guide-retry{width:100%;padding:14px;background:var(--grad-accent);color:#fff;font-size:15px;font-weight:700;border-radius:var(--radius-full);box-shadow:var(--shadow-glow-accent)}.onboarding-btn-guide-retry:hover{box-shadow:0 0 35px hsla(270,95%,65%,.65)}.onboarding-guide-desc{font-size:13px;color:var(--text-muted);line-height:1.6;margin-bottom:16px}.onboarding-guide-actions{display:flex;flex-direction:column;gap:10px}.onboarding-btn-location-settings{background:var(--grad-accent)!important;box-shadow:var(--shadow-glow-accent)!important}@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(12px)}to{opacity:1;transform:translateY(0)}}@keyframes onboardingEmojiPulse{0%,to{transform:scale(1) rotate(0)}50%{transform:scale(1.1) rotate(5deg)}}@keyframes spin{to{transform:rotate(1turn)}}.loc-toast{position:fixed;top:24px;left:50%;transform:translateX(-50%);z-index:8888;width:calc(100% - 32px);max-width:440px;background:var(--bg-glass-heavy);border:1px solid var(--border-bright);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-lg),0 0 40px rgba(0,0,0,.4);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);animation:toastSlideIn .5s cubic-bezier(.16,1,.3,1)}.loc-toast.loc-toast-exit{animation:toastSlideOut .4s cubic-bezier(.16,1,.3,1) forwards}.loc-toast-content{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}.loc-toast-icon{font-size:28px;line-height:1;flex-shrink:0}.loc-toast-text{flex:1 1}.loc-toast-text strong{font-size:15px;font-weight:700;color:var(--text-primary);display:block;margin-bottom:4px}.loc-toast-text p{font-size:13px;color:var(--text-secondary);line-height:1.5}.loc-toast-close{margin-left:auto;font-size:18px;color:var(--text-muted);padding:4px;flex-shrink:0;transition:color .2s}.loc-toast-close:hover{color:var(--text-secondary)}.loc-toast-actions{display:flex;gap:10px}.loc-toast-btn-primary{flex:1 1;padding:12px;background:var(--grad-primary);color:#fff;font-size:14px;font-weight:700;border-radius:var(--radius-full);box-shadow:var(--shadow-glow-primary)}.loc-toast-btn-primary:hover{box-shadow:0 0 25px hsla(16,100%,60%,.5)}.loc-toast-btn-secondary{flex:1 1;padding:12px;background:hsla(0,0%,100%,.04);border:1px solid var(--border);color:var(--text-secondary);font-size:14px;font-weight:600;border-radius:var(--radius-full)}.loc-toast-btn-secondary:hover{background:hsla(0,0%,100%,.08)}.loc-guide-overlay{position:fixed;inset:0;z-index:9998;background:rgba(4,4,12,.8);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:20px;animation:onboardingFadeIn .4s ease-out}.loc-guide-modal{width:100%;max-width:380px;background:var(--bg-glass-heavy);border:1px solid var(--border-bright);border-radius:var(--radius-xl);padding:32px 28px 24px;box-shadow:var(--shadow-lg)}.loc-guide-header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.loc-guide-header span{font-size:32px}.loc-guide-header h3{font-size:18px;font-weight:800;color:var(--text-primary);line-height:1.4;letter-spacing:-.3px}.loc-guide-steps{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}.loc-guide-step{display:flex;align-items:flex-start;gap:14px}.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:14px;color:var(--text-secondary);line-height:1.5;padding-top:1px}.loc-guide-close-btn,.loc-guide-step strong{color:var(--text-primary)}.loc-guide-close-btn{width:100%;padding:14px;background:hsla(0,0%,100%,.04);border:1px solid var(--border);font-size:14px;font-weight:700;border-radius:var(--radius-full);transition:background .2s}.loc-guide-close-btn:hover{background:hsla(0,0%,100%,.08)}@keyframes toastSlideIn{0%{opacity:0;transform:translateX(-50%) translateY(-30px)}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(-30px)}}