/* EvenLens: a website read like a book.
   Headings: Parafina Black (optical sizes L, M, S). Everything else: Inter. */

@font-face{font-family:'Parafina L'; src:url('fonts/Parafina-BlackL.otf') format('opentype'); font-weight:900; font-display:swap;}
@font-face{font-family:'Parafina M'; src:url('fonts/Parafina-BlackM.otf') format('opentype'); font-weight:900; font-display:swap;}
@font-face{font-family:'Parafina S'; src:url('fonts/Parafina-BlackS.otf') format('opentype'); font-weight:900; font-display:swap;}

:root{
  /* Taken from the logo: black ink, the bright green field, the pale mint ground */
  --ink:#121412;
  --ink-2:#1d201d;
  --ink-soft:#3a3f3a;
  --mute:#5c635b;
  --paper:#f8faf5;
  --page:#fcfdfa;
  --mint:#eefdee;
  --green:#80fb6e;
  --green-dim:#6feb5e;
  --line:rgba(18,20,18,.14);
  --line-strong:rgba(18,20,18,.32);
  --line-dark:rgba(248,250,245,.16);

  --display:'Parafina L', Georgia, serif;
  --head:'Parafina M', Georgia, serif;
  --head-s:'Parafina S', Georgia, serif;
  --body:'Inter', system-ui, sans-serif;

  --max:1240px;
  --gap:clamp(20px, 4vw, 56px);
  --ease:cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--body); font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
p, h1, h2, h3, h4, dl, dd, figure{margin:0;}
ul, ol{margin:0; padding:0; list-style:none;}
a{color:inherit;}
button{font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer;}
img, svg{display:block; max-width:100%;}
:focus-visible{outline:2px solid var(--ink); outline-offset:3px;}
.ink :focus-visible{outline-color:var(--green);}
::selection{background:var(--green); color:var(--ink);}

.wrap{max-width:var(--max); margin:0 auto; padding:0 var(--gap);}
.skip{position:absolute; left:-9999px; top:8px; z-index:200; background:var(--ink); color:var(--paper); padding:8px 14px;}
.skip:focus{left:8px;}

/* ---------- type ---------- */
/* Parafina Black is dense, so headings get open tracking and room between lines.
   Sizes are tuned so no heading runs past two lines at any width. */
.display, .h1, .h2, .h3, .h4, .statement{font-weight:900; letter-spacing:.03em; word-spacing:.06em; color:inherit; text-wrap:balance; text-transform:uppercase;}
.display{font-family:var(--display); font-size:clamp(1.7rem, 4.3vw, 3.7rem); line-height:1.1;}
.h1{font-family:var(--display); font-size:clamp(1.45rem, 2.9vw, 2.55rem); line-height:1.14;}
.h2{font-family:var(--head); font-size:clamp(1.15rem, 1.8vw, 1.7rem); line-height:1.2;}
.h3{font-family:var(--head); font-size:clamp(1rem, 1.3vw, 1.2rem); line-height:1.26;}
.h4{font-family:var(--head-s); font-size:.98rem; line-height:1.32;}
/* Heading-like labels follow the same all-caps rule */
.toc-t, .verso-title, .step-word, .pillar-word, .vol-t, .values-list dt, .hero-verbs li, .step-strip li, .colophon-tag, .opener-num{text-transform:uppercase; letter-spacing:.03em;}
.lede{font-size:clamp(1.05rem, 1.3vw, 1.2rem); line-height:1.6; color:var(--ink-soft); max-width:52ch;}
.ink .lede{color:rgba(248,250,245,.72);}
.eyebrow{font-size:.78rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--mute);}
.ink .eyebrow{color:rgba(248,250,245,.6);}

/* ---------- logo ---------- */
.mark line{stroke:currentColor; stroke-width:6.5; stroke-linecap:square; fill:none;}
.logo{display:inline-flex; align-items:center; gap:.18em; text-decoration:none; color:var(--ink); font-size:1.55rem; line-height:1;}
.logo .mark{width:.78em; height:.78em; overflow:visible; transform:translateY(-.02em);}
.wordmark{font-family:'Outfit', var(--body); font-weight:300; letter-spacing:-.01em; white-space:nowrap;}
.logo-light{color:var(--paper);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:14px 24px; border-radius:999px; font-size:.95rem; font-weight:600;
  text-decoration:none; border:1.5px solid transparent; white-space:nowrap;
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
}
.btn:active{transform:translateY(1px);}
.btn-ink{background:var(--ink); color:var(--paper);}
.btn-ink:hover{background:var(--green); color:var(--ink);}
.btn-green{background:var(--green); color:var(--ink);}
.btn-green:hover{background:var(--ink); color:var(--green);}
.btn-line{border-color:var(--line-strong); color:var(--ink);}
.btn-line:hover{border-color:var(--ink); background:var(--ink); color:var(--paper);}
.btn-line-ink{border-color:var(--ink); color:var(--ink);}
.btn-line-ink:hover{background:var(--ink); color:var(--green);}
.cta-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:36px;}

/* ---------- loader ---------- */
.loader{display:none;}
.is-loading .loader{
  display:flex; position:fixed; inset:0; z-index:300;
  align-items:center; justify-content:center;
  background:var(--green); color:var(--ink);
  transform-origin:left center;
}
.is-loading body{overflow:hidden;}
.loader-inner{display:flex; align-items:center; gap:.18em; font-size:clamp(3rem, 9vw, 6.5rem); line-height:1;}
.mark-xl{width:.78em; height:.78em; overflow:visible;}
.loader-word{
  display:inline-block; clip-path:inset(0 100% 0 0); opacity:0;
  transition:clip-path .9s var(--ease), opacity .4s ease;
}
.loader.show-word .loader-word{clip-path:inset(0 0 0 0); opacity:1;}
.loader.leaving{
  transition:transform 1s cubic-bezier(.6,.05,.3,1), opacity .9s ease .25s;
  transform:perspective(2000px) rotateY(-92deg); opacity:0; pointer-events:none;
}

