/* The home page, September 2026.

   region.html's own rules - what it says that _shared.css does not, in the
   mock's own order. The chrome is left to the shared sheet and the shared
   components; the bar's glass state is not, because the shared sheet has
   never carried it.

   Built by scratchpad/design-2026/build-region.py - do not edit by hand.
   Every at-rule is kept even when its contents look redundant: dropping one
   moves the ones around it.                                              */
/* What this design adds to the shared tokens. */
:root{--book:#414042}
.h2 em,h1 em,.big em{font-family:var(--script);font-style:italic;font-weight:500;font-size:1.12em;letter-spacing:0}
header.site.glass{background-color:transparent;color:#fff}
header.site.glass .flow a,header.site.glass .menu-word{color:#fff}
header.site.glass .flow a i{color:rgba(255,255,255,.85)}
header.site.glass .mk img{filter:invert(1) brightness(2)}
/* the hero */
.hero{position:relative;height:clamp(560px,84vh,920px);margin-top:calc(-1*var(--bar));overflow:hidden;background:var(--forest);color:#fff}
.hero > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:drift 16s linear both}
@keyframes drift{from{transform:scale(1)}to{transform:scale(1.05)}}
.hero .veil{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(20,24,20,.46) 0,rgba(20,24,20,.12) 30%,rgba(20,24,20,.14) 45%,rgba(20,24,20,.7) 100%)}
.hero .in{position:absolute;left:0;right:0;bottom:clamp(56px,9vh,96px)}
.hero h1{font-family:var(--face);font-weight:400;font-size:min(clamp(42px,6vw,88px), 28px + (clamp(42px,6vw,88px) - 28px) * 0.6);line-height:1;letter-spacing:-.012em;max-width:13ch;text-wrap:balance}
.hero .where{margin-top:20px;font-family:var(--serif);font-style:italic;font-size:clamp(17px,1.5vw,21px);line-height:1.45;max-width:54ch;color:rgba(255,255,255,.92)}
.hero .credit{position:absolute;right:var(--edge);bottom:clamp(56px,9vh,96px);font-family:var(--sans);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.hero .credit b{font-weight:600;color:#fff}
@media(max-width:820px){.hero .credit{display:none}}
.btn.quiet:hover{background:var(--ink);color:var(--paper)}
.forest .btn:hover{background:#fff;border-color:#fff}
/* sections */
.band{padding:clamp(56px,9vh,110px) 0}
.head .right{display:flex;align-items:center;gap:16px}
.arrows{display:flex;gap:8px}
.arrows button{width:46px;height:46px;display:grid;place-items:center;background:var(--forest);color:var(--paper);transition:background .2s,opacity .2s}
.arrows button:hover{background:var(--moss)}
.arrows button[disabled]{opacity:.3;cursor:default}
.arrows svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}
.rail{display:flex;gap:clamp(16px,2vw,28px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--edge);scrollbar-width:none;margin:0 calc(-1*var(--edge));padding:0 var(--edge);cursor:grab}
.rail > *{flex:0 0 clamp(240px,23vw,320px);scroll-snap-align:start}
.rail > .wide{flex-basis:clamp(300px,31.5vw,440px)}
.c{display:block;position:relative;aspect-ratio:var(--tall);overflow:hidden;background:var(--stone-2);color:#fff}
.c.wide{aspect-ratio:var(--wide)}
.c .sh{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6) 0,rgba(0,0,0,.16) 44%,rgba(0,0,0,0) 64%);pointer-events:none}
.c h3{font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.14;text-wrap:balance}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.grid4 .c h3{font-family:var(--face);font-size:min(clamp(22px,2vw,28px), 28px + (clamp(22px,2vw,28px) - 28px) * 0.6);line-height:1.08}
@media(max-width:1000px){.grid4{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.grid3{grid-template-columns:1fr}}
@media(max-width:560px){.grid4{grid-template-columns:1fr}}
/* the guide: the book, its contents, and the lede */
.guide .in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,110px);align-items:center}
.desk{position:relative;aspect-ratio:1.05;display:grid;place-items:center}
.contents{position:absolute;width:50%;aspect-ratio:148/190;right:0;top:6%;background:#fff;color:var(--ink);padding:9% 7%;transform:rotate(3deg);box-shadow:0 30px 60px -30px rgba(65,64,66,.35)}
.contents b{display:block;font-family:var(--face);font-weight:400;font-size:clamp(14px,1.3vw,18px);margin-bottom:12px}
.contents ol{list-style:none}
.contents li{display:flex;justify-content:space-between;gap:10px;font-family:var(--serif);font-size:clamp(10px,.95vw,13.5px);line-height:1.7;color:var(--ink-75)}
.contents li i{font-style:normal;color:var(--ink-35)}
.book{position:relative;width:56%;aspect-ratio:148/190;padding:8% 8% 7%;color:#fff;display:flex;flex-direction:column;box-shadow:0 40px 80px -30px rgba(65,64,66,.45);margin:0 auto 0 0;background:var(--book)}
.book::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:rgba(0,0,0,.12)}
.book .of{font-family:var(--sans);font-size:clamp(9px,.75vw,10.5px);font-weight:600;letter-spacing:.3em;text-transform:uppercase;opacity:.9}
.book .name{margin-top:10px;font-family:var(--face);font-weight:400;font-size:min(clamp(24px,2.8vw,42px), 28px + (clamp(24px,2.8vw,42px) - 28px) * 0.6);line-height:1;letter-spacing:-.01em}
.book .ph{margin-top:auto;aspect-ratio:var(--wide);overflow:hidden}
.book .ph img{width:100%;height:100%;object-fit:cover}
.book .foot{margin-top:12px;font-family:var(--sans);font-size:clamp(9px,.65vw,9.5px);font-weight:600;letter-spacing:.24em;text-transform:uppercase;opacity:.8}
.guide h2{font-family:var(--face);font-weight:400;font-size:min(clamp(36px,4.4vw,64px), 28px + (clamp(36px,4.4vw,64px) - 28px) * 0.6);line-height:1.02;letter-spacing:-.01em;text-wrap:balance}
.guide h2 em{font-family:var(--script);font-style:italic;font-weight:500;font-size:1.12em}
.guide p.lede{margin-top:22px;font-family:var(--serif);font-size:clamp(17px,1.4vw,19.5px);line-height:1.62;max-width:52ch;text-wrap:pretty}
.toc{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:10px clamp(16px,2vw,32px)}
.toc a{display:flex;align-items:center;gap:14px;padding:6px 0}
.toc .n{width:40px;height:40px;flex:0 0 auto;display:grid;place-items:center;background:var(--forest);color:var(--paper);font-family:var(--face);font-size:15px;transition:background .2s}
.toc a:hover .n{background:var(--moss)}
.toc h3{font-family:var(--face);font-weight:400;font-size:clamp(18px,1.5vw,21px);line-height:1.1}
.toc i{display:block;font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink-55);margin-top:2px}
@media(max-width:900px){.guide .in{grid-template-columns:1fr}.desk{max-width:520px}.toc{grid-template-columns:1fr}}
/* the story: the written parts as a reading list */
.story .rows{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vh,32px) clamp(28px,4vw,72px)}
.row{display:grid;grid-template-columns:46px minmax(0,1fr);gap:18px;align-items:start}
.row .n{width:46px;height:46px;display:grid;place-items:center;background:var(--paper);color:var(--forest);font-family:var(--face);font-size:17px}
.row h3{font-family:var(--face);font-weight:400;font-size:min(clamp(22px,2vw,28px), 28px + (clamp(22px,2vw,28px) - 28px) * 0.6);line-height:1.1;color:#fff;transition:color .3s}
.row:hover h3{color:var(--on-forest-55)}
.row p{margin-top:8px;font-family:var(--serif);font-size:16.5px;line-height:1.6;color:var(--on-forest);max-width:48ch}
.row .mk{display:block;margin-top:8px;font-family:var(--sans);font-size:9.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--on-forest-55)}
@media(max-width:900px){.story .rows{grid-template-columns:1fr}}
/* one thing we know, over a photograph */
.say{position:relative;min-height:min(66vh,600px);display:grid;place-items:center;overflow:hidden;background:var(--forest);color:#fff;text-align:center}
.say img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.8}
.say .veil{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(20,24,20,.3),rgba(20,24,20,.6))}
.say blockquote{position:relative;max-width:30ch;padding:clamp(64px,10vh,120px) var(--edge);font-family:var(--serif);font-style:italic;font-weight:400;font-size:min(clamp(26px,3vw,44px), 28px + (clamp(26px,3vw,44px) - 28px) * 0.6);line-height:1.28;letter-spacing:-.01em;text-wrap:balance}
.say cite{display:block;margin-top:28px;font-style:normal;font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.85)}
/* good to know */
.know .qs{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vh,40px) clamp(28px,4vw,72px)}
.q h3{font-family:var(--face);font-weight:400;font-size:min(clamp(21px,1.9vw,26px), 28px + (clamp(21px,1.9vw,26px) - 28px) * 0.6);line-height:1.12}
.q p{margin-top:10px;font-family:var(--serif);font-size:16.5px;line-height:1.6;color:var(--ink-75);max-width:52ch}
@media(max-width:900px){.know .qs{grid-template-columns:1fr}}
/* the magazine */
.mag .in{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(32px,6vw,110px);align-items:center}
.mag .cov{position:relative;aspect-ratio:var(--tall);overflow:hidden;background:var(--stone-2);max-width:400px}
.mag .cov img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mag 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}
.mag h2 em{font-family:var(--script);font-style:italic;font-weight:500;font-size:1.12em}
.mag p{margin-top:22px;font-family:var(--serif);font-size:clamp(17px,1.4vw,19.5px);line-height:1.62;max-width:46ch}
.mag .btns{margin-top:26px}
@media(max-width:820px){.mag .in{grid-template-columns:1fr}}
/* your own guidebook to this region */
.maker .in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(32px,5vw,90px);align-items:center}
.maker 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;max-width:14ch;text-wrap:balance;color:#fff}
.maker h2 em{font-family:var(--script);font-style:italic;font-weight:500;font-size:1.12em}
.maker p{margin-top:18px;font-family:var(--serif);font-size:18px;line-height:1.6;max-width:46ch}
.maker .fine{margin-top:12px;font-style:italic;font-size:15.5px;color:var(--on-forest-55)}
@media(max-width:820px){.maker .in{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}

/* Put back what the mock had by default, where another sheet in this app
   uses the same class name for something else. Nothing here is a design
   decision - see mend() in css_extract_lib.py for what each line is
   defending against.                                                     */
.contents{display:block}
