/* Layout: a gallery with rooms. Light walls for most series, black rooms for Studio and Details. Each series hangs beside a sticky wall label, and one photo per series runs edge to edge. */
:root{
  --wall:#f1f1ee;
  --ink:#121212;
  --mute:#74736d;
  --line:rgba(18,18,18,.13);
  --paper:#fcfcfa;
  --night:#0a0a0a;
  --grease:#d4392a;
  --bg:var(--wall);--fg:var(--ink);--fgm:var(--mute);--rule:var(--ink);--hair:var(--line);
  --display:"Instrument Serif","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --ui:"Geist","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --gl:max(20px,env(safe-area-inset-left,0px));
  --gr:max(20px,env(safe-area-inset-right,0px));
  --gap:clamp(14px,1.8vw,28px);
  --ease:cubic-bezier(.77,0,.18,1);
  --out:cubic-bezier(.16,1,.3,1);
  --t-fast:.3s;--t-ui:.6s;--t-slow:1.2s;--t-reveal:1.4s;
  interpolate-size:allow-keywords;
  color-scheme:light;
}
html.night{--bg:var(--night);--fg:#eeede8;--fgm:#8f8e88;--rule:#eeede8;--hair:rgba(238,237,232,.15);color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-gutter:stable;transition:background-color var(--t-slow) var(--out)}
html.locked{overflow:hidden}
html,body{overflow-x:clip}
@supports not (overflow:clip){html{overflow-x:hidden}}
body{margin:0;background:var(--bg);color:var(--fg);font:400 15px/1.55 var(--ui);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color var(--t-slow) var(--out),color var(--t-slow) var(--out)}
img{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:inherit;-webkit-tap-highlight-color:transparent}
a{color:inherit}
[hidden]{display:none!important}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}
::selection{background:var(--grease);color:#fff}
.wrap{max-width:1560px;margin-inline:auto;padding-left:var(--gl);padding-right:var(--gr)}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;font-weight:400}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:var(--gl);top:10px;z-index:400;background:var(--ink);color:var(--wall);padding:10px 14px;transform:translateY(-200%)}
.skip:focus{transform:none}

