:root { --paper:#f3f0e8; --ink:#1c1915; --muted:#746d62; --rule:#bdb6aa; --hot:#a82f22; --sun:#bb7300; --sea:#397890; --green:#66845b; }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; background:#d8d3ca; color:var(--ink); }
body { font-family:"Fraunces",Georgia,serif; display:grid; place-items:center; -webkit-font-smoothing:antialiased; }
button,a { font:inherit; }
.skip { position:fixed; left:-999px; top:8px; z-index:20; background:var(--ink); color:var(--paper); padding:.7rem 1rem; }.skip:focus{left:8px}
.shell { width:min(100vw,1280px); height:min(100vh,750px); min-height:600px; background:var(--paper); display:grid; grid-template-rows:auto auto 1fr auto; padding:3.2vh 4.5vw 0; box-shadow:0 24px 90px rgba(30,24,18,.16); overflow:hidden; }
.masthead { display:grid; grid-template-columns:1.45fr .85fr; gap:4vw; align-items:start; }
.time { display:flex; align-items:baseline; font-variant-numeric:tabular-nums; line-height:.8; font-size:clamp(4.7rem,10vw,8.7rem); font-weight:350; letter-spacing:-.065em; }
.time small { font:600 clamp(.8rem,1.7vw,1.4rem)/1 "IBM Plex Mono",monospace; letter-spacing:.05em; margin-left:.25em; color:var(--muted); }
.date,.section-label { font:600 clamp(.64rem,1vw,.83rem)/1.3 "IBM Plex Mono",monospace; text-transform:uppercase; letter-spacing:.24em; color:var(--muted); }
.date { margin-top:2vh; }
h1 { font-size:clamp(1.6rem,3.1vw,2.65rem); font-weight:350; margin:1.2vh 0 1.8vh; line-height:1; }
.weather-hero { display:grid; grid-template-columns:auto 1fr; gap:1.7vw; align-items:center; justify-self:end; min-width:min(36vw,420px); padding-top:.4vh; }
.weather-glyph { font-family:system-ui; font-size:clamp(3.4rem,7vw,6.5rem); color:var(--sun); line-height:1; }
.temperature { font-size:clamp(3.5rem,7vw,6.6rem); line-height:.75; font-variant-numeric:tabular-nums; }.temperature sup{font-size:.25em;vertical-align:top}
.condition { font-size:clamp(1.4rem,2.7vw,2.4rem); font-style:italic; margin-top:1.2vh; }.range { margin-top:.6vh; font:600 clamp(.7rem,1.1vw,.95rem)/1.4 "IBM Plex Mono",monospace; color:var(--muted); }
.weather-strip { border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); display:grid; grid-template-columns:repeat(5,1fr); }
.weather-strip article { min-height:12.5vh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.3vh; }
.weather-strip .icon { font:500 clamp(1.5rem,2.6vw,2.2rem)/1 system-ui; }.icon.sun,.icon.sunset{color:var(--sun)}.icon.rain{color:#3772a0}.icon.wind{color:var(--green)}.icon.feels{color:#c15a4c}
.weather-strip strong { font-size:clamp(1.55rem,2.7vw,2.45rem); font-weight:350; font-variant-numeric:tabular-nums; }.weather-strip small { font:600 .67rem/1.2 "IBM Plex Mono",monospace; text-transform:uppercase; letter-spacing:.18em; color:var(--muted); }
.panels { min-height:0; position:relative; }
.panel { height:100%; min-height:0; padding:2.2vh 0; }.panel[hidden]{display:none}.panel.active{animation:reveal .35s ease}@keyframes reveal{from{opacity:.2;transform:translateY(5px)}to{opacity:1;transform:none}}
#today { display:grid; grid-template-columns:1.15fr .85fr; gap:4vw; }
.today-note { border-right:1px solid var(--rule); padding-right:4vw; display:flex; flex-direction:column; justify-content:space-between; }
.note { margin:0; max-width:28ch; font-size:clamp(1.7rem,3.25vw,3rem); line-height:1.28; font-style:italic; font-weight:350; }.note-source { font:500 .65rem/1.5 "IBM Plex Mono",monospace; color:var(--muted); letter-spacing:.08em; }
.today-column { display:flex; flex-direction:column; justify-content:space-between; }
.coast-grid { display:grid; gap:1.35vh; }.coast-grid div { display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px solid #d7d1c7; padding-bottom:1vh; }.coast-grid small{font:600 .65rem/1.3 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.coast-grid strong{font-size:clamp(1rem,1.7vw,1.45rem);font-weight:400}
.quiet-link { color:var(--hot); text-decoration:none; font:600 .72rem/1 "IBM Plex Mono",monospace; text-transform:uppercase; letter-spacing:.12em; }.quiet-link:hover,.quiet-link:focus-visible{text-decoration:underline}
.panel-title { max-width:42rem; }.panel h2 { margin:.5vh 0 1.6vh; font-size:clamp(1.8rem,3.7vw,3.3rem); line-height:1; font-weight:400; }.panel-title p{color:var(--muted);font-size:clamp(.95rem,1.4vw,1.15rem);line-height:1.5}
.story-list { display:grid; grid-template-columns:repeat(3,1fr); gap:2vw; margin-top:2vh; }.story-list a{color:var(--ink);text-decoration:none;border-top:2px solid var(--hot);padding-top:1vh;display:flex;flex-direction:column;min-height:17vh}.story-list small{font:600 .62rem/1.3 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.14em;color:var(--hot)}.story-list strong{font-size:clamp(1rem,1.8vw,1.5rem);font-weight:400;line-height:1.25;margin-top:.8vh}.story-list span{margin-top:auto;font:500 .62rem/1 "IBM Plex Mono",monospace;color:var(--muted)}
.calendar-head { display:flex;justify-content:space-between;align-items:start }.day-number{font-size:clamp(4rem,8vw,7rem);line-height:.7;color:var(--hot)}.daybook{display:grid;grid-template-columns:repeat(3,1fr);gap:2vw;margin-top:1vh}.daybook div{border-top:1px solid var(--rule);padding-top:1.2vh}.daybook time,.daybook small{display:block;font:600 .62rem/1.4 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.daybook strong{display:block;font-size:clamp(1rem,1.7vw,1.4rem);font-weight:400;line-height:1.3;margin:.8vh 0 1.8vh}
.question-grid { display:flex;gap:1vw;margin-top:2vh;flex-wrap:wrap }.question-grid button{border:1px solid var(--rule);background:transparent;border-radius:99px;padding:.7rem 1rem;cursor:pointer;font:600 .68rem/1 "IBM Plex Mono",monospace;letter-spacing:.05em}.question-grid button:hover,.question-grid button:focus-visible{border-color:var(--hot);color:var(--hot);outline:none}.answer{margin-top:2vh;border-left:3px solid var(--hot);padding-left:1.2rem;font-size:clamp(1.2rem,2.1vw,1.75rem);font-style:italic;max-width:48rem}
.tabs { margin:0 -4.5vw; min-height:9vh; border-top:1px solid var(--rule); display:grid; grid-template-columns:repeat(4,1fr); }.tab{border:0;border-top:3px solid transparent;background:transparent;color:var(--muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45vh}.tab span{font-family:system-ui;font-size:1.25rem}.tab strong{font:600 .65rem/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.16em}.tab.active{color:var(--hot);border-color:var(--hot)}.tab:focus-visible{outline:2px solid var(--hot);outline-offset:-4px}
.sr-only { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap }
@media(max-width:700px){body{display:block}.shell{height:auto;min-height:100dvh;padding:2rem 1.1rem 0;overflow:visible}.masthead{grid-template-columns:1fr}.weather-hero{justify-self:start;min-width:0}.weather-glyph{font-size:3.2rem}.weather-strip article{min-height:6.7rem}.weather-strip{overflow-x:auto;grid-template-columns:repeat(5,minmax(92px,1fr))}.panels{min-height:22rem}#today{grid-template-columns:1fr}.today-note{border-right:0;border-bottom:1px solid var(--rule);padding:0 0 1.5rem}.note-source{margin-top:1rem}.today-column{gap:1.5rem}.story-list,.daybook{grid-template-columns:1fr}.story-list a{min-height:8rem}.tabs{position:sticky;bottom:0;background:var(--paper);margin:0 -1.1rem}.tab strong{font-size:.55rem}.date{margin-top:1rem}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
