/* Ridgeline — an alternate for review. One typeface, one drawing (the shape of the writing), everything else is type. */
@font-face{font-family:Alegreya;src:url(assets/alegreya-latin-wght-normal.woff2) format("woff2");font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:Alegreya;src:url(assets/alegreya-latin-wght-italic.woff2) format("woff2");font-weight:400 900;font-style:italic;font-display:swap}

:root{
  --sky:#E2E9EC;       /* entrance ground: pale, cool, overcast */
  --paper:#FBFBF9;     /* reading ground */
  --ink:#17212C;       /* text and the nearest ridge */
  --slate:#4B5A66;     /* secondary text (7:1 on paper) */
  --far:#7B8F9D;       /* unread stretch of a ridge (3.3:1 on paper) */
  --mid:#6E8494;
  --lichen:#B7C131;    /* the one bright colour: what you are pointing at */
  --measure:40rem;       /* ~75 characters of Alegreya at 21px */
  --body:1.3125rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Alegreya,"Iowan Old Style",Georgia,serif;font-size:1.125rem;line-height:1.5;font-variant-numeric:oldstyle-nums proportional-nums}
body.home{background:var(--sky)}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}
a:hover{text-decoration-thickness:2px}
a:focus-visible,button:focus-visible,main:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
main:focus{outline:none}
p,h1,h2,figure{margin:0}
img{display:block;max-width:100%;height:auto}
.skip{position:absolute;left:1rem;top:-10rem;background:var(--paper);padding:.75rem 1rem;z-index:30}
.skip:focus{top:1rem}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Header: plain, one line. */
.site-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem 2rem;flex-wrap:wrap;padding:1.75rem clamp(1rem,4vw,3.5rem) 0;max-width:84rem;margin:0 auto}
.name{font-size:1.375rem;font-weight:500;text-decoration:none}
.site-head nav{display:flex;gap:1.5rem}
.site-head nav a{padding:.5rem 0;text-decoration:none}
.site-head nav a:hover,.site-head nav a[aria-current]{text-decoration:underline}