/* ---------- header ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:60;
  transition:transform .45s var(--ease), background .3s ease, border-color .3s ease;
  border-bottom:1px solid transparent;
}
.site-header.scrolled{background:rgba(248,250,245,.88); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom-color:var(--line);}
.site-header.hidden{transform:translateY(-100%);}
.header-row{display:flex; align-items:center; gap:28px; max-width:var(--max); margin:0 auto; padding:16px var(--gap);}
.main-nav{display:flex; gap:28px; margin-left:auto;}
.main-nav a{
  text-decoration:none; font-size:.93rem; font-weight:500; color:var(--ink-soft);
  background:linear-gradient(var(--ink), var(--ink)) left bottom / 0 1.5px no-repeat;
  padding-bottom:2px; transition:background-size .3s var(--ease), color .2s;
}
.main-nav a:hover, .main-nav a.active{color:var(--ink); background-size:100% 1.5px;}
.header-cta{padding:11px 20px; font-size:.9rem;}
.menu-btn{display:none; align-items:center; gap:10px; margin-left:auto; font-size:.85rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;}
.menu-btn-lines{display:grid; gap:6px; width:22px;}
.menu-btn-lines i{display:block; height:1.5px; background:var(--ink); transition:transform .3s var(--ease);}
.menu-btn[aria-expanded="true"] .menu-btn-lines i:first-child{transform:translateY(3.75px) rotate(45deg);}
.menu-btn[aria-expanded="true"] .menu-btn-lines i:last-child{transform:translateY(-3.75px) rotate(-45deg);}

.contents-menu{position:fixed; inset:0; z-index:55; background:var(--paper); padding:96px var(--gap) 40px; overflow-y:auto;}
.contents-menu[hidden]{display:none;}
.contents-inner{max-width:560px; margin:0 auto;}
.contents-inner .btn{margin-top:32px;}

/* table of contents rows, shared by menu and services */
.toc a, a.toc-row{display:flex; align-items:baseline; gap:14px; text-decoration:none; padding:14px 0; border-bottom:1px solid var(--line);}
.toc-n{font-family:var(--head-s); font-weight:900; min-width:2.6em; color:var(--mute);}
.toc-t{font-family:var(--head); font-weight:900; font-size:1.25rem; line-height:1.2;}
.toc-dots{flex:1; border-bottom:1.5px dotted var(--line-strong); transform:translateY(-5px); min-width:20px;}
.toc-p{font-size:.85rem; color:var(--mute); white-space:nowrap;}
.toc a:hover .toc-t{text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:4px;}
.contents-menu .toc{margin-top:18px; border-top:1px solid var(--line);}

/* ---------- folio (running page number) ---------- */
.folio{
  position:fixed; z-index:50; left:16px; right:16px; bottom:16px;
  display:flex; justify-content:space-between; align-items:center; pointer-events:none;
  font-size:.74rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  opacity:0; transition:opacity .4s ease;
}
.folio.on{opacity:1;}
.folio > span{background:rgba(248,250,245,.9); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border:1px solid var(--line); border-radius:999px; padding:7px 14px; color:var(--ink);}
.folio-right{display:flex; align-items:center; gap:10px;}
.folio-mark{width:16px; height:16px; overflow:visible;}
.folio-mark line{stroke-width:9;}

/* ---------- hero / title page ---------- */
.hero{min-height:100vh; min-height:100svh; display:flex; flex-direction:column; justify-content:center; padding:120px 0 40px; position:relative;}
.hero > .wrap{width:100%;}
.hero-title{font-size:clamp(1.75rem, 4.9vw, 4.2rem);}
.hero-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:end; width:100%; margin-top:clamp(28px, 4vw, 48px);}
.hero .eyebrow{margin-bottom:22px;}
.hero .lede{margin-top:0;}
.hero .cta-row{margin-top:30px;}

/* chapter opener on inner pages */
.opener{padding:clamp(130px, 16vw, 200px) 0 clamp(56px, 7vw, 96px); border-bottom:1px solid var(--line);}
.opener-grid{display:grid; grid-template-columns:auto 1fr; gap:clamp(28px, 6vw, 96px); align-items:end;}
.opener-side{display:flex; flex-direction:column; align-items:flex-start; gap:18px;}
.opener-num{font-family:var(--display); font-weight:900; font-size:clamp(4.5rem, 11vw, 9.5rem); line-height:.82; letter-spacing:.01em;}
.opener-mark{width:clamp(48px, 6vw, 72px); height:auto; overflow:visible; color:var(--ink);}
.opener-copy .eyebrow{margin-bottom:18px;}
.opener-copy .lede{margin-top:22px;}

.text-link{display:inline-flex; gap:8px; margin-top:32px; font-weight:600; text-decoration:none; background:linear-gradient(var(--green), var(--green)) left 90% / 100% 38% no-repeat; padding:0 2px; transition:background-size .3s var(--ease);}
.text-link:hover{background-size:100% 90%;}
.ink .text-link{background:none; color:var(--green); border-bottom:1.5px solid var(--green);}
.step-strip{display:grid; grid-template-columns:repeat(6, 1fr); margin-top:clamp(40px, 6vw, 72px); border-top:1px solid var(--line-dark);}
.step-strip li{font-family:var(--head); font-weight:900; font-size:clamp(1.05rem, 1.6vw, 1.4rem); letter-spacing:.015em; padding:20px 12px 0 0; display:flex; flex-direction:column; gap:10px;}
.step-strip span{font-family:var(--body); font-size:.75rem; font-weight:600; letter-spacing:.12em; color:var(--green);}
.flip-hint{font-size:.85rem; color:var(--mute); margin-top:-24px;}
.hero-figure{position:relative;}
.hero-mark{width:100%; height:auto; overflow:visible; color:var(--ink);}
.hero-mark line{stroke-width:3.2;}
.hero-mark .ground{stroke:var(--line-strong); stroke-width:.6;}
.hero-figure figcaption{margin-top:10px; font-size:.8rem; color:var(--mute); font-style:italic; text-align:center;}
.hero-verbs{display:grid; grid-template-columns:repeat(4, 1fr); margin-top:64px; border-top:1px solid var(--ink);}
.hero-verbs li{font-family:var(--head); font-weight:900; font-size:clamp(1.1rem, 2vw, 1.6rem); padding:18px 0 0; display:flex; gap:12px; align-items:baseline;}
.hero-verbs span{font-family:var(--body); font-weight:600; font-size:.75rem; color:var(--mute); letter-spacing:.1em;}

