:root{font-family:Pretendard Variable,Pretendard,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,Noto Sans,Arial,sans-serif;line-height:1.45;font-weight:400;color:#0f172a;background-color:#edf3ff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(180deg,#eaf2ff,#f5f9ff 36%,#f8fafc)}#root{min-height:100vh}button,input{font:inherit}.app-shell{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow-x:hidden;background:linear-gradient(160deg,#e9f2ff,#fff 62%);transition:background .38s ease,filter .28s ease}.app-shell:before,.app-shell:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;transition:opacity .35s ease,background .35s ease}.app-shell:before{background:radial-gradient(1200px 620px at 14% 8%,rgba(255,255,255,.5),transparent 72%);opacity:.6}.app-shell:after{background:linear-gradient(180deg,#0f172a00,#0f172a0a);opacity:.35}.app-shell>*{position:relative;z-index:1}.weather-scene{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.weather-layer{position:absolute;top:-14%;right:-14%;bottom:-14%;left:-14%;transition:opacity .28s ease,transform .3s ease}.weather-scene-sun .weather-layer-one{background:radial-gradient(circle at 85% 10%,rgba(255,220,100,.95) 0 8%,rgba(255,206,77,.85) 8% 15%,transparent 45%),radial-gradient(circle at 85% 10%,rgba(255,243,190,.4) 0 25%,transparent 55%);animation:sun-core-pulse 3s ease-in-out infinite;opacity:.65}.weather-scene-sun .weather-layer-two{background:conic-gradient(from 0deg at 85% 10%,transparent 0deg 15deg,rgba(255,244,180,.3) 15deg 25deg,transparent 25deg 45deg,rgba(255,244,180,.35) 45deg 55deg,transparent 55deg 85deg,rgba(255,244,180,.3) 85deg 95deg,transparent 95deg 125deg,rgba(255,244,180,.35) 125deg 135deg,transparent 135deg 165deg,rgba(255,244,180,.3) 165deg 175deg,transparent 175deg 205deg,rgba(255,244,180,.35) 205deg 215deg,transparent 215deg 245deg,rgba(255,244,180,.3) 245deg 255deg,transparent 255deg 285deg,rgba(255,244,180,.35) 285deg 295deg,transparent 295deg 325deg,rgba(255,244,180,.3) 325deg 335deg,transparent 335deg 360deg);transform-origin:85% 10%;animation:sun-rays-rotate 20s linear infinite;opacity:.5}.weather-scene-sun .weather-layer-three{display:none}.weather-scene-partly .weather-layer-one{background:radial-gradient(ellipse 500px 150px at 15% 25%,rgba(255,255,255,.7),transparent),radial-gradient(ellipse 400px 120px at 70% 20%,rgba(248,250,252,.6),transparent);animation:cloud-drift-slow 30s cubic-bezier(.4,0,.6,1) infinite}@keyframes clouds-drift-1{0%{transform:translate(-200px)}to{transform:translate(200px)}}@keyframes clouds-drift-2{0%{transform:translate(-250px)}to{transform:translate(250px)}}@keyframes clouds-drift-3{0%{transform:translate(-300px)}to{transform:translate(300px)}}.weather-scene-cloud{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:1}.weather-scene.weather-scene-cloud{overflow:visible!important;z-index:1}.weather-scene-cloud .weather-layer-one{position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse 200px 80px at 25% 20%,white 30%,transparent 35%),radial-gradient(ellipse 180px 90px at 22% 18%,white 25%,transparent 30%),radial-gradient(ellipse 160px 70px at 28% 19%,white 28%,transparent 33%),radial-gradient(ellipse 140px 60px at 24% 22%,rgba(255,255,255,.95) 30%,transparent 35%),radial-gradient(ellipse 250px 60px at 70% 30%,white 35%,transparent 40%),radial-gradient(ellipse 180px 70px at 68% 28%,white 30%,transparent 35%),radial-gradient(ellipse 160px 80px at 72% 31%,rgba(255,255,255,.95) 32%,transparent 37%),radial-gradient(ellipse 120px 60px at 15% 50%,white 30%,transparent 35%),radial-gradient(ellipse 100px 50px at 13% 48%,white 25%,transparent 30%),radial-gradient(ellipse 110px 55px at 17% 51%,rgba(255,255,255,.95) 28%,transparent 33%),radial-gradient(ellipse 300px 50px at 50% 65%,white 30%,transparent 35%),radial-gradient(ellipse 220px 60px at 48% 63%,rgba(255,255,255,.95) 25%,transparent 30%),radial-gradient(ellipse 180px 55px at 52% 66%,rgba(255,255,255,.9) 28%,transparent 33%),radial-gradient(ellipse 150px 70px at 85% 40%,white 32%,transparent 37%),radial-gradient(ellipse 130px 60px at 83% 38%,white 28%,transparent 33%),radial-gradient(ellipse 140px 65px at 87% 41%,rgba(255,255,255,.95) 30%,transparent 35%),radial-gradient(ellipse 220px 90px at 35% 80%,white 35%,transparent 40%),radial-gradient(ellipse 200px 80px at 33% 78%,white 30%,transparent 35%),radial-gradient(ellipse 180px 70px at 37% 81%,rgba(255,255,255,.95) 32%,transparent 37%),radial-gradient(ellipse 180px 70px at 45% 10%,white 30%,transparent 35%),radial-gradient(ellipse 160px 60px at 43% 8%,white 28%,transparent 33%),radial-gradient(ellipse 140px 65px at 47% 11%,rgba(255,255,255,.95) 25%,transparent 30%),radial-gradient(ellipse 170px 75px at 60% 55%,white 32%,transparent 37%),radial-gradient(ellipse 150px 65px at 58% 53%,white 28%,transparent 33%),radial-gradient(ellipse 130px 55px at 62% 56%,rgba(255,255,255,.9) 30%,transparent 35%),radial-gradient(ellipse 140px 60px at 10% 75%,white 30%,transparent 35%),radial-gradient(ellipse 120px 55px at 8% 73%,white 26%,transparent 31%),radial-gradient(ellipse 110px 50px at 12% 76%,rgba(255,255,255,.95) 28%,transparent 33%),radial-gradient(ellipse 190px 70px at 80% 15%,white 32%,transparent 37%),radial-gradient(ellipse 170px 65px at 78% 13%,white 28%,transparent 33%),radial-gradient(ellipse 150px 60px at 82% 16%,rgba(255,255,255,.95) 30%,transparent 35%);background-size:100% 100%;background-position:0 0;animation:clouds-drift-1 80s linear infinite;opacity:1;z-index:2;filter:blur(1px)}.weather-scene-cloud .weather-layer-two{position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse 180px 70px at 40% 15%,rgba(245,248,252,.85) 20%,transparent 40%),radial-gradient(ellipse 160px 60px at 38% 13%,rgba(240,244,248,.8) 15%,transparent 35%),radial-gradient(ellipse 140px 65px at 42% 16%,rgba(245,248,252,.75) 18%,transparent 38%),radial-gradient(ellipse 240px 55px at 20% 35%,rgba(240,244,248,.8) 22%,transparent 42%),radial-gradient(ellipse 200px 60px at 18% 33%,rgba(245,248,252,.75) 18%,transparent 38%),radial-gradient(ellipse 180px 50px at 22% 36%,rgba(240,244,248,.7) 20%,transparent 40%),radial-gradient(ellipse 160px 65px at 65% 45%,rgba(245,248,252,.8) 20%,transparent 40%),radial-gradient(ellipse 140px 55px at 63% 43%,rgba(240,244,248,.75) 15%,transparent 35%),radial-gradient(ellipse 150px 60px at 67% 46%,rgba(245,248,252,.7) 18%,transparent 38%),radial-gradient(ellipse 120px 50px at 80% 60%,rgba(240,244,248,.75) 18%,transparent 38%),radial-gradient(ellipse 100px 45px at 78% 58%,rgba(245,248,252,.7) 15%,transparent 35%),radial-gradient(ellipse 200px 80px at 30% 75%,rgba(245,248,252,.85) 22%,transparent 42%),radial-gradient(ellipse 180px 70px at 28% 73%,rgba(240,244,248,.8) 18%,transparent 38%),radial-gradient(ellipse 160px 60px at 32% 76%,rgba(245,248,252,.75) 20%,transparent 40%),radial-gradient(ellipse 140px 55px at 55% 85%,rgba(240,244,248,.8) 20%,transparent 40%),radial-gradient(ellipse 120px 50px at 53% 83%,rgba(245,248,252,.75) 15%,transparent 35%),radial-gradient(ellipse 130px 52px at 57% 86%,rgba(240,244,248,.7) 18%,transparent 38%),radial-gradient(ellipse 170px 65px at 50% 25%,rgba(245,248,252,.8) 22%,transparent 42%),radial-gradient(ellipse 150px 55px at 48% 23%,rgba(240,244,248,.75) 18%,transparent 38%),radial-gradient(ellipse 130px 60px at 52% 26%,rgba(245,248,252,.7) 20%,transparent 40%),radial-gradient(ellipse 150px 60px at 10% 55%,rgba(240,244,248,.75) 20%,transparent 40%),radial-gradient(ellipse 130px 50px at 8% 53%,rgba(245,248,252,.7) 16%,transparent 36%),radial-gradient(ellipse 160px 60px at 75% 20%,rgba(245,248,252,.8) 22%,transparent 42%),radial-gradient(ellipse 140px 55px at 73% 18%,rgba(240,244,248,.75) 18%,transparent 38%),radial-gradient(ellipse 130px 50px at 88% 78%,rgba(240,244,248,.75) 20%,transparent 40%),radial-gradient(ellipse 110px 45px at 86% 76%,rgba(245,248,252,.7) 16%,transparent 36%);background-size:100% 100%;background-position:0 0;animation:clouds-drift-2 100s linear infinite;opacity:1;z-index:2;filter:blur(.8px)}.weather-scene-cloud .weather-layer-three{position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse 220px 65px at 60% 10%,rgba(230,235,240,.75) 25%,transparent 45%),radial-gradient(ellipse 180px 55px at 58% 8%,rgba(225,230,237,.7) 20%,transparent 40%),radial-gradient(ellipse 160px 60px at 62% 11%,rgba(230,235,240,.65) 22%,transparent 42%),radial-gradient(ellipse 260px 50px at 25% 25%,rgba(225,230,237,.7) 23%,transparent 43%),radial-gradient(ellipse 200px 55px at 23% 23%,rgba(230,235,240,.65) 18%,transparent 38%),radial-gradient(ellipse 180px 45px at 27% 26%,rgba(225,230,237,.6) 20%,transparent 40%),radial-gradient(ellipse 170px 60px at 75% 40%,rgba(230,235,240,.7) 22%,transparent 42%),radial-gradient(ellipse 150px 50px at 73% 38%,rgba(225,230,237,.65) 18%,transparent 38%),radial-gradient(ellipse 140px 55px at 77% 41%,rgba(230,235,240,.6) 20%,transparent 40%),radial-gradient(ellipse 240px 70px at 15% 55%,rgba(225,230,237,.75) 24%,transparent 44%),radial-gradient(ellipse 200px 60px at 13% 53%,rgba(230,235,240,.7) 20%,transparent 40%),radial-gradient(ellipse 180px 65px at 17% 56%,rgba(225,230,237,.65) 22%,transparent 42%),radial-gradient(ellipse 180px 55px at 50% 70%,rgba(230,235,240,.7) 22%,transparent 42%),radial-gradient(ellipse 160px 50px at 48% 68%,rgba(225,230,237,.65) 18%,transparent 38%),radial-gradient(ellipse 140px 45px at 52% 71%,rgba(230,235,240,.6) 20%,transparent 40%),radial-gradient(ellipse 150px 50px at 85% 85%,rgba(225,230,237,.65) 20%,transparent 40%),radial-gradient(ellipse 130px 45px at 83% 83%,rgba(230,235,240,.6) 18%,transparent 38%),radial-gradient(ellipse 140px 48px at 87% 86%,rgba(225,230,237,.55) 22%,transparent 42%),radial-gradient(ellipse 190px 60px at 40% 30%,rgba(230,235,240,.7) 22%,transparent 42%),radial-gradient(ellipse 170px 55px at 38% 28%,rgba(225,230,237,.65) 18%,transparent 38%),radial-gradient(ellipse 150px 50px at 42% 31%,rgba(230,235,240,.6) 20%,transparent 40%),radial-gradient(ellipse 160px 55px at 70% 60%,rgba(225,230,237,.68) 20%,transparent 40%),radial-gradient(ellipse 140px 50px at 68% 58%,rgba(230,235,240,.63) 18%,transparent 38%),radial-gradient(ellipse 170px 60px at 20% 78%,rgba(230,235,240,.7) 22%,transparent 42%),radial-gradient(ellipse 150px 50px at 18% 76%,rgba(225,230,237,.65) 18%,transparent 38%),radial-gradient(ellipse 140px 50px at 92% 45%,rgba(225,230,237,.65) 20%,transparent 40%),radial-gradient(ellipse 120px 45px at 90% 43%,rgba(230,235,240,.6) 18%,transparent 38%);background-size:100% 100%;background-position:0 0;animation:clouds-drift-3 120s linear infinite;opacity:1;z-index:2;filter:blur(1.2px)}.weather-scene-fog .weather-layer-one{background:radial-gradient(ellipse at 20% 30%,rgba(255,255,255,.4),transparent),radial-gradient(ellipse at 60% 35%,rgba(241,245,249,.5),transparent),radial-gradient(ellipse at 85% 30%,rgba(255,255,255,.4),transparent);animation:fog-drift 20s ease-in-out infinite;opacity:.65}.weather-scene-fog .weather-layer-two{background:linear-gradient(180deg,#e2e8f099,#cbd5e133);animation:fog-fade 8s ease-in-out infinite;opacity:.5}.weather-scene-fog .weather-layer-three{background:linear-gradient(90deg,#ffffff4d,#e2e8f080,#ffffff4d);filter:blur(8px);animation:fog-roll 6s ease-in-out infinite;opacity:.38}.weather-scene-rain .weather-layer-one{background:repeating-linear-gradient(98deg,transparent 0,transparent 8px,rgba(174,197,235,.6) 8px,rgba(174,197,235,.6) 10px);background-size:100px 100px;animation:rain-fall-heavy .3s linear infinite;opacity:.65}.weather-scene-rain .weather-layer-two{background:repeating-linear-gradient(95deg,transparent 0,transparent 12px,rgba(147,197,253,.4) 12px,rgba(147,197,253,.4) 13px);background-size:120px 120px;opacity:.7;animation:rain-fall-medium .5s linear infinite;animation-delay:-.2s}.weather-scene-rain .weather-layer-three{background:linear-gradient(to bottom,transparent 60%,rgba(191,219,254,.2) 100%),radial-gradient(ellipse at 50% 100%,rgba(224,242,254,.4) 0%,transparent 70%);animation:rain-mist 3s ease-in-out infinite;opacity:.38}.weather-scene-snow .weather-layer-one{position:absolute;width:100%;height:100%;top:0;left:0;background-image:radial-gradient(2px 2px at 20px 30px,white,transparent),radial-gradient(2px 2px at 40px 70px,white,transparent),radial-gradient(1px 1px at 50px 10px,white,transparent),radial-gradient(1px 1px at 80px 50px,white,transparent),radial-gradient(2px 2px at 110px 90px,white,transparent),radial-gradient(1px 1px at 130px 30px,white,transparent),radial-gradient(2px 2px at 140px 80px,white,transparent);background-size:200px 200px;background-repeat:repeat;opacity:.9;animation:snowfall 5s linear infinite}.weather-scene-snow .weather-layer-two{position:absolute;width:100%;height:100%;top:0;left:0;background-image:radial-gradient(1px 1px at 30px 40px,white,transparent),radial-gradient(2px 2px at 60px 80px,white,transparent),radial-gradient(1px 1px at 90px 20px,white,transparent),radial-gradient(2px 2px at 120px 60px,white,transparent),radial-gradient(1px 1px at 150px 100px,white,transparent),radial-gradient(2px 2px at 170px 40px,white,transparent),radial-gradient(1px 1px at 190px 90px,white,transparent);background-size:250px 250px;background-repeat:repeat;opacity:.7;animation:snowfall 8s linear infinite;animation-delay:-2s}.weather-scene-snow .weather-layer-three{position:absolute;width:100%;height:100%;top:0;left:0;background-image:radial-gradient(3px 3px at 25px 25px,white,transparent),radial-gradient(3px 3px at 75px 75px,white,transparent),radial-gradient(2px 2px at 125px 35px,white,transparent),radial-gradient(3px 3px at 175px 85px,white,transparent),radial-gradient(2px 2px at 225px 45px,white,transparent),radial-gradient(3px 3px at 275px 95px,white,transparent);background-size:300px 300px;background-repeat:repeat;opacity:.5;filter:blur(1px);animation:snowfall 12s linear infinite;animation-delay:-4s}.weather-scene-storm .weather-layer-one{background:repeating-linear-gradient(105deg,transparent 0,transparent 6px,rgba(148,197,235,.8) 6px,rgba(148,197,235,.8) 8px);background-size:80px 80px;animation:storm-rain-heavy .2s linear infinite;opacity:.65}.weather-scene-storm .weather-layer-two{background:radial-gradient(ellipse at 20% 10%,rgba(30,41,59,.9) 0 20%,transparent 60%),radial-gradient(ellipse at 80% 5%,rgba(51,65,85,.8) 0 25%,transparent 65%),radial-gradient(ellipse at 50% 15%,rgba(30,41,59,.7) 0 30%,transparent 70%);animation:storm-clouds-move 3s ease-in-out infinite;opacity:.5}.weather-scene-storm .weather-layer-three{background:linear-gradient(180deg,transparent 0%,transparent 70%,rgba(253,230,138,0) 70%,rgba(253,230,138,0) 100%);opacity:0;animation:lightning-flash 4s ease-out infinite}.app-shell.weather-theme-sun{background:linear-gradient(160deg,#ffe8a3,#ffc772 36%,#fff6df)}.app-shell.weather-theme-sun:before{background:radial-gradient(620px 620px at 90% 0%,rgba(255,205,96,.62),transparent 67%),radial-gradient(980px 540px at 12% -8%,rgba(255,243,191,.84),transparent 72%);animation:sun-ray-drift 7.5s ease-in-out infinite}.app-shell.weather-theme-sun:after{background:radial-gradient(960px 520px at 50% 104%,rgba(255,189,71,.24),transparent 76%);opacity:.26;animation:sun-shimmer 3.4s ease-in-out infinite}.app-shell.weather-theme-partly{background:linear-gradient(165deg,#dcecff,#f4faff,#fff)}.app-shell.weather-theme-partly:before{background:radial-gradient(760px 400px at 18% 10%,rgba(219,234,254,.76),transparent 72%),radial-gradient(720px 340px at 84% 14%,rgba(255,255,255,.78),transparent 72%),radial-gradient(520px 230px at 46% 18%,rgba(255,255,255,.36),transparent 72%);animation:cloud-drift 16s ease-in-out infinite}.app-shell.weather-theme-partly:after{background:linear-gradient(180deg,#ffffff0a,#cbd5e11a);animation:partly-breathe 9s ease-in-out infinite}.app-shell.weather-theme-cloud{background:linear-gradient(180deg,#8b9dc3,#a8b8cc 40%,#c5d0dd)}.app-shell.weather-theme-fog{background:linear-gradient(175deg,#ccd5df,#e6ebf1 55%,#f5f7fa)}.app-shell.weather-theme-fog:before{background:radial-gradient(1100px 460px at 16% 12%,rgba(100,116,139,.34),transparent 72%),radial-gradient(980px 420px at 86% 5%,rgba(148,163,184,.32),transparent 74%),radial-gradient(760px 320px at 48% 2%,rgba(203,213,225,.3),transparent 74%);animation:cloud-drift 20s ease-in-out infinite}.app-shell.weather-theme-fog:after{background:linear-gradient(180deg,#94a3b82e,#64748b14),radial-gradient(640px 300px at 70% 82%,rgba(255,255,255,.12),transparent 70%);animation:overcast-sweep 13s ease-in-out infinite}.app-shell.weather-theme-fog{filter:saturate(.78) contrast(.94)}.app-shell.weather-theme-fog:after{-webkit-backdrop-filter:blur(2.4px);backdrop-filter:blur(2.4px);opacity:.9}.app-shell.weather-theme-rain{background:linear-gradient(170deg,#6788b4,#88a8cf 32%,#b8d0ea)}.app-shell.weather-theme-rain:before{opacity:.78;background:linear-gradient(120deg,#1e3a8a2e,#1e40af0f 42%,#fff0),repeating-linear-gradient(104deg,#bfdbfe52 0,#bfdbfe52 1px,#93c5fd2e 1px,#93c5fd2e 2px,#fff0 2px,#fff0 14px);background-size:100% 100%,120% 130%;animation:rain-fall .45s linear infinite}.app-shell.weather-theme-rain:after{background:linear-gradient(180deg,#0f172a24,#1e293b38),radial-gradient(520px 240px at 70% 88%,rgba(255,255,255,.11),transparent 76%);animation:rain-gloom 2.8s ease-in-out infinite}.app-shell.weather-theme-snow{background:linear-gradient(#123 30%,#667)}.app-shell.weather-theme-snow:before{background:linear-gradient(180deg,#f8fafc2e,#dbeafe14);opacity:.7}.app-shell.weather-theme-snow:after{background:radial-gradient(680px 320px at 70% 88%,rgba(255,255,255,.22),transparent 76%);opacity:.58}.app-shell.weather-theme-storm{background:linear-gradient(165deg,#23283b,#343c57 36%,#4d5676)}.app-shell.weather-theme-storm:before{background:radial-gradient(860px 420px at 12% 6%,rgba(15,23,42,.48),transparent 70%),radial-gradient(760px 380px at 86% -4%,rgba(67,56,202,.34),transparent 72%),repeating-linear-gradient(104deg,#94a3b81f 0,#94a3b81f 2px,#fff0 2px,#fff0 18px);background-size:100% 100%,100% 100%,140% 130%;animation:storm-clouds 1.1s linear infinite}.app-shell.weather-theme-storm:after{background:radial-gradient(520px 220px at 78% 12%,rgba(251,191,36,.34),transparent 78%),linear-gradient(180deg,#02061733,#0f172a47);opacity:.72;animation:lightning-flash 2.6s steps(1,end) infinite,storm-gloom 2.4s ease-in-out infinite}@keyframes ambient-float{0%{transform:translateZ(0)}50%{transform:translate3d(.5%,-1.1%,0)}to{transform:translate3d(-.3%,.8%,0)}}@keyframes sun-ray-drift{0%,to{transform:translateZ(0) scale(1);opacity:.92}50%{transform:translate3d(-.8%,.6%,0) scale(1.03);opacity:1}}@keyframes sun-shimmer{0%,to{opacity:.22;transform:translateZ(0)}50%{opacity:.42;transform:translate3d(.8%,-.5%,0)}}@keyframes cloud-drift{0%{transform:translate3d(-1.6%,0,0)}50%{transform:translate3d(1.2%,-.8%,0)}to{transform:translate3d(-.8%,.6%,0)}}@keyframes partly-breathe{0%,to{opacity:.42}50%{opacity:.62}}@keyframes overcast-sweep{0%,to{transform:translateZ(0);opacity:.7}50%{transform:translate3d(1.2%,-.4%,0);opacity:.86}}@keyframes rain-fall{0%{background-position:0 0,0 0}to{background-position:0 0,0 130px}}@keyframes rain-gloom{0%,to{opacity:.58}50%{opacity:.9}}@keyframes snowfall{0%{background-position:0px 0px,0px 0px,0px 0px,0px 0px,0px 0px,0px 0px,0px 0px}to{background-position:50px 200px,30px 200px,10px 200px,-10px 200px,40px 200px,-20px 200px,20px 200px}}@keyframes storm-clouds{0%{background-position:0 0,0 0,0 0}to{background-position:0 0,0 0,0 84px}}@keyframes storm-gloom{0%,to{opacity:.64}50%{opacity:.84}}@keyframes lightning-flash{0%,7%,13%,31%,to{opacity:.12}8%,9%{opacity:.92}10%{opacity:.2}14%,15%{opacity:.96}16%{opacity:.24}32%,33%{opacity:.88}}@keyframes sun-core-pulse{0%,to{transform:scale(1);opacity:.95}50%{transform:scale(1.05);opacity:1}}@keyframes sun-rays-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes sun-sweep{0%,to{opacity:.14;transform:translate3d(-3%,0,0)}50%{opacity:.38;transform:translate3d(4%,0,0)}}@keyframes cloud-bank-drift{0%{transform:translate3d(-5%,0,0)}50%{transform:translate3d(3%,-1.2%,0)}to{transform:translate3d(-2.5%,1%,0)}}@keyframes partly-sun-glow{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}}@keyframes fog-drift{0%{transform:translate(-2%) translateY(0)}50%{transform:translate(2%) translateY(-5px)}to{transform:translate(-2%) translateY(0)}}@keyframes fog-fade{0%,to{opacity:.4}50%{opacity:.7}}@keyframes fog-roll{0%{transform:translate(-10%)}to{transform:translate(10%)}}@keyframes partly-sun-bob{0%,to{transform:translateZ(0) scale(1);opacity:.22}50%{transform:translate3d(-.8%,.4%,0) scale(1.04);opacity:.42}}@keyframes overcast-roll{0%,to{transform:translateZ(0);opacity:.36}50%{transform:translate3d(1.8%,-1.2%,0);opacity:.54}}@keyframes fog-sheet{0%,to{transform:translate3d(-3%,0,0);opacity:.26}50%{transform:translate3d(3%,.8%,0);opacity:.46}}@keyframes rain-fall-heavy{0%{background-position:0 0}to{background-position:-10px 100px}}@keyframes rain-fall-medium{0%{background-position:0 0}to{background-position:-8px 120px}}@keyframes rain-mist{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:.5;transform:translateY(-10px)}}@keyframes storm-rain-heavy{0%{background-position:0 0}to{background-position:-15px 80px}}@keyframes storm-clouds-move{0%,to{transform:translate(-2%);opacity:.8}50%{transform:translate(2%);opacity:.95}}@keyframes lightning-flash{0%,89%{opacity:0;background:linear-gradient(180deg,transparent 0%,transparent 100%)}90%{opacity:1;background:linear-gradient(180deg,transparent 0%,transparent 30%,rgba(253,230,138,.3) 40%,rgba(251,191,36,.6) 50%,rgba(253,230,138,.3) 60%,transparent 100%)}91%{opacity:.3}92%,93%{opacity:.8;background:linear-gradient(180deg,transparent 0%,transparent 20%,rgba(253,230,138,.2) 30%,rgba(251,191,36,.4) 40%,transparent 100%)}94%,to{opacity:0;background:linear-gradient(180deg,transparent 0%,transparent 100%)}}@keyframes rain-sheet-fast{0%{background-position:0 0}to{background-position:0 98px}}@keyframes rain-sheet-slow{0%{background-position:0 0}to{background-position:0 62px}}@keyframes rain-mist-pulse{0%,to{opacity:.2;transform:translateZ(0)}50%{opacity:.36;transform:translate3d(0,-1.1%,0)}}@keyframes storm-rain{0%{background-position:0 0}to{background-position:0 110px}}@keyframes storm-cloud-push{0%,to{transform:translate3d(-2.2%,0,0)}50%{transform:translate3d(2.6%,-1.1%,0)}}@keyframes storm-lightning{0%,8%,26%,to{opacity:.12}9%,10%{opacity:.9}12%{opacity:.28}13%{opacity:1}14%{opacity:.2}27%{opacity:.78}28%{opacity:.16}}@media(prefers-reduced-motion:reduce){.app-shell:before,.app-shell:after,.weather-layer{animation:none!important}}.page{max-width:960px;margin:0 auto;padding:1rem 1rem .6rem;flex:1}.site-header{position:sticky;top:0;z-index:10;background:#f8fbffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #d7e3f7;transition:background-color .18s ease,border-color .18s ease}.gnb-inner{max-width:960px;margin:0 auto;padding:.42rem 1rem .36rem;transition:padding .18s ease}.site-header.is-compact{background:#f8fbfff7;border-bottom-color:#c7d8f3}.site-header.is-compact .gnb-inner{padding-top:.28rem;padding-bottom:.22rem}.site-header.is-compact .title-wrap p{opacity:0;height:0;margin:0;overflow:hidden}.site-header.is-compact .topbar{gap:.4rem}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:.38rem;flex-wrap:wrap}.title-wrap h1{margin:0;font-size:clamp(1.08rem,2.4vw,1.28rem);letter-spacing:-.02em;color:#0f172a}.title-wrap p{margin:.12rem 0 0;font-size:.76rem;color:#51607c;transition:opacity .16s ease,height .16s ease,margin .16s ease}.umbrella-chip{margin-top:.18rem;display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.14rem .44rem;font-size:.68rem;font-weight:650;border:1px solid transparent}.umbrella-chip-icon{width:14px;height:14px}.umbrella-chip-high{background:#ffecec;color:#991b1b;border-color:#fecaca}.umbrella-chip-mid{background:#fff7db;color:#9a3412;border-color:#fde68a}.umbrella-chip-low{background:#e9f3ff;color:#1e40af;border-color:#bfdbfe}.controls{display:inline-flex;gap:.18rem;padding:.16rem;border-radius:.72rem;background:#e8effd}.controls button{border:0;background:transparent;color:#1e293b;border-radius:.52rem;padding:.24rem .46rem;font-size:.76rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .14s ease,transform .12s ease,box-shadow .14s ease,border-color .14s ease}.controls button:hover{background:#dce8ff;transform:translateY(-1px)}.unit-glyph{display:inline-block;min-width:1.55rem;text-align:center;font-size:.74rem;font-weight:700;letter-spacing:-.01em}.controls .active{background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;box-shadow:0 0 0 2px #6366f12e}.dev-theme-controls{display:inline-flex;align-items:center;gap:.18rem;flex-wrap:wrap;margin-top:.22rem}.dev-theme-controls span{font-size:.68rem;color:#51607c;margin-right:.16rem}.dev-theme-controls button{border:1px solid #c7d2fe;background:#f8faff;color:#334155;border-radius:999px;padding:.14rem .38rem;font-size:.66rem;font-weight:600;cursor:pointer}.dev-theme-controls button.active,.dev-theme-controls button:hover{border-color:#818cf8;background:#e8edff;color:#1e3a8a}.search-section{position:relative;margin-top:.6rem}.search-section input{width:100%;border:1px solid #b8c7e3;border-radius:.85rem;padding:.78rem .86rem;font-size:1rem;color:#0f172a;background:#fff}.search-section input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 4px #2563eb26}.search-dropdown{position:absolute;left:0;right:0;margin-top:.35rem;z-index:20;border-radius:.85rem;border:1px solid #d9e2f3;box-shadow:0 14px 30px #0f172a21;background:#fff;padding:.32rem}.search-dropdown button{width:100%;border:0;background:transparent;color:#0f172a;text-align:left;padding:.6rem;border-radius:.55rem}.search-dropdown button:hover{background:#f3f5ff}.search-dropdown button.active-option{background:#e8edff}.search-empty,.search-title{margin:.35rem .6rem;color:#64748b;font-size:.84rem}.hero-card,.panel{margin-top:.75rem;border-radius:1rem;border:1px solid #cddaf2;background:#fff;padding:.9rem}.seo-breadcrumb{margin-top:.62rem;display:flex;align-items:center;gap:.32rem;font-size:.82rem;color:#5f6d88}.seo-breadcrumb a{color:#1d4ed8;text-decoration:none}.seo-breadcrumb a:hover{text-decoration:underline}.seo-copy{margin-top:.72rem;border:1px solid #dbe7ff;background:#f7faff;border-radius:.8rem;padding:.62rem}.seo-copy h3{margin:0;font-size:.9rem;color:#1f2937}.seo-copy p{margin:.35rem 0 0;font-size:.82rem;color:#475569}.hero-card{background:radial-gradient(circle at 0% 0%,#edf3ff,#fff 58%)}.panel{content-visibility:auto;contain-intrinsic-size:1px 240px}.hero-head{display:flex;justify-content:space-between;align-items:center;gap:.7rem;flex-wrap:wrap}.hero-head h2{margin:0;font-size:1.05rem}.hero-head p{margin:.22rem 0 0;color:#5f6d88;font-size:.85rem}.hero-main{margin-top:.7rem;display:flex;gap:.9rem;align-items:center}.hero-icon-shell{width:76px;height:76px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(145deg,#fef3c7,#dbeafe);border:1px solid #dbe4ff}.weather-glyph{width:22px;height:22px}.weather-glyph-large{width:42px;height:42px}.weather-glyph.sun,.weather-glyph.partly{color:#f59e0b}.weather-glyph.cloud,.weather-glyph.fog{color:#64748b}.weather-glyph.rain,.weather-glyph.storm{color:#2563eb}.weather-glyph.snow{color:#0284c7}.temperature{margin:0;font-size:clamp(2.5rem,9vw,4.5rem);line-height:.93;letter-spacing:-.03em;font-weight:750;color:#111827}.condition{margin:.24rem 0 0;font-size:.96rem;color:#46556f}.metrics{margin-top:.72rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.metrics p{margin:0;display:flex;align-items:center;gap:.4rem;border-radius:.72rem;border:1px solid #e2e8f6;background:#f9fbff;padding:.52rem;font-size:.88rem;color:#334155}.metric-icon{width:16px;height:16px;color:#64748b}.updated-line{margin:.68rem 0 0;font-size:.82rem;color:#63728c}.error-box{margin-top:.8rem;border:1px solid #fca5a5;background:#fff5f5;border-radius:.8rem;padding:.8rem;display:flex;justify-content:space-between;align-items:center;gap:.7rem}.error-box p{margin:0}.site-footer{width:100%;margin-top:auto;border-top:1px solid #cddaf2;background:#fff}.footer-inner{max-width:960px;margin:0 auto;padding:.72rem 1rem .8rem}.site-footer p{margin:0;font-size:.82rem;color:#5f6d88}.site-footer p+p{margin-top:.25rem}.footer-credit{font-size:.9rem;color:#334155}.footer-links{margin-top:.5rem;display:flex;gap:.8rem;flex-wrap:wrap}.footer-links a{display:inline-flex;align-items:center;gap:.35rem;text-decoration:none;color:#1e3a8a;font-size:.84rem}.footer-links a:hover{text-decoration:underline}.footer-icon{width:15px;height:15px}.panel h3{margin:0 0 .65rem;color:#111827;letter-spacing:-.01em;font-size:.96rem}.hourly-scroll{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(88px,1fr);gap:.45rem;overflow-x:auto;overflow-y:hidden;padding-bottom:.18rem;cursor:grab;scroll-snap-type:x proximity}.hourly-scroll.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.hourly-card{margin:0;text-align:center;border:1px solid #e2e8f6;background:#fbfdff;border-radius:.8rem;padding:.5rem;scroll-snap-align:start}.hourly-card p{margin:.14rem 0;font-size:.8rem}.daily-list{display:grid;gap:.45rem}.daily-row{display:grid;grid-template-columns:1.2fr .3fr .6fr .8fr;align-items:center;gap:.35rem;border:1px solid #e2e8f6;background:#fbfdff;border-radius:.8rem;padding:.52rem}.daily-row p{margin:0;font-size:.84rem}button:focus-visible{outline:2px solid #6366f1;outline-offset:2px}@media(max-width:768px){.gnb-inner{padding-left:.75rem;padding-right:.75rem}.topbar{align-items:center}.title-wrap h1{font-size:1.04rem}.title-wrap p{font-size:.72rem}.controls{padding:.12rem;gap:.14rem}.controls button{padding:.22rem .38rem}.page{padding:.8rem .75rem .56rem}.search-section{margin-top:.48rem}.hero-card,.panel{margin-top:.62rem;padding:.74rem}.temperature{font-size:clamp(2.1rem,11vw,3rem)}.hourly-scroll{grid-auto-columns:minmax(82px,1fr)}.footer-inner{padding:.62rem .75rem .72rem}}@media(max-width:640px){.metrics{grid-template-columns:1fr}.hero-main{gap:.68rem}.hero-icon-shell{width:62px;height:62px;border-radius:18px}.daily-row{grid-template-columns:1.1fr .4fr .7fr .9fr;padding:.46rem}.daily-row p{font-size:.8rem}.footer-links{gap:.55rem}.footer-links a{font-size:.8rem}}@media(max-width:420px){.gnb-inner{padding-left:.62rem;padding-right:.62rem}.page{padding:.72rem .62rem .5rem}.controls button{padding:.2rem .32rem}.unit-glyph{min-width:1.36rem;font-size:.68rem}.hourly-scroll{grid-auto-columns:minmax(76px,1fr);gap:.36rem}.hourly-card{padding:.42rem}}