/* buttons: black or light, red on hover. The red is the site's only accent color. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 22px;border-radius:999px;font-size:14px;font-weight:500;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--t-fast),color var(--t-fast),border-color var(--t-fast),opacity var(--t-fast)}
.btn-dark{background:#121212;color:#f1f1ee}
.btn-light{background:#eeede8;color:#0a0a0a}
.btn-dark:hover,.btn-light:hover{background:var(--grease);color:#fff}
.btn-line{border:1px solid currentColor}
.btn-line:hover{border-color:var(--grease);color:var(--grease)}
.btn .dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--grease);transition:background-color var(--t-fast)}
.btn:hover .dot{background:#fff}
.btn[aria-busy="true"]{opacity:.6;pointer-events:none}
.arr{display:inline-block;transition:transform var(--t-ui) var(--out)}
.btn:hover .arr,.sess:hover .arr{transform:translateX(4px)}

/* nav: plain on the table, black pills once you scroll */
.nav{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:calc(env(safe-area-inset-top,0px) + 14px) var(--gr) 0 var(--gl);pointer-events:none}
.nav>*{pointer-events:auto}
.pill-bar{display:flex;align-items:center;border-radius:999px;padding:5px;transition:background-color var(--t-ui) var(--out),box-shadow var(--t-ui) var(--out),color var(--t-ui) var(--out)}
.scrolled .pill-bar{background:#111;color:#f1f1ee;box-shadow:0 12px 30px -14px rgba(0,0,0,.5),inset 0 0 0 1px rgba(255,255,255,.09)}
.nav-left{position:relative;display:grid}
.nav-left>*{grid-area:1/1;transition:opacity var(--t-ui) var(--out),transform var(--t-ui) var(--out)}
.nav-role{font-size:13px;padding:7px 2px;text-decoration:none;white-space:nowrap}
.nav-mark{font-family:var(--display);font-size:21px;line-height:1;text-decoration:none;padding:5px 13px 6px;opacity:0;transform:translateY(8px);pointer-events:none;white-space:nowrap}
.scrolled .nav-role{opacity:0;transform:translateY(-8px)}
.scrolled .nav-mark{opacity:1;transform:none;pointer-events:auto}
.nav-right{display:flex;align-items:center;gap:6px}
.nav-book{min-height:44px;padding:0 18px;font-size:13px;box-shadow:0 12px 30px -14px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.09)}
.nav-links{gap:2px}
.nav-links a{font-size:13px;text-decoration:none;padding:7px 13px;border-radius:999px;transition:background-color var(--t-fast),color var(--t-fast)}
.nav-links a:hover{background:rgba(128,128,128,.2)}
.scrolled .nav-links a[aria-current="true"]{background:#f1f1ee;color:#111}

/* hero: the light table */
.table{position:relative;height:100vh;height:100svh;min-height:600px;overflow:hidden;background:var(--wall);color:var(--ink)}
.table::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 70% at 50% 35%,rgba(255,255,255,.75),rgba(255,255,255,0) 70%);pointer-events:none}
.table-name{position:absolute;left:var(--gl);right:var(--gr);bottom:clamp(58px,9vh,100px);z-index:1;margin:0;font-family:var(--display);font-weight:400;font-size:clamp(56px,min(15.2vw,30vh),360px);line-height:.8;letter-spacing:-.03em;pointer-events:none;user-select:none}
.table-name span{display:block;animation:rise 1.4s var(--out) both}
.table-name span+span{font-style:italic;padding-left:.42em;animation-delay:.12s}
@keyframes rise{from{transform:translateY(35%);opacity:0}}
.prints{position:absolute;inset:0;z-index:2}
.print{position:absolute;left:0;top:0;width:var(--w);padding:var(--pad);background:var(--paper);box-shadow:0 1px 2px rgba(0,0,0,.09),0 14px 30px -14px rgba(0,0,0,.3);will-change:transform;touch-action:pan-y;transition:box-shadow var(--t-fast) var(--out),opacity var(--t-fast)}
.print.black{background:#121212}
.print.lift{box-shadow:0 2px 6px rgba(0,0,0,.1),0 46px 70px -24px rgba(0,0,0,.4)}
.print img{width:100%;height:auto;aspect-ratio:var(--ar);object-fit:cover;background:var(--c);pointer-events:none;user-select:none;-webkit-user-drag:none}
.table-foot{position:absolute;left:var(--gl);right:var(--gr);bottom:calc(env(safe-area-inset-bottom,0px) + 20px);z-index:3;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:12px;color:var(--mute);pointer-events:none}
.table-foot>*{pointer-events:auto}
.table-foot button{color:#121212;background:rgba(252,252,250,.6);border:1px solid rgba(18,18,18,.2);border-radius:999px;padding:8px 15px;font-size:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:border-color var(--t-fast),background-color var(--t-fast)}
.table-foot button:hover{border-color:#121212;background:#fcfcfa}
.foot-book{display:none;min-height:40px;padding:0 18px;font-size:13px}
/* a black card lying on the table: what she offers and how to book */
.table-card{position:absolute;right:var(--gr);bottom:clamp(58px,9vh,100px);z-index:3;width:min(320px,31vw);padding:18px 20px 20px;background:#121212;color:#eeede8;box-shadow:0 2px 6px rgba(0,0,0,.12),0 40px 70px -30px rgba(0,0,0,.55);rotate:-1.4deg;animation:cardIn var(--t-slow) var(--out) .9s both}
@keyframes cardIn{from{opacity:0;translate:0 26px;rotate:3deg}}
.table-card-k{display:flex;justify-content:space-between;gap:12px;margin:0;color:#8f8e88;font-size:10px}
.table-card-t{margin:16px 0 20px;font-family:var(--display);font-size:clamp(25px,2.1vw,32px);line-height:1.02;text-wrap:balance}
.table-card-t em{font-style:italic}
.table-card-a{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.table-card-a .btn{min-height:42px;padding:0 18px;font-size:13px}
.table-card-a .more{font-size:13px;color:#a9a8a2;text-decoration:none;transition:color var(--t-fast)}
.table-card-a .more:hover{color:#fff}

/* intro + contents */
.intro{padding-block:clamp(120px,20vh,230px) clamp(40px,6vh,80px)}
.intro-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:28px;align-items:end}
.intro-text{grid-column:1/10;margin:0;font-family:var(--display);font-weight:400;font-size:clamp(40px,5.6vw,92px);line-height:1;letter-spacing:-.015em;text-wrap:balance}
.intro-text em{font-style:italic}
.intro-side{grid-column:10/13;margin:0;font-size:15px;line-height:1.6;color:var(--fgm);max-width:34ch}
.toc{list-style:none;margin:clamp(64px,10vh,110px) 0 0;padding:0;border-top:2px solid var(--rule)}
.toc a{display:grid;grid-template-columns:5ch minmax(0,1fr) auto;align-items:baseline;gap:16px;padding:20px 14px 18px 0;border-bottom:1px solid var(--hair);text-decoration:none;transition:padding var(--t-ui) var(--out),background-color var(--t-fast),color var(--t-fast)}
.toc a:hover{background:var(--ink);color:var(--wall);padding-left:18px;padding-right:18px}
.toc a:hover .n{color:var(--grease)}
.toc .t{font-family:var(--display);font-size:clamp(34px,4.2vw,64px);line-height:.95}
.toc .n,.toc .c{font-family:var(--mono);font-size:11px;text-transform:uppercase}
.toc .c{opacity:.6}
.toc .dark-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-left:12px;vertical-align:middle;opacity:.85}

/* series */
.series{padding-top:clamp(130px,20vh,220px)}
.label-rule{display:grid;grid-template-columns:5ch 1fr auto;gap:16px;border-top:2px solid var(--rule);padding-top:12px;margin-bottom:clamp(40px,7vh,84px);transition:border-color var(--t-slow) var(--out)}
.label-rule span:last-child{color:var(--fgm)}
.series-body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:start}
.series-aside{grid-column:1/5;align-self:stretch}
.aside-in{position:sticky;top:clamp(92px,13vh,130px);display:grid;gap:26px;padding-right:clamp(0px,2vw,30px)}
.series-title{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(56px,6.4vw,118px);line-height:.84;letter-spacing:-.025em}
.series-quote{margin:0;font-family:var(--display);font-style:italic;font-size:clamp(19px,1.55vw,25px);line-height:1.25;text-wrap:pretty;max-width:26ch}
.aside-list{list-style:none;margin:6px 0 0;padding:0;border-top:1px solid var(--hair);transition:border-color var(--t-slow) var(--out)}
.aside-list button{display:grid;grid-template-columns:4ch minmax(0,1fr);gap:10px;width:100%;padding:7px 0;border-bottom:1px solid var(--hair);font-size:13px;color:var(--fgm);transition:color var(--t-fast),padding var(--t-ui) var(--out),border-color var(--t-slow) var(--out)}
.aside-list button:hover{color:var(--fg)}
.aside-list button.on{color:var(--fg);padding-left:10px}
.aside-list button.on .mono{color:var(--grease)}
.series-flow{grid-column:5/13;display:grid;gap:clamp(64px,11vh,130px);min-width:0}
.work{margin:0;min-width:0}
.work-img{display:block;width:100%;position:relative;overflow:hidden;background:var(--c);aspect-ratio:var(--ar);clip-path:inset(var(--clip,0%));transition:clip-path var(--t-reveal) var(--ease)}
.work-img img{width:100%;height:100%;object-fit:cover;transform:scale(var(--s,1));transition:transform var(--t-reveal) var(--ease),opacity var(--t-fast)}
.reveal{--clip:6%;--s:1.12}
.reveal.in{--clip:0%;--s:1}
.reveal.in .work-img:hover{--s:1.035}
.work figcaption,.bleed figcaption .cap{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:12px;padding-top:10px;border-top:1px solid var(--hair);transition:border-color 1s var(--out)}
.cap-l{display:flex;gap:12px;align-items:baseline;min-width:0}
.work-no{font-family:var(--mono);font-size:11px;color:var(--fgm)}
.work-title{font-family:var(--display);font-size:21px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.work-note{font-family:var(--mono);font-size:11px;color:var(--fgm);text-transform:uppercase;text-align:right;white-space:nowrap}
.pair,.triptych{display:flex;gap:var(--gap);align-items:flex-start}
.pair .work,.triptych .work{min-width:0}
.triptych{margin-top:clamp(10px,2vh,24px)}
.series-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:24px;align-items:end;margin-bottom:clamp(40px,7vh,80px)}
.series-top .series-title{grid-column:1/8;font-size:clamp(68px,11vw,190px)}
.series-top .series-quote{grid-column:9/13;max-width:none}

/* edge-to-edge moment */
.bleed{margin:clamp(100px,16vh,180px) 0 0}
.bleed-img{display:block;position:relative;width:100%;height:min(100svh,calc(100vw / var(--a)));overflow:hidden;background:var(--c);clip-path:inset(var(--bc,0 0 0 0));transition:clip-path var(--t-reveal) var(--ease)}
.bleed-img img{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover;transform:translate3d(0,var(--py,0%),0)}
.bleed.reveal-b{--bc:0 7% 0 7%}
.bleed.reveal-b.in{--bc:0 0 0 0}
.bleed figcaption{margin-top:0}

/* details: contact sheet */
.sheet{background:#040404;color:#cfcdc6;padding:12px clamp(12px,2vw,26px) 16px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.sheet-edge{display:flex;justify-content:space-between;gap:12px;color:#6f6c63;font-size:10px;padding:6px 2px}
.strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1vw,14px);padding:24px 0 14px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.13) 0 11px,rgba(255,255,255,0) 11px 27px) 6px 7px/100% 6px no-repeat}
.cell{position:relative;min-width:0}
.cell-img{display:block;width:100%;aspect-ratio:1;overflow:hidden;background:var(--c)}
.cell-img img{width:100%;height:100%;object-fit:cover;opacity:.4;transition:opacity var(--t-slow) var(--out),transform var(--t-slow) var(--out)}
.sheet.in .cell-img img{opacity:1}
.sheet.in .strip:hover .cell-img img{opacity:.5}
.sheet.in .strip .cell-img:hover img{opacity:1;transform:scale(1.04)}
.cell-cap{display:flex;gap:10px;align-items:baseline;padding-top:9px;color:#8f8d86;font-size:10px;min-width:0}
.cell-cap .tt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fav-note{font-family:var(--display);font-style:italic;text-transform:none;letter-spacing:0;font-size:15px;color:var(--grease);white-space:nowrap}
.grease{position:absolute;left:-6%;top:-6%;width:112%;aspect-ratio:1;overflow:visible;pointer-events:none}
.grease path{fill:none;stroke:var(--grease);stroke-width:2.2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset var(--t-reveal) var(--ease) .7s}
.sheet.in .grease path{stroke-dashoffset:0}

/* in her words: a black room where each quote reads itself in as you scroll */
.words{position:relative;height:calc(100vh + var(--nq,5) * 85vh)}
.words-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.words-grid{height:100%;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto minmax(0,1fr) auto;column-gap:var(--gap);row-gap:20px;padding-top:clamp(84px,12vh,120px);padding-bottom:clamp(28px,5vh,48px)}
.words-head{grid-column:1/-1;display:grid;grid-template-columns:5ch 1fr auto;gap:16px;border-top:2px solid var(--rule);padding-top:12px;transition:border-color var(--t-slow) var(--out)}
.words-head h2{margin:0;font:inherit}
.words-count{color:var(--fgm)}
.words-count b{font-weight:400;color:var(--fg)}
.words-quotes{grid-column:1/8;grid-row:2;position:relative;min-height:0}
.wq{position:absolute;left:0;right:0;top:50%;margin:0;transform:translateY(calc(-50% + 26px));opacity:0;transition:opacity var(--t-ui) var(--out),transform var(--t-slow) var(--out);pointer-events:none}
.wq.on{opacity:1;transform:translateY(-50%);pointer-events:auto}
.wq blockquote{margin:0;font-family:var(--display);font-size:clamp(30px,min(4.3vw,6.6vh),76px);line-height:1.04;letter-spacing:-.012em;text-wrap:balance}
.wq.short blockquote{font-size:clamp(38px,min(5.8vw,9vh),104px);line-height:1}
.wq blockquote span{opacity:.16;transition:opacity var(--t-ui) var(--out)}
.wq blockquote span.lit{opacity:1}
.wq figcaption{margin-top:26px;color:var(--fgm)}
.words-photo{grid-column:9/13;grid-row:2;position:relative;align-self:center;height:min(62vh,560px)}
.wp{position:absolute;inset:0;display:block;opacity:0;transition:opacity var(--t-slow) var(--out)}
.wp.on{opacity:1}
.wp img{width:100%;height:100%;object-fit:contain;transform:scale(1.05);transition:transform var(--t-reveal) var(--out)}
.wp.on img{transform:scale(1)}
.words-bar{grid-column:1/-1;grid-row:3;display:flex;gap:8px}
.words-bar i{flex:1;height:2px;background:var(--hair);position:relative;overflow:hidden}
.words-bar b{position:absolute;inset:0;background:var(--fg);transform-origin:left;transform:scaleX(var(--f,0))}
.words-bar i.cur b{background:var(--grease)}

/* all work: every photograph in one justified grid */
.allwork{padding-top:clamp(150px,22vh,240px)}
.aw-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 24px;margin-bottom:28px}
.aw-title{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(56px,7.4vw,124px);line-height:.86;letter-spacing:-.02em}
.aw-title em{font-style:italic}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--hair);border-radius:999px;padding:8px 15px;font-size:12px;transition:background-color var(--t-fast),color var(--t-fast),border-color var(--t-fast)}
.chip:hover{border-color:var(--fg)}
.chip[aria-pressed="true"]{background:#121212;color:#f1f1ee;border-color:#121212}
.aw-grid{--rh:clamp(110px,12.5vw,210px);display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px}
.aw-grid::after{content:"";flex:999 1 0px}
.aw{position:relative;display:block;min-width:0;overflow:hidden;background:var(--c)}
.aw img{width:100%;height:100%;object-fit:cover;transition:opacity var(--t-fast),transform var(--t-ui) var(--out)}
.aw-cap{position:absolute;left:0;right:0;bottom:0;display:flex;gap:8px;padding:26px 10px 9px;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.62));color:#fff;font-size:10px;white-space:nowrap;overflow:hidden;opacity:0;transform:translateY(6px);transition:opacity var(--t-fast),transform var(--t-fast) var(--out);pointer-events:none}
.aw-cap span:last-child{overflow:hidden;text-overflow:ellipsis}
@media (hover:hover) and (pointer:fine){
  .aw-grid:hover .aw img{opacity:.5}
  .aw-grid .aw:hover img{opacity:1;transform:scale(1.03)}
  .aw:hover .aw-cap{opacity:1;transform:none}
}
.aw:focus-visible .aw-cap{opacity:1;transform:none}
.peek{position:fixed;left:0;top:0;z-index:30;width:clamp(200px,17vw,290px);pointer-events:none;opacity:0;transition:opacity var(--t-fast)}
.peek.on{opacity:1}
.peek img{width:100%;height:auto;box-shadow:0 30px 60px -30px rgba(0,0,0,.5)}

