:root{--ink:#eaf5f5;--muted:#91a6ae;--night:#07111f;--panel:#0d1b29;--line:#243746;--mint:#83e6cf;--yellow:#f2dc8d;--good:#83e6cf;--fair:#f2dc8d;--poor:#ee8f82;--max:1120px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--night);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6}.wrap{width:min(var(--max),calc(100% - 40px));margin-inline:auto}.stars{position:absolute;inset:0 0 auto;height:760px;pointer-events:none;opacity:.65;background-image:radial-gradient(circle at 17% 18%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 72% 23%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 89% 62%,#83e6cf 0 1px,transparent 1.5px),radial-gradient(circle at 39% 72%,#fff 0 1px,transparent 1.5px);background-size:190px 170px,260px 230px,310px 280px,370px 330px;mask-image:linear-gradient(#000,transparent)}
.nav{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:2}.brand{color:var(--ink);text-decoration:none;font-size:.79rem;font-weight:800;letter-spacing:.18em}.brand-mark{color:var(--mint);font-size:1.2rem}.nav nav{display:flex;gap:28px;align-items:center}.nav nav a{color:var(--muted);font-size:.88rem;text-decoration:none}.nav select{background:transparent;color:var(--ink);border:1px solid var(--line);padding:7px;border-radius:4px}.nav option{color:#07111f}
.hero{position:relative;text-align:center;padding:110px 0 125px;isolation:isolate;background-image:linear-gradient(180deg,rgba(4,12,22,.2) 0%,rgba(4,12,22,.45) 62%,var(--night) 100%),linear-gradient(90deg,rgba(4,12,22,.5),rgba(4,12,22,.08)),url("/assets/night-observatory-hero.jpg");background-size:cover;background-position:center 58%;border-bottom:1px solid rgba(131,230,207,.12)}.hero:after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 50% 35%,transparent 0,rgba(3,10,18,.18) 55%,rgba(3,10,18,.65) 100%)}.hero-content{position:relative}.eyebrow{color:var(--mint);letter-spacing:.2em;font-size:.69rem;font-weight:800;margin:0 0 20px}.hero h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(3rem,7vw,6.3rem);line-height:.98;letter-spacing:-.045em;margin:0;text-shadow:0 4px 40px rgba(0,0,0,.8)}.lede{color:#d5e2e4;font-family:Georgia,serif;font-size:1.16rem;margin:30px auto 35px;max-width:620px;text-shadow:0 2px 18px rgba(0,0,0,.9)}.search{display:flex;max-width:650px;margin:auto;background:#f4f6ed;border:5px solid rgba(255,255,255,.14);border-radius:8px;background-clip:padding-box;box-shadow:0 18px 55px rgba(0,0,0,.35)}.search input{min-width:0;flex:1;border:0;background:#f4f6ed;padding:17px;color:#13202b;font-size:1rem;outline:none}.search button{border:0;background:var(--mint);color:#07111f;padding:0 24px;font-weight:800;cursor:pointer}.search button span{margin-left:12px}.search button:disabled,.quick-cities button:disabled{cursor:wait;opacity:.65}.quick-cities{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:7px;margin:14px auto 0;color:#c1d1d4;font-size:.76rem;text-shadow:0 2px 8px #000}.quick-cities button{border:1px solid rgba(198,239,232,.3);border-radius:999px;background:rgba(4,13,23,.68);color:var(--ink);padding:5px 10px;cursor:pointer}.quick-cities button:hover,.quick-cities button:focus-visible{border-color:var(--mint);color:var(--mint)}.locate{margin:12px 0 0;border:0;background:rgba(3,10,18,.35);color:#d2dfe1;cursor:pointer;border-radius:999px;padding:7px 13px}.locate:hover{color:var(--mint)}.status{min-height:20px;margin:10px 0 0;color:var(--yellow);font-size:.85rem;text-shadow:0 2px 10px #000}.status[data-state="error"]{color:#ffb4aa}.status[data-state="success"]{color:var(--mint)}
.forecast{background:linear-gradient(145deg,#102434,#0b1a28);border:1px solid #294151;border-radius:8px;padding:44px;margin-bottom:100px;box-shadow:0 30px 80px rgba(0,0,0,.3)}.forecast-head{display:flex;align-items:center;justify-content:space-between}.forecast h2,.how h2,.guides h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(2rem,4vw,3.4rem);margin:0}.score-ring{border:2px solid var(--mint);width:90px;height:90px;border-radius:50%;display:grid;place-content:center;text-align:center}.score-ring strong{font-size:1.8rem;line-height:1}.score-ring span{font-size:.65rem;color:var(--muted)}.verdict{font-size:1.1rem;color:var(--yellow);margin:20px 0 30px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line)}.metrics article{padding:28px 18px;border-right:1px solid var(--line)}.metrics article:last-child{border:0}.metric-icon{display:block;color:var(--mint);font-size:1.5rem}.metrics small{display:block;color:var(--muted);letter-spacing:.12em;margin:8px 0}.metrics strong{font-family:Georgia,serif;font-size:1.35rem}.metrics p,.data-note{color:var(--muted);font-size:.78rem;margin:3px 0}.tip{display:flex;gap:30px;padding-top:27px}.tip strong{color:var(--mint);min-width:80px}.tip p{margin:0}.data-note{text-align:right}
.observing-window,.pro-conditions{margin-top:34px;padding-top:32px;border-top:1px solid var(--line)}.window-heading,.pro-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:28px}.window-heading h3,.pro-heading h3{font-family:Georgia,serif;font-size:clamp(1.7rem,3vw,2.5rem);font-weight:400;line-height:1.1;margin:0}.best-window{min-width:190px;border-left:2px solid var(--mint);padding-left:16px}.best-window small,.pro-grid small{display:block;color:var(--muted);font-size:.65rem;letter-spacing:.12em}.best-window strong{display:block;font-family:Georgia,serif;font-size:1.4rem;font-weight:400}.best-window span{color:var(--mint);font-size:.78rem}.hourly-strip{display:grid;grid-template-columns:repeat(8,minmax(96px,1fr));gap:9px;margin-top:24px;overflow-x:auto;padding-bottom:8px}.hour-card{position:relative;min-width:96px;background:#081522;border:1px solid var(--line);border-radius:10px;padding:13px 11px;overflow:hidden}.hour-card.best{border-color:var(--mint);box-shadow:inset 0 0 0 1px rgba(131,230,207,.2)}.hour-card .hour{font-weight:800}.hour-card .hour-score{display:block;font-family:Georgia,serif;font-size:1.35rem;margin:7px 0}.hour-card .hour-cloud{color:var(--muted);font-size:.72rem}.hour-card .quality-bar{height:3px;background:var(--quality,var(--fair));position:absolute;left:0;right:0;bottom:0}.pro-heading>p{max-width:430px;color:var(--muted);font-size:.82rem;margin:0}.pro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:24px}.pro-grid article{background:#081522;border:1px solid var(--line);border-radius:10px;padding:18px;min-height:158px}.condition-icon{display:block;color:var(--mint);font-size:1.45rem;line-height:1;margin-bottom:15px}.pro-grid strong{display:block;font-family:Georgia,serif;font-size:1.28rem;font-weight:400;margin:7px 0}.pro-grid p,.pro-grid label{display:block;color:var(--muted);font-size:.74rem;line-height:1.4;margin:0}.light-pollution-card{grid-column:span 2}.light-pollution-card select{width:100%;margin-top:10px;background:#102434;color:var(--ink);border:1px solid #365064;border-radius:6px;padding:8px}.light-pollution-card option{color:#07111f}.bortle-help{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.bortle-scale{display:grid;grid-template-columns:repeat(9,1fr);overflow:hidden;margin-top:10px;border-radius:999px;background:linear-gradient(90deg,#07111f,#112e42,#31546a,#706d72,#d5b27d,#f4d9a8);border:1px solid #51616c}.bortle-scale span{display:grid;place-items:center;min-height:25px;color:#fff;font-size:.65rem;font-weight:800;text-shadow:0 1px 3px #000;border-right:1px solid rgba(255,255,255,.12)}.bortle-scale span:last-child{border:0}.bortle-caption{display:flex!important;justify-content:space-between;margin-top:4px!important;font-size:.65rem!important}.source-line{color:var(--muted);font-size:.72rem;margin:15px 0 0}.forecast-caution{display:flex;gap:18px;align-items:flex-start;margin-top:25px;padding:16px 18px;background:rgba(242,220,141,.06);border:1px solid rgba(242,220,141,.28);border-radius:8px}.forecast-caution strong{flex:0 0 145px;color:var(--yellow);font-size:.82rem}.forecast-caution p{margin:0;color:#b8c6ca;font-size:.78rem}.condition-good{color:var(--good)}.condition-fair{color:var(--fair)}.condition-poor{color:var(--poor)}
.forecast-example{margin-bottom:110px;background:#0a1825;border:1px solid var(--line);border-radius:12px;padding:42px}.example-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.forecast-example h2{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:400;line-height:1.1;margin:0}.forecast-example>p,.example-note{color:var(--muted)}.example-badge{display:inline-block;border:1px solid var(--yellow);border-radius:999px;color:var(--yellow);font-size:.68rem;font-weight:800;letter-spacing:.1em;padding:7px 11px;white-space:nowrap}.example-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:28px}.example-grid article{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:18px}.example-grid small{display:block;color:var(--mint);font-size:.68rem;letter-spacing:.11em}.example-grid strong{display:block;font-family:Georgia,serif;font-size:1.28rem;font-weight:400;margin:8px 0}.example-grid p{color:var(--muted);font-size:.82rem;margin:0}.example-note{font-size:.84rem;margin:22px 0 0}.example-note a,.no-script-note a,.article a{color:var(--mint)}.tool-static-fallback{margin:48px 0;padding:30px;border:1px solid var(--line);border-radius:10px;background:#0a1825}.tool-static-fallback h2{margin-top:0}.tool-static-fallback .example-grid{grid-template-columns:repeat(3,1fr)}.no-script-note{margin:30px auto 70px;padding:24px;border-left:3px solid var(--yellow);background:#0d1b29}.source-review{color:var(--yellow)!important}.source-register{list-style:none;padding:0}.source-register li{display:grid;gap:3px;margin:0!important;padding:16px 0;border-bottom:1px solid var(--line)}.source-register a{color:var(--mint);font-weight:750}.source-register span{color:var(--muted);font-size:.9rem}
.how{padding:30px 0 125px}.how>h2{text-align:center}.how>.eyebrow{text-align:center}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;margin-top:65px}.three article{border-top:1px solid var(--line);padding-top:24px}.three span{color:var(--mint);font-size:.72rem}.three h3{font-family:Georgia,serif;font-size:1.55rem;font-weight:400}.three p{color:var(--muted)}
.guides{padding-bottom:120px}.section-line{border-top:1px solid var(--line);padding-top:65px}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:45px}.guide-grid>a{display:flex;flex-direction:column;min-height:420px;background:var(--panel);border:1px solid var(--line);padding:28px;color:var(--ink);text-decoration:none;transition:.2s}.guide-grid>a:hover{transform:translateY(-5px);border-color:var(--mint)}.guide-art{height:130px;display:grid;place-content:center;font-size:4rem;color:var(--yellow);background:radial-gradient(circle,rgba(131,230,207,.12),transparent 65%)}.guide-grid small{color:var(--mint);letter-spacing:.15em;margin-top:20px}.guide-grid h3{font-family:Georgia,serif;font-weight:400;font-size:1.55rem;line-height:1.2}.guide-grid p{color:var(--muted);font-size:.9rem}.guide-grid b{font-size:.78rem;margin-top:auto;color:var(--mint)}
.visual-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}.visual-grid figure{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.visual-grid img{display:block;width:100%;height:auto}.visual-grid figcaption{padding:12px 16px;color:var(--muted);font-size:.86rem}
footer{background:#050c15;border-top:1px solid var(--line);padding:60px 0 20px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer-grid>div{display:flex;flex-direction:column;gap:9px}.footer-grid p,.footer-grid a{color:var(--muted);font-size:.85rem;text-decoration:none}.footer-grid .brand{color:var(--ink)}.copyright{text-align:center;color:#617680;border-top:1px solid #172634;margin:45px 0 0;padding-top:20px;font-size:.72rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.article{max-width:760px;padding:90px 0 120px}.article h1{font-family:Georgia,serif;font-size:clamp(2.7rem,6vw,5rem);font-weight:400;line-height:1.02}.article h2{font-family:Georgia,serif;font-size:2rem;font-weight:400;margin-top:55px}.article p,.article li{color:#b1c2c7}.article .intro{font-size:1.25rem;color:var(--ink)}.article table{width:100%;border-collapse:collapse}.article th,.article td{text-align:left;border-bottom:1px solid var(--line);padding:15px}.article th{color:var(--mint)}
.more-guides{margin-top:24px}.more-guides a,.breadcrumbs a,.sources a,.related a{color:var(--mint);font-weight:700}.breadcrumbs{font-size:.85rem;color:var(--muted);margin:0 0 24px}.fact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:20px 0}.fact-grid div{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}.fact-grid dt{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.fact-grid dd{margin:8px 0 0;font-weight:700}.sources,.related{margin-top:42px;padding-top:20px;border-top:1px solid var(--line)}.sources li,.related li{margin:8px 0}
@media(max-width:760px){.nav nav>a{display:none}.hero{padding:80px 0;background-position:68% center}.search{display:block;background:transparent;border:0;box-shadow:none}.search input,.search button{width:100%;height:58px}.search button{margin-top:8px}.quick-cities{max-width:340px}.forecast{padding:25px}.metrics{grid-template-columns:1fr 1fr}.metrics article:nth-child(2){border-right:0}.window-heading,.pro-heading{display:block}.best-window{margin-top:18px}.pro-heading>p{margin-top:16px}.pro-grid{grid-template-columns:1fr 1fr}.light-pollution-card{grid-column:1/-1}.forecast-caution{display:block}.forecast-caution strong{display:block;margin-bottom:6px}.three,.guide-grid,.visual-grid,.example-grid,.tool-static-fallback .example-grid{grid-template-columns:1fr;gap:25px}.example-heading{display:block}.example-badge{margin-top:18px}.forecast-example{padding:26px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.tip{display:block}}
