:root{
  --navy:#0b1e3a; --navy2:#0a1424; --surface:#101d33; --amber:#f5a623; --amber2:#ffcf6e;
  --ink:#e9eff8; --muted:#93a5c0; --line:#22395c; --radius:12px;
  color-scheme:dark;
}
*{box-sizing:border-box}
@font-face{font-family:'Fraunces';src:url('/assets/fonts/fraunces-latin.woff2') format('woff2');font-weight:600 700;font-display:swap}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--navy2);line-height:1.5;-webkit-text-size-adjust:100%}
.wrap{max-width:960px;margin:0 auto;padding:0 14px}
.site-header{background:linear-gradient(180deg,#0b1e3a 0%,#0d2242 80%);border-bottom:3px solid var(--amber)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:6px;padding-bottom:6px}
.brand{color:#fff;text-decoration:none;font-weight:700;font-size:1.2rem;display:flex;align-items:center;gap:10px}
.brand .tagline{display:block;font-size:.72rem;font-weight:400;color:var(--muted);letter-spacing:.05em}
.mark{width:38px;height:38px;flex:none;border-radius:9px}
.site-header nav a{color:#cfe0f5;text-decoration:none;font-size:.9rem;white-space:nowrap}
.site-header nav a:hover{color:#fff}
main{padding:8px 0 16px}
h1,h2,h3,.k,.au-state-line,.au-stats .st b{font-family:'Fraunces',Georgia,'Times New Roman',serif}
h1{font-size:1.55rem;margin:.15em 0 .25em;line-height:1.25}
.dateline{color:var(--muted);font-size:.98rem;margin:0 0 2px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:8px 10px;margin:6px 0;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.card h2{font-size:1.12rem;margin:.1em 0 .35em}
.card p{margin:.3em 0}
.card a{color:var(--amber2)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.grid + .grid{margin-top:7px}
.grid .card{margin:0;padding:6px 10px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.k{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;line-height:1.15}
.v{font-size:1.65rem;font-weight:700;margin:0;color:#fff;line-height:1.1}
.v.small{font-size:1.15rem;line-height:1.2}
.tz{font-size:.85rem;font-weight:600;color:var(--muted)}
.delta{color:#7bc98a;font-weight:600;font-size:.88rem;line-height:1.3}
.note{color:var(--muted);font-size:.85rem;line-height:1.3}
.daynav{display:flex;justify-content:space-between;gap:8px;margin:8px 0;flex-wrap:wrap}
.daynav a{background:var(--surface);border:1px solid var(--line);border-radius:999px;
  padding:7px 16px;text-decoration:none;color:var(--amber2);font-weight:600;font-size:.9rem}
.daynav a:hover{border-color:var(--amber)}
.picker{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.picker label{font-weight:600;font-size:.9rem;display:flex;flex-direction:column;gap:4px;color:var(--ink)}
.picker input,.picker select{font-size:1rem;padding:8px 10px;border:1px solid var(--line);
  border-radius:10px;background:var(--navy2);color:var(--ink);min-height:44px}
.picker button{background:var(--amber);border:none;border-radius:10px;padding:10px 20px;
  font-size:1rem;font-weight:700;color:#1a1206;cursor:pointer;min-height:44px}
.picker button:hover{background:var(--amber2)}
.polar{border-radius:var(--radius);padding:10px;margin:6px 0;color:#fff;font-size:1rem}
.polar-day{background:linear-gradient(135deg,#b45309,#f59e0b)}
.polar-night{background:linear-gradient(135deg,#0b1e3a,#334155);border:1px solid var(--line)}
.hero h1{font-size:1.8rem;margin:.35em 0 .2em}
.lede{font-size:1rem;color:var(--muted);max-width:640px;margin:.3em 0 .6em}
.today-times{display:flex;gap:12px;flex-wrap:wrap;font-size:1.05rem;margin-top:3px}
.today-delta{color:var(--muted);font-size:.92rem;margin-top:2px}
.today-delta:empty{display:none}
/* homepage: pair the intro cards two-up on wide screens (homepage only);
   cards hug their own height (no equal-height stretch) */
@media (min-width:760px){
  .home-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0;align-items:start}
  .home-pair>.card{margin:0}
  /* picker at half width: town + date + button on one control row */
  .home-pair .picker{flex-wrap:nowrap;gap:6px}
  .home-pair .picker label{flex:1 1 0;min-width:0}
  .home-pair .picker input,.home-pair .picker select{width:100%;padding:8px 6px}
  .home-pair .picker button{flex:0 0 auto;padding:10px 14px}
}
.towns h3{margin:10px 0 4px;color:var(--amber2);font-size:.95rem;text-transform:uppercase;letter-spacing:.05em}
.town-grid{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-start}
.town-grid a{background:var(--surface);border:1px solid var(--line);border-radius:8px;
  padding:8px 10px;line-height:1.45;text-decoration:none;color:var(--ink);font-weight:600;font-size:.92rem;white-space:nowrap}
.town-grid a:hover{border-color:var(--amber);color:#fff}
/* homepage town directory: almanac columns, dotted leaders, today's daylight
   per town (homepage only; town pages keep the .town-grid pills above) */
.town-dir{column-count:1;column-gap:34px;margin-top:2px}
@media (min-width:680px){.town-dir{column-count:2}}
@media (min-width:1024px){.town-dir{column-count:3}}
.dir-region{break-inside:avoid;min-width:0}
.town-dir h3{margin:6px 0 2px;font-size:.92rem}
.dir-list{list-style:none;margin:0 0 5px;padding:0}
.dir-list a{display:flex;align-items:baseline;gap:7px;padding:2px;line-height:1.3;
  font-size:.93rem;color:var(--ink);text-decoration:none;border-radius:4px}
.dir-name{font-weight:600;font-size:.95rem}
.dir-dots{flex:1 1 auto;min-width:12px;border-bottom:2px dotted var(--line);position:relative;top:-3px}
.dir-dl{font-size:.88rem;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.dir-list a:hover .dir-name,.dir-list a:focus-visible .dir-name{color:#fff}
.dir-list a:hover .dir-dots,.dir-list a:focus-visible .dir-dots{border-bottom-color:var(--amber)}
.dir-list a:hover .dir-dl,.dir-list a:focus-visible .dir-dl{color:var(--amber2)}
footer{background:#060d18;color:#8fa3c2;font-size:.85rem;padding:10px 0;margin-top:8px;border-top:1px solid var(--line)}
footer a{color:#cfe0f5}
footer p{margin:.4em 0}
.context{margin:8px 0}
.context h2{font-size:1.15rem;margin:.2em 0 .4em}
.tblwrap{overflow-x:auto}
.week-table,.stats-table{width:100%;border-collapse:collapse;font-size:.95rem}
.week-table th,.week-table td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.week-table thead th{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line)}
.week-table .today-row{background:rgba(245,166,35,.10);font-weight:700}
.week-table a{color:var(--amber2)}
.stats-table th{color:var(--muted);font-weight:600;text-align:left;padding:6px 12px 6px 0;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:top}
.stats-table td{padding:6px 0;border-bottom:1px solid var(--line)}
.stats-table tr:last-child th,.stats-table tr:last-child td{border-bottom:none}
.curve{width:100%;height:auto;display:block;margin-top:6px}
.nearest{list-style:none;margin:0;padding:0}
.nearest li{padding:5px 0;border-bottom:1px solid var(--line)}
.nearest li:last-child{border-bottom:none}
.nearest a{color:var(--amber2);font-weight:600}
@media (max-width:640px){
  .grid{grid-template-columns:1fr 1fr}
  .grid .hero-card:last-child{grid-column:1/-1}
  .grid-2{grid-template-columns:1fr}
  .v{font-size:1.4rem}
  h1{font-size:1.35rem}
  .hero h1{font-size:1.5rem}
  .picker{flex-direction:column;align-items:stretch}
  .brand{font-size:1.05rem}
}

/* ---- northern lights (aurora) ---- */
.aurora-teaser{padding:7px 10px}
.aurora-teaser .at-k{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600}
.aurora-teaser .at-line{margin:.25em 0 .15em;font-size:.98rem}
.aurora-teaser .at-more{margin:.1em 0;font-size:.9rem}
.moon-teaser{padding:7px 10px}
.moon-teaser .mt-k{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600}
.moon-teaser .mt-line{margin:.25em 0 .15em;font-size:.98rem}
.moon-teaser .mt-events{margin:.1em 0;font-size:.95rem}
.moon-teaser .mt-more{margin:.1em 0;font-size:.9rem}
.moon-sec .moon-line{margin:.25em 0 .1em;font-size:1.02rem}
.moon-sec .ml-phase{font-weight:700;color:#fff}
.moon-summary .moon-sum-line{margin:.25em 0 .15em;font-size:1.15rem;font-weight:700;color:#fff}
.moon-table td,.moon-table th{white-space:nowrap}
.moon-table td:first-child,.moon-table th:first-child{white-space:normal}
@media(max-width:560px){.moon-table th:nth-child(4),.moon-table td:nth-child(4){display:none}}
.at-verdict[data-tier="3"]{color:#57e389}
.at-verdict[data-tier="2"]{color:#9bd15f}
.at-verdict[data-tier="1"]{color:var(--amber2)}
.at-verdict[data-tier="0"]{color:#c08552}
.au-state-line{font-size:1.18rem;font-weight:650;margin:.3em 0 .15em;line-height:1.35}
.au-state-sub{color:var(--muted);font-size:.92rem}
.au-globe-card{padding:8px}
.au-state{padding:7px 10px}
.au-stats{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:7px}
.au-stats:empty{display:none}
.au-stats .st{display:flex;flex-direction:column}
.au-stats .st b{font-size:1.12rem;font-weight:700;line-height:1.15}
.au-stats .st span{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.au-state .au-state-line{margin:.15em 0 .05em}
.au-state-sub:empty{display:none}
.au-globe-wrap{position:relative;width:100%;margin:0 auto;aspect-ratio:1/1;
  border-radius:10px;overflow:hidden;background:#050b16;border:1px solid var(--line)}
@media (min-width:720px){.au-globe-wrap{aspect-ratio:3/2}}
#au-globe{display:block;width:100%}
#au-pins{position:absolute;inset:0}
.au-pin{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;border:0;background:none;
  cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent}
.au-pin .dot{display:block;width:9px;height:9px;margin:0 auto;border-radius:50%;
  background:#dfe9f7;border:1.5px solid #0a1830;box-shadow:0 0 0 1px rgba(220,235,255,.55)}
.au-pin[data-tier="3"] .dot{background:#57e389}
.au-pin[data-tier="2"] .dot{background:#9bd15f}
.au-pin[data-tier="1"] .dot{background:var(--amber)}
.au-pin[data-tier="0"] .dot{background:#7d8ea8}
.au-pin .pin-label{position:absolute;top:19px;left:50%;transform:translateX(-50%);font-size:.62rem;
  color:#cfe0f5;white-space:nowrap;text-shadow:0 1px 3px #000,0 0 6px #000;letter-spacing:.02em}
.au-pin.sel .dot{width:13px;height:13px;box-shadow:0 0 0 2px var(--amber),0 0 10px rgba(245,166,35,.7)}
.au-pin:focus-visible{outline:2px solid var(--amber2);outline-offset:-4px;border-radius:50%}
.au-legend{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;color:var(--muted);
  font-size:.82rem;margin-top:7px}
.au-legend .lg{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.lg-band{background:linear-gradient(90deg,#1d7a45,#57e389)}
.lg-day{background:rgba(150,190,255,.35)}
.lg-town{background:#dfe9f7;border-radius:50%}
.au-note{color:var(--amber2);font-size:.9rem;text-align:center;margin:.5em 0 0}
.au-note:empty{display:none}
.au-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.au-panel-head h2{margin:.05em 0}
.au-chip{display:inline-block;font-size:.78rem;font-weight:700;padding:3px 10px;border-radius:999px;
  background:#22395c;color:var(--ink);white-space:nowrap}
.au-chip.big{font-size:.92rem;padding:5px 14px}
.au-chip[data-tier="3"]{background:#14532d;color:#86efac}
.au-chip[data-tier="2"]{background:#2c4a1e;color:#b7e284}
.au-chip[data-tier="1"]{background:#5b4413;color:#ffcf6e}
.au-chip[data-tier="0"]{background:#3d3d4d;color:#c9c9d4}
.au-chip[data-tier="-1"]{background:#22395c;color:var(--muted)}
.au-call{font-size:1.06rem;line-height:1.45;margin:.35em 0 .6em}
.au-record{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}
.au-record .rk{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.au-record .rv{font-size:.97rem;margin-top:1px}
.au-dl{margin:.5em 0 0}
.au-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:.4em 0}
.au-night{background:var(--navy);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.au-night .an-k{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}
.au-night .an-v{font-size:1.25rem;font-weight:700;margin:.15em 0}
.au-night .an-g{font-size:.8rem;color:#ff9d5c;font-weight:700}
.au-night .an-s{font-size:.85rem;color:var(--muted)}
.au-towns{list-style:none;margin:0;padding:0}
.au-towns li{display:flex;align-items:center;gap:10px;padding:9px 6px;min-height:48px;
  border-bottom:1px solid var(--line);cursor:pointer}
.au-towns li:last-child{border-bottom:none}
.au-towns li.sel{background:rgba(245,166,35,.08);border-radius:8px}
.au-row-name{font-weight:600;flex:0 0 31%}
.au-row-why{color:var(--muted);font-size:.85rem;flex:1}
.au-row-link{font-size:.85rem;white-space:nowrap}
.au-times{color:var(--muted);font-size:.84rem;margin:8px 2px 0}
@media (max-width:640px){
  .au-record{grid-template-columns:1fr}
  .au-strip{grid-template-columns:1fr 1fr 1fr;gap:7px}
  .au-night .an-v{font-size:1.05rem}
  .au-row-name{flex-basis:38%}
  .au-pin .pin-label{font-size:.58rem}
}
/* pass-3 refinements */
.au-towns li{gap:8px;padding:7px 6px;min-height:44px}
.au-towns .au-chip{font-size:.72rem;padding:2px 8px}
.au-row-name{flex:0 1 33%;font-size:.97rem}
.au-row-why{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.au-pin.sel .pin-label{top:auto;bottom:16px}