/* about */
.about{padding-top:clamp(150px,22vh,240px)}
.about-photo{margin:0}
.about-photo img{width:100%;max-width:340px;aspect-ratio:4/5;object-fit:cover}
.about-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:48px;align-items:end}
.about-quote{grid-column:1/9;margin:0;font-family:var(--display);font-weight:400;font-size:clamp(36px,4.6vw,76px);line-height:1.02;letter-spacing:-.01em;text-wrap:balance}
.about-quote p{margin:0}
.about-quote cite{display:block;margin-top:22px;font-family:var(--mono);font-style:normal;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--fgm)}
.about-body{grid-column:9/13;display:grid;gap:26px}
.about-body p{margin:0;font-size:16px;line-height:1.6;max-width:40ch}
.facts{margin:0;display:grid;border-top:2px solid var(--rule)}
.facts div{display:grid;grid-template-columns:11ch minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--hair)}
.facts dt{font-family:var(--mono);font-size:11px;text-transform:uppercase;color:var(--fgm);padding-top:3px}
.facts dd{margin:0;font-size:15px}

/* booking: sessions, how it works, the quote form, questions */
.book{padding-top:clamp(150px,22vh,240px);padding-bottom:clamp(140px,22vh,240px)}
.book-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:24px;align-items:end;margin-bottom:clamp(44px,7vh,80px)}
.book-title{grid-column:1/8;margin:0;font-family:var(--display);font-weight:400;font-size:clamp(64px,10.4vw,180px);line-height:.84;letter-spacing:-.025em}
.book-title em,.how-h em,.quote-h em,.q-h em{font-style:italic}
.book-lead{grid-column:9/13;margin:0;font-size:16px;line-height:1.6;color:var(--fgm);max-width:38ch}
.sessions{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.sessions li{display:flex;min-width:0}
.sess{display:flex;flex-direction:column;width:100%;color:inherit;text-decoration:none}
.sess-img{display:block;width:100%;aspect-ratio:4/5;overflow:hidden;background:var(--c)}
.sess-img img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-reveal) var(--out)}
.sess:hover .sess-img img{transform:scale(1.04)}
.sess-meta{display:flex;justify-content:space-between;gap:12px;margin-top:14px;padding-top:10px;border-top:2px solid var(--rule);color:var(--fgm)}
.sess-name{display:block;margin-top:14px;font-family:var(--display);font-size:clamp(34px,2.9vw,48px);line-height:.95}
.sess-desc{display:block;margin-top:10px;font-size:14px;line-height:1.55;color:var(--fgm);max-width:34ch}
.sess-go{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:18px;font-size:13px;font-weight:500;transition:color var(--t-fast)}
.sess:hover .sess-go{color:var(--grease)}
.how,.kind,.quote{margin-top:clamp(100px,15vh,170px)}
.how{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:32px;align-items:start}
.how-h,.quote-h{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(40px,4.2vw,72px);line-height:.95;letter-spacing:-.015em}
.how-h{grid-column:1/4}
.how-steps{grid-column:4/13;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.how-steps li{border-top:2px solid var(--rule);padding-top:12px}
.how-steps .mono{color:var(--fgm)}
.how-steps b{display:block;margin-top:22px;font-family:var(--display);font-weight:400;font-size:clamp(24px,2vw,32px);line-height:1}
.how-steps p{margin:10px 0 0;font-size:14px;line-height:1.55;color:var(--fgm);max-width:28ch}
.kind-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--gap);margin-top:32px}
.kind figure{margin:0;border-top:2px solid var(--rule);padding-top:16px}
.kind blockquote{margin:0;font-family:var(--display);font-size:clamp(22px,1.8vw,28px);line-height:1.2}
.kind figcaption{margin-top:14px;color:var(--fgm)}
.quote{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto 1fr;grid-template-areas:"i i i i i . f f f f f f" "q q q q q . f f f f f f";column-gap:var(--gap);row-gap:48px;align-items:start}
.quote-intro{grid-area:i}
.quote-intro p{margin:20px 0 0;font-size:16px;line-height:1.6;color:var(--fgm);max-width:36ch}
.quote-intro a{color:var(--fg);text-decoration-color:var(--grease);text-decoration-thickness:1px;text-underline-offset:4px;overflow-wrap:anywhere}
.quote-faq{grid-area:q}
.faq-k{margin:0 0 14px;color:var(--fgm);font-weight:400}
.faq{border-top:2px solid var(--rule)}
.faq details{border-bottom:1px solid var(--hair)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:17px 0;cursor:pointer;list-style:none;font-family:var(--display);font-size:clamp(21px,1.7vw,27px);line-height:1.15}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{position:relative;flex:none;width:14px;height:14px;transition:color var(--t-fast)}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;margin-top:-.75px;background:currentColor;transition:transform var(--t-ui) var(--out)}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i::after{transform:rotate(0)}
.faq summary:hover i,.faq details[open] summary i{color:var(--grease)}
.faq p{margin:0;padding:0 0 20px;max-width:50ch;font-size:15px;line-height:1.6;color:var(--fgm)}
.faq details::details-content{block-size:0;overflow:hidden;transition:block-size var(--t-ui) var(--out),content-visibility var(--t-ui) allow-discrete}
.faq details[open]::details-content{block-size:auto}