/* Entrance: the range. */
.range-wrap{max-width:84rem;margin:0 auto;padding:clamp(2.5rem,7vh,5rem) clamp(1rem,4vw,3.5rem) 0}
.range-box{position:relative}
.range{display:block;width:100%;height:auto;overflow:visible}
.range .layer{transition:fill .25s ease}
.range .layer-0{fill:#2C4050}
.range .layer-1{fill:#6A8090}
.range .layer-2{fill:#B2C1CA}
.range .is-on .layer{fill:var(--lichen)}
.summit{position:absolute;transform:translate(-1.25rem,calc(-100% - .9rem));display:flex;flex-direction:column;text-decoration:none;line-height:1.15;padding:.25rem .4rem;max-width:16rem}
.summit::after{content:"";position:absolute;left:1.25rem;bottom:-.8rem;width:1px;height:.7rem;background:currentColor}
.summit-title{font-size:clamp(1.05rem,1.8vw,1.5rem);font-weight:500}
.summit-date{font-size:.9375rem;color:var(--slate)}
.summit:hover .summit-title,.summit:focus-visible .summit-title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
.range-note{max-width:34rem;margin:1.1rem 0 0;font-size:1rem;color:var(--slate);font-style:italic}

/* Entrance: the pieces, each opening with its complete first paragraph. */
.entries{max-width:84rem;margin:0 auto;padding:clamp(3.5rem,9vh,6rem) clamp(1rem,4vw,3.5rem) 0}
.entry{display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,var(--measure));gap:.5rem 3rem;padding:0 0 4.5rem}
.entry-date{font-size:1rem;color:var(--slate);padding-top:.55rem}
.entry h2{font-size:clamp(1.9rem,3.2vw,2.6rem);line-height:1.1;font-weight:500;margin-bottom:1.1rem}
.entry h2 a{text-decoration:none}
.entry h2 a:hover{text-decoration:underline;text-decoration-thickness:2px}
.opening{font-size:var(--body);line-height:1.6}
.continue{margin-top:1rem}
.continue a{display:inline-block;padding:.35rem 0}

/* The person appears after the work, at a human size, like a jacket flap. */
.flap{max-width:84rem;margin:0 auto;padding:1rem clamp(1rem,4vw,3.5rem) 3rem;display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,var(--measure));gap:0 3rem;align-items:end}
.flap img{grid-column:2;width:11rem;aspect-ratio:1;object-fit:cover}
.flap p{grid-column:2;margin-top:.8rem}

.site-foot{max-width:84rem;margin:0 auto;padding:2rem clamp(1rem,4vw,3.5rem) 3rem;display:flex;gap:1.5rem}
.home .site-foot{padding-top:0}

/* Reading. */

.trail{position:fixed;top:0;left:0;right:0;z-index:10;background:var(--paper);padding:.55rem 0 .45rem;opacity:0;visibility:hidden;transition:opacity .2s ease}
.trail.is-shown{opacity:1;visibility:visible}
.trail-inner,.essay{max-width:84rem;margin:0 auto;padding-left:clamp(1rem,4vw,3.5rem);padding-right:clamp(1rem,4vw,3.5rem);display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,var(--measure)) minmax(0,1fr);column-gap:3rem}
.trail-svg{display:block;width:100%;height:auto;grid-column:2}
.essay{padding-top:clamp(3rem,9vh,5.5rem)}
.essay>*{grid-column:2}
.essay>.essay-date{grid-column:1;grid-row:1;color:var(--slate);font-size:1rem;padding-top:.9rem}
.essay>.shape{grid-column:2/4}
.essay h1{font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.05;font-weight:500;letter-spacing:-.01em}
.size{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .5rem;margin-top:1.6rem;font-size:.9375rem;color:var(--slate)}
.size span{margin-right:.4rem}
.size button{font:inherit;color:var(--ink);background:transparent;border:0;padding:.35rem .35rem;min-height:44px;cursor:pointer;text-decoration:none}
.size button:hover{text-decoration:underline;text-underline-offset:.3em}
.size button[aria-pressed=true]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.3em;font-weight:600}
.shape{margin:3rem 0 3.25rem}
.ridge{display:block;width:100%;height:auto;overflow:visible}
.ridge .unread,.trail-svg .unread,.mini .unread{fill:var(--far)}
.ridge .read,.trail-svg .read,.mini .read{fill:var(--ink)}
.questions circle{fill:var(--paper);stroke:var(--ink);stroke-width:1.6}
.ticks line{stroke:var(--mid);stroke-width:1.2}
.hits rect{fill:transparent;cursor:pointer}
.hits a:hover rect{fill:rgba(183,193,49,.28)}
.hits a:focus-visible{outline:none}
.hits a:focus-visible rect{fill:rgba(183,193,49,.4);stroke:var(--ink);stroke-width:2}
.shape figcaption{margin-top:.9rem;font-size:1rem;color:var(--slate);font-style:italic;max-width:32rem}
.prose{max-width:var(--measure);font-size:var(--body);line-height:1.62;hyphens:manual}
.prose p{margin:0 0 1.15em}
.prose p:target{box-shadow:-1.25rem 0 0 -1rem var(--lichen)}
.prose p{scroll-margin-top:4.5rem}
.size-1{--body:1.625rem;--measure:44rem}
.size-2{--body:2rem;--measure:48rem}
.essay-end{max-width:var(--measure);margin-top:4rem;padding-bottom:1rem}
.elsewhere{margin-top:3.5rem;display:flex;flex-direction:column;gap:2rem}
.next{display:grid;grid-template-columns:1fr;text-decoration:none;max-width:26rem}
.next .mini{width:100%;height:auto;margin-bottom:.6rem}
.next .mini .read{fill:var(--mid)}
.next-title{font-size:1.75rem;font-weight:500;line-height:1.15}
.next-date{color:var(--slate);font-size:1rem}
.next:hover .next-title,.next:focus-visible .next-title{text-decoration:underline;text-decoration-thickness:2px}
.next:hover .mini .read{fill:var(--lichen)}
.back{align-self:flex-start;padding:.35rem 0}