/* ---------- chapter shell ---------- */
.chapter{padding:clamp(80px, 11vw, 150px) 0;}
.ink{background:var(--ink); color:var(--paper);}
.running-head{
  display:flex; justify-content:space-between; gap:16px;
  font-size:.76rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--mute);
  padding-bottom:12px; border-bottom:1px solid var(--line); margin-bottom:clamp(48px, 7vw, 88px);
}
.ink .running-head{color:rgba(248,250,245,.55); border-bottom-color:var(--line-dark);}
.running-head span:first-child{color:var(--ink);}
.ink .running-head span:first-child{color:var(--green);}
.chapter-intro{margin-bottom:clamp(48px, 6vw, 80px);}
.chapter-intro .lede{margin-top:18px;}

/* reveal on scroll */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .9s var(--ease), transform .9s var(--ease); transition-delay:var(--d, 0s);}
.reveal.in{opacity:1; transform:none;}

/* ---------- I. about ---------- */
.statement{
  font-family:var(--display); font-size:clamp(1.6rem, 4.4vw, 3.8rem); line-height:1.12;
  margin-bottom:clamp(56px, 8vw, 104px);
}
.statement .w{opacity:.28; transition:opacity .25s linear;}
.statement .w.lit{opacity:1;}
.spread-text{display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px, 6vw, 96px); position:relative;}
.spread-text::before{content:""; position:absolute; left:50%; top:0; bottom:0; width:1px; background:var(--line);}
.formula{display:flex; flex-wrap:wrap; gap:6px 12px; align-items:baseline; margin-top:28px; font-size:.95rem; font-weight:600;}
.formula b{color:var(--mute); font-weight:400;}
.formula span{background:var(--mint); padding:3px 10px; border-radius:999px; border:1px solid var(--line);}
.prose p + p{margin-top:1.1em;}
.prose{color:var(--ink-soft); max-width:56ch;}
.dropcap::first-letter{
  font-family:var(--display); font-weight:900; float:left; font-size:3.1em; line-height:.84;
  padding:.08em .12em 0 0; color:var(--ink-soft);
  text-decoration:underline; text-decoration-color:var(--green); text-decoration-thickness:.12em; text-underline-offset:.06em;
}
.pull{font-weight:600; font-size:1.2rem; line-height:1.45; color:var(--ink); border-left:4px solid var(--green); padding-left:18px; margin-top:1.6em !important;}

.name-note{margin:clamp(72px, 10vw, 128px) auto; max-width:760px; text-align:center; padding:48px 0; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink);}
.note-label{font-size:.76rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--mute);}
.note-text{font-weight:500; font-size:clamp(1.2rem, 2vw, 1.6rem); line-height:1.45; margin-top:18px;}
.note-foot{margin-top:18px; color:var(--mute); font-size:.95rem;}

.pvm{display:grid; grid-template-columns:repeat(3, 1fr); gap:0; border-top:1px solid var(--line);}
.pvm article{padding:32px 32px 32px 0; border-right:1px solid var(--line);}
.pvm article + article{padding-left:32px;}
.pvm article:last-child{border-right:0;}
.pvm-n{font-family:var(--head-s); font-weight:900; color:var(--mute); display:block; margin-bottom:14px;}
.pvm p{margin-top:12px; color:var(--ink-soft);}
.values{margin-top:clamp(64px, 8vw, 104px); display:grid; grid-template-columns:.6fr 1.4fr; gap:40px; align-items:start;}
.values-list{display:grid; grid-template-columns:1fr 1fr; gap:0 40px;}
.values-list div{padding:18px 0; border-top:1px solid var(--line);}
.values-list dt{font-family:var(--head); font-weight:900; font-size:1.2rem;}
.values-list dd{color:var(--ink-soft); margin-top:4px; font-size:.97rem;}

