/* News, September 2026 - both of its pages.

   news.html's own rules, in the mock's order: the front (the date line, the
   words that narrow it, the week on the map, the day led by one story, the
   days before, Earlier as rows, the Friday email) and one story's page (the
   plate, the reading column, the source row, the tags, more from the
   region). Covers /news and /news/{id}.

   Left out: the chrome (the shared sheet's and the shared components'), the
   ground and the type (the shared sheet's), and the mock's own black strips,
   which name the pages inside it and are not the design.

   Built by scratchpad/design-2026/build-news-2026.py - do not edit by hand.
                                                                          */
.h2 em,h1 em,h2 em{font-family:var(--script);font-style:italic;font-weight:500;font-size:1.12em;letter-spacing:0}
.band{padding:clamp(56px,9vh,110px) 0}
.btn.quiet:hover{background:var(--ink);color:var(--paper)}
/* the front: the date, the words, the week on the map */
.top{padding:clamp(48px,8vh,96px) 0 clamp(28px,4vh,44px)}
.top .in{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);gap:clamp(32px,6vw,110px);align-items:start}
.top h1{font-family:var(--face);font-weight:400;font-size:min(clamp(42px,5.6vw,84px), 28px + (clamp(42px,5.6vw,84px) - 28px) * 0.6);line-height:1;letter-spacing:-.012em}
.top .date{margin-top:18px;font-family:var(--serif);font-style:italic;font-size:clamp(18px,1.6vw,22px);color:var(--ink)}
.top .date b{font-weight:400;font-style:normal;font-family:var(--sans);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--forest);margin-right:12px}
.words{display:flex;flex-wrap:wrap;gap:6px clamp(18px,2.4vw,34px);padding-bottom:14px;border-bottom:1px solid var(--stone-2)}
.words button{font-family:var(--face);font-size:min(clamp(20px,2vw,28px), 28px + (clamp(20px,2vw,28px) - 28px) * 0.6);line-height:1.2;color:var(--ink-35);transition:color .25s;padding:2px 0}
.words button:hover{color:var(--ink-75)}
.words .on{color:var(--ink)}
.words + .words{margin-top:14px}
.words .lab-w{flex:0 0 100%;font-family:var(--sans);font-size:9.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-55);margin-bottom:-4px}
.top .wordsets{margin-top:clamp(24px,4vh,36px)}
.map .scot{width:100%;height:auto;max-width:300px;margin-left:auto}
.scot .cm-land path,.scot .cm-land{fill:var(--stone)}
.scot .dot circle{fill:var(--forest);stroke:var(--paper);stroke-width:1.5}
.map .cap{margin-top:10px;font-family:var(--serif);font-style:italic;font-size:15px;color:var(--ink-75);text-align:right}
@media(max-width:900px){.top .in{grid-template-columns:1fr}.map .scot{margin-left:0;max-width:220px}.map .cap{text-align:left}}
/* the day: one story leads, the rest as cards */
.lead{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(24px,4vw,60px);align-items:end;margin-bottom:clamp(32px,5vh,56px)}
.lead .ph{display:block;aspect-ratio:var(--wide);overflow:hidden;background:var(--stone-2)}
.lead .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.lead .ph:hover img{transform:scale(1.035)}
.lead h2{font-family:var(--face);font-weight:400;font-size:min(clamp(30px,3.4vw,50px), 28px + (clamp(30px,3.4vw,50px) - 28px) * 0.6);line-height:1.04;letter-spacing:-.01em;text-wrap:balance}
.lead p{margin-top:16px;font-family:var(--serif);font-size:clamp(17px,1.4vw,19px);line-height:1.62;color:var(--ink-75);text-wrap:pretty}
.lead .more{display:inline-block;margin-top:16px;font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--ink-35)}
@media(max-width:900px){.lead{grid-template-columns:1fr}}
.picks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,3vh,40px) clamp(16px,2vw,28px)}
.pick{display:flex;flex-direction:column;min-width:0}
.pick .ph{display:block;aspect-ratio:var(--wide);overflow:hidden;background:var(--stone-2)}
.pick .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.pick .ph:hover img{transform:scale(1.035)}
.pick .tx{padding-top:14px}
.pick .k{display:block;margin-bottom:8px;font-family:var(--sans);font-size:9.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-55)}
.pick h3{font-family:var(--face);font-weight:400;font-size:clamp(19px,1.5vw,22px);line-height:1.15;text-wrap:balance}
.pick h3 a:hover{color:var(--moss)}
.pick p{margin-top:8px;font-family:var(--serif);font-size:15.5px;line-height:1.55;color:var(--ink-75)}
@media(max-width:1100px){.picks{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.picks{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.picks{grid-template-columns:1fr}}
.day{padding:clamp(40px,6vh,64px) 0}
.day:nth-of-type(even){background:var(--stone)}
.day .head{margin-bottom:clamp(20px,3vh,28px)}
.day .h2{font-size:min(clamp(26px,2.4vw,34px), 28px + (clamp(26px,2.4vw,34px) - 28px) * 0.6)}
/* older, as rows */
.rows{columns:2;column-gap:clamp(28px,4vw,72px)}
.row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;break-inside:avoid;padding:12px 0;border-top:1px solid var(--stone-2)}
.row .d{font-family:var(--sans);font-size:9.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-55);padding-top:6px}
.row .t{font-family:var(--face);font-size:clamp(18px,1.5vw,21px);line-height:1.15}
.row .r{grid-column:2;font-family:var(--serif);font-style:italic;font-size:14.5px;color:var(--ink-55)}
.row:hover .t{color:var(--moss)}
@media(max-width:900px){.rows{columns:1}}
/* the story's own page */
.story .top-s{padding:clamp(40px,6vh,64px) 0 0}
.story h1{font-family:var(--face);font-weight:400;font-size:min(clamp(34px,4.2vw,60px), 28px + (clamp(34px,4.2vw,60px) - 28px) * 0.6);line-height:1.04;letter-spacing:-.01em;max-width:20ch;text-wrap:balance}
.story .meta{margin-top:16px;font-family:var(--serif);font-style:italic;font-size:17px;color:var(--ink-75)}
.story .plate{max-width:calc(var(--col) + 18rem);margin:clamp(32px,5vh,48px) auto 0;padding:0 var(--edge)}
.story .plate img{width:100%;aspect-ratio:var(--wide);object-fit:cover;background:var(--stone-2)}
.story .plate figcaption{margin-top:12px;font-family:var(--sans);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-75)}
.col{max-width:var(--col);margin:0 auto;padding:clamp(40px,6vh,64px) clamp(20px,5vw,24px) 0}
.col p{font-family:var(--serif);font-size:clamp(19px,1.55vw,22px);line-height:1.72;hyphens:auto;-webkit-hyphens:auto;hyphenate-limit-chars:8 4 4;text-wrap:pretty}
.col p + p{margin-top:24px}
.col .src{margin-top:28px;padding-top:20px;border-top:1px solid var(--stone-2);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.col .src span{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--ink-75)}
.col .tags{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}
.col .tags a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid var(--ink);font-family:var(--serif);font-size:15px}
.col .tags a:hover{background:var(--ink);color:var(--paper)}
.signup .in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(32px,5vw,90px);align-items:center}
.signup h2{font-family:var(--face);font-weight:400;font-size:min(clamp(32px,3.6vw,52px), 28px + (clamp(32px,3.6vw,52px) - 28px) * 0.6);line-height:1.05;color:#fff;max-width:16ch;text-wrap:balance}
.signup p{margin-top:14px;font-family:var(--serif);font-size:17px;max-width:46ch}
.signup form{display:flex;gap:10px;flex-wrap:wrap}
.signup input{min-width:260px;border:1px solid rgba(241,237,232,.55);background:transparent;color:var(--on-forest);padding:0 16px;min-height:50px;font-family:var(--serif);font-size:16px}
@media(max-width:820px){.signup .in{grid-template-columns:1fr}}
@media(max-width:560px){.btns .btn{flex:1 1 100%}}

/* ---- what app.css says about the plate's caption, undone ----

   app.css - the 2023 design, compiled into the bundle and served before this
   sheet - carries `.plate figcaption{padding:10px 2px 0;text-align:right}`
   from the interview page, where the credit sat under the right edge of a
   picture. The redrawn story puts everything on one left edge and the mock
   computes `start`. Measured on both rather than decided, and probe.js is
   what found it.                                                          */
.story .plate figcaption{text-align:start}

/* ---- what app.css says about the map, undone ----

   Measured on the mock: its svg is inline, and app.css's reset makes every
   svg a block. Four pixels of baseline under the outline, which is what the
   caption is spaced from.                                                */
.map .scot{display:inline}

/* ---- one story, redrawn 6 September, from news-story.html ----

   Everything between the mock's own story markers, in its order. It
   comes after the front page's rules, so where the two mocks name the
   same thing this one decides.                                     */
/* the story: one column, one left edge */
.story{padding:clamp(40px,6vh,64px) 0 clamp(56px,9vh,110px)}
.st{max-width:calc(var(--col) + 18rem);margin:0 auto}
.story h1{font-family:var(--face);font-weight:400;font-size:min(clamp(34px,4.4vw,62px), 28px + (clamp(34px,4.4vw,62px) - 28px) * 0.6);line-height:1.04;letter-spacing:-.01em;max-width:18ch;text-wrap:balance}
.story .meta{margin-top:16px;font-family:var(--serif);font-style:italic;font-size:17px;color:var(--ink-75)}
.story .plate{margin:clamp(32px,5vh,48px) 0 0}
.story .plate img{width:100%;aspect-ratio:var(--wide);object-fit:cover;background:var(--stone-2)}
.story .plate figcaption{margin-top:12px;font-family:var(--sans);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-75)}
.body{padding-top:clamp(40px,6vh,64px)}
.col{max-width:var(--col)}
.col p{font-family:var(--serif);font-size:clamp(19px,1.55vw,22px);line-height:1.72;hyphens:auto;-webkit-hyphens:auto;hyphenate-limit-chars:8 4 4;text-wrap:pretty}
.col p + p{margin-top:24px}
.col .src{margin-top:32px;padding-top:22px;border-top:1px solid var(--stone-2);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.col .src span{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--ink-75)}
/* going there: the guide standing, four from it */
.going-g{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);gap:clamp(24px,3vw,48px);align-items:stretch}
.guide{position:relative;display:block;min-height:420px;overflow:hidden;background:var(--stone-2)}
.guide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.guide:hover img{transform:scale(1.035)}
.guide .gt{position:absolute;left:0;right:0;bottom:0;padding:120px 28px 28px;background:linear-gradient(to top,rgba(65,64,66,.82),rgba(65,64,66,.3) 60%,transparent);color:var(--paper)}
.guide .k{display:block;font-family:var(--sans);font-size:9.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:rgba(251,249,246,.75);margin-bottom:10px}
.guide b{display:block;font-family:var(--face);font-weight:400;font-size:min(clamp(34px,3.4vw,48px), 28px + (clamp(34px,3.4vw,48px) - 28px) * 0.6);line-height:1}
.guide i{display:block;margin-top:10px;font-family:var(--serif);font-style:italic;font-size:16px;color:rgba(251,249,246,.85)}
.guide .go{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 22px;margin-top:18px;font-family:var(--sans);font-style:normal;font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;background:var(--paper);color:var(--forest)}
.picks.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.picks.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.going .pick .ph{aspect-ratio:var(--wide)}
@media(max-width:900px){.going-g{grid-template-columns:1fr}.guide{min-height:320px}}
@media(max-width:700px){.picks,.picks.two,.picks.three{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.picks,.picks.two,.picks.three{grid-template-columns:1fr}}
/* the magazine, standing */
.printed .in{display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);gap:clamp(32px,6vw,110px);align-items:center}
.obj{position:relative;max-width:340px}
.cov{display:block;position:relative;aspect-ratio:1000/1330;overflow:hidden;background:var(--stone-2);box-shadow:0 40px 80px -30px rgba(0,0,0,.5)}
.cov img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.folio{position:absolute;left:-14px;bottom:28px;background:var(--paper);color:var(--forest);font-family:var(--sans);font-size:9.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;padding:10px 14px}
.printed h2{font-family:var(--face);font-weight:400;font-size:min(clamp(36px,4.4vw,66px), 28px + (clamp(36px,4.4vw,66px) - 28px) * 0.6);line-height:1.02;letter-spacing:-.01em;text-wrap:balance;color:#fff}
.printed h2 em{font-family:var(--script);font-style:italic;font-weight:500;font-size:1.12em}
.printed p{margin-top:22px;font-family:var(--serif);font-size:clamp(17px,1.4vw,19.5px);line-height:1.62;max-width:52ch}
.printed .btns{margin-top:26px}
.reads{margin-top:32px;padding-top:22px;border-top:1px solid rgba(241,237,232,.25)}
.reads .kick{margin-bottom:10px}
.reads a{display:block;padding:8px 0;font-family:var(--face);font-size:19px;line-height:1.2;color:var(--on-forest)}
.reads a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
@media(max-width:820px){.printed .in{grid-template-columns:1fr}.obj{max-width:240px}}
@media(max-width:560px){.btns .btn{flex:1 1 100%}}

/* ---- THE EVENTS PAGE, A DAY AT A TIME (events-days-css.py) ---- */
.evn-page{--evn-cols:3;--evn-ground:var(--paper);--edge:clamp(16px,3vw,48px);--stone:#E4DED9;--oat:#F2EEE6;--moss:#414042;--bracken:#682114;--ink-75:rgba(65,64,66,.75);--ink-55:rgba(65,64,66,.55);--rule:rgba(65,64,66,.12)}
.evn-page .finder-wrap{position:relative;z-index:6;margin-top:-64px}
.evn-page .finder{max-width:1400px;margin:0 auto;padding:0 var(--edge)}
.evn-page .finder .row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;background:var(--paper);box-shadow:0 30px 80px rgba(65,64,66,.22);padding:0;border:0;gap:0}
.evn-page .finder .f{display:flex;flex-direction:column;justify-content:center;gap:5px;height:88px;padding:0 clamp(18px,2vw,28px);text-align:left;transition:background .25s}
.evn-page .finder .f:hover, .evn-page .finder .f.open{background:var(--stone)}
.evn-page .finder .f small{font-family:var(--sans);font-size:9.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-75)}
.evn-page .finder .f b{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(17px,1.4vw,20px);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.evn-page .finder .go{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:150px;height:88px;padding:0 clamp(22px,2.4vw,40px);background:var(--forest);color:var(--paper);font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;transition:background .22s}
.evn-page .finder .go:hover{background:var(--moss)}
.evn-page .finder .go i{font-family:var(--serif);font-style:italic;font-weight:400;font-size:14.5px;letter-spacing:0;text-transform:none;color:var(--on-forest-55)}
.evn-page .finder .f .x{display:none}
.evn-page .finder .f.set small::after{content:" · change";letter-spacing:.1em;text-transform:none;font-family:var(--serif);font-style:italic;font-size:12px;color:var(--ink-55)}
.evn-page .evn-at{font:600 13px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-75);margin:0}
.evn-page /* the hero: our film, .evn-page the words at its foot */
.evn-hero{position:relative;height:var(--evn-hero,64vh);min-height:380px;overflow:hidden;background:var(--ink)}
.evn-page .evn-hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.evn-page .evn-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,14,.7),rgba(8,10,14,.08) 62%)}
.evn-page .evn-hero-in{position:absolute;z-index:2;left:0;right:0;bottom:96px;max-width:1400px;margin:0 auto;padding:0 var(--edge);color:#fff}
.evn-page .evn-hero-in .evn-at{color:rgba(255,255,255,.85)}
.evn-page .evn-hero-h{margin:12px 0 0;font:400 min(clamp(44px,6vw,92px), 28px + (clamp(44px,6vw,92px) - 28px) * 0.6)/.98 var(--face);letter-spacing:-.015em}
.evn-page .evn-credit{position:absolute;z-index:2;right:var(--edge);bottom:84px;font:500 11px var(--sans);color:rgba(255,255,255,.6)}
.evn-page .evn-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.evn-page .evn-popt{display:flex;flex-direction:column;justify-content:center;gap:6px;min-height:76px;padding:18px 22px;text-align:left;cursor:pointer;
  background:#fff;border:1px solid rgba(65,64,66,.08);color:var(--ink);font:400 19px/1.2 var(--face);transition:background .2s,border-color .2s}
.evn-page .evn-popt b{font-weight:400}
.evn-page .evn-popt span{font:italic 400 14px/1.3 var(--serif);color:var(--ink-55)}
.evn-page .evn-popt:hover{background:var(--oat);border-color:rgba(65,64,66,.16)}
.evn-page .evn-popt.on{background:var(--forest);border-color:var(--forest);color:var(--paper)}
.evn-page .evn-popt.on span{color:rgba(251,249,246,.7)}
.evn-page .evn-popt.on b::after{content:'  \2713';font:600 14px var(--sans)}
.evn-page .evn-when{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(24px,3vw,48px);align-items:start}
.evn-page .evn-quick{grid-template-columns:1fr 1fr}
.evn-page .evn-cals{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.evn-page .cal .mh{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.evn-page .cal .mh h3{margin:0;font:400 24px/1 var(--face)}
.evn-page .cal .mh h3 span{margin-left:8px;font:italic 400 16px var(--serif);color:var(--ink-55)}
.evn-page .cal .sq{display:flex;gap:6px}
.evn-page .cal .sq button{width:40px;height:40px;border:1px solid var(--rule);background:none;cursor:pointer;display:grid;place-items:center}
.evn-page .cal .sq button:hover{background:var(--paper)}
.evn-page .cal .sq button:disabled{opacity:.25;cursor:default}
.evn-page .cal .sq svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}
.evn-page .cal .dow, .evn-page .cal .days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.evn-page .cal .dow{margin-bottom:6px}
.evn-page .cal .dow span{text-align:center;font:600 11px var(--sans);letter-spacing:.12em;color:var(--ink-55)}
.evn-page .cal .days button{aspect-ratio:1;font:400 15px var(--serif);border:0;cursor:pointer;padding:0;background:var(--stone);color:var(--ink)}
.evn-page .cal .days button:hover{background:#fff}
.evn-page .cal .days .pad{visibility:hidden}
.evn-page .cal .days .past{background:transparent;color:var(--ink-55);cursor:default}
.evn-page .cal .days .today{box-shadow:inset 0 0 0 1px var(--ink)}
.evn-page .cal .days .in{background:#C08C3D;color:#FBF9F6}
.evn-page .cal .days .from, .evn-page .cal .days .to{background:#C08C3D;color:#FBF9F6}
.evn-page .evn-cal-go{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--rule);padding-top:18px}
.evn-page .evn-cal-go span{font:italic 400 17px var(--serif);color:var(--ink-75)}
.evn-page .evn-cal-go .go{display:inline-flex;align-items:center;height:52px;padding:0 30px;border:0;background:var(--forest);color:var(--paper);font:600 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
.evn-page .evn-cal-go .go:hover{background:var(--moss)}
.evn-page .evn-cal-go .go:disabled{opacity:.4;cursor:default}
.evn-page /* the days */
.evn-stage{background:var(--evn-ground);padding:56px 0 100px}
.evn-page .evn-in{max-width:1400px;margin:0 auto;padding:0 var(--edge)}
.evn-page .evn-day{margin-top:56px}
.evn-page .evn-day:first-child{margin-top:0}
.evn-page .evn-day-h{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--ink);padding-bottom:12px;margin-bottom:20px}
.evn-page .evn-day-h h2{margin:0;font:400 min(clamp(34px,3.4vw,52px), 28px + (clamp(34px,3.4vw,52px) - 28px) * 0.6)/1 var(--face)}
.evn-page .evn-day-h span{font:italic 400 18px var(--serif);color:var(--ink-75)}
.evn-page .evn-cards{display:grid;grid-template-columns:repeat(var(--evn-cols),minmax(0,1fr));gap:14px}
.evn-page .evn-more{margin-top:16px;font:600 12px var(--sans);letter-spacing:.16em;text-transform:uppercase;background:none;border:0;border-bottom:1px solid var(--ink);padding:0 0 3px;cursor:pointer}
.evn-page /* the featured, .evn-page as Jack liked them: a photograph beside the words, .evn-page on forest */
.evn-feat{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);background:var(--forest);color:#fff;text-decoration:none;margin-bottom:14px}
.evn-page .evn-feat img{display:block;width:100%;height:100%;min-height:300px;object-fit:cover}
.evn-page .evn-feat > div{padding:clamp(24px,3vw,44px);display:flex;flex-direction:column;justify-content:center;gap:12px}
.evn-page .evn-feat .evn-at{color:#C08C3D}
.evn-page .evn-feat h3{margin:0;font:400 min(clamp(28px,2.6vw,40px), 28px + (clamp(28px,2.6vw,40px) - 28px) * 0.6)/1.08 var(--face)}
.evn-page .evn-feat p{margin:0;color:rgba(255,255,255,.82)}
.evn-page .evn-feat .evn-place{color:rgba(255,255,255,.7)}
.evn-page .evn-cards .evn-feat{grid-column:span 2;margin:0}
.evn-page /* every card */
.evn-card{background:#fff;border:1px solid var(--rule);text-decoration:none;color:var(--ink);display:flex;flex-direction:column;transition:border-color .2s,transform .2s}
.evn-page .evn-card:hover{border-color:var(--ink)}
.evn-page .evn-card h3{margin:0;font:400 22px/1.18 var(--face)}
.evn-page .evn-card .evn-s{margin:0;font-size:15px;line-height:1.5;color:var(--ink-75)}
.evn-page .evn-place{font:600 11px/1.35 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-75)}
.evn-page .evn-kind{font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--bracken)}
.evn-page .evn-time{font:400 min(34px, 28px + (34px - 28px) * 0.6)/1 var(--face);font-variant-numeric:tabular-nums}
.evn-page /* C1 time first */
.c1 .evn-card{padding:22px;gap:10px}
.evn-page .c1 .evn-card .evn-place{margin-top:auto;padding-top:10px}
.evn-page /* C2 ticket */
.c2 .evn-card{flex-direction:row}
.evn-page .c2 .evn-stub{flex:0 0 92px;border-right:1px dashed var(--rule);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:18px 8px;text-align:center}
.evn-page .c2 .evn-stub b{font:400 30px/1 var(--face)}
.evn-page .c2 .evn-stub i{font:600 10px/1.2 var(--sans);font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-75)}
.evn-page .c2 .evn-body{padding:18px 20px;display:flex;flex-direction:column;gap:7px;min-width:0}
.evn-page /* C3 title first */
.c3 .evn-card{padding:24px;gap:8px}
.evn-page .c3 .evn-card h3{font-size:26px}
.evn-page .c3 .evn-town{font:italic 400 17px var(--serif);color:var(--ink-75)}
.evn-page .c3 .evn-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;gap:12px}
.evn-page /* C4 wide */
.c4 .evn-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.evn-page .c4 .evn-card{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(0,.7fr);gap:18px;padding:20px;align-items:start}
.evn-page .c4 .evn-time{font-size:24px}
.evn-page .c4 .evn-right{display:flex;flex-direction:column;gap:8px;text-align:right}
.evn-page .c4 .evn-cards .evn-feat{grid-column:1 / -1}
.evn-page .evn-empty{color:var(--ink-75);font-style:italic}
.evn-page .evn-later{margin-top:48px;padding:16px 28px;border:0;background:var(--forest);color:var(--paper);font:600 12px var(--sans);letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.evn-page .evn-later:hover{background:var(--moss)}

/* the finder strip with Search as its first field; its panel boxes and the calendar's Those days */
.evn-page .evn-finder .finder .row{grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr)) auto}
.evn-page .evn-finder .finder .f{border:0;border-right:1px solid rgba(65,64,66,.12);background:none;cursor:pointer;font:inherit;color:inherit;min-width:0}
.evn-page .evn-finder .finder .f input{border:0;background:none;padding:0;width:100%;outline:none;font:italic 400 clamp(17px,1.4vw,20px)/1.2 var(--serif);color:var(--ink)}
.evn-page .evn-finder .finder .f input::placeholder{color:rgba(65,64,66,.55)}
.evn-page .evn-finder .finder .go{border:0;cursor:pointer}
.evn-page .evn-finder .panels{max-width:1400px;margin:0 auto;padding:0 var(--edge,clamp(16px,3vw,48px));position:relative}
.evn-page .evn-finder .panel{position:static;display:block;padding:clamp(28px,3vw,44px);background:var(--paper);box-shadow:0 30px 60px rgba(65,64,66,.14);border-top:1px solid rgba(65,64,66,.12)}
/* the hero sits under the site bar, as every hero on the site does, so the bar is glass over the film */
.evn-page .evn-hero{margin-top:calc(-1 * var(--bar, 76px))}
/* the calendar's arrows: the one not wanted on this month stays hidden, and the arrow is drawn in ink */
.evn-page .cal .sq button[hidden]{display:none}
.evn-page .cal .sq button svg{display:block;width:16px;height:16px;fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.evn-page .evn-stage{transition:opacity .2s}
.evn-page .evn-stage.busy{opacity:.55}
.evn-page .evn-pager{display:flex;gap:12px;margin-top:48px}
.evn-page .evn-later.quiet{background:none;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.evn-page .evn-later.quiet:hover{background:var(--ink);color:var(--paper)}
.evn-page .evn-card h3,.evn-page .evn-feat h3{text-wrap:balance}
/* the card, K8 "Even rows" (Jack's pick for the news, 3 October, and "yes" for the events): when or where and what as
   one grey line of small capitals, the headline, one paragraph; nothing ever cut short. The news page's own builder
   adds its three lines of headline room after this; an event's name is shorter, so two. */
.evn-page .evn-in:not([data-tr]) .evn-card{padding:26px;gap:12px}
.evn-page .evn-in:not([data-tr]) .evn-card .evn-right{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 5px}
.evn-page .evn-in:not([data-tr]) .evn-card .evn-time{font:600 11px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-55)}
.evn-page .evn-in:not([data-tr]) .evn-card .evn-kind{line-height:1.3;color:var(--ink-55)}
.evn-page .evn-in:not([data-tr]) .evn-card .evn-kind::before{content:'\00B7  '}
.evn-page .evn-in:not([data-tr]) .evn-card h3{font-size:22px;line-height:1.2;min-height:calc(2 * 1.2em)}
.evn-page .evn-in:not([data-tr]) .evn-card .evn-s{font-size:15px;line-height:1.55}
.evn-page .evn-in:not([data-tr]) .evn-card .evn-place{color:var(--ink-55)}
@media(max-width:900px){.evn-page .finder .row{grid-template-columns:1fr 1fr}.evn-page .finder .go{grid-column:1/-1;flex-direction:row;gap:14px;height:64px}}
@media (max-width:900px){.evn-page .evn-when, .evn-page .evn-cals{grid-template-columns:1fr}}
@media (max-width:1000px){.evn-page .evn-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.evn-page .evn-cards, .evn-page .c4 .evn-cards{grid-template-columns:1fr}.evn-page .evn-cards .evn-feat{grid-column:auto}.evn-page .evn-feat{grid-template-columns:1fr}.evn-page .c4 .evn-card{grid-template-columns:56px minmax(0,1fr)}.evn-page .c4 .evn-right{grid-column:2;text-align:left}}
@media (max-width:1000px){.evn-page .evn-finder .finder .row{grid-template-columns:1fr 1fr}.evn-page .evn-finder .finder .go{grid-column:1/-1}}
@media (max-width:640px){.evn-page .evn-in:not([data-tr]) .evn-card h3{min-height:0}}
/* ---- end: the events page, a day at a time ---- */

/* the news page: a lead headline is a sentence (build-news-2026.py) */
.evn-page .evn-feat h3{font-size:min(clamp(24px,2.1vw,32px), 28px + (clamp(24px,2.1vw,32px) - 28px) * 0.6);line-height:1.15}
/* a day of one story: the lead takes the whole row rather than leave a hole beside it */
.evn-page .evn-cards .evn-feat:only-child{grid-column:1/-1}
/* the card, K8 "Even rows" (Jack, 3 October): one grey line, the headline, one paragraph, rows the same shape */
.evn-page .evn-in:not([data-tr]) .evn-card{padding:26px;gap:12px}
.evn-page .evn-in:not([data-tr]) .evn-card .evn-right{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 5px}
.evn-page .evn-in:not([data-tr]) .evn-card .evn-time{font:600 11px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-55)}
.evn-page .evn-in:not([data-tr]) .evn-card .evn-kind{line-height:1.3;color:var(--ink-55)}
.evn-page .evn-in:not([data-tr]) .evn-card .evn-kind::before{content:'\00B7  '}
/* never cut a word: the headline holds three lines of room so paragraphs start level, and runs longer if it must */
.evn-page .evn-in:not([data-tr]) .evn-card h3{font-size:22px;line-height:1.2;min-height:calc(3 * 1.2em)}
.evn-page .evn-in:not([data-tr]) .evn-card .evn-s{font-size:15px;line-height:1.55}
/* one card to a row on a phone: nothing to line up with */
@media (max-width:640px){.evn-page .evn-in:not([data-tr]) .evn-card h3{min-height:0}}
