/* Codex: a page from a Leonardo notebook. The home page is one screen: a
   drawing machine, water-driven, draws the pine and then our work while
   notes in the margins name the principles. The other pages are folios
   of the same book and scroll as usual. */

:root {
  --paper: #eee1c4;
  --paper-hi: #f5ecd6;
  --fill: #f2e7cd;
  --sheet: #f6eedb;
  --ink: #33200f;
  --ink-2: #5b412c;
  --ink-3: rgba(58, 38, 22, .62);
  --rule: rgba(58, 38, 22, .2);
  --sanguine: #a3432a;
  --sanguine-2: #8a3521;
  --water: #3f4c52;
  --lamp: #5c7f45;
  --serif: 'Cormorant Garamond', 'EB Garamond', Georgia, serif;
  --sans: 'Geist', ui-sans-serif, system-ui, sans-serif;
  --mono: 'Geist Mono', ui-monospace, monospace;
  --hand: 'Homemade Apple', 'Segoe Script', cursive;
  --gut: clamp(16px, 3.4vw, 52px);
  --ease: cubic-bezier(.2, .7, .2, 1);
  --ease-io: cubic-bezier(.65, 0, .35, 1);
  color-scheme: light;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { background: var(--paper); color: var(--ink); -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  min-height: 100svh;
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  color: var(--ink);
  /* the paper: grain, foxing, and edges browned by handling. The foxing is a
     bitmap written here by design/proto/codex/gen-paper.cjs: as an SVG noise
     it was rendered again, whole, on every repaint in WebKit. */
  background:
    radial-gradient(130% 100% at 55% 42%, transparent 52%, rgba(112, 72, 28, .2) 100%),
    radial-gradient(34% 26% at 92% 8%, rgba(146, 96, 38, .1), transparent 70%),
    radial-gradient(28% 22% at 4% 94%, rgba(146, 96, 38, .12), transparent 70%),
    url("data:image/png;base64,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") 0 0 / 900px 900px,
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .3  0 0 0 0 .2  0 0 0 0 .1  0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.42'/></svg>"),
    var(--paper);
}
a { color: inherit; }
::selection { background: rgba(163, 67, 42, .22); }
:focus-visible { outline: 2px solid var(--sanguine); outline-offset: 3px; border-radius: 2px; }
.vh { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 60; padding: 10px 14px; background: var(--ink); color: var(--paper); font-size: 14px; text-decoration: none; border-radius: 3px; transition: top .2s; }
.skip:focus { top: 12px; }

/* ---------------------------------------------------------------- chrome */
.hdr { position: relative; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: clamp(14px, 2.4vh, 26px) var(--gut); }
.brand { display: inline-flex; color: var(--ink); }
.brand .pinova-logo { height: clamp(20px, 2.1vw, 25px); width: auto; }
.nav { display: flex; align-items: center; gap: clamp(14px, 2.2vw, 30px); font-size: 15px; letter-spacing: -.01em; }
.nav > a:not(.btn) { position: relative; text-decoration: none; color: var(--ink-2); padding: 6px 0; transition: color .2s; }
.nav > a:not(.btn)::after { content: ''; position: absolute; left: 0; right: 0; bottom: 1px; height: 1.5px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .45s var(--ease); border-radius: 2px; }
.nav > a:not(.btn):hover { color: var(--ink); }
.nav > a:not(.btn):hover::after, .nav > a[aria-current]::after { transform: scaleX(1); transform-origin: left; }
.nav > a[aria-current] { color: var(--ink); }

.btn { display: inline-flex; border: 0; align-items: center; justify-content: center; gap: 10px; min-height: 46px; padding: 0 20px; border-radius: 3px; font: 500 15px/1 var(--sans); letter-spacing: -.01em; text-decoration: none; cursor: pointer; white-space: nowrap; transition: background .25s, color .25s, box-shadow .25s, transform .35s var(--ease); }
.btn .arr { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transition: transform .35s var(--ease); }
.btn:hover .arr { transform: translateX(3px); }
.btn:active { transform: translateY(1px); }
.btn-ink { background: var(--ink); color: var(--paper-hi); box-shadow: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 8px 18px -14px rgba(58, 38, 22, .55); }
.btn-ink:hover { background: var(--sanguine-2); }
.btn-line { color: var(--ink); box-shadow: 0 0 0 1.25px rgba(58, 38, 22, .55) inset; background: rgba(245, 236, 214, .35); }
.btn-line:hover { box-shadow: 0 0 0 1.25px var(--ink) inset; background: rgba(245, 236, 214, .7); }
.hdr-cta { min-height: 40px; padding: 0 16px; font-size: 14px; }

/* The lamp's halo breathes out from 3px round the lamp to 5px and fades. It is
   a disc under the lamp that scales and fades, not a box-shadow: transform and
   opacity run on the compositor, where an animated shadow repainted the page
   on every frame for as long as the page was open. */
.lamp { position: relative; display: inline-block; width: 7px; height: 7px; vertical-align: 1px; margin-right: 8px; }
.lamp::before, .lamp::after { content: ''; position: absolute; border-radius: 50%; }
.lamp::before { inset: -3px; background: rgba(92, 127, 69, .16); }
.lamp::after { inset: 0; background: var(--lamp); }
@media (prefers-reduced-motion: no-preference) { .lamp::before { animation: lamp 2.8s ease-in-out infinite; } }
/* 17px across from 13px, and .06 alpha from .16 */
@keyframes lamp { 50% { transform: scale(1.3077); opacity: .375; } }

.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 clamp(14px, 2.4vh, 26px); font: 500 11.5px/1.2 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--sanguine); }
.eyebrow i { width: 26px; height: 1px; background: currentColor; opacity: .6; }