/* ---------- II. services: book spread ---------- */
.services{background:var(--mint);}
.toc-inline{border-top:1px solid var(--ink); margin-bottom:clamp(72px, 9vw, 120px); columns:2; column-gap:56px;}
.toc-inline a{break-inside:avoid;}
.toc-inline .toc-t{font-size:1.08rem;}
.book-spread{display:grid; grid-template-columns:1fr 1fr; gap:0; position:relative;}
.verso{position:relative;}
.verso-page{
  position:sticky; top:96px; height:calc(100vh - 140px); min-height:440px; max-height:720px;
  background:var(--ink); color:var(--paper); border-radius:6px 0 0 6px;
  padding:clamp(28px, 4vw, 52px); display:flex; flex-direction:column; overflow:hidden;
  box-shadow:inset -40px 0 50px -30px rgba(0,0,0,.6);
}
.verso-num{font-family:var(--display); font-weight:900; font-size:clamp(5rem, 11vw, 9.5rem); line-height:.9; color:var(--green); letter-spacing:-.04em;}
.verso-mark{width:56px; height:56px; margin-top:auto; color:var(--green); overflow:visible;}
.verso-mark line{stroke-width:6;}
.verso-title{font-family:var(--head); font-weight:900; font-size:clamp(1.3rem, 2vw, 1.75rem); line-height:1.18; letter-spacing:.015em; margin-top:22px; text-wrap:balance;}
.verso-outcome{margin-top:14px; color:rgba(248,250,245,.7); max-width:34ch;}
.verso-folio{margin-top:22px; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(248,250,245,.5);}
.verso-page .swap{transition:opacity .35s ease, transform .45s var(--ease);}
.verso-page.changing .swap{opacity:0; transform:translateY(10px);}
.recto{background:var(--page); border-radius:0 6px 6px 0; box-shadow:inset 30px 0 40px -30px rgba(0,0,0,.18), 0 30px 60px -40px rgba(0,0,0,.25);}
.entry{padding:clamp(36px, 5vw, 64px); border-bottom:1px solid var(--line); scroll-margin-top:90px;}
.entry:last-child{border-bottom:0;}
.entry-num{display:none; font-family:var(--display); font-weight:900; font-size:3rem; line-height:1;}
.entry-title{font-size:clamp(1.25rem, 1.8vw, 1.65rem);}
.entry-lead{margin-top:18px; color:var(--ink-soft); max-width:52ch;}
.entry-list{margin-top:26px; display:grid; grid-template-columns:1fr 1fr; gap:0 28px; font-size:.94rem;}
.entry-list li{padding:9px 0 9px 20px; border-top:1px solid var(--line); position:relative;}
.entry-list li::before{content:""; position:absolute; left:0; top:15px; width:7px; height:7px; border-radius:50%; border:1.5px solid var(--ink);}
.iso-list{margin-top:26px; display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.iso-list li{background:var(--mint); border:1px solid var(--line); border-radius:6px; padding:12px 14px; font-size:.88rem; color:var(--ink-soft);}
.iso-list b{display:block; font-family:var(--head-s); font-weight:900; font-size:1.05rem; color:var(--ink);}
.entry-outcome{margin-top:28px; font-weight:600; font-size:1.05rem; line-height:1.45; display:flex; gap:14px; align-items:baseline;}
.entry-outcome span{flex:none; font-family:var(--body); font-size:.7rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; background:var(--green); padding:4px 9px; border-radius:999px;}

/* ---------- III. difference ---------- */
.diff-title{margin-bottom:clamp(48px, 7vw, 88px);}
.pillars li{display:grid; grid-template-columns:minmax(200px, 1fr) 1.4fr; align-items:baseline; gap:24px; padding:22px 0; border-top:1px solid var(--line-dark);}
.pillar-word{font-family:var(--display); font-weight:900; font-size:clamp(1.8rem, 4vw, 3.4rem); line-height:1.05; letter-spacing:.015em; color:var(--green);}
.pillar-verb{font-size:clamp(1.1rem, 1.6vw, 1.4rem); color:rgba(248,250,245,.85);}
.pillars-close{font-weight:600; font-size:clamp(1.2rem, 2vw, 1.6rem); padding-top:22px; border-top:1px solid var(--line-dark);}

.from-to{margin-top:clamp(80px, 10vw, 140px);}
.ft-list{margin-top:22px;}
.ft{display:grid; grid-template-columns:1fr auto 1fr; align-items:baseline; gap:24px; padding:16px 0; border-top:1px solid var(--line-dark); font-weight:600; font-size:clamp(1.15rem, 2.2vw, 1.8rem); line-height:1.25; letter-spacing:-.01em;}
.ft s{justify-self:start; text-decoration:none; color:rgba(248,250,245,.45); background:linear-gradient(var(--green), var(--green)) left 55% / 0 3px no-repeat; transition:background-size .8s var(--ease) .1s, color .6s ease;}
.ft em{font-style:normal; opacity:0; transform:translateX(-14px); transition:opacity .6s ease .55s, transform .6s var(--ease) .55s;}
.ft-arrow{color:var(--green); font-family:var(--body); font-weight:400; opacity:0; transition:opacity .4s ease .4s;}
.ft.in s{background-size:100% 3px; color:rgba(248,250,245,.35);}
.ft.in em, .ft.in .ft-arrow{opacity:1; transform:none;}

.why{margin-top:clamp(80px, 10vw, 140px);}
.why-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:0; margin-top:40px; border-top:1px solid var(--line-dark);}
.why-grid article{padding:28px 28px 32px 0; border-bottom:1px solid var(--line-dark);}
.why-grid article:not(:nth-child(3n+1)){padding-left:28px; border-left:1px solid var(--line-dark);}
.why-n{display:inline-grid; place-items:center; width:28px; height:28px; border-radius:50%; border:1px solid var(--green); color:var(--green); font-size:.8rem; font-weight:600; margin-bottom:18px;}
.why-grid p{margin-top:10px; color:rgba(248,250,245,.7); font-size:.96rem;}

/* ---------- IV. problems ---------- */
.quotes{border-top:1px solid var(--ink);}
.quotes li{border-bottom:1px solid var(--line);}
.quote{width:100%; display:grid; grid-template-columns:3rem 1fr 40px; align-items:center; gap:12px; padding:26px 0; text-align:left;}
.q-n{font-size:.8rem; font-weight:600; color:var(--mute);}
.q-text{font-weight:500; font-size:clamp(1.1rem, 1.9vw, 1.55rem); line-height:1.35; letter-spacing:-.01em; transition:transform .4s var(--ease);}
.quote:hover .q-text{transform:translateX(8px);}
.q-icon{width:40px; height:40px; border-radius:50%; border:1.5px solid var(--line-strong); position:relative; transition:background .3s ease, border-color .3s ease, transform .4s var(--ease);}
.q-icon::before, .q-icon::after{content:""; position:absolute; left:50%; top:50%; width:14px; height:1.5px; background:var(--ink); transform:translate(-50%, -50%);}
.q-icon::after{transform:translate(-50%, -50%) rotate(90deg); transition:transform .4s var(--ease);}
.quote[aria-expanded="true"] .q-icon{background:var(--green); border-color:var(--green);}
.quote[aria-expanded="true"] .q-icon::after{transform:translate(-50%, -50%) rotate(0deg);}
.q-answer{display:grid; grid-template-rows:0fr; transition:grid-template-rows .5s var(--ease);}
.q-answer > p{overflow:hidden; display:flex; align-items:baseline; gap:14px; padding-left:calc(3rem + 12px);}
.quote[aria-expanded="true"] + .q-answer{grid-template-rows:1fr;}
.quote[aria-expanded="true"] + .q-answer > p{padding-bottom:28px;}
.q-answer span{font-size:.76rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--mute);}
.q-answer a{font-size:1.1rem; font-weight:600; text-decoration:none; background:linear-gradient(var(--green), var(--green)) left 88% / 100% 40% no-repeat; padding:0 2px;}
.q-answer em{font-style:normal; color:var(--mute); font-size:.9rem;}

