@font-face{font-family:Manrope;src:url('assets/fonts/manrope-var-latin.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:Newsreader;src:url('assets/fonts/newsreader-normal-latin.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:Newsreader;src:url('assets/fonts/newsreader-italic-latin.woff2') format('woff2');font-weight:200 800;font-style:italic;font-display:swap}
@font-face{font-family:Plex;src:url('assets/fonts/plex-mono-400-latin.woff2') format('woff2');font-display:swap}
:root{--ink:#222b32;--muted:#677782;--line:#dbe2e6;--paper:#fafbfc;--blue:#3b7c9c;--coral:#be6955;--serif:Newsreader,Georgia,serif;--sans:Manrope,Arial,sans-serif;--mono:Plex,monospace}
*{box-sizing:border-box;letter-spacing:0}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.7 var(--sans)}h1,h2,p,dl{margin:0}button,input{font:inherit}a{color:inherit;text-decoration:none}button,a,input{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{opacity:.35;cursor:not-allowed}:focus-visible{outline:2px solid var(--blue);outline-offset:5px}.lucide{width:18px;height:18px;stroke-width:1.5;flex-shrink:0}.skip{position:absolute;top:-100px;left:15px;background:white;padding:12px;z-index:10}.skip:focus{top:10px}
header{min-height:80px;padding:15px 5%;display:flex;align-items:center;gap:30px;background:#fff}.brand{font:26px var(--serif);white-space:nowrap}.brand span{color:var(--coral)}.place{font:10px var(--mono);color:var(--muted);margin-right:auto}header nav{display:flex;gap:26px;font-size:11px}header nav a:hover{text-decoration:underline;text-underline-offset:7px}.languages{border-left:1px solid var(--line);padding-left:20px;display:flex;gap:7px}.languages button{border:0;background:none;padding:8px;font:11px var(--mono)}.languages [aria-pressed=true]{text-decoration:underline;text-decoration-color:var(--coral);text-underline-offset:7px;text-decoration-thickness:2px}
.hero{position:relative;min-height:440px;height:61svh;max-height:640px;color:white;overflow:hidden}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:55% 26%}.shade{position:absolute;inset:0;background:rgba(10,21,29,.25)}.hero-content{position:relative;max-width:1300px;padding:50px 50px 68px;margin:auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;height:100%}.eyebrow{font:9px/1.8 var(--mono)}.hero .eyebrow{color:#f0f2f5;margin-bottom:19px}.hero h1{font:72px/.95 var(--serif);font-weight:400;overflow-wrap:anywhere}.hero-story{font:36px/1.15 var(--serif);font-style:italic;margin-top:16px;max-width:740px}.hero-subtitle{font-size:12px;margin-top:16px;color:#f3f5f8}.hero-link{display:flex;align-items:center;gap:25px;font-size:11px;border-bottom:1px solid #ffffff90;margin-top:28px;padding-bottom:8px}.photo-credit{position:absolute;bottom:15px;right:24px;display:flex;align-items:center;gap:7px;font:8px var(--mono);background:#142533a6;padding:6px 9px;max-width:calc(100% - 32px)}.photo-credit .lucide{width:12px;height:12px}
.content{max-width:1300px;margin:auto;padding:0 50px}.edition{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);min-height:57px;padding:17px 0;font:9px/1.8 var(--mono);color:var(--muted)}#freshness[data-stale=true]{color:#a75340}.today{padding:35px 0 49px}.section-label{display:flex;justify-content:space-between;gap:15px;align-items:center;color:var(--muted)}.section-label time{font:9px var(--mono)}.today-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;margin-top:26px}.today h2{font:40px/1.05 var(--serif);max-width:500px}.today-story>p:not(.source-note){font-size:13px;line-height:1.95;margin-top:15px;max-width:540px}.source-note{font:9px/1.9 var(--mono);color:var(--muted);margin-top:13px}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:20px 30px;align-content:center}.metrics>div{border-bottom:1px solid var(--line);padding-bottom:14px;min-width:0}.metrics dt{display:flex;align-items:center;gap:9px;font-size:10px;color:var(--muted);margin-bottom:7px}.metrics dt .lucide{width:14px;height:14px}.metrics dd{margin:0;font:39px/1 var(--serif)}.metrics small{font:11px var(--sans);margin-left:7px;color:var(--muted)}
.memory,.light-memory,.tomorrow{border-top:1px solid var(--line);padding:40px 0 48px}.section-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.section-top .eyebrow{color:var(--muted)}.section-top h2{font:39px/1.08 var(--serif);margin-top:9px}.aside-copy{font:19px/1.5 var(--serif);font-style:italic;color:#536c79;max-width:290px}.chart-toolbar{display:flex;gap:20px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;flex-wrap:wrap}.day-picker{display:flex;align-items:center;gap:4px}.day-picker input{border:0;background:transparent;padding:5px;font:12px var(--mono);color:var(--ink);min-width:135px}.icon-button{border:1px solid var(--line);border-radius:4px;width:33px;height:33px;display:inline-flex;justify-content:center;align-items:center;background:transparent;flex-shrink:0}.icon-button:hover{background:#eaf0f3}.modes{display:flex;gap:3px;align-items:center;flex-wrap:wrap}.modes button{display:flex;gap:7px;align-items:center;border:0;border-bottom:2px solid transparent;background:transparent;font-size:10px;padding:9px 12px;min-height:34px}.modes button[aria-pressed=true]{border-bottom-color:var(--coral);color:#984e3e}.modes .lucide{width:14px;height:14px}.day-summary{min-height:62px;display:flex;gap:30px;align-items:center;flex-wrap:wrap;padding:15px 0;font:11px var(--mono);color:var(--muted)}.day-summary strong{color:var(--ink);font-weight:400}.history-chart{height:330px;width:100%}.instant{display:grid;grid-template-columns:110px 1fr 150px;gap:20px;align-items:center;font:10px var(--mono);padding-top:13px;min-height:49px}.instant output{text-align:right}.instant input{accent-color:var(--coral);width:100%;min-width:0}.instant time{color:var(--muted)}details{border-top:1px solid var(--line);margin-top:21px;padding-top:16px;font-size:11px}summary{cursor:pointer}.table-scroll{max-height:300px;overflow:auto;margin-top:18px}table{width:100%;border-collapse:collapse;font:10px var(--mono)}th,td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line)}th{background:var(--paper);position:sticky;top:0}
.light-memory{background:#f0f4f8;margin-left:-50px;margin-right:-50px;padding-left:50px;padding-right:50px}.calendar-scroll{overflow-x:auto;margin-top:22px}.calendar-chart{height:325px;width:100%;min-width:720px}.calendar-story{font:22px/1.5 var(--serif);font-style:italic;margin-top:18px;color:#4d6676}.forecast-story{font:25px/1.5 var(--serif);max-width:830px}.forecast-chart{height:260px;width:100%;margin-top:22px}.forecast-strip{display:flex;overflow-x:auto;padding-bottom:12px}.forecast-hour{flex:1 0 83px;text-align:center;padding:12px 6px;border-right:1px solid var(--line);font:9px var(--mono)}.forecast-hour:nth-child(odd){background:#f0f4f7}.forecast-hour strong{font:24px var(--serif);display:block;margin:9px 0}.forecast-hour small{display:block;color:var(--blue);font:10px var(--mono)}.forecast-hour .lucide{display:block;margin:8px auto;width:19px;height:19px;color:#5d8597}.forecast-hour time{color:var(--muted)}.forecast-hour .hour-day{display:block;color:var(--muted);font-size:8px}.colophon{padding:35px 0 48px;border-top:1px solid var(--line)}.closing{font:30px/1.4 var(--serif);font-style:italic;text-align:center;padding:10px 0 35px}.provenance{max-width:880px;color:var(--muted);font-size:11px;line-height:1.9}.provenance p{margin-top:15px}.provenance a{text-decoration:underline}footer{border-top:1px solid var(--line);padding:28px 5%;display:flex;gap:30px;align-items:center;flex-wrap:wrap;font:9px var(--mono);color:var(--muted)}footer .brand{color:var(--ink);margin-right:auto}
@media(min-width:1600px){.hero{height:57svh}.hero-content{max-width:1400px}}
@media(max-width:800px){header{gap:16px;padding:15px 5%;flex-wrap:wrap}.brand{font-size:24px}.place{font-size:8px}.languages{padding-left:12px;margin-left:auto}header nav{order:4;width:100%;border-top:1px solid var(--line);padding-top:12px;justify-content:space-between;gap:15px}.hero{height:57svh;min-height:375px}.hero-content{padding:33px 24px 64px}.hero h1{font-size:50px}.hero-story{font-size:30px}.hero-subtitle{font-size:11px;max-width:270px}.photo-credit{right:12px;font-size:7px}.content{padding:0 23px}.edition{font-size:8px;flex-direction:column;gap:4px}.today{padding:27px 0 32px}.today-grid{grid-template-columns:1fr;gap:28px}.today h2{font-size:34px}.metrics{gap:16px 24px}.metrics dd{font-size:35px}.section-top{align-items:flex-start;flex-direction:column;gap:16px}.section-top h2{font-size:33px}.aside-copy{font-size:18px}.chart-toolbar{gap:10px}.chart-toolbar>.modes{order:3;width:100%;justify-content:space-between}.modes button{padding:9px 7px;font-size:9px;gap:5px}.history-chart{height:300px}.day-summary{gap:12px;font-size:9px}.instant{grid-template-columns:70px 1fr;gap:10px}.instant output{grid-column:2;font-size:9px}.light-memory{margin-left:-23px;margin-right:-23px;padding-left:23px;padding-right:23px}.calendar-story{font-size:21px}.forecast-story{font-size:23px}.closing{font-size:26px}.section-label{align-items:flex-start;flex-direction:column;gap:6px}footer{gap:15px}footer>span{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.hero{height:auto;max-height:none;min-height:520px;display:flex;flex-direction:column;justify-content:space-between}
.hero-content{height:auto;width:100%;padding:38px 50px 24px;flex:1;justify-content:center}
.hero h1{font-size:62px;line-height:1.04}
.hero .eyebrow{margin-bottom:12px}
.hero-time{font:16px/1.7 var(--mono);margin-top:18px;color:#fff}
.hero-publication{font:11px/1.7 var(--mono);margin-top:3px;color:#fff}
.hero-rain{display:flex;align-items:center;gap:10px;font:600 22px/1.5 var(--sans);margin-top:17px;overflow-wrap:anywhere}
.hero-rain .lucide{width:23px;height:23px}
.hero-rain[data-state=unknown]{font-size:18px}
.hero-past{font:13px/1.8 var(--sans);max-width:650px;color:#fff;margin-top:14px}
.hero-past:empty{display:none}
.hero-story{font-size:28px;line-height:1.15;margin-top:10px;max-width:650px}
.hero-subtitle{font-size:14px;line-height:1.85;margin-top:14px;max-width:630px;color:#fff;overflow-wrap:anywhere}
.hero-link{margin-top:20px;min-height:35px}
.shade{background:rgba(10,21,29,.36)}
.photo-credit{position:relative;bottom:auto;right:auto;align-self:flex-end;margin:0 24px 16px;font-size:10px;line-height:1.7;max-width:calc(100% - 48px);background:#142533c9}
.day-thread{border-top:1px solid var(--line);padding:40px 0 46px}
.range-controls{display:flex;align-items:center;flex-wrap:wrap;gap:15px 28px;flex-basis:100%;min-width:0}
.day-picker label{font:10px/1.6 var(--mono);color:var(--muted);margin-right:5px}
.memory .aside-copy{font:13px/1.8 var(--sans);font-style:normal}
.calendar-story{font:12px/1.8 var(--sans);font-style:normal;color:var(--muted)}
.day-thread .section-top h2{max-width:660px}
.thread-tools{display:flex;gap:14px;align-items:center;flex-shrink:0}
.zoom-tools{display:flex;gap:6px;align-items:center;flex-shrink:0}
.thread-legend{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;font:10px/1.9 var(--mono);color:var(--muted);padding:0 0 16px}
.thread-legend>span{display:inline-flex;align-items:center;gap:8px}
.thread-legend>span:before{content:'';display:inline-block;width:22px;flex-shrink:0;border-top:3px solid #b75f4e}
.thread-legend>.forecast-key:before{border-top:2px dashed #438175}
.thread-legend>#thread-range{margin-left:auto}
.thread-legend>#thread-range:before{display:none}
.thread-chart{width:100%;height:390px}
.thread-cursor{display:grid;grid-template-columns:130px minmax(80px,1fr);gap:8px 20px;font:10px/1.8 var(--mono);align-items:center;margin-top:12px}
.thread-cursor input{width:100%;min-width:0;accent-color:#438175}
.thread-cursor output{grid-column:1/-1;min-height:36px;color:var(--ink);overflow-wrap:anywhere}
@media(min-width:1600px){.hero{height:auto;min-height:520px}}
@media(max-width:800px){
  .hero{height:auto;min-height:420px}
  .hero-content{padding:27px 23px 20px}
  .hero h1{font-size:42px}
  .hero .eyebrow{font-size:8px;margin-bottom:10px}
  .hero-time{font-size:14px;margin-top:13px}
  .hero-publication{font-size:10px}
  .hero-rain{font-size:19px;margin-top:14px}
  .hero-rain[data-state=unknown]{font-size:17px}
  .hero-past{font-size:12px;line-height:1.75;margin-top:12px}
  .hero-story{font-size:24px;margin-top:10px}
  .hero-subtitle{font-size:12px;line-height:1.8;max-width:630px;margin-top:12px}
  .hero-link{margin-top:15px;font-size:10px}
  .photo-credit{margin:0 15px 15px;font-size:9px;max-width:calc(100% - 30px)}
  .thread-tools{width:100%;justify-content:space-between}
  .thread-legend{font-size:9px;gap:8px 15px}
  .thread-legend>#thread-range{width:100%;margin-left:0}
  .thread-chart{height:340px}
  .thread-cursor{grid-template-columns:100px minmax(80px,1fr);font-size:9px;gap:10px}
  .range-controls{gap:12px;width:100%}
  .day-picker{max-width:100%;flex-wrap:wrap}
  .day-picker label{flex-basis:100%}
}

@media(max-width:800px){
  body{font-size:15px}
  header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:10px 18px}
  header .brand{grid-column:1;grid-row:1;font-size:27px;align-self:end}
  header .place{grid-column:1;grid-row:2;font-size:10px;line-height:1.5;margin:0}
  .languages{grid-column:2;grid-row:1/3;padding-left:8px;margin:0;gap:2px}
  .languages button{min-width:44px;min-height:44px;font-size:12px}
  header nav{grid-column:1/-1;grid-row:3;gap:8px;padding-top:6px;margin-top:6px;font-size:13px}
  header nav a{min-height:44px;display:flex;align-items:center;justify-content:center;flex:1}
  .hero-content{padding:24px 18px 18px}
  .hero .eyebrow,.hero-story,.hero-past,.hero-publication,.hero-link{display:none}
  .hero h1{font-size:40px}
  .hero-time{font-size:15px}
  .hero-publication{font-size:11px}
  .hero-past,.hero-subtitle{font-size:14px;line-height:1.7}
  .hero-link{font-size:13px;min-height:44px;margin-top:14px}
  .photo-credit{font-size:10px}
  .content{padding-left:18px;padding-right:18px}
  .content>section,.today-story,.today-grid,.thread-tools,.chart-toolbar{min-width:0}
  .edition{font-size:11px;line-height:1.7;gap:6px}
  .eyebrow,.section-label time{font-size:11px;line-height:1.7}
  .today h2,.section-top h2{font-size:30px;overflow-wrap:anywhere}
  .today-story>p:not(.source-note){font-size:15px;line-height:1.8}
  .source-note,.provenance{font-size:12px;line-height:1.8;overflow-wrap:anywhere}
  .metrics{gap:18px 16px}
  .metrics dt{font-size:12px;gap:6px;line-height:1.5;min-height:36px;align-items:flex-start}
  .metrics dt .lucide{margin-top:2px}
  .metrics dd{font-size:34px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;overflow-wrap:anywhere}
  .metrics small{font-size:12px;margin:0}
  .icon-button{width:44px;height:44px}
  .modes button{min-height:44px;font-size:12px;padding:9px 10px}
  .chart-toolbar>.modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
  .chart-toolbar>.modes button{min-width:0;flex-direction:column;justify-content:center;gap:4px;padding:8px 3px;min-height:56px;font-size:12px}
  .modes .lucide{width:17px;height:17px}
  .range-controls{gap:14px}
  .day-picker{width:100%;gap:6px}
  .day-picker label{font-size:12px}
  .day-picker input{font-size:16px;min-height:44px;min-width:0;flex:1;width:140px;padding:5px 3px}
  .day-summary{font-size:11px;gap:8px 20px;line-height:1.8}
  .day-summary>span{max-width:100%;overflow-wrap:anywhere}
  .thread-tools{flex-wrap:wrap;gap:12px}
  .thread-legend{font-size:11px}
  .thread-chart,.history-chart{height:360px;touch-action:pan-y pinch-zoom}
  .thread-chart svg,.history-chart svg{touch-action:pan-y pinch-zoom}
  .instant,.thread-cursor{font-size:12px;grid-template-columns:minmax(0,1fr);gap:3px}
  .instant output,.thread-cursor output{grid-column:1;text-align:left;font-size:12px;line-height:1.7;overflow-wrap:anywhere}
  .instant input,.thread-cursor input{min-height:44px;margin:0}
  details{font-size:14px}
  summary{min-height:44px;line-height:1.7;padding:8px 0}
  table{font-size:12px}
  th,td{padding:10px 8px}
  .table-scroll,.calendar-scroll,.forecast-strip{max-width:100%;overscroll-behavior-x:contain}
  .light-memory{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}
  .calendar-story{font-size:12px}
  .forecast-story{font-size:23px;line-height:1.5}
  .forecast-hour{flex-basis:94px;font-size:12px}
  .forecast-hour .hour-day,.forecast-hour small{font-size:11px}
  footer{font-size:11px;padding:24px 18px}
}