/* the quote form: a black card */
.qcard{grid-area:f;position:relative;scroll-margin-top:84px;background:#0a0a0a;color:#eeede8;padding:clamp(22px,3vw,44px);color-scheme:dark;box-shadow:0 60px 100px -60px rgba(0,0,0,.65)}
.q-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:clamp(26px,4vh,40px);color:#8f8e88}
.q-bars{display:flex;gap:6px;width:min(200px,45%)}
.q-bars i{flex:1;height:2px;background:rgba(238,237,232,.16);overflow:hidden}
.q-bars i::after{content:"";display:block;height:100%;background:var(--grease);transform:scaleX(0);transform-origin:left;transition:transform var(--t-ui) var(--out)}
.q-bars i.on::after{transform:none}
.q-step{display:none}
.q-step.on{display:block;animation:stepIn var(--t-ui) var(--out)}
@keyframes stepIn{from{opacity:0;transform:translateY(12px)}}
.q-h{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(34px,3.1vw,50px);line-height:1;letter-spacing:-.01em;outline:none}
.q-sub{margin:10px 0 26px;font-size:14px;line-height:1.55;color:#8f8e88}
.q-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.q-type{position:relative;display:flex;align-items:center;gap:14px;padding:9px 34px 9px 9px;border:1px solid rgba(238,237,232,.16);cursor:pointer;transition:border-color var(--t-fast),background-color var(--t-fast)}
.q-type:hover{border-color:rgba(238,237,232,.42)}
.q-type input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.q-type img{flex:none;width:58px;height:72px;object-fit:cover;background:var(--c)}
.q-type b{display:block;font-family:var(--display);font-weight:400;font-size:25px;line-height:1}
.q-type small{display:block;margin-top:5px;font-size:12px;line-height:1.35;color:#8f8e88}
.q-type .tick{position:absolute;top:9px;right:9px;width:18px;height:18px;border-radius:50%;border:1px solid rgba(238,237,232,.3);transition:background-color var(--t-fast),border-color var(--t-fast)}
.q-type .tick::after{content:"";position:absolute;left:5.5px;top:2.5px;width:4px;height:8px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);opacity:0;transition:opacity var(--t-fast)}
.q-type.sel{border-color:var(--grease);background:rgba(212,57,42,.1)}
.q-type.sel .tick{background:var(--grease);border-color:var(--grease)}
.q-type.sel .tick::after{opacity:1}
.q-type:has(input:focus-visible){outline:2px solid var(--grease);outline-offset:2px}
.q-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}
.q-f{display:grid;align-content:start;gap:8px;min-width:0;margin:0;padding:0;border:0}
.q-f.full{grid-column:1/-1}
.q-lab{font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#8f8e88;padding:0}
.q-lab .opt{color:#5e5d58;margin-left:6px}
.q-in{display:block;width:100%;min-height:50px;padding:13px 14px;border:1px solid rgba(238,237,232,.2);border-radius:0;background:rgba(238,237,232,.045);color:#eeede8;font:400 16px/1.4 var(--ui);-webkit-appearance:none;appearance:none;transition:border-color var(--t-fast),background-color var(--t-fast)}
.q-in::placeholder{color:#6b6a65}
.q-in:hover{border-color:rgba(238,237,232,.38)}
.q-in:focus{outline:none;border-color:var(--grease);background:rgba(238,237,232,.07)}
.q-in[aria-invalid="true"]{border-color:var(--grease)}
.q-in:disabled{opacity:.35}
.q-in::-webkit-date-and-time-value{text-align:left}
textarea.q-in{min-height:130px;resize:vertical}
.q-chips{display:flex;flex-wrap:wrap;gap:8px}
.q-chip{position:relative;display:inline-flex}
.q-chip input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.q-chip span{display:inline-flex;align-items:center;min-height:40px;padding:0 15px;border:1px solid rgba(238,237,232,.2);border-radius:999px;font-size:13px;cursor:pointer;transition:background-color var(--t-fast),color var(--t-fast),border-color var(--t-fast)}
.q-chip span:hover{border-color:rgba(238,237,232,.5)}
.q-chip input:checked+span{background:#eeede8;color:#0a0a0a;border-color:#eeede8}
.q-chip input:focus-visible+span{outline:2px solid var(--grease);outline-offset:2px}
.q-check{display:inline-flex;align-items:center;gap:9px;font-size:13px;color:#b5b4ae;cursor:pointer;justify-self:start}
.q-check input{width:16px;height:16px;margin:0;accent-color:var(--grease)}
.q-err{margin:12px 0 0;color:#ff8273;font-size:13px}
.q-err:empty{display:none}
.q-f .q-err{margin:0}
.q-sum{margin:12px 0 26px;color:#8f8e88;line-height:1.6}
.q-alt{margin-top:10px;font-size:13px;color:#eeede8;text-decoration:underline;text-decoration-color:var(--grease);text-underline-offset:3px}
.q-nav{display:flex;align-items:center;gap:12px;margin-top:clamp(26px,4vh,36px);padding-top:20px;border-top:1px solid rgba(238,237,232,.14)}
.q-nav .btn{margin-left:auto}
.q-back{font-size:13px;color:#8f8e88;padding:12px 4px;transition:color var(--t-fast)}
.q-back:hover{color:#eeede8}
.q-hp{position:absolute!important;left:-10000px;width:1px;height:1px;opacity:0}
.q-done{outline:none;animation:stepIn var(--t-ui) var(--out)}
.q-done-k{margin:0 0 18px;color:var(--grease)}
.q-done .q-h{font-size:clamp(40px,4vw,64px)}
.q-done-sum{margin:24px 0 0;border-top:1px solid rgba(238,237,232,.14)}
.q-done-sum div{display:grid;grid-template-columns:10ch minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid rgba(238,237,232,.14);font-size:14px}
.q-done-sum dt{font-family:var(--mono);font-size:11px;text-transform:uppercase;color:#8f8e88;padding-top:2px}
.q-done-sum dd{margin:0;overflow-wrap:anywhere}
.q-done-act{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.qcard.sent .q-top,.qcard.sent .q-step,.qcard.sent .q-nav{display:none}

/* sticky book button on phones */
.book-fab{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);z-index:55;display:none;translate:-50% 0;transform:translateY(calc(100% + 40px));transition:transform var(--t-ui) var(--out)}
.book-fab.on{transform:none}
.book-fab .btn{min-height:50px;padding:0 24px;box-shadow:0 18px 40px -16px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.1)}
.night .book-fab .btn-dark{background:#eeede8;color:#0a0a0a}
.night .book-fab .btn-dark:hover{background:var(--grease);color:#fff}

/* contact: the black block */
.contact{background:#0a0a0a;color:#eeede8;padding-block:clamp(130px,22vh,240px) clamp(28px,5vh,48px)}
.contact-kicker{color:#8f8e88;margin:0 0 22px}
.contact-mail{display:inline-block;max-width:100%;font-family:var(--display);font-size:clamp(28px,4.6vw,84px);line-height:1;letter-spacing:-.02em;text-decoration:none;overflow-wrap:anywhere;background:linear-gradient(var(--grease),var(--grease)) 0 100%/0% 2px no-repeat;transition:background-size var(--t-ui) var(--out)}
.contact-mail:hover{background-size:100% 2px}
.contact-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(238,237,232,.45);border-radius:999px;padding:12px 20px;font-size:13px;text-decoration:none;transition:background-color var(--t-fast),color var(--t-fast),border-color var(--t-fast)}
.pill:hover{background:#eeede8;color:#0a0a0a;border-color:#eeede8}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:clamp(110px,18vh,200px);padding-top:18px;border-top:1px solid rgba(238,237,232,.16);font-size:12px;color:#8f8e88}
.foot a{text-decoration:none}

/* viewer */
.viewer{position:fixed;inset:0;z-index:100;color:#f3f2ee}
.v-bg{position:absolute;inset:0;background:var(--vbg,#111);opacity:0;transition:opacity .7s var(--out),background-color 1.1s var(--out)}
.v-glow{position:absolute;inset:0;background:radial-gradient(60% 55% at 50% 45%,var(--vglow,transparent),rgba(0,0,0,0) 72%);opacity:0;transition:opacity 1.2s var(--out)}
.viewer.open .v-bg{opacity:1}
.viewer.open .v-glow{opacity:.55}
.v-stage{position:absolute;top:clamp(70px,10vh,100px);bottom:clamp(170px,22vh,210px);left:var(--gl);right:var(--gr)}
.v-img{position:fixed;object-fit:contain;pointer-events:none;opacity:0;transform:translateX(var(--dx,0px));transition:opacity .45s var(--out),transform .6s var(--out);box-shadow:0 40px 90px -40px rgba(0,0,0,.7)}
.v-img.show{opacity:1;--dx:0px}
.ghost{position:fixed;z-index:101;object-fit:cover;pointer-events:none;transform-origin:50% 50%;box-shadow:0 40px 90px -40px rgba(0,0,0,.7)}
.v-ui{opacity:0;transition:opacity .5s var(--out) .15s}
.viewer.open .v-ui{opacity:1}
.v-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top,0px) + 18px) var(--gr) 0 var(--gl);font-size:13px}
.v-close{display:inline-flex;align-items:center;gap:10px;padding:6px 0}
.v-close i{width:16px;height:16px;position:relative;display:block}
.v-close i::before,.v-close i::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:currentColor;transform:rotate(45deg)}
.v-close i::after{transform:rotate(-45deg)}
.v-bottom{position:absolute;left:var(--gl);right:var(--gr);bottom:calc(env(safe-area-inset-bottom,0px) + 92px);display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.v-meta{min-width:0}
.v-no,.v-note{font-family:var(--mono);font-size:11px;text-transform:uppercase;opacity:.65}
.v-title{margin:6px 0 4px;font-family:var(--display);font-weight:400;font-size:clamp(30px,3.2vw,48px);line-height:1}
.v-nav{display:flex;gap:10px;flex:none}
.v-nav button{width:54px;height:54px;border:1px solid rgba(255,255,255,.28);border-radius:50%;display:grid;place-items:center;font-size:18px;transition:background-color .3s,border-color .3s}
.v-nav button:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.6)}
.v-rail{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);display:flex;gap:6px;padding:0 var(--gr) 0 var(--gl);overflow-x:auto;scrollbar-width:none}
.v-rail::-webkit-scrollbar{display:none}
.v-rail button{flex:none;height:52px;opacity:.38;transition:opacity .3s}
.v-rail button:hover{opacity:.75}
.v-rail button.on{opacity:1;outline:1px solid #fff;outline-offset:2px}
.v-rail img{height:100%;width:auto}

/* cursor */
.cursor{position:fixed;left:0;top:0;z-index:300;width:86px;height:86px;margin:-43px 0 0 -43px;border-radius:50%;background:rgba(18,18,18,.88);color:#fff;display:grid;place-items:center;font:500 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;pointer-events:none;opacity:0;scale:.3;transition:opacity .3s,scale .45s var(--out),background-color .3s,color .3s}
.cursor.on{opacity:1;scale:1}
.cursor.light,.night .cursor{background:rgba(250,250,247,.92);color:#121212}
@media (hover:hover) and (pointer:fine){.work-img,.bleed-img,.cell-img,.wp,.print,.v-stage,.aw,.sess-img{cursor:none}}

/* small screens */
@media (max-width:860px){
  .intro-text,.intro-side,.about-quote,.about-body{grid-column:1/-1}
  .series-body{grid-template-columns:1fr}
  .series-aside,.series-flow{grid-column:1/-1}
  .aside-in{position:static;margin-bottom:44px}
  .aside-list{display:none}
  .series-flow{gap:56px}
  .series-flow>.single{width:100%!important;justify-self:stretch!important}
  .series-flow>.single:nth-of-type(even){width:86%!important;justify-self:end!important}
  .series-top .series-title,.series-top .series-quote{grid-column:1/-1}
  .triptych{flex-direction:column}
  .triptych .work{width:100%}
  .work-note{display:none}
  .work-title{font-size:18px}
  .peek{display:none}
  .nav-links a{padding:7px 10px}
  .v-nav button{width:46px;height:46px}
  .foot-hint{display:none}
  .fav-note{font-size:13px}
  .book-title,.book-lead{grid-column:1/-1}
  .how-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px}
  .quote{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;grid-template-areas:"i" "f" "q";row-gap:40px}
}
@media (max-width:1100px){
  .sessions{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:56px}
  .how-h,.how-steps{grid-column:1/-1}
}
@media (min-width:861px) and (max-width:1100px){
  .quote{grid-template-areas:"i i i i i f f f f f f f" "q q q q q f f f f f f f"}
}
@media (max-width:720px),(max-height:560px){
  .table-card{display:none}
  .foot-book{display:inline-flex}
  .foot-scroll{display:none}
}
@media (max-width:720px){
  .nav-book{display:none}
  .book-fab{display:block}
  .aw-grid{--rh:84px;gap:4px}
  .sessions{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin-inline:calc(-1 * var(--gl)) calc(-1 * var(--gr));padding-inline:var(--gl) var(--gr);scroll-padding-inline:var(--gl);scrollbar-width:none}
  .sessions::-webkit-scrollbar{display:none}
  .sessions li{flex:0 0 min(78%,320px);scroll-snap-align:start}
}
@media (max-width:600px){
  .how-steps{grid-template-columns:1fr;row-gap:28px}
  .how-steps b{margin-top:12px}
  .q-types,.q-grid{grid-template-columns:minmax(0,1fr)}
  .qcard{margin-inline:calc(-1 * var(--gl)) calc(-1 * var(--gr));padding:28px var(--gr) 30px var(--gl)}
}
@media (max-width:520px){
  .cell-cap .tt{display:none}
  .nav{gap:8px}
  .nav-role{font-size:12px}
  .nav-mark{font-size:18px;padding:5px 11px 6px}
  .nav-links a{font-size:12px;padding:6px 10px}
  .nav-links a:nth-child(3){display:none}
  .contact-mail{font-size:5.3vw;white-space:nowrap;overflow-wrap:normal}
}
@media (max-width:860px){
  .words{height:calc(100vh + var(--nq,5) * 75vh)}
  .words-grid{grid-template-rows:auto auto minmax(0,1fr) auto;row-gap:18px}
  .words-photo{grid-column:1/-1;grid-row:2;height:30svh}
  .words-quotes{grid-column:1/-1;grid-row:3}
  .wq{top:0;transform:translateY(26px)}
  .wq.on{transform:none}
  .wq blockquote{font-size:clamp(25px,6.6vw,34px)}
  .wq.short blockquote{font-size:clamp(30px,8.6vw,42px)}
  .wq figcaption{margin-top:16px}
  .words-bar{grid-row:4}
  .about-statement{grid-column:1/-1}
}
/* phones held sideways and other short screens */
@media (max-height:520px) and (min-width:560px){
  .table{min-height:0}
  .table-name{bottom:46px}
  .table-foot{bottom:calc(env(safe-area-inset-bottom,0px) + 10px)}
  .words-grid{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto minmax(0,1fr) auto;padding-top:62px;padding-bottom:16px}
  .words-photo{grid-column:9/13;grid-row:2;height:58svh;align-self:center}
  .words-quotes{grid-column:1/8;grid-row:2}
  .wq{top:50%;transform:translateY(calc(-50% + 20px))}
  .wq.on{transform:translateY(-50%)}
  .wq blockquote{font-size:clamp(19px,3.3vw,30px)}
  .wq.short blockquote{font-size:clamp(24px,4.4vw,40px)}
  .wq figcaption{margin-top:12px}
  .words-bar{grid-row:3}
  .v-stage{top:52px;bottom:76px}
  .v-rail{display:none}
  .v-bottom{bottom:calc(env(safe-area-inset-bottom,0px) + 12px)}
  .v-title{font-size:24px;margin:2px 0}
  .v-nav button{width:42px;height:42px}
  .aside-in{top:70px}
}
.fav-note .short{display:none}
@media (max-width:860px){.fav-note .long{display:none}.fav-note .short{display:inline}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .table-name span{animation:none}
  .reveal{--clip:0%;--s:1}
  .bleed.reveal-b{--bc:0 0 0 0}
  .work-img,.work-img img,.bleed-img{transition:none}
  .grease path{stroke-dashoffset:0;transition:none}
  .table-card,.q-step.on,.q-done{animation:none}
  .faq details::details-content{transition:none}
}

/* ===== multi-page additions ===== */
.nav-menu{display:none;font-size:13px;padding:12px 17px;min-height:44px}
.inner .pill-bar,.menu-open .pill-bar{background:#111;color:#f1f1ee;box-shadow:0 12px 30px -14px rgba(0,0,0,.5),inset 0 0 0 1px rgba(255,255,255,.09)}
.inner .nav-role{opacity:0;transform:translateY(-8px);pointer-events:none}
.inner .nav-mark{opacity:1;transform:none;pointer-events:auto}
.nav-links a[aria-current="page"]{background:#f1f1ee;color:#111}
.home:not(.scrolled):not(.menu-open) .nav-links a[aria-current="page"]{background:none;color:inherit}
.menu{position:fixed;inset:0;z-index:70;background:#0a0a0a;color:#eeede8;overflow-y:auto;opacity:0;transition:opacity var(--t-ui) var(--out)}
.menu.on{opacity:1}
.menu-in{min-height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding-top:calc(env(safe-area-inset-top,0px) + 96px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 32px)}
.menu-list{list-style:none;margin:0;padding:0;border-top:1px solid rgba(238,237,232,.16)}
.menu-list a{display:grid;grid-template-columns:4ch 1fr;align-items:baseline;gap:14px;padding:12px 0;border-bottom:1px solid rgba(238,237,232,.16);text-decoration:none;transition:color var(--t-fast),padding var(--t-ui) var(--out)}
.menu-list .mono{color:#8f8e88}
.menu-t{font-family:var(--display);font-size:clamp(32px,6vw,64px);line-height:1}
.menu-list a:hover{padding-left:10px}
.menu-list a:hover .mono,.menu-list a[aria-current="page"] .mono{color:var(--grease)}
.menu-foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;font-size:14px}
.menu-foot a:not(.btn){color:#b5b4ae;text-decoration:none}
.menu-foot a:not(.btn):hover{color:#fff}
.menu-open{overflow:hidden}

.page-head{padding-top:clamp(120px,19vh,200px);padding-bottom:clamp(40px,7vh,80px)}
.label-rule a{text-decoration:none}
.label-rule a:hover{color:var(--grease)}
.page-head-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:24px;align-items:end}
.page-title{grid-column:1/9;margin:0;font-family:var(--display);font-weight:400;font-size:clamp(60px,9.6vw,168px);line-height:.86;letter-spacing:-.025em;text-wrap:balance}
.page-title em{font-style:italic}
.page-lead{grid-column:9/13;margin:0;font-size:16px;line-height:1.6;color:var(--fgm);max-width:40ch}
.series-page{padding-top:clamp(110px,17vh,180px)}
.series-page .series-title{font-size:clamp(64px,7.6vw,140px)}
.series-intro{margin:0;font-size:16px;line-height:1.6;max-width:36ch}
.series-link{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;text-decoration:none;justify-self:start;transition:color var(--t-fast)}
.series-link:hover{color:var(--grease)}
.series-link:hover .arr{transform:translateX(4px)}

.cta-band{margin-top:clamp(110px,17vh,190px);background:#0a0a0a;color:#eeede8;padding-block:clamp(70px,12vh,130px)}
.cta-in{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:22px;align-items:end}
.cta-k{grid-column:1/-1;margin:0;color:#8f8e88}
.cta-h{grid-column:1/8;margin:0;font-family:var(--display);font-weight:400;font-size:clamp(44px,6vw,104px);line-height:.92;letter-spacing:-.02em;text-wrap:balance}
.cta-p{grid-column:9/13;margin:0;font-size:15px;line-height:1.6;color:#b5b4ae;max-width:38ch}
.cta-a{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:12px}
.cta-more{font-size:14px;color:#b5b4ae;text-decoration:none;transition:color var(--t-fast)}
.cta-more:hover{color:#fff}
.cta-band+.contact{padding-top:clamp(70px,12vh,120px);border-top:1px solid rgba(238,237,232,.1)}

.more{margin-top:clamp(110px,17vh,190px)}
.more-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--gap)}
.more-card{display:flex;flex-direction:column;height:100%;text-decoration:none;color:inherit}
.more-img{display:block;aspect-ratio:4/5;overflow:hidden;background:var(--c)}
.more-img img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-reveal) var(--out)}
.more-card:hover .more-img img{transform:scale(1.04)}
.more-name{display:block;margin-top:12px;padding-top:10px;border-top:2px solid var(--rule);font-family:var(--display);font-size:clamp(26px,2.2vw,34px);line-height:1}
.more-n{margin-top:6px;color:var(--fgm)}
.more-all{justify-content:flex-end;min-height:200px;background:#121212;color:#eeede8;padding:18px}
.more-all .more-name{border-top-color:rgba(238,237,232,.4)}
.more-all .more-name em{font-style:italic}
.more-all:hover{background:var(--grease)}
.more-all .more-n{color:#b5b4ae}

.home-book{padding-top:clamp(150px,22vh,240px)}
.home-book-a{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(44px,7vh,70px)}
.sessions-page{padding-top:0}
.book-page{padding-top:0}
.book-page .quote{margin-top:0}
.sess-faq{margin-top:clamp(100px,15vh,170px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:28px}
.sess-faq>h2{grid-column:1/4}
.sess-faq>div{grid-column:4/13}
.sess-faq-more{margin:18px 0 0;font-size:14px}
.sess-faq-more a{text-decoration-color:var(--grease);text-underline-offset:4px}
.q-min{margin:4px 0 0;font-size:12px;color:#b5b4ae}
.about-page{padding-top:clamp(120px,19vh,200px)}
.about-page .about-quote{font-size:clamp(40px,5vw,84px)}
.about-words{margin-top:clamp(110px,17vh,190px)}
.aq-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:36px var(--gap)}
.aq-list li{border-top:2px solid var(--rule);padding-top:16px}
.aq-list blockquote{margin:0;font-family:var(--display);font-size:clamp(22px,1.9vw,30px);line-height:1.18}
.aq-list p{margin:12px 0 0;color:var(--fgm)}
.faq-page{max-width:1000px;margin-inline:auto}
.faq-page .faq summary{font-size:clamp(24px,2.4vw,36px);padding:22px 0}
.faq-page .faq p{font-size:16px;max-width:60ch}
.prose{max-width:820px;margin-inline:auto;padding-bottom:clamp(60px,10vh,120px)}
.prose p{font-size:17px;line-height:1.7;margin:0 0 1.1em}
.prose a{text-decoration-color:var(--grease);text-underline-offset:4px}
.journal .jlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px var(--gap)}
.jcard{display:block;text-decoration:none;color:inherit}
.jcard-img{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--c)}
.jcard-img img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-reveal) var(--out)}
.jcard:hover .jcard-img img{transform:scale(1.03)}
.jcard-d{display:block;margin-top:14px;color:var(--fgm)}
.jcard-t{display:block;margin-top:8px;font-family:var(--display);font-size:clamp(30px,3vw,46px);line-height:1}
.jcard-x{display:block;margin-top:10px;font-size:15px;color:var(--fgm);max-width:50ch}
.post{padding-top:clamp(120px,19vh,200px)}
.post-title{max-width:16ch}
.post-lead{margin-top:24px;font-size:18px}
.post-cover{margin:clamp(40px,7vh,70px) 0 0}
.post-cover .work-img{--clip:0%}
.post-body{max-width:680px;margin:clamp(40px,7vh,70px) auto 0}
.post-body p{font-size:18px;line-height:1.7;margin:0 0 1.1em}
.post-flow{margin-top:clamp(50px,8vh,90px)}
.foot-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px var(--gap);margin-top:clamp(80px,13vh,140px);padding-top:28px;border-top:1px solid rgba(238,237,232,.16)}
.foot-nav .mono{margin:0 0 14px;color:#8f8e88}
.foot-nav ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot-nav a{text-decoration:none;font-size:15px;color:#d6d5cf;transition:color var(--t-fast)}
.foot-nav a:hover{color:#fff}
.foot-area{margin:0;font-size:15px;color:#d6d5cf;max-width:28ch}
.foot{margin-top:clamp(50px,8vh,80px)}
.contact-row .btn-light{min-height:46px}

@media (max-width:1100px){
  .sess-faq>h2,.sess-faq>div{grid-column:1/-1}
}
@media (max-width:860px){
  .nav-links,.nav-book{display:none}
  .nav-menu{display:flex}
  .page-title,.page-lead,.cta-h,.cta-p{grid-column:1/-1}
  .journal .jlist{grid-template-columns:1fr}
  .foot-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .more-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .more-all{min-height:0;aspect-ratio:4/5}
}
@media (max-width:520px){
  .nav-menu{padding:10px 15px;min-height:40px;font-size:12px}
  .menu-t{font-size:clamp(28px,8.4vw,40px)}
  .page-title{font-size:clamp(52px,15vw,80px)}
}
.page-head+.allwork{padding-top:0}