/* ---------- V. approach: page turning ---------- */
.approach{padding-bottom:0; background:var(--paper);}
.flip-track{height:620vh; position:relative;}
.flip-stage{position:sticky; top:0; height:100vh; height:100svh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:28px; perspective:2600px; padding:96px var(--gap) 48px;}
.book{position:relative; width:min(1060px, 100%, (100svh - 200px) * 1.64); aspect-ratio:2 / 1.22; transform-style:preserve-3d;}
.page, .leaf{position:absolute; top:0; bottom:0; width:50%;}
.page-left{left:0;}
.page-right, .leaf{left:50%;}
.page, .face{background:var(--page); border:1px solid var(--line);}
.page-left, .face.back{border-radius:6px 0 0 6px; background:linear-gradient(to left, rgba(0,0,0,.09), rgba(0,0,0,0) 14%), var(--page);}
.page-right, .face.front{border-radius:0 6px 6px 0; background:linear-gradient(to right, rgba(0,0,0,.09), rgba(0,0,0,0) 14%), var(--page);}
.book::after{content:""; position:absolute; left:2%; right:2%; bottom:-26px; height:30px; background:radial-gradient(ellipse at center, rgba(0,0,0,.18), transparent 70%); z-index:-1;}
.leaf{transform-origin:left center; transform-style:preserve-3d; will-change:transform;}
.face{position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden; overflow:hidden;}
.face.back{transform:rotateY(180deg);}
.face .shade{position:absolute; inset:0; pointer-events:none; background:linear-gradient(to right, rgba(0,0,0,.28), rgba(0,0,0,0)); opacity:0;}
.face.back .shade{background:linear-gradient(to left, rgba(0,0,0,.28), rgba(0,0,0,0));}
.spine{position:absolute; left:50%; top:0; bottom:0; width:2px; transform:translateX(-1px); background:rgba(0,0,0,.12); pointer-events:none;}
.page-inner{position:relative; height:100%; padding:clamp(22px, 4vw, 56px); display:flex; flex-direction:column;}
.step-head{justify-content:flex-end; background:var(--ink); color:var(--paper);}
.page-left .step-head, .face.back .step-head{border-radius:6px 0 0 6px;}
.step-n{font-family:var(--display); font-weight:900; font-size:clamp(4rem, 12vw, 10rem); line-height:.85; color:var(--green); letter-spacing:.01em;}
.step-word{font-family:var(--display); font-weight:900; font-size:clamp(2rem, 4.6vw, 3.8rem); line-height:1.05; letter-spacing:.015em; margin-top:12px;}
.step-head-final .step-word{font-size:clamp(1rem, 1.7vw, 1.4rem); line-height:1.25; color:var(--green); text-wrap:balance;}
.m-word{display:none;}
.step-k{font-size:.76rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--mute);}
.step-desc{font-weight:500; font-size:clamp(1.15rem, 2vw, 1.65rem); line-height:1.4; letter-spacing:-.01em; margin-top:auto; margin-bottom:auto; max-width:22ch;}
.step-end{justify-content:center; gap:28px; align-items:flex-start;}
.step-end .step-desc{margin:0;}
.page-no{position:absolute; bottom:clamp(14px, 2vw, 24px); right:clamp(18px, 2.4vw, 32px); font-size:.8rem; color:var(--mute);}
.flip-steps{display:flex; gap:clamp(10px, 2vw, 28px); flex-wrap:wrap; justify-content:center; font-size:.82rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--mute);}
.flip-steps li{position:relative; padding-bottom:6px; transition:color .3s ease;}
.flip-steps li::after{content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--ink); transition:width .4s var(--ease);}
.flip-steps li.on{color:var(--ink);}
.flip-steps li.on::after{width:100%;}

/* ---------- VI. industries: index ---------- */
.index{columns:3; column-gap:56px; border-top:1px solid var(--ink); padding-top:28px;}
.index-group{break-inside:avoid; display:grid; grid-template-columns:3rem 1fr; padding:10px 0 22px;}
.index-letter{font-family:var(--display); font-weight:900; font-size:2.4rem; line-height:1; color:var(--ink);}
.index-group li{font-size:1.05rem; padding:6px 0; border-bottom:1px dotted var(--line-strong); transition:padding .3s var(--ease);}
.index-group li:hover{padding-left:8px;}