@media (max-width:760px){
  :root{--body:1.1875rem}
  .site-head{padding-top:1.1rem}
  .name{font-size:1.2rem}
  .site-head nav{gap:1.1rem}
  .range-wrap{padding-top:3.25rem}
  .summit{max-width:10rem}
  .summit-title{font-size:1rem}
  .summit-date{font-size:.8125rem}
  .entry,.flap,.essay,.trail-inner{grid-template-columns:1fr;gap:.25rem}
  .essay>*,.essay>.essay-date,.essay>.shape,.trail-svg{grid-column:1}
  .essay>.essay-date{grid-row:auto;padding-top:0}
  .entry-date{padding-top:0}
  .flap img,.flap p{grid-column:1}
  .size-1{--body:1.5rem;--measure:100%}
  .size-2{--body:1.875rem;--measure:100%}
  .trail-svg{height:1.4rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.trail,.site-head nav,.size,.hits,.site-foot{display:none}body{background:#fff}}

/* ── v2: the entrance as a landscape that keeps the visitor's hour ───────────────────────────── */
/* Day is the default with no script. Each light sets the sky, the three ridges, and the ink that sits on them. */
:root,.light-day{--sky-top:#B9CFDC;--sky-low:#E7EEF1;--l2:#9AAEBB;--l1:#6A8090;--l0:#2C4050;--on-sky:#17212C;--on-sky-2:#3F4E5A;--on-ground:#EEF3F5;--on-ground-2:#B9C8D1;--point:#C9D24A;--star:0}
.light-dawn{--sky-top:#BDB9D8;--sky-low:#F6D6C0;--l2:#C49AA8;--l1:#86698A;--l0:#3A3048;--on-sky:#221B2D;--on-sky-2:#4A3E55;--on-ground:#F6EEF2;--on-ground-2:#D2C2D4;--point:#F2BE72;--star:0}
.light-dusk{--sky-top:#222C50;--sky-low:#E38A68;--l2:#A8646F;--l1:#573F62;--l0:#201A2F;--on-sky:#FBEFE8;--on-sky-2:#E5CFC8;--on-ground:#F1E9EF;--on-ground-2:#C3B3C5;--point:#F4A261;--star:.35}
.light-night{--sky-top:#060B15;--sky-low:#172339;--l2:#2A3950;--l1:#1C293B;--l0:#0D141F;--on-sky:#E3E9F0;--on-sky-2:#A6B3C2;--on-ground:#DAE2EA;--on-ground-2:#98A7B7;--point:#C9D24A;--star:1}

body.home{background:var(--l0);color:var(--on-ground)}
.home .site-head{position:relative;z-index:2;color:var(--on-sky);max-width:none;background:var(--sky-top);margin:0;padding-bottom:.5rem;transition:background .6s ease}
.home .site-head nav a[aria-current]{text-decoration:underline}
.home .range-wrap{max-width:none;padding:0;background:linear-gradient(var(--sky-top) 0%,var(--sky-top) 12%,var(--sky-low) 92%,var(--l0) calc(100% - 3px))}
.home .range-box{padding-top:4.5rem}
.home .range{margin-bottom:-1px;height:clamp(15rem,38vw,36rem)}
.home .range .layer-0{fill:var(--l0)}
.home .range .layer-1{fill:var(--l1)}
.home .range .layer-2{fill:var(--l2)}
.home .range .is-on .layer{fill:var(--point)}
.home .range .layer{transition:fill .6s ease}
.home .range-wrap{transition:background .6s ease}
.stars{fill:#fff;opacity:var(--star);transition:opacity .6s ease}
.home .summit{color:var(--on-sky);text-shadow:0 0 .5rem var(--sky-top),0 0 .15rem var(--sky-top)}
.home .summit-date{color:var(--on-sky-2)}
.home a:focus-visible{outline-color:currentColor}
.home .ground{color:var(--on-ground)}
.note-row{max-width:84rem;margin:0 auto;padding:1.25rem clamp(1rem,4vw,3.5rem) 0;display:flex;justify-content:space-between;align-items:baseline;gap:1rem 3rem;flex-wrap:wrap}
.home .range-note{margin:0;color:var(--on-ground-2)}
.light{display:flex;align-items:baseline;gap:.2rem .15rem;flex-wrap:wrap;font-size:1rem;color:var(--on-ground-2)}
.light span{margin-right:.5rem}
.light button{font:inherit;color:var(--on-ground);background:none;border:0;padding:.4rem .45rem;min-height:44px;cursor:pointer}
.light button:hover{text-decoration:underline;text-underline-offset:.3em}
.light button[aria-pressed=true]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.3em;font-weight:600}
.light button:focus-visible{outline:3px solid currentColor;outline-offset:2px}
.home .entry-date{color:var(--on-ground-2)}
.home .entries{padding-top:clamp(3rem,8vh,5rem)}
.home .flap img{outline:1px solid color-mix(in srgb,var(--on-ground) 25%,transparent)}
.home .site-foot{color:var(--on-ground)}
.site-foot{flex-wrap:wrap}
@media (max-width:760px){
  .home .range-box{padding-top:4.5rem}
  .note-row{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){.home .range .layer,.home .range-wrap,.stars{transition:none}}

/* ── v3: photographs ─────────────────────────────────────────────────────────────────────────── */
.reel{padding:clamp(3rem,8vh,5rem) 0 0}
.reel-head{max-width:84rem;margin:0 auto;padding:0 clamp(1rem,4vw,3.5rem);display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,var(--measure)) minmax(0,1fr);column-gap:3rem}
.reel-head>*{grid-column:2}
.reel-head h2{font-size:clamp(1.9rem,3.2vw,2.6rem);line-height:1.1;font-weight:500;margin:0 0 .6rem}
.reel-note{color:var(--on-ground-2);margin:0}
.reel-head p a{display:inline-block;padding:.35rem 0;margin-top:.35rem}
.reel-track{scroll-padding-inline:clamp(1rem,4vw,3.5rem);list-style:none;margin:0;display:flex;gap:.9rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:1.75rem clamp(1rem,4vw,3.5rem) 1.25rem;scrollbar-width:thin;scrollbar-color:var(--on-ground-2) transparent}
.reel-track:focus-visible{outline:3px solid var(--on-ground);outline-offset:-3px}
.reel-track li{flex:0 0 auto;scroll-snap-align:start}
.reel-track figure{margin:0}
.reel-track img{display:block;height:clamp(13rem,32vw,27rem);width:auto;max-width:none}
figcaption{font-size:.9375rem;color:var(--on-ground-2);margin-top:.55rem}

/* The Mountains page: the photographs in the order they were taken; the year stays in the margin. */
.field .field-head{max-width:84rem;margin:0 auto;padding:clamp(3rem,9vh,5.5rem) clamp(1rem,4vw,3.5rem) 1rem;display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,1fr);column-gap:3rem}
.field .field-head>*{grid-column:2}
.field h1{font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.05;font-weight:500}
.field .field-head p{color:var(--on-ground-2);margin-top:.6rem}
.year{max-width:84rem;margin:0 auto;padding:2.5rem clamp(1rem,4vw,3.5rem) 1rem;display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,1fr);column-gap:3rem}
.year h2{grid-column:1;align-self:start;position:sticky;top:1.25rem;font-size:1.5rem;font-weight:500;color:var(--on-ground);margin:0}
.plates{grid-column:2;display:flex;flex-direction:column;gap:3.5rem}
.plate{margin:0}
.plate img{display:block;width:100%;height:auto}
.coffee{font-weight:600}
@media (max-width:760px){
  .reel-head,.field .field-head,.year{grid-template-columns:1fr}
  .reel-head>*,.field .field-head>*,.plates{grid-column:1}
  .year h2{position:static;margin-bottom:1.25rem}
  .plates{gap:2rem}
}

/* ── v4: the whole body of writing ───────────────────────────────────────────────────────────── */
.light-day,:root{--l3:#C4D1D9}
.light-dawn{--l3:#E0B9B9}
.light-dusk{--l3:#C98470}
.light-night{--l3:#34445C}
.home .range .layer-3{fill:var(--l3)}
.home .range .base{pointer-events:none}
.home .range a:hover .layer,.home .range a.is-on .layer{fill:var(--point)}
.year-group{max-width:84rem;margin:0 auto;padding:0 0 3.5rem;scroll-margin-top:1rem}
.year-h{max-width:84rem;font-size:clamp(1.5rem,2.4vw,2rem);font-weight:500;margin:0 0 1.75rem;padding-top:1rem;border-top:1px solid color-mix(in srgb,var(--on-ground) 22%,transparent);display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,1fr);column-gap:3rem}
.year-h span{font-size:1rem;color:var(--on-ground-2);align-self:baseline;font-weight:400}
.entry h3{font-size:clamp(1.9rem,3.2vw,2.6rem);line-height:1.1;font-weight:500;margin:0 0 .6rem}
.entry h3 a{text-decoration:none}
.entry h3 a:hover{text-decoration:underline;text-decoration-thickness:2px}
.entry-sub,.essay-sub{font-style:italic;color:var(--on-ground-2);margin:0 0 1rem;font-size:1.125rem}
.essay-sub{color:var(--slate);margin-top:.7rem;font-size:1.3rem}
.year-list{display:flex;flex-direction:column}
.piece{display:grid;grid-template-columns:minmax(8rem,14rem) 9rem minmax(0,1fr);grid-template-rows:auto auto;column-gap:3rem;align-items:baseline;text-decoration:none;padding:.9rem 0;border-top:1px solid color-mix(in srgb,var(--on-ground) 10%,transparent)}
.piece:first-child{border-top:0}
.piece-date{grid-row:1/3;color:var(--on-ground-2);font-size:1rem}
.piece-shape{grid-row:1/3;align-self:center}
.piece-shape .mini{display:block;width:9rem;height:2.4rem}
.home .piece .mini .unread{fill:var(--on-ground-2)}
.home .piece:hover .mini .unread,.home .piece:focus-visible .mini .unread{fill:var(--point)}
.piece-title{font-size:1.5rem;font-weight:500;line-height:1.2}
.piece-sub{grid-column:3;color:var(--on-ground-2);font-style:italic;font-size:1.0625rem}
.piece:hover .piece-title,.piece:focus-visible .piece-title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
.next-rel{font-size:.9375rem;color:var(--slate);text-transform:uppercase;letter-spacing:.08em}
@media (max-width:760px){
  .year-h{grid-template-columns:1fr}
  .piece{grid-template-columns:5.5rem minmax(0,1fr);column-gap:1rem}
  .piece-date{grid-row:auto;grid-column:2;font-size:.9375rem}
  .piece-shape{grid-row:1/4;grid-column:1}
  .piece-shape .mini{width:5.5rem;height:1.8rem}
  .piece-title{grid-column:2;font-size:1.3rem}
  .piece-sub{grid-column:2}
}
.piece .questions,.piece .ticks{display:none}
@media (max-width:760px){.home .summit-date{display:none}.home .summit-title{font-size:.95rem}}
@media (max-width:760px){.home .summit-date{display:none}.home .summit-title{font-size:.95rem}}

/* ── Thanks: set like a book's acknowledgments, names running on, the group in the margin ───── */
.thx-group{max-width:84rem;margin:0 auto;padding:2.25rem clamp(1rem,4vw,3.5rem) 1.5rem;display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,1fr);column-gap:3rem;border-top:1px solid color-mix(in srgb,var(--on-ground) 14%,transparent)}
.thx-group h2{grid-column:1;font-size:1.25rem;font-weight:500;color:var(--on-ground-2);margin:.35rem 0 0}
.thx-list{grid-column:2;list-style:none;margin:0;padding:0;font-size:clamp(1.6rem,3.2vw,2.5rem);line-height:1.45;max-width:56rem}
.thx-list li{display:inline}
.thx-list li+li::before{content:"·";margin:0 .45em;color:var(--on-ground-2)}
.thx-list a{text-decoration-thickness:1px;text-underline-offset:.18em;text-decoration-color:color-mix(in srgb,var(--on-ground) 35%,transparent)}
.thx-list a:hover,.thx-list a:focus-visible{text-decoration-color:var(--point);text-decoration-thickness:2px}
.thx-what{font-size:.5em;font-style:italic;color:var(--on-ground-2);margin-left:.45em;white-space:nowrap}
.thx-list cite{font-style:italic}
@media (max-width:760px){.thx-group{grid-template-columns:1fr}.thx-group h2{margin-bottom:.6rem}.thx-list{grid-column:1}}
.thx-list li>a,.thx-list li>span:first-child{white-space:nowrap}
.thanks main{padding-bottom:3rem}
.thx-list li+li::before{content:none}
.thx-list li:not(:last-child)::after{content:"·";margin-left:.45em;color:var(--on-ground-2)}