/* ---------------------------------------------------------------- home */
/* one screen tall; if the content ever needs more, the page scrolls */
.pg-home { height: 100svh; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.home { display: grid; grid-template-columns: minmax(340px, 33fr) 67fr; align-items: center; gap: clamp(8px, 1.6vw, 28px); min-height: 0; padding-left: var(--gut); outline: none; }
.intro { position: relative; z-index: 2; max-width: 540px; padding-bottom: 2vh; }
.hero-h { margin: 0; font: 400 clamp(42px, min(4.9vw, 8.4vh), 88px)/.94 var(--serif); letter-spacing: -.022em; color: var(--ink); text-wrap: balance; }
.hero-h .ln { display: block; overflow: hidden; padding: .02em 0 .1em; margin-bottom: -.1em; }
.hero-h .ln > span { display: inline-block; }
.hero-h em { font-style: italic; color: var(--sanguine); letter-spacing: -.03em; }
.lede { margin: clamp(14px, 2.4vh, 26px) 0 0; max-width: 34ch; font: 500 clamp(18px, 1.45vw, 21.5px)/1.42 var(--serif); color: var(--ink-2); text-wrap: pretty; }
.cta { display: flex; flex-wrap: wrap; gap: 10px 12px; margin-top: clamp(18px, 3.2vh, 34px); }

.recent { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "k a" "n a" "d a"; align-items: center; gap: 2px 18px; margin-top: clamp(20px, 4.2vh, 48px); padding: 14px 0 15px; max-width: 420px; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); text-decoration: none; transition: padding .45s var(--ease); }
.recent:hover { padding-left: 10px; }
.recent-k { grid-area: k; font: 500 10.5px/1.3 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.recent-n { grid-area: n; font: italic 500 25px/1.15 var(--serif); letter-spacing: -.01em; margin-top: 3px; }
.recent-d { grid-area: d; font-size: 14px; line-height: 1.45; color: var(--ink-3); }
.recent .arr { grid-area: a; width: 20px; height: 20px; fill: none; stroke: var(--ink); stroke-width: 1.5; stroke-linecap: round; transition: transform .45s var(--ease); }
.recent:hover .arr { transform: translateX(4px); }

/* the stage: the machine is fitted to whatever room is left, never scrolls */
.stage { position: relative; margin: 0; height: 100%; min-height: 0; container-type: size; display: grid; place-items: center end; overflow: hidden; }
.mc { position: relative; width: min(100cqw, 100cqh * 1.3333); aspect-ratio: 1200 / 900; container-type: inline-size; user-select: none; -webkit-user-select: none; }
.mc > svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.mc-live { will-change: transform; }

:is(.mc, .cx-art, .cx-plate-draw) .k { stroke: var(--ink); stroke-width: 2.05; }
:is(.mc, .cx-art, .cx-plate-draw) .m { stroke: var(--ink); stroke-width: 1.35; opacity: .92; }
:is(.mc, .cx-art, .cx-plate-draw) .t { stroke: var(--ink); stroke-width: .95; opacity: .66; }
:is(.mc, .cx-art, .cx-plate-draw) .g { opacity: .4; }
:is(.mc, .cx-art, .cx-plate-draw) .h { stroke: var(--ink); stroke-width: .85; opacity: .72; }
:is(.mc, .cx-art, .cx-plate-draw) .hd { stroke-width: 1; opacity: .8; }
:is(.mc, .cx-art, .cx-plate-draw) .c { stroke: var(--sanguine); stroke-width: 1; opacity: .34; }
:is(.mc, .cx-art, .cx-plate-draw) .cq { opacity: .2; }
:is(.mc, .cx-art, .cx-plate-draw) .fl { fill: var(--fill); stroke: none; }
:is(.mc, .cx-art, .cx-plate-draw) .ink { fill: var(--ink); stroke: none; }
.mc .sheet { fill: var(--sheet); stroke: none; }
.mc .pen { stroke: var(--ink); stroke-width: 1.6; }
.mc .pen.hatch { stroke-width: 1.05; opacity: .85; }
.mc .pen.dot { stroke-width: 1.3; }
.mc .rope { stroke: var(--ink); stroke-width: 3.8; }
.mc .rope-lay { stroke: var(--fill); stroke-width: 1.5; stroke-dasharray: 2.4 3.6; }
.mc .water { stroke: var(--water); stroke-width: 1.2; }
.mc .water.wv { stroke-dasharray: 26 9 7 11; opacity: .75; }
.mc .water.wf { stroke-dasharray: 22 6 5 8; stroke-width: 1.3; opacity: .9; }
.mc .water.ws { stroke-dasharray: 34 10 10 14; stroke-width: .95; opacity: .6; }
.mc .water.ed { stroke-width: 1; opacity: .7; }
.mc .bucket-water { stroke: var(--water); stroke-width: 1; opacity: .7; }
.js .mc:not(.is-live) .fig { visibility: hidden; }
html:not(.js) .fig + .fig { display: none; }

/* The page draws itself on arrival: lines, then hatching, then the fills
   that give the parts their bodies. */
.js .is-drawing .dw { stroke-dasharray: 1 1; stroke-dashoffset: 1; animation: cx-draw 1.25s var(--d, 0s) cubic-bezier(.5, .05, .3, 1) forwards; }
.js .is-drawing .hw { stroke-dasharray: var(--hl) var(--hl); stroke-dashoffset: var(--hl); animation: cx-draw .9s calc(var(--d, 0s) + .6s) cubic-bezier(.3, .2, .3, 1) forwards; }
.js .is-drawing .fl, .js .is-drawing .ink, .js .mc.is-drawing .rope-lay, .js .mc.is-drawing .sheet { opacity: 0; animation: cx-fade 1s 1.35s ease-out forwards; }
.js .mc.is-drawing .rope, .js .mc.is-drawing .water, .js .mc.is-drawing [data-quill-at] { opacity: 0; animation: cx-fade .9s 1.8s ease-out forwards; }
@keyframes cx-draw { to { stroke-dashoffset: 0; } }
/* A drawing further down a page waits until it is on screen to draw. */
.js .art.is-drawing:not(.is-inview) * { animation-play-state: paused !important; }
@keyframes cx-fade { to { opacity: 1; } }
.js .pg-home .intro > * { opacity: 0; transform: translateY(10px); animation: cx-rise .9s var(--ease) forwards; }
.js .pg-home .intro > .hero-h { opacity: 1; transform: none; animation: none; }
.js .pg-home .hero-h .ln > span { transform: translateY(105%); animation: cx-line 1.1s var(--ease) forwards; }
.js .pg-home .hero-h .ln + .ln > span { animation-delay: .12s; }
.js .pg-home .intro > .eyebrow { animation-delay: .05s; }
.js .pg-home .intro > .lede { animation-delay: .3s; }
.js .pg-home .intro > .cta { animation-delay: .42s; }
.js .pg-home .intro > .recent { animation-delay: .56s; }
@keyframes cx-rise { to { opacity: 1; transform: none; } }
@keyframes cx-line { to { transform: none; } }

/* Notes in the margins, in a hand like Leonardo's, each by the part of the
   drawing it names. */
.note { position: absolute; z-index: 3; display: block; margin: 0; color: var(--ink); text-align: left; font: 400 clamp(10.5px, 1.42cqw, 18px)/1.62 var(--hand); letter-spacing: .01em; }
.js .mc .note { opacity: 0; transition: opacity .9s; }
.js .mc.is-ready .note { opacity: 1; }
.note > span { display: block; }
.note-k { font-size: 1.22em; color: var(--sanguine); margin-bottom: .1em; }
.note-t { color: var(--ink); }
.mc .leader { opacity: .75; }
/* A drawing too narrow for four notes side by side shows the one in turn,
   in the open sky over the gears. */
@container (max-width: 700px) {
  .mc .leader { display: none; }
  .mc .note { left: 71% !important; top: 1.5% !important; width: 44% !important; transform: translateX(-50%); text-align: center; font-size: clamp(12.5px, 2.2cqw, 16px); opacity: 0 !important; transition: opacity .6s; pointer-events: none; }
  .mc.is-ready[data-cur="flexible"] .note[data-note="flexible"], .mc.is-ready[data-cur="durable"] .note[data-note="durable"], .mc.is-ready[data-cur="evergreen"] .note[data-note="evergreen"], .mc.is-ready[data-cur="rooted"] .note[data-note="rooted"] { opacity: 1 !important; pointer-events: auto; }
}
.js .mc:not(.is-ready) .leader { opacity: 0; }
.mc .leader { transition: opacity .9s; }

/* the label on the board, under the sheet */
.figcap { position: absolute; z-index: 3; left: 5%; width: 30.4%; top: 81.6%; margin: 0; text-align: center; font: italic 500 clamp(11px, 1.55cqw, 19px)/1.2 var(--serif); color: var(--ink-2); }
.figcap > * { display: inline-flex; align-items: center; gap: .4em; text-decoration: none; animation: cx-fade .6s ease-out; }
.figcap a { color: var(--sanguine-2); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.figcap .arr { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }

/* the strip along the foot of the page */
.strip { position: relative; z-index: 4; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 10px var(--gut) max(12px, env(safe-area-inset-bottom)); font: 500 11px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.strip p { margin: 0; }
.strip-l span { opacity: .5; padding: 0 .3em; }
.strip-r { display: flex; align-items: center; gap: 22px; }
.strip-status { display: inline-flex; align-items: center; text-decoration: none; transition: color .2s; }
.strip-status:hover { color: var(--ink); }
.pause { display: inline-flex; align-items: center; gap: 8px; padding: 6px 0; border: 0; background: none; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; transition: color .2s; }
.pause:hover { color: var(--ink); }
.pause-i { width: 9px; height: 10px; border-left: 2.5px solid currentColor; border-right: 2.5px solid currentColor; }
.pause[aria-pressed="true"] .pause-i { width: 0; height: 0; border: 0; border-left: 9px solid currentColor; border-top: 5.5px solid transparent; border-bottom: 5.5px solid transparent; }

/* ---- the home page on narrower screens */
@media (max-width: 1100px) {
  .home { grid-template-columns: minmax(300px, 36fr) 64fr; }
  .recent { display: none; }
}
@media (max-width: 860px) {
  .pg-home { grid-template-rows: auto auto minmax(0, 1fr) auto; }
  .home { display: contents; }
  .nav { gap: 22px; }
  /* the same room under the header as the folios' .page gives */
  .intro { padding: clamp(24px, 6vh, 72px) var(--gut) 0; max-width: 640px; }
  .hero-h { font-size: clamp(36px, min(9.6vw, 6.4vh), 64px); }
  .hero-h .ln { display: inline; }
  .hero-h .ln > span { display: inline; }
  .lede { font-size: 18px; margin-top: 10px; max-width: 40ch; }
  .cta { margin-top: 14px; }
  .btn { min-height: 44px; padding: 0 18px; }
  .stage { place-items: end start; overflow: hidden; }
  /* crop the far bank so the machine can be larger */
  .mc { width: min(128cqw, 100cqh * 1.3333 * .86); margin-left: -1cqw; }
  /* Under the text, the drawing has no margin of its own for the notes: they
     would lie over the buttons above it. */
  .mc .note, .mc .leader { display: none; }
  .figcap { font-size: clamp(11px, 2.3cqw, 15px); }
  .strip-l, .strip-status { display: none; }
  .strip { justify-content: center; gap: 26px; }
  .hdr-cta { display: none; }
}
/* a phone: the heading, the buttons and the machine, nothing more; the
   caption on the board is too small there to read without running into it */
@media (max-width: 599px) {
  .pg-home .eyebrow, .figcap { display: none; }
}
@media (max-width: 860px) and (prefers-reduced-motion: no-preference) {
  .js .pg-home .hero-h .ln > span { transform: none; animation: cx-rise .9s var(--ease) both; }
}
/* too short for one screen: let it scroll rather than crush the machine */
@media (max-height: 560px) and (min-width: 600px), (max-height: 600px) and (max-width: 599px) {
  .pg-home { height: auto; min-height: 100svh; }
  .stage { height: 86svh; }
}

/* ---------------------------------------------------------------- folios */
.page { max-width: 1180px; margin: 0 auto; padding: clamp(24px, 6vh, 72px) var(--gut) clamp(64px, 12vh, 140px); }
.pg-head { max-width: 760px; margin-bottom: clamp(32px, 6vh, 64px); }
.pg-title { margin: 0; font: 400 clamp(52px, 8vw, 112px)/.9 var(--serif); letter-spacing: -.03em; }
.pg-title em { font-style: italic; color: var(--sanguine); }
.pg-claim { font-size: clamp(42px, 6.2vw, 88px); line-height: .96; text-wrap: balance; }
.pg-head-wide { max-width: 980px; }
.plate-wide { margin-top: clamp(8px, 2vh, 20px); }
.pg-lede { margin: clamp(16px, 3vh, 26px) 0 0; max-width: 40ch; font: 500 clamp(19px, 1.7vw, 23px)/1.42 var(--serif); color: var(--ink-2); text-wrap: pretty; }
.crumbs { display: flex; gap: 10px; margin-bottom: 22px; font: 500 11.5px/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.crumbs a { text-decoration: none; color: var(--sanguine); }
.crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* a plate: a photograph printed on the page, in the book's own ink until
   it is pointed at */
.plate { position: relative; display: block; margin: 0; padding: clamp(10px, 1.4vw, 16px); background: var(--paper-hi); box-shadow: 0 0 0 1px var(--rule), 0 0 0 6px rgba(245, 236, 214, .5), 0 0 0 7px var(--rule), 0 24px 50px -30px rgba(58, 38, 22, .55); }
.plate img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; filter: sepia(.75) saturate(.7) contrast(.96) brightness(1.02); transition: filter .9s var(--ease); }
.plate:hover img, a:hover .plate img, a:focus-visible .plate img { filter: none; }
.plate-cap { display: flex; justify-content: space-between; gap: 16px; margin-top: 10px; font: italic 500 15px/1.3 var(--serif); color: var(--ink-3); }

.works { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(40px, 7vh, 80px); }
.work { display: grid; grid-template-columns: 1.35fr 1fr; gap: clamp(22px, 4vw, 60px); align-items: center; text-decoration: none; }
.work-k { display: block; font: 500 11px/1.3 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--sanguine); }
.work-n { display: block; margin-top: 10px; font: italic 400 clamp(40px, 4.6vw, 64px)/1 var(--serif); letter-spacing: -.02em; }
.work-d { display: block; margin-top: 14px; font: 500 20px/1.45 var(--serif); color: var(--ink-2); max-width: 34ch; }
.work-f { display: flex; gap: 26px; margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--rule); font-size: 14px; color: var(--ink-2); }
.work-f .k { display: block; font: 500 10.5px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 4px; }
.work-go { display: inline-flex; align-items: center; gap: 10px; margin-top: 24px; font-weight: 500; font-size: 15px; }
.work-go .arr { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; transition: transform .35s var(--ease); }
.work:hover .work-go .arr { transform: translateX(4px); }
@media (max-width: 820px) { .work { grid-template-columns: 1fr; } }

.strip-dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0; margin: clamp(28px, 5vh, 48px) 0 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.strip-dl > div { padding: 16px 0; }
.strip-dl dt { font: 500 10.5px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.strip-dl dd { margin: 6px 0 0; font: 500 20px/1.3 var(--serif); }
.strip-dl dd a { display: inline-flex; align-items: center; gap: 6px; color: var(--sanguine-2); text-underline-offset: 3px; }
.strip-dl .arr { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
.about { display: grid; grid-template-columns: minmax(140px, 1fr) 3fr; gap: 24px clamp(24px, 5vw, 72px); margin-top: clamp(36px, 7vh, 72px); }
.about-h { margin: 0; font: italic 500 30px/1.1 var(--serif); color: var(--sanguine); }
.about-body p { margin: 0 0 1em; max-width: 60ch; font: 500 clamp(19px, 1.5vw, 21px)/1.55 var(--serif); color: var(--ink-2); }
.about-body p:first-child::first-letter { float: left; font: 400 3.4em/.82 var(--serif); padding: .06em .08em 0 0; color: var(--sanguine); }
@media (max-width: 700px) { .about { grid-template-columns: 1fr; } }

/* contact: a letter */
.ct { display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(28px, 6vw, 88px); align-items: start; }
.ct-meta { display: grid; gap: 16px; margin: clamp(26px, 5vh, 44px) 0 0; }
.ct-meta dt { font: 500 10.5px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.ct-meta dd { margin: 4px 0 0; font: 500 20px/1.3 var(--serif); }
.ct-meta a { text-underline-offset: 3px; }
.letter { position: relative; padding: clamp(22px, 3.6vw, 44px); background: var(--paper-hi); box-shadow: 0 0 0 1px var(--rule), 0 30px 60px -36px rgba(58, 38, 22, .6); overflow: hidden; }
.letter::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(to bottom, transparent 0 35px, rgba(163, 67, 42, .09) 35px 36px); opacity: .6; }
.fields { position: relative; display: grid; gap: 18px; }
.fld { display: grid; gap: 6px; }
.fld label { display: flex; justify-content: space-between; gap: 10px; font: 500 10.5px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.fld input, .fld textarea { width: 100%; border: 0; border-bottom: 1.25px solid rgba(58, 38, 22, .4); border-radius: 0; background: transparent; padding: 6px 0 8px; font: 500 21px/1.35 var(--serif); color: var(--ink); resize: vertical; transition: border-color .2s; }
.fld textarea { min-height: 110px; }
.fld input:focus, .fld textarea:focus { outline: none; border-bottom-color: var(--sanguine); box-shadow: 0 1px 0 var(--sanguine); }
.fld [aria-invalid="true"] { border-bottom-color: var(--sanguine); }
.form-foot { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 26px; }
.form-status { margin: 0; font: italic 500 18px/1.35 var(--serif); color: var(--ink-2); }
[data-state="invalid"] .form-status, [data-state="error"] .form-status { color: var(--sanguine-2); }
.letter .again { display: none; }
.letter[data-state="sent"] .again { display: inline-flex; }
.letter[data-state="sent"] [type="submit"] { display: none; }
.seal { position: absolute; right: clamp(18px, 3vw, 34px); bottom: clamp(18px, 3vw, 30px); width: 86px; height: 86px; display: grid; place-items: center; border-radius: 50%; background: radial-gradient(circle at 38% 34%, #b95437, var(--sanguine-2) 70%); color: rgba(255, 235, 215, .8); box-shadow: 0 2px 0 rgba(0, 0, 0, .08), 0 10px 20px -10px rgba(90, 30, 15, .8); transform: scale(.2) rotate(-40deg); opacity: 0; pointer-events: none; }
.seal .pine-mark { width: 34px; height: 40px; }
.letter[data-state="sent"] .seal { animation: cx-seal .7s var(--ease) forwards; }
@keyframes cx-seal { 60% { transform: scale(1.08) rotate(-8deg); opacity: 1; } to { transform: scale(1) rotate(-12deg); opacity: 1; } }
@media (max-width: 820px) { .ct { grid-template-columns: 1fr; } }

/* status: the logbook */
.log { padding: clamp(20px, 3vw, 36px); background: var(--paper-hi); box-shadow: 0 0 0 1px var(--rule), 0 30px 60px -36px rgba(58, 38, 22, .55); }
.log-h { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin: 0 0 18px; font: 500 11px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.vitals { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0 32px; margin: 0; }
.vitals > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 13px 0; border-bottom: 1px dotted rgba(58, 38, 22, .3); }
.vitals dt { font: italic 500 19px/1.3 var(--serif); color: var(--ink-2); }
.vitals dd { margin: 0; font: 500 14px/1.3 var(--mono); font-variant-numeric: tabular-nums; }
.trace { margin-top: 26px; }
.trace-h { display: flex; justify-content: space-between; font: 500 10.5px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }
.trace svg { display: block; width: 100%; height: 120px; margin-top: 10px; overflow: visible; }
.trace .tg { stroke: rgba(58, 38, 22, .14); stroke-width: 1; fill: none; }
.trace .tl { stroke: var(--sanguine); stroke-width: 1.6; fill: none; stroke-linejoin: round; stroke-linecap: round; }
.op { display: inline-flex; align-items: center; margin: 18px 0 0; font: italic 500 22px/1.3 var(--serif); }

/* the folios' drawings */
.cx-art { display: block; width: 100%; height: auto; overflow: visible; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.cx-art .num { font: 600 15px/1 var(--serif); fill: var(--ink); stroke: none; letter-spacing: .02em; }
.cx-art .cr { opacity: .6; stroke-width: 1.4; }
@media (prefers-reduced-motion: no-preference) {
  .cx-art .rocks { transform-box: fill-box; transform-origin: 50% 50%; animation: cx-rock 3.4s ease-in-out infinite; }
}
@keyframes cx-rock { 0%, 100% { transform: rotate(-1.6deg); } 45% { transform: rotate(1.2deg); } 55% { transform: rotate(1.4deg); } }

/* the annotated plate: the photograph, a ruled border, and notes in the
   margins with leaders to what they name (positions: cx-plate-style) */
.plate-fig { margin: clamp(4px, 1.5vh, 16px) 0 0; }
.annot { position: relative; container-type: inline-size; }
.annot > .annot-img { position: absolute; display: block; height: auto; mix-blend-mode: multiply; filter: sepia(.75) saturate(.7) contrast(.96) brightness(1.02); transition: filter .9s var(--ease); }
.annot > .annot-img:hover { filter: none; }
/* the border and leaders lie over the photograph; the pointer goes through
   them to it */
.annot > .cx-plate-draw { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; fill: none; stroke-linecap: round; pointer-events: none; }
.annot > .cx-plate-draw .m, .annot > .cx-plate-draw .t { vector-effect: non-scaling-stroke; }
.annot > .note { font-size: clamp(12px, 1.5cqw, 18px); }
.annot .leader { opacity: .8; }
.plate-fig .plate-cap { margin-top: 4px; }
@media (max-width: 700px) {
  .annot { aspect-ratio: auto !important; display: grid; gap: 14px; }
  .annot > .annot-img { position: static; width: 100% !important; }
  .annot > .cx-plate-draw { display: none; }
  .annot > .note { position: static; width: auto !important; font-size: 15px; text-align: left; }
  .plate-hint { display: none; }
}

/* contact: the quill by the letter */
.vignette { width: min(170px, 40%); margin-top: clamp(24px, 5vh, 48px); }

/* status: the dial beside the logbook */
.log { display: grid; grid-template-columns: minmax(220px, 1fr) 2fr; gap: clamp(24px, 4vw, 56px); align-items: start; }
.dial { margin: 0; }
.dial figcaption { margin-top: 14px; font: italic 500 16px/1.45 var(--serif); color: var(--ink-3); }
.dial figcaption span { display: block; font: 500 20px/1.3 var(--mono); font-style: normal; letter-spacing: .02em; color: var(--ink); margin-bottom: 4px; }
@media (max-width: 820px) { .log { grid-template-columns: 1fr; } .dial { max-width: 340px; } }
/* beside each other, the heading and the logbook fit one screen: what gives
   way to the height is the size of the title, the dial and the trace, and
   the lede moves up beside the title */
@media (min-width: 821px) {
  .pg-status .page { padding-top: clamp(8px, 3vh, 72px); padding-bottom: clamp(24px, 6vh, 140px); }
  .pg-status .pg-head { display: grid; grid-template-columns: auto minmax(0, 40ch); column-gap: clamp(32px, 6vw, 96px); align-items: end; max-width: none; margin-bottom: clamp(16px, 4vh, 64px); }
  .pg-status .pg-head > .eyebrow { grid-column: 1 / -1; }
  .pg-status .pg-title { font-size: clamp(48px, min(8vw, 12vh), 112px); }
  .pg-status .pg-lede { grid-column: 2; grid-row: 2 / span 2; margin: 0; font-size: clamp(17px, min(1.7vw, 2.9vh), 23px); }
  .pg-status .op { margin-top: clamp(8px, 2vh, 18px); }
  .pg-status .log { padding-block: clamp(14px, 3vh, 36px); }
  .pg-status .log-h { margin-bottom: clamp(6px, 2vh, 18px); }
  .pg-status .dial .art { max-width: max(150px, 31vh); }
  .pg-status .dial figcaption { margin-top: clamp(6px, 1.5vh, 14px); }
  .pg-status .vitals > div { padding-block: clamp(6px, 1.5vh, 13px); }
  .pg-status .trace { margin-top: clamp(10px, 2.6vh, 26px); }
  .pg-status .trace svg { height: clamp(40px, 11vh, 120px); }
}

/* 404: the broken wheel */
.nf { min-height: calc(100svh - 260px); display: grid; align-content: center; }
.nf-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(24px, 5vw, 72px); align-items: center; }
.nf-copy .cta { margin-top: clamp(20px, 3vh, 32px); }
@media (max-width: 820px) { .nf-grid { grid-template-columns: 1fr; } .nf-art { max-width: 420px; } }

/* the footer the folios share */
.ftr { border-top: 1px solid var(--rule); }
.ftr-in { max-width: 1180px; margin: 0 auto; padding: 36px var(--gut) 90px; display: grid; grid-template-columns: auto 1fr auto; gap: 18px 40px; align-items: center; }
.ftr-line { margin: 0; font: italic 500 18px/1.35 var(--serif); color: var(--ink-2); }
.ftr-nav { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 14px; }
.ftr-nav a { display: inline-flex; align-items: center; text-decoration: none; color: var(--ink-2); }
.ftr-nav a:hover, .ftr-nav a[aria-current] { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.ftr-small { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin: 8px 0 0; font: 500 11px/1.5 var(--mono); letter-spacing: .06em; color: var(--ink-3); }
.ftr-small a { color: inherit; }
@media (max-width: 760px) { .ftr-in { grid-template-columns: 1fr; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0s !important; transition-duration: .01ms !important; }
  .js .is-drawing .dw, .js .is-drawing .hw { stroke-dasharray: none; }
}
