:root{color:#e5eefb;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#050816;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100svh}a{color:inherit}.app-shell{box-sizing:border-box;color:#e5eefb;background:radial-gradient(circle at 15% 9%,#38bdf814,#0000 18%),radial-gradient(circle at 85% 14%,#22c55e12,#0000 16%),radial-gradient(circle at 50% 112%,#38bdf80f,#0000 28%),linear-gradient(#03070d 0%,#010308 100%);gap:18px;min-height:100svh;padding:28px;font-family:Inter,system-ui,sans-serif;display:grid;position:relative;overflow:hidden}.app-shell:before{content:"";pointer-events:none;opacity:.42;background:linear-gradient(#38bdf80a,#0000 14%),repeating-linear-gradient(#ffffff05 0 1px,#0000 1px 8px),repeating-linear-gradient(90deg,#ffffff03 0 1px,#0000 1px 72px);position:fixed;inset:0;-webkit-mask-image:radial-gradient(circle,#000 0% 72%,#0000 100%);mask-image:radial-gradient(circle,#000 0% 72%,#0000 100%)}.hero-panel,.card{isolation:isolate;background:linear-gradient(#060c18fa,#02060efa);border:1px solid #38bdf838;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #94a3b80a,0 18px 38px #0000006b}.hero-panel:before,.card:before{content:"";pointer-events:none;z-index:0;background:linear-gradient(135deg,#38bdf82e,#0000 18%),linear-gradient(225deg,#22c55e1f,#0000 20%),linear-gradient(90deg,#38bdf814,#0000 8% 92%,#38bdf814);position:absolute;inset:0}.hero-panel:after,.card:after{content:"";pointer-events:none;z-index:0;border:1px solid #7dd3fc12;position:absolute;inset:10px}.hero-panel>*,.card>*{z-index:1;position:relative}.hero-panel{border-radius:16px;padding:26px 26px 24px}.eyebrow{color:#9ddcf4;letter-spacing:.18em;text-transform:uppercase;background:#020814e6;border:1px solid #7dd3fc47;border-radius:6px;align-items:center;gap:8px;margin-bottom:16px;padding:6px 10px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;display:inline-flex}h1{letter-spacing:-.04em;text-transform:uppercase;margin:0;font-size:clamp(2.1rem,4.8vw,4rem);line-height:.95}h2{letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.95rem}.lead{color:#cbd5e1;max-width:68ch;margin:14px 0 18px;font-size:.98rem;line-height:1.55}.hero-location,.status-rail span,.card-chip,.label,.metric-abbr,.metric-unit,.legend-title,.legend-topline,.comparison-table-head,.comparison-metric-unit{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.hero-location{color:#dbeafe;letter-spacing:.04em;background:#020814e6;border:1px solid #7dd3fc33;border-radius:8px;align-items:center;margin-bottom:8px;padding:7px 10px;font-size:.82rem;display:inline-flex}.status-rail{flex-wrap:wrap;gap:8px;margin:14px 0 8px;display:flex}.status-rail span{color:#b9d5ee;letter-spacing:.08em;text-transform:uppercase;background:#020814e0;border:1px solid #7dd3fc29;border-radius:8px;align-items:center;padding:7px 10px;font-size:.74rem;display:inline-flex}.hero-error{margin:0 0 8px}.hero-note{color:#8fa0b6;margin:0;font-size:.9rem}.control-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.control-card{border-left:1px solid #38bdf82e;gap:12px;display:grid}.control-copy{color:#cbd5e1;margin:0;line-height:1.55}.stack-form{gap:10px;display:grid}.stack-form input,.search-form input{color:#f8fafc;box-sizing:border-box;background:linear-gradient(#020814,#020814eb);border:1px solid #7dd3fc29;border-radius:10px;outline:none;width:100%;min-width:0;padding:13px 14px;font-size:.98rem;transition:border-color .16s,box-shadow .16s,transform .16s;box-shadow:inset 0 0 0 1px #ffffff05}.stack-form input:focus,.search-form input:focus{border-color:#38bdf8f2;transform:translateY(-1px);box-shadow:0 0 0 3px #38bdf829}.stack-form button,.search-form button{color:#04111f;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:linear-gradient(#1cc2adfa,#129ee7f5);border:1px solid #22c55e59;border-radius:10px;width:100%;padding:13px 16px;font-weight:900;transition:transform .16s,filter .16s;box-shadow:0 10px 20px #00000057}.stack-form button:hover,.search-form button:hover{filter:brightness(1.07);transform:translateY(-1px)}.stack-form button:disabled,.search-form button:disabled{cursor:wait;opacity:.72;transform:none}.card-footnote{color:#8fa0b6;border-top:1px solid #7dd3fc1a;gap:5px;padding-top:10px;font-size:.82rem;line-height:1.45;display:grid}.card-footnote span{display:block}.search-form{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.search-form input{color:#f8fafc;background:#0f172af2;border:1px solid #94a3b840;border-radius:16px;outline:none;flex:320px;min-width:0;padding:14px 16px;font-size:1rem}.search-form input:focus{border-color:#6366f1cc;box-shadow:0 0 0 4px #6366f12e}.search-form button{color:#04111f;cursor:pointer;background:linear-gradient(135deg,#818cf8,#22c55e);border:none;border-radius:16px;padding:14px 18px;font-weight:700}.search-form button:disabled{cursor:wait;opacity:.7}.status-line{color:#94a3b8;flex-wrap:wrap;gap:12px;margin-top:14px;font-size:.95rem;display:flex}.error{color:#fca5a5}.grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;display:grid}.geo-card{grid-column:1/-1}.dashboard-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);align-items:start;gap:20px;display:grid}.dashboard-column{align-content:start;gap:20px;display:grid}.card{border-radius:22px;padding:22px}.card-heading{border-bottom:1px solid #7dd3fc14;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:10px;display:flex}.card-chip{color:#b9d5ee;letter-spacing:.08em;text-transform:uppercase;background:#020814c7;border:1px solid #7dd3fc29;border-radius:999px;justify-content:center;align-items:center;padding:6px 10px;font-size:.72rem;display:inline-flex}.result-block{gap:18px;display:grid}.result-block-geo{gap:14px}.place-title{color:#f8fafc;margin-top:6px;font-size:1.12rem;font-weight:700;line-height:1.35}.meta-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.place-meta{align-items:start}.geo-meta-row{grid-template-columns:repeat(2,minmax(0,1fr))}.label{color:#90a2b8;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.value{color:#f8fafc;word-break:break-word;margin-top:6px;font-size:1rem}.muted{color:#90a2b8}.feature-list{color:#dbeafe;gap:10px;margin:0;padding-left:18px;display:grid}.feature-list li::marker{color:#5eead4}.map-frame-wrap,.radar-wrap,.geo-map-shell{gap:12px;display:grid}.geo-map-status{color:#b9d5ee;letter-spacing:.08em;text-transform:uppercase;background:#040912e0;border:1px solid #7dd3fc24;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:.74rem;display:flex}.geo-map-controls{justify-content:flex-end;align-items:center;gap:8px;display:flex}.geo-map-controls button{color:#dbeafe;cursor:pointer;background:#040912f2;border:1px solid #7dd3fc2e;border-radius:8px;min-width:38px;height:32px;padding:0 10px;font-size:1rem;font-weight:700}.geo-map-controls button:hover{background:#08101efa;border-color:#38bdf873}.geo-map-controls button:focus-visible{outline-offset:2px;outline:2px solid #38bdf8b3}.geo-map-status strong,.geo-map-zoom-label{color:#8fa0b6;letter-spacing:.08em;text-transform:uppercase;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.geo-map-status strong{color:#dbeafe;letter-spacing:.02em;text-transform:none;text-align:right;font-size:.8rem}.geo-map-zoom-label{margin-left:auto}.geo-map-viewport{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#040912eb;border:1px solid #7dd3fc1f;border-radius:16px;height:220px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff05}.geo-map-viewport:active{cursor:grabbing}.geo-map-tiles{will-change:transform;position:absolute;inset:0}.geo-map-tile{pointer-events:none;-webkit-user-select:none;user-select:none;width:256px;height:256px;display:block;position:absolute}.geo-map-center{pointer-events:none;background:#08101ef0;border:2px solid #60a5faf5;border-radius:999px;width:18px;height:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 8px #60a5fa1f,0 0 0 1px #22c55e1a}.geo-map-center:before,.geo-map-center:after{content:"";background:#7dd3fcf2;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.geo-map-center:before{width:8px;height:2px}.geo-map-center:after{width:2px;height:8px}.geo-map-footer{color:#8fa0b6;letter-spacing:.05em;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:8px;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;display:flex}.geo-map-footer span{align-items:center;display:inline-flex}.geo-map-attribution{color:#64748b;letter-spacing:.03em;text-transform:none;margin-left:auto;font-size:.68rem;text-decoration:none}.geo-map-attribution:hover{color:#94a3b8;text-decoration:underline}.air-quality-card .result-block{gap:16px}.aqi-banner{background:linear-gradient(#040912f5,#040912d1);border:1px solid #94a3b824;border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:18px 18px 16px;display:grid}.aqi-value{color:#f8fafc;margin-top:8px;font-size:clamp(2rem,4vw,2.8rem);line-height:1}.aqi-value span{color:#cbd5e1;font-size:.95rem;font-weight:600}.aqi-description{color:#dbeafe;max-width:50ch;margin-top:10px}.aqi-window{color:#94a3b8;margin-top:8px;font-size:.9rem}.aqi-time{color:#94a3b8;white-space:nowrap;font-size:.92rem}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.metric-card{background:#040912b8;border:1px solid #94a3b824;border-radius:16px;gap:8px;padding:14px;display:grid}.metric-card-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.metric-abbr{color:#d1fae5;letter-spacing:.04em;background:#14b8a624;border-radius:999px;align-items:center;padding:4px 8px;font-size:.78rem;font-weight:700;display:inline-flex}.metric-unit{color:#94a3b8;font-size:.78rem}.metric-label{color:#f8fafc;font-weight:700}.metric-value{color:#dbeafe;font-size:1.3rem}.metric-description{color:#94a3b8;margin:0;font-size:.88rem}.legend-panel{background:#04091294;border:1px solid #94a3b824;border-radius:16px;gap:12px;padding:14px;display:grid}.legend-title{color:#f8fafc;font-weight:700}.legend-grid{gap:10px;display:grid}.legend-item{grid-template-columns:auto 1fr;align-items:start;gap:10px;display:grid}.legend-swatch{border-radius:999px;width:14px;height:14px;margin-top:3px;box-shadow:0 0 0 4px #ffffff0a}.legend-copy p,.comparison-help,.comparison-metric-unit{color:#94a3b8;margin:0;font-size:.88rem}.legend-topline{color:#dbeafe;justify-content:space-between;gap:12px;display:flex}.comparison-card{border-color:#38bdf82e;gap:16px;display:grid}.compare-form{flex-wrap:wrap;gap:12px;display:flex}.compare-form input{color:#f8fafc;background:#050a14e6;border:1px solid #7dd3fc29;border-radius:16px;outline:none;flex:320px;min-width:0;padding:14px 16px;font-size:1rem}.compare-form input:focus{border-color:#38bdf8db;box-shadow:0 0 0 4px #38bdf824}.compare-form button{color:#04111f;cursor:pointer;background:linear-gradient(135deg,#38bdf8f2,#22c55ee0);border:1px solid #7dd3fc33;border-radius:16px;padding:14px 18px;font-weight:800}.compare-form button:disabled{cursor:wait;opacity:.7}.comparison-block{gap:16px;display:grid}.comparison-summary{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:12px;display:grid}.comparison-city{background:#040912c2;border:1px solid #7dd3fc24;border-radius:16px;padding:16px}.comparison-city-name{color:#f8fafc;margin-top:6px;font-size:1.05rem;font-weight:700}.comparison-aqi{color:#dbeafe;margin-top:10px;font-size:1.6rem}.comparison-status{color:#94a3b8;margin-top:6px}.comparison-vs{color:#9ddcf4;text-transform:uppercase;letter-spacing:.1em;place-items:center;font-weight:700;display:grid}.comparison-verdict{color:#dff6ff;background:#38bdf814;border:1px solid #38bdf838;border-radius:16px;padding:12px 14px}.comparison-table{gap:8px;display:grid}.comparison-table-head,.comparison-table-row{grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));align-items:center;gap:12px;display:grid}.comparison-table-head{color:#90a2b8;text-transform:uppercase;letter-spacing:.05em;padding:0 4px;font-size:.8rem}.comparison-table-row{background:#040912b3;border:1px solid #7dd3fc1f;border-radius:14px;padding:12px 14px}.comparison-metric-label{color:#f8fafc;font-weight:700}.delta-better{color:#86efac}.delta-worse{color:#fca5a5}.delta-equal{color:#dbeafe}.status-good{color:#bbf7d0;background:#22c55e14;border-color:#22c55e59}.status-fair{color:#dbeafe;background:#60a5fa14;border-color:#60a5fa59}.status-moderate{color:#fef3c7;background:#facc1514;border-color:#facc1559}.status-poor{color:#fed7aa;background:#fb923c14;border-color:#fb923c59}.status-very-poor,.status-extreme{color:#fecaca;background:#f8717114;border-color:#f8717159}.radar-wrap svg{background:radial-gradient(circle,#38bdf81f,#0000 42%),linear-gradient(#040912eb,#020814fa);border:1px solid #7dd3fc1f;border-radius:18px;justify-self:center;width:100%;max-width:360px;box-shadow:inset 0 0 0 1px #ffffff05,0 12px 28px #00000038}.radar-legend{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;display:grid}.radar-legend-item{background:#040912c7;border:1px solid #94a3b826;border-radius:14px;justify-content:space-between;gap:12px;padding:10px 12px;display:flex}.trend-wrap{gap:14px;display:grid}.trend-intro{color:#90a2b8;margin:10px 0 0;font-size:.88rem;line-height:1.45}.trend-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.trend-chart-meta{background:#040912a8;border:1px solid #7dd3fc1f;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;padding:12px 14px;display:flex}.trend-city{color:#f8fafc;margin-top:6px;font-size:.98rem}.trend-axis-note{color:#8fa0b6;max-width:34ch;font-size:.88rem;line-height:1.45}.trend-hover-readout{color:#dbeafe;background:#040912b8;border:1px solid #7dd3fc24;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:.86rem;display:flex}.trend-hover-readout span{color:#8fa0b6;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.trend-hover-readout-empty{color:#8fa0b6}.trend-point{cursor:pointer}.trend-point circle{transform-origin:50%;transition:transform .14s,fill .14s}.trend-point:hover circle{fill:#c4b5fd;transform:scale(1.15)}.trend-wrap svg{background:#020814d1;border:1px solid #7dd3fc1f;border-radius:12px;width:100%;height:auto;box-shadow:inset 0 0 0 1px #ffffff05}.seo-intro-card{margin-top:2px}.seo-copy{color:#cbd5e1;margin:0;line-height:1.6}.seo-keyword-list{margin-top:4px}.roadmap-card{margin-top:24px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=860px){.control-panel,.grid,.dashboard-grid,.meta-row,.metric-grid,.radar-legend,.trend-summary,.aqi-banner,.comparison-summary,.comparison-table-head,.comparison-table-row{grid-template-columns:1fr}.aqi-time{white-space:normal}.comparison-vs{padding:4px 0}}@media (width<=640px){.app-shell{gap:14px;padding:12px}.hero-panel,.card{border-radius:18px}.hero-panel{padding:18px 16px 16px}.hero-panel h1{font-size:clamp(1.9rem,12vw,2.8rem);line-height:.95}.lead,.control-copy,.trend-intro,.card-footnote,.comparison-help,.comparison-status,.hero-note{font-size:.88rem;line-height:1.48}.card{padding:16px}.card-heading{flex-direction:column;align-items:flex-start}.card-chip{align-self:flex-start}.geo-map-viewport{height:180px}.comparison-vs{min-height:28px}}