/* ---------- VII. roadmap: shelf of volumes ---------- */
.shelf{display:flex; align-items:flex-end; gap:10px; height:clamp(380px, 52vh, 520px); border-bottom:6px solid var(--paper); padding:0 4px;}
.volume{
  position:relative; height:var(--h); flex:0 0 clamp(64px, 7vw, 92px);
  background:var(--ink-2); border:1px solid var(--line-dark); border-radius:4px 4px 0 0;
  color:var(--paper); text-align:left; overflow:hidden;
  display:flex; flex-direction:column; padding:18px 16px;
  transform:translateY(105%); transition:transform 1s var(--ease), flex-basis .7s var(--ease), background .4s ease, color .4s ease;
  transition-delay:var(--d, 0s), 0s, 0s, 0s;
}
.shelf.in .volume{transform:none;}
.volume::before{content:""; position:absolute; left:0; right:0; top:22px; height:1px; background:currentColor; opacity:.25;}
.volume::after{content:""; position:absolute; left:0; right:0; bottom:22px; height:1px; background:currentColor; opacity:.25;}
.vol-n{font-size:.7rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; opacity:.65; margin-top:14px; white-space:nowrap;}
.vol-t{font-family:var(--display); font-weight:900; font-size:clamp(1.6rem, 2.6vw, 2.4rem); line-height:1; writing-mode:vertical-rl; transform:rotate(180deg); margin-top:auto; margin-bottom:22px; white-space:nowrap;}
.vol-d{position:absolute; left:20px; right:20px; bottom:44px; opacity:0; transform:translateY(10px); transition:opacity .4s ease, transform .5s var(--ease); font-size:.98rem; line-height:1.5; max-width:34ch;}
.volume:hover{background:#262a26;}
.volume[aria-expanded="true"]{flex:1 1 auto; background:var(--green); color:var(--ink); border-color:var(--green);}
.volume[aria-expanded="true"] .vol-t{writing-mode:horizontal-tb; transform:none; margin:22px 0 0; font-size:clamp(2.2rem, 3.6vw, 3.2rem);}
.volume[aria-expanded="true"] .vol-d{opacity:1; transform:none; transition-delay:.3s;}
.ambition{margin-top:56px; display:grid; grid-template-columns:.6fr 1.4fr; gap:40px; font-weight:500; font-size:clamp(1.15rem, 1.8vw, 1.5rem); line-height:1.45;}
.ambition .eyebrow{font-family:var(--body); padding-top:8px;}

/* ---------- VIII. insights ---------- */
.articles{display:grid; grid-template-columns:repeat(3, 1fr); gap:20px;}
.article{
  position:relative; display:flex; flex-direction:column; min-height:360px; padding:28px 28px 26px 40px;
  background:var(--page); border:1px solid var(--line); border-radius:3px 8px 8px 3px; text-decoration:none;
  box-shadow:0 1px 0 var(--line), 0 24px 40px -32px rgba(0,0,0,.35);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.article::before{content:""; position:absolute; left:0; top:0; bottom:0; width:14px; background:var(--ink); border-radius:3px 0 0 3px;}
.article::after{content:""; position:absolute; left:14px; top:0; bottom:0; width:10px; background:linear-gradient(to right, rgba(0,0,0,.14), transparent);}
.article:hover{transform:translateY(-6px) rotate(-.4deg); box-shadow:0 1px 0 var(--line), 0 40px 60px -36px rgba(0,0,0,.45);}
.article-cat{font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--mute);}
.article .h3{margin-top:18px; font-size:clamp(1rem, 1.25vw, 1.12rem);}
.article-more{margin-top:auto; font-weight:600; font-size:.92rem; display:inline-flex; gap:8px; align-self:flex-start; background:linear-gradient(var(--green), var(--green)) left 90% / 0 40% no-repeat; transition:background-size .4s var(--ease);}
.article:hover .article-more{background-size:100% 40%;}
.article.reveal.in:nth-child(2){transition-delay:.12s;}
.article.reveal.in:nth-child(3){transition-delay:.24s;}
.topics{display:flex; flex-wrap:wrap; gap:8px; margin-top:40px;}
.topics li{font-size:.85rem; border:1px solid var(--line-strong); border-radius:999px; padding:6px 14px; color:var(--ink-soft);}

/* ---------- closing ---------- */
.closing{background:var(--green); padding:clamp(88px, 12vw, 160px) 0;}
.closing-grid{display:grid; grid-template-columns:auto 1fr; gap:clamp(32px, 6vw, 96px); align-items:center;}
.closing-mark{width:clamp(110px, 18vw, 240px); height:auto; overflow:visible; color:var(--ink);}
.closing-mark line{stroke-width:6.5;}
.closing .display{font-size:clamp(1.7rem, 4vw, 3.6rem);}
.closing .lede{color:var(--ink); margin-top:26px; max-width:60ch;}

/* ---------- IX. contact ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px, 7vw, 110px); align-items:start;}
.contact .lede{margin-top:18px;}
.contact-details{margin-top:48px; border-top:1px solid var(--line);}
.contact-details div{display:grid; grid-template-columns:120px 1fr; padding:14px 0; border-bottom:1px solid var(--line);}
.contact-details dt{font-size:.76rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--mute); padding-top:3px;}
.contact-details a{text-decoration:none; border-bottom:1.5px solid var(--green);}
.enquiry{background:var(--page); border:1px solid var(--line); border-radius:8px; padding:clamp(24px, 4vw, 44px); display:grid; gap:20px; box-shadow:0 30px 60px -45px rgba(0,0,0,.35);}
.field{display:grid; gap:7px; border:0; padding:0; margin:0; min-width:0;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.field label, .field legend{font-size:.8rem; font-weight:600; color:var(--ink-soft); padding:0;}
.field input, .field select, .field textarea{
  font:inherit; font-size:1rem; color:var(--ink); width:100%;
  background:transparent; border:0; border-bottom:1.5px solid var(--line-strong); border-radius:0;
  padding:8px 0; transition:border-color .25s ease;
}
.field select{appearance:none; -webkit-appearance:none; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23121412' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") right 4px center no-repeat;}
.field textarea{resize:vertical; min-height:110px;}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-bottom-color:var(--ink); box-shadow:0 1.5px 0 var(--ink);}
.field.error input, .field.error select, .field.error textarea{border-bottom-color:#b3261e;}
.radios{display:flex; gap:24px; margin-top:6px;}
.radios label{display:flex; gap:8px; align-items:center; font-size:.95rem; font-weight:500; color:var(--ink);}
.radios input{accent-color:var(--ink); width:16px; height:16px;}
.enquiry .btn{justify-self:start; margin-top:6px;}
.form-status{font-size:.92rem; min-height:1.4em;}
.form-status.ok{background:var(--mint); border:1px solid var(--green); padding:12px 14px; border-radius:6px;}
.form-status.bad{color:#b3261e;}

/* ---------- colophon ---------- */
.colophon{background:var(--ink); color:rgba(248,250,245,.7); padding:72px 0 88px; font-size:.92rem;}
.colophon-top{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:20px; padding-bottom:36px; border-bottom:1px solid var(--line-dark);}
.colophon .logo{font-size:2.4rem;}
.colophon-tag{font-family:var(--head); font-weight:900; font-size:1.2rem; color:var(--paper);}
.colophon-cols{display:grid; grid-template-columns:1.6fr 1fr 1fr 1.3fr; gap:32px; padding:36px 0;}
.col-h{font-size:.74rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--green); margin-bottom:12px;}
.colophon ul li{padding:3px 0;}
.colophon a{text-decoration:none;}
.colophon a:hover{color:var(--paper);}
.colophon-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:24px; border-top:1px solid var(--line-dark); font-size:.82rem;}

