.weather-page{color:#fff;background:radial-gradient(circle at 10% 8%,#6592c33d,#0000 34%),radial-gradient(circle at 88% 18%,#6d8bff2e,#0000 38%),linear-gradient(155deg,#070b1d,#101838 48%,#071022);min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,sans-serif;position:relative;overflow:hidden}.weather-page:before,.weather-page:after{content:"";z-index:0;filter:blur(70px);pointer-events:none;border-radius:50%;width:330px;height:330px;position:absolute}.weather-page:before{background:#6592c32e;animation:13s ease-in-out infinite weather-drift;top:-90px;right:-80px}.weather-page:after{background:#6d8bff24;animation:15s ease-in-out -6s infinite reverse weather-drift;bottom:-90px;left:-80px}.weather-shell{z-index:1;width:100%;max-width:720px;padding:22px 18px calc(48px + env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:0 auto;display:flex;position:relative}.weather-header{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff1c;border-radius:26px;padding:20px;animation:.6s cubic-bezier(.2,.7,.2,1) both weather-rise;box-shadow:0 22px 52px #0000002e}.weather-back{color:#fff;background:#ffffff12;border:1px solid #ffffff1a;border-radius:14px;align-items:center;gap:8px;width:max-content;margin-bottom:12px;padding:9px 13px;font-size:13px;font-weight:700;text-decoration:none;transition:background-color .2s,border-color .2s;display:inline-flex}.weather-back:hover{background:#ffffff24;border-color:#fff3}.weather-header h1{letter-spacing:-.04em;background:linear-gradient(90deg,#fff,#cdd6ff 55%,#d8baff);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:30px;font-weight:900}.weather-header p{color:#adb4d5;margin:8px 0 0;font-size:14px;line-height:1.6}.weather-search{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff17;border:1px solid #ffffff1f;border-radius:22px;grid-template-columns:minmax(0,1fr) 54px;gap:8px;padding:6px;animation:.6s cubic-bezier(.2,.7,.2,1) 80ms both weather-rise;display:grid;box-shadow:0 18px 40px #00000029}.weather-search:focus-within{border-color:#9fb4ff6b;box-shadow:0 0 0 4px #6592c31f}.weather-search input{color:#fff;background:0 0;border:0;outline:none;min-width:0;height:48px;padding:0 14px;font-size:16px}.weather-search input::placeholder{color:#8f97b8}.weather-search button{color:#fff;cursor:pointer;background:linear-gradient(145deg,#6592c3,#6d8bff);border:0;border-radius:17px;place-items:center;width:54px;height:48px;transition:filter .2s,opacity .2s;display:grid;box-shadow:0 12px 26px #6592c338}.weather-search button:hover{filter:brightness(1.1)}.weather-search button:disabled{opacity:.72;cursor:wait}.city-scroll{scrollbar-width:none;gap:8px;padding:4px 2px 8px;display:flex;overflow-x:auto}.city-scroll::-webkit-scrollbar{display:none}.city-scroll button{color:#d8dded;cursor:pointer;background:#ffffff12;border:1px solid #ffffff1a;border-radius:999px;flex:none;min-height:38px;padding:0 14px;font-size:13px;font-weight:700;transition:background-color .2s,border-color .2s,color .2s}.city-scroll button:hover{color:#fff;background:#ffffff21;border-color:#fff3}.city-scroll button.is-active{color:#fff;background:linear-gradient(145deg,#6592c359,#6d8bff4d);border-color:#9fb4ff61}.city-results{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff14;border:1px solid #ffffff1a;border-radius:20px;gap:8px;padding:10px;display:grid}.city-results button{color:#fff;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:48px;padding:8px 10px;transition:background-color .2s;display:flex}.city-results button:hover{background:#ffffff1a}.city-results strong{font-size:15px}.city-results span{color:#a7b0d2;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.weather-error{color:#ffb1c1;background:#ff5b7a1a;border:1px solid #ff5b7a38;border-radius:16px;margin:0;padding:13px 15px;font-size:14px}.weather-card,.forecast-block{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff1c;border-radius:26px;padding:20px;animation:.6s cubic-bezier(.2,.7,.2,1) .16s both weather-rise;position:relative;overflow:hidden;box-shadow:0 20px 48px #00000029}.weather-card.is-loading{color:#adb4d5;justify-content:center;align-items:center;gap:12px;min-height:160px;display:flex}.weather-main{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.weather-city{letter-spacing:-.03em;font-size:24px;font-weight:900}.weather-region{color:#a7b0d2;margin-top:3px;font-size:13px}.weather-main button{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1a;border-radius:14px;place-items:center;width:42px;height:42px;transition:background-color .2s,border-color .2s;display:grid}.weather-main button:hover{background:#ffffff26;border-color:#fff3}.weather-current{align-items:center;gap:18px;margin:20px 0;display:flex}.weather-icon{color:#d7e2ff;background:linear-gradient(145deg,#6592c338,#6d8bff2e);border:1px solid #ffffff1a;border-radius:28px;place-items:center;width:92px;height:92px;display:grid;box-shadow:0 14px 32px #00000029}.weather-temperature{letter-spacing:-.05em;font-size:clamp(48px,12vw,66px);font-weight:900;line-height:1}.weather-condition{color:#c6d0ff;margin-top:8px;font-size:16px;font-weight:700}.weather-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.weather-metrics div{color:#9fb4ff;background:#ffffff12;border:1px solid #ffffff14;border-radius:15px;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:48px;padding:8px 11px;display:grid}.weather-metrics span{color:#adb4d5;font-size:12px}.weather-metrics strong{color:#fff;font-size:13px}.weather-updated{color:#8f97b8;flex-wrap:wrap;justify-content:center;align-items:center;gap:5px;margin-top:14px;font-size:12px;display:flex}.forecast-block h2{letter-spacing:-.03em;margin:0 0 14px;font-size:18px;font-weight:900}.hours-scroll{scrollbar-width:none;gap:8px;padding:2px 2px 8px;display:flex;overflow-x:auto}.hours-scroll::-webkit-scrollbar{display:none}.hour-card{color:#9fb4ff;background:#ffffff12;border:1px solid #ffffff14;border-radius:17px;flex:0 0 76px;justify-items:center;gap:6px;padding:12px 6px;display:grid}.hour-card span{color:#adb4d5;font-size:12px;font-weight:700}.hour-card strong{color:#fff;font-size:15px}.hour-card small{color:#8f97b8;font-size:11px}.days-list{gap:8px;display:grid}.day-row{background:#ffffff0f;border:1px solid #ffffff12;border-radius:16px;grid-template-columns:92px minmax(0,1fr) 70px 48px;align-items:center;gap:10px;min-height:54px;padding:7px 10px;display:grid}.day-name{color:#d8dded;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;overflow:hidden}.day-weather{color:#9fb4ff;align-items:center;gap:7px;min-width:0;display:flex}.day-weather span{color:#adb4d5;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.day-temperature{justify-items:end;line-height:1.1;display:grid}.day-temperature span{color:#fff;font-size:14px;font-weight:900}.day-temperature small{color:#8f97b8;font-size:11px}.day-rain{color:#8f97b8;text-align:right;font-size:12px}.weather-source{color:#8f97b8;text-align:center;margin:0;font-size:12px}.spin{animation:1s linear infinite weather-spin}@keyframes weather-spin{to{transform:rotate(360deg)}}@keyframes weather-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes weather-drift{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(20px,22px)scale(1.07)}}@media (max-width:620px){.weather-shell{padding:16px 12px calc(38px + env(safe-area-inset-bottom))}.weather-header,.weather-card,.forecast-block{border-radius:22px;padding:16px}.weather-header h1{font-size:26px}.weather-city{font-size:21px}.weather-icon{border-radius:23px;width:76px;height:76px}.weather-current{gap:14px}.weather-temperature{font-size:46px}.weather-condition{font-size:14px}.day-row{grid-template-columns:80px minmax(0,1fr) 60px 38px;gap:8px;padding:6px 8px}.day-name{font-size:11px}.day-weather span{display:none}.day-rain{font-size:11px}}@media (max-width:420px){.weather-current{align-items:flex-start}.weather-icon{width:64px;height:64px}.weather-metrics div{grid-template-columns:18px minmax(0,1fr)}.weather-metrics strong{grid-column:2}}@media (prefers-reduced-motion:reduce){.weather-page:before,.weather-page:after,.weather-header,.weather-search,.weather-card,.forecast-block,.spin{animation:none}.weather-back,.city-scroll button,.weather-search button,.weather-main button{transition:none}}.weather-seo{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff12;border:1px solid #ffffff1c;border-radius:24px;padding:20px;box-shadow:0 18px 42px #00000029}.weather-seo h2{letter-spacing:-.03em;background:linear-gradient(90deg,#fff,#cdd6ff 55%,#d8baff);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 10px;font-size:20px}.weather-seo p{color:#a9b1d4;margin:0;font-size:14px;line-height:1.65}.weather-seo p+p{margin-top:10px}.weather-seo a{color:#dbe2ff;border-bottom:1px solid #dbe2ff59;font-weight:700;text-decoration:none}.weather-seo a:hover{color:#fff;border-color:#fff}