/* ---------- responsive ---------- */
/* ---------- green title pages ---------- */
.hero-green, .opener{background:var(--green); color:var(--ink);}
.hero-green .lede, .opener .lede{color:var(--ink);}
.hero-green .eyebrow, .opener .eyebrow{color:rgba(18,20,18,.7);}
.hero-green .hero-figure figcaption{color:rgba(18,20,18,.7);}
.hero-green .hero-mark .ground{stroke:rgba(18,20,18,.35);}
.hero-green .hero-verbs span{color:rgba(18,20,18,.6);}
.opener{border-bottom:0;}
/* header sitting on the green, before it picks up its paper background */
.site-header:not(.scrolled) .header-cta{background:var(--ink); color:var(--green);}
.site-header:not(.scrolled) .main-nav a{color:var(--ink);}
.cta-short{display:none;}

/* ---------- plates: photographs printed in the brand's two inks ---------- */
.plate-wrap{padding:clamp(24px, 4vw, 48px) 0;}
.plate{margin:0 auto;}
.plate-frame{position:relative; overflow:hidden; aspect-ratio:21 / 9; background:var(--green); border-radius:4px;}
.plate-frame img{
  position:absolute; left:0; top:-8%; width:100%; height:116%; object-fit:cover;
  filter:grayscale(1) contrast(1.15) brightness(1.04); mix-blend-mode:multiply;
  transform:translateY(var(--py, 0px)); will-change:transform;
}
.plate figcaption{display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 16px; padding-top:12px; font-size:.85rem; color:var(--mute);}
.plate-n{font-family:var(--head-s); font-weight:900; text-transform:uppercase; letter-spacing:.06em; color:var(--ink);}
.plate-c{font-style:italic;}
.plate-credit{margin-left:auto; font-size:.78rem;}
.plate-credit a{color:inherit;}
.ink .plate figcaption, .ink + .plate-wrap figcaption{color:var(--mute);}

/* ---------- placeholders: visible on purpose so nothing ships unreplaced ---------- */
.ph{position:relative; border:1.5px dashed var(--line-strong) !important;}
.ink .ph{border-color:rgba(248,250,245,.3) !important;}
.ph-badge{position:absolute; top:-11px; left:16px; background:var(--green); color:var(--ink); font-size:.66rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; padding:3px 9px; border-radius:999px;}

/* ---------- people ---------- */
.team-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;}
.person{padding:20px 20px 24px; border-radius:6px; background:var(--page);}
.person-photo{aspect-ratio:4 / 5; background:var(--mint); border-radius:4px; display:grid; place-items:center; align-content:center; gap:10px; color:var(--ink-soft); margin-bottom:18px;}
.person-photo .mark{width:44px; height:44px;}
.person-photo span{font-size:.75rem; letter-spacing:.14em; text-transform:uppercase;}
.person-role{margin-top:6px; color:var(--ink-soft); font-weight:500;}
.person-creds{margin-top:8px; color:var(--mute); font-size:.9rem;}
.logo-row{margin-top:48px; padding:26px 22px; border-radius:6px;}
.logo-row ul{display:grid; grid-template-columns:repeat(5, 1fr); gap:14px; margin-top:16px;}
.logo-row li{height:56px; display:grid; place-items:center; background:var(--mint); border-radius:4px; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--mute);}

/* ---------- case files ---------- */
.case-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;}
.case{padding:28px 24px; border-radius:6px; background:var(--ink-2);}
.case-n{font-size:.75rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--green);}
.case .h3{margin-top:10px;}
.case dl{margin-top:18px;}
.case dl div{padding:12px 0; border-top:1px solid var(--line-dark);}
.case dt{font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:rgba(248,250,245,.55);}
.case dd{margin-top:4px; color:rgba(248,250,245,.85); font-size:.95rem;}
.case-tag{margin-top:14px; font-size:.82rem; color:rgba(248,250,245,.55); font-style:italic;}

/* ---------- insights articles ---------- */
.article-time{margin-top:12px; font-size:.8rem; color:var(--mute);}
.article-opener .wrap{max-width:900px;}
.article-opener .h1{margin-top:14px;}
.article-opener .lede{margin-top:20px;}
.back-link{display:inline-flex; gap:8px; font-size:.88rem; font-weight:600; text-decoration:none; margin-bottom:28px;}
.back-link:hover{text-decoration:underline;}
.article-page .wrap{max-width:900px;}
.article-body{max-width:68ch; color:var(--ink-soft); font-size:1.06rem;}
.article-body p + p{margin-top:1.1em;}
.article-body .h3{color:var(--ink); margin:2.2em 0 .6em;}
.article-body ul, .article-body ol{margin:1em 0;}
.article-body li{position:relative; padding:8px 0 8px 26px; border-top:1px solid var(--line);}
.article-body ul li::before{content:""; position:absolute; left:2px; top:17px; width:8px; height:8px; border-radius:50%; border:1.5px solid var(--ink);}
.article-body ol{counter-reset:step;}
.article-body ol li{counter-increment:step;}
.article-body ol li::before{content:counter(step); position:absolute; left:0; top:9px; font-family:var(--head-s); font-weight:900; font-size:.9rem; color:var(--ink);}
.article-body b{color:var(--ink); font-weight:600;}
.article-body .pull{margin:1.8em 0 !important;}
.further{margin-top:clamp(56px, 8vw, 96px); max-width:68ch;}
.further .toc{margin-top:14px; border-top:1px solid var(--ink);}
.further .toc-n{min-width:auto; font-family:var(--body); font-weight:600; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; width:11em; flex:none;}
.further .toc-t{font-size:1rem;}

@media (max-width: 1100px){
  .main-nav{gap:20px;}
  .cta-long{display:none;}
  .cta-short{display:inline;}
  .header-cta{padding:10px 18px;}
  .toc-inline{columns:1;}
}
@media (max-width: 900px){
  .header-cta{margin-left:auto;}
  .header-row .menu-btn{margin-left:0;}
  .team-grid, .case-grid{grid-template-columns:1fr;}
  .team-grid{grid-template-columns:repeat(2, 1fr);}
  .logo-row ul{grid-template-columns:repeat(3, 1fr);}
  .plate-frame{aspect-ratio:16 / 10;}
  .plate-credit{margin-left:0;}
}
@media (max-width: 560px){
  .team-grid{grid-template-columns:1fr;}
  .menu-btn-label{display:none;}
  .further .toc-n, .further .toc-p, .further .toc-dots{display:none;}
  .further .toc-t{font-size:.84rem;}
  .article-opener .h1{font-size:1.2rem;}
}
@media (max-width: 400px){
  .article-opener .h1{font-size:1.05rem;}
  .further .toc-t{font-size:.76rem;}
  .plate-frame{aspect-ratio:4 / 3;}
}
@media (max-width: 1020px){
  .articles{grid-template-columns:1fr;}
  .article{min-height:220px;}
}
@media (max-width: 900px){
  .main-nav{display:none;}
  .menu-btn{display:inline-flex;}
  .hero-grid{grid-template-columns:1fr;}
  .opener-grid{grid-template-columns:1fr; gap:20px;}
  .opener-side{flex-direction:row; align-items:flex-end;}
  .step-strip{grid-template-columns:repeat(3, 1fr); row-gap:20px;}
  .hero-figure{order:-1; max-width:360px; margin:0 auto 8px;}
  .hero{padding-top:100px;}
  .hero-verbs{grid-template-columns:repeat(2, 1fr); margin-top:44px;}
  .chapter-intro{grid-template-columns:1fr; gap:20px;}
  .chapter-intro .lede{justify-self:start;}
  .spread-text{grid-template-columns:1fr;}
  .spread-text::before{display:none;}
  .pvm{grid-template-columns:1fr;}
  .pvm article, .pvm article + article{padding:26px 0; border-right:0; border-bottom:1px solid var(--line);}
  .values{grid-template-columns:1fr; gap:20px;}
  .toc-inline{columns:1;}
  .book-spread{grid-template-columns:1fr;}
  .verso{display:none;}
  .recto{border-radius:6px;}
  .entry-num{display:block; color:var(--ink); margin-bottom:10px;}
  .why-grid{grid-template-columns:1fr 1fr;}
  .why-grid article, .why-grid article:not(:nth-child(3n+1)){padding:24px 0; border-left:0;}
  .why-grid article:nth-child(even){padding-left:24px; border-left:1px solid var(--line-dark);}
  .index{columns:2;}
  .articles{grid-template-columns:1fr;}
  .article{min-height:240px;}
  .closing-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .colophon-cols{grid-template-columns:1fr 1fr;}
  .ambition{grid-template-columns:1fr; gap:12px;}
  /* volumes stack on narrow screens */
  .shelf{flex-direction:column; align-items:stretch; height:auto; border-bottom:0; gap:8px;}
  .volume{height:auto; flex:none; border-radius:4px; transform:translateX(-105%); min-height:64px; padding:16px 18px;}
  .volume::before, .volume::after{display:none;}
  .vol-n{margin-top:0;}
  .vol-t, .volume[aria-expanded="true"] .vol-t{writing-mode:horizontal-tb; transform:none; margin:6px 0 0; font-size:1.8rem;}
  .vol-d{position:static; display:none;}
  .volume[aria-expanded="true"] .vol-d{display:block; margin-top:10px;}
  /* approach becomes a single readable page per step */
  .flip-track{height:auto;}
  .flip-stage{position:static; height:auto; perspective:none; padding:0 var(--gap) 80px;}
  .book{aspect-ratio:auto; max-height:none; display:grid; gap:14px; transform-style:flat;}
  .book::after, .spine, .base-left, .flip-steps{display:none;}
  .page, .leaf{position:relative; width:100%; left:auto;}
  .leaf{transform:none !important; display:grid; grid-template-columns:1fr; transform-style:flat;}
  .face{position:relative; inset:auto; backface-visibility:visible;}
  .face.back{display:none;}
  .leaf .face.front{border-radius:6px; background:var(--page);}
  .leaf .page-inner{min-height:0; padding:26px 24px 44px;}
  .step-desc{margin:12px 0 0; max-width:none; font-size:1.35rem;}
  .base-right{order:10; border-radius:6px;}
  .m-word{display:block !important; font-family:var(--display); font-weight:900; font-size:2rem; line-height:1.05; margin-top:6px;}
}
@media (max-width: 560px){
  body{font-size:16px;}
  .header-row{padding:14px var(--gap);}
  .logo{font-size:1.35rem;}
  .entry-list, .iso-list{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr;}
  .why-grid article:nth-child(even){padding-left:0; border-left:0;}
  .index{columns:1;}
  .step-strip{grid-template-columns:repeat(2, 1fr);}
  .toc-t, .toc-inline .toc-t{font-size:.98rem;}
  .toc-inline .toc-p, .toc-inline .toc-dots{display:none;}
  .toc-inline a{justify-content:flex-start;}
  .statement{font-size:1.32rem;}
}
@media (max-width: 400px){
  .display{font-size:1.45rem;}
  .hero-title{font-size:1.55rem;}
  .statement{font-size:1.15rem;}
  .entry-title{font-size:1.05rem;}
  .article .h3{font-size:.9rem;}
  .article{padding:24px 20px 22px 34px;}
  .field-row{grid-template-columns:1fr;}
  .pillars li{grid-template-columns:1fr; gap:6px;}
  .ft{grid-template-columns:1fr auto; gap:6px 14px;}
  .ft em{grid-column:1 / -1;}
  .ft-arrow{grid-column:2; grid-row:1;}
  .quote{grid-template-columns:2rem 1fr 36px;}
  .q-answer > p{padding-left:calc(2rem + 12px); flex-wrap:wrap; gap:6px 12px;}
  .colophon-cols{grid-template-columns:1fr;}
  .folio-chapter{display:none;}
  .folio{justify-content:flex-end;}
  .contact-details div{grid-template-columns:96px 1fr;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *, *::before, *::after{animation-duration:.001ms !important; transition-duration:.001ms !important; transition-delay:0s !important;}
  .reveal{opacity:1; transform:none;}
  .statement .w{opacity:1;}
  .volume{transform:none;}
}
