/* Layout concept: a quiet book page. One centred column of large classic serif text, short
   lowercase headings, wide silences between sections, and images shown large in the middle
   with a centred caption. Single theme by choice: black on white. */
:root{
  --paper:#ffffff;
  --ink:#111111;
  --mute:#6a6a6a;
  --hair:#e9e9e9;
  --serif:"Old Standard TT","Century Schoolbook","Georgia",serif;
  --col:720px;
  --img:1040px;
  --gut:clamp(20px,5vw,64px);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:clamp(18px,1.45vw,21px);line-height:1.55;padding-inline:var(--gut);padding-block:0 120px}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
a:hover{color:var(--mute)}
a:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
p,h1,h2,h3,ul,figure{margin:0;padding:0}

/* header: name and menu, small and centred */
.top{display:flex;flex-direction:column;align-items:center;gap:6px;padding-block:28px 0;font-size:16px;text-align:center}
.top .name{text-decoration:none}
.top nav{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 20px}
.top nav a{text-decoration:none;color:var(--mute)}
.top nav a:hover{color:var(--ink)}
.top nav a[aria-current="page"]{color:var(--ink);text-decoration:underline}

/* text column */
.col{max-width:var(--col);margin-inline:auto}
h1,h2{font-weight:700;text-align:center;line-height:1.15;text-wrap:balance}
h1{font-size:clamp(30px,3.2vw,44px)}
h2{font-size:clamp(26px,2.6vw,36px)}
h3{font-weight:700;font-size:clamp(22px,2vw,28px);line-height:1.2}
.col p + p{margin-top:1.1em}
.lede{font-size:clamp(21px,1.9vw,26px);line-height:1.45}
.meta{font-style:italic;color:var(--mute)}
.center{text-align:center}

/* silences between sections */
.gap{height:clamp(120px,18vw,260px)}
.gap-s{height:clamp(56px,7vw,96px)}

/* figures */
.fig{max-width:var(--img);margin-inline:auto}
.fig figcaption{max-width:var(--col);margin:16px auto 0;text-align:center;font-size:.86em;line-height:1.45}
.fig.narrow{max-width:520px}
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,3vw,40px);align-items:end}
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2vw,28px);align-items:end}
.eight{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:clamp(10px,1.6vw,22px);align-items:end}
.edge img{border:1px solid var(--hair)}

/* simple lists of work */
.works{list-style:none;max-width:var(--col);margin-inline:auto}
.works li + li{margin-top:.5em}
.works .meta{font-size:.9em}

.foot{max-width:var(--col);margin:clamp(120px,16vw,220px) auto 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;font-size:16px}

@media (max-width:720px){
  .eight{grid-template-columns:repeat(4,minmax(0,1fr))}
  .trio{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* research: three lines rising to the three phases */
.phases{max-width:960px;margin-inline:auto}
.phases svg{display:block;width:100%;height:auto;overflow:visible;padding-inline:calc((100% - 960px)/2)}
.phases path{fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round}
.phases .draw{transition:stroke-dashoffset 2.2s ease-out}
.phases .draw.b{transition-delay:.35s}.phases .draw.c{transition-delay:.7s}
.phases circle{fill:var(--paper);stroke:var(--ink);stroke-width:1.4}
.phase-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;text-align:center;margin-bottom:10px}
.phase-links a{justify-content:flex-end}
.phase-links a{text-decoration:none;display:flex;flex-direction:column;gap:6px;align-items:center}
.phase-links b{font-size:clamp(26px,2.4vw,34px);line-height:1}
.phase-links span{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-wrap:balance}
.phase-links em{font-size:.85em;color:var(--mute)}
.phase-links a:hover span{color:var(--mute)}
@media (prefers-reduced-motion:reduce){ .phases .draw{transition:none} }
@media (max-width:640px){ .phase-links{grid-template-columns:minmax(0,1fr);gap:28px} .phases svg{display:none} }

.ways{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 36px;font-size:clamp(20px,1.8vw,24px)}
.ways a{text-decoration:none}
.ways a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}

/* ---------- shared: accent and story pages ---------- */
:root{--blue:#2457d6}
.blue{color:var(--blue)}
.crumb{text-align:center;font-style:italic;color:var(--mute);font-size:.9em}
.crumb a{color:inherit}

/* thread: one thin line through the story, drawn on scroll */
.thread-wrap{position:relative}
#thread{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:visible}
#thread path{fill:none;stroke:var(--ink);stroke-width:1;stroke-linecap:round;opacity:.85}
.thread-wrap > *{position:relative;z-index:1}

/* story steps */
.stop{max-width:1080px;margin-inline:auto;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px clamp(20px,3vw,48px);align-items:center}
.stop .txt{grid-column:2/span 4}
.stop .art{grid-column:7/span 6;min-width:0}
.stop.flip .txt{grid-column:8/span 4;grid-row:1}
.stop.flip .art{grid-column:1/span 6;grid-row:1}
.stop.wide .txt{grid-column:4/span 6;text-align:center}
.stop.wide .art{grid-column:1/-1}
.stop .num{font-style:italic;color:var(--blue);font-size:.95em}
.stop h3{margin-top:4px}
.stop .txt p{margin-top:12px}
.stop + .stop{margin-top:clamp(110px,14vw,200px)}
.on-white{background:var(--paper)}

.themes-list{list-style:none;columns:2;column-gap:32px;font-style:italic;line-height:1.9}
.themes-list li::before{content:counter(t) "  ";counter-increment:t;color:var(--mute);font-style:normal;font-size:.8em}
.themes-list{counter-reset:t}

.float-sketches{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:clamp(8px,1.6vw,24px);align-items:end}
.float-sketches img{mix-blend-mode:multiply}
.float-sketches img:nth-child(even){transform:translateY(22px)}
.circles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,2vw,24px);align-items:center}
.circles img:nth-child(2){transform:translateY(36px)}
.quote{font-size:clamp(26px,2.8vw,40px);line-height:1.2;font-style:italic;text-wrap:balance}
.count{font-size:clamp(90px,12vw,170px);line-height:.9;font-weight:400;letter-spacing:-.02em}
.asks{list-style:none;font-style:italic;font-size:clamp(20px,1.9vw,26px);line-height:1.35}
.asks li + li{margin-top:.7em}
.pair-books{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,9fr);gap:clamp(12px,2vw,28px);align-items:end}

@media (max-width:820px){
  .stop .txt,.stop .art,.stop.flip .txt,.stop.flip .art,.stop.wide .txt,.stop.wide .art{grid-column:1/-1;grid-row:auto}
  .float-sketches{grid-template-columns:repeat(4,minmax(0,1fr))}
  #thread{display:none}
}

/* ---------- research: text left, three lines flowing right ---------- */
.rs{max-width:1180px;margin-inline:auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,8vw,140px);align-items:center;position:relative;min-height:70vh}
.rs .intro h1{text-align:left}
.rs .intro p{margin-top:1em}
.rs .three{display:flex;flex-direction:column;gap:clamp(48px,7vw,96px);padding-left:clamp(40px,10vw,180px)}
.rs .three a{text-decoration:none;display:block}
.rs .three b{font-weight:400;font-style:italic;color:var(--blue);font-size:.95em}
.rs .three span{display:block;font-size:clamp(22px,2vw,28px);font-weight:700;line-height:1.2;margin-top:4px;text-wrap:balance}
.rs .three em{display:block;color:var(--mute);margin-top:6px}
.rs .three a:hover span{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
#flow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
#flow path{fill:none;stroke:var(--ink);stroke-width:1.1;stroke-linecap:round}
@media (max-width:820px){ .rs{grid-template-columns:minmax(0,1fr);min-height:0} .rs .three{padding-left:0} #flow{display:none} }
#flow circle{fill:var(--paper);stroke:var(--blue);stroke-width:1.2}
.rs .intro h1{font-size:clamp(28px,2.7vw,40px)}
.nw{white-space:nowrap;display:inline!important;font-size:inherit!important;margin:0!important}

/* pure white everywhere, including behind the page */
html,body{background:#fff}

/* image placeholders: grey blocks that will become transparent PNGs */
.ph{background:#ececec;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;padding:16px;color:#7a7a7a;font-size:14px;line-height:1.35;font-style:italic;width:100%}
.ph b{font-style:normal;font-weight:400;color:#444;font-size:15px}
.ph-pilots{display:grid;grid-template-columns:minmax(0,1fr);margin-top:48px}

/* hand drawings sit on the page */
.drawn, .drawn img{mix-blend-mode:multiply}
.pair-drawn{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,2vw,28px);align-items:end}
.float-sketches.cards10{grid-template-columns:repeat(10,minmax(0,1fr))}
.float-sketches.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:820px){ .float-sketches.cards10{grid-template-columns:repeat(5,minmax(0,1fr))} }

/* typeset cards */
.ecard{max-width:440px;margin-inline:auto;border-left:3px solid #f2d36b;padding:4px 0 4px 26px;font-size:.92em}
.ecard-quote{font-style:italic}
.ecard-labels{margin-top:18px;color:var(--blue);font-size:.9em}
.ecard-guide{margin-top:18px;color:var(--mute);font-size:.9em}
.aspirations{list-style:none;counter-reset:a;columns:2;column-gap:36px;font-size:.92em;line-height:1.4}
.aspirations li{counter-increment:a;break-inside:avoid;margin-bottom:16px}
.aspirations li::before{content:counter(a);display:block;font-style:italic;color:var(--blue);font-size:.9em}
@media (max-width:560px){ .aspirations{columns:1} }

/* publications */
.pubs h2{text-align:left;font-size:clamp(22px,2vw,28px);margin-bottom:28px}
.pub + .pub{margin-top:26px}
.pub-t{line-height:1.35}
.pub-t a{text-decoration-color:#bbb}
.pub-a{font-size:.85em;color:var(--mute);margin-top:4px}
.pub-a b{font-weight:400;color:var(--ink)}
.pub-v{font-size:.85em;font-style:italic;margin-top:2px}
.award{color:var(--blue);font-style:normal}
.earlier .pub-t{font-size:.92em}
.ways.small{font-size:clamp(17px,1.4vw,19px);gap:6px 26px}
.ways.small a{color:var(--mute)}
.ways.small a:hover{color:var(--ink)}

/* art */
.gap-m{height:clamp(80px,11vw,160px)}
.fig.narrow-m{max-width:720px}
.work figcaption{max-width:560px;margin:18px auto 0;text-align:center;font-size:.86em;line-height:1.45;color:var(--mute)}
.work figcaption b{color:var(--ink);font-weight:700}
.work img,.work video{margin-inline:auto;max-height:86vh;width:auto}
.vid{width:100%!important;background:#f3f3f3}
.pair-art{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,4vw,64px);align-items:end}
.pair-art img,.pair-art video{width:100%}
.exh{list-style:none;font-size:.95em}
.exh li{display:grid;grid-template-columns:64px 1fr;gap:16px}
.exh li + li{margin-top:10px}
.exh li > span:first-child{color:var(--mute)}
@media (max-width:640px){ .pair-art{grid-template-columns:minmax(0,1fr)} }

/* about */
.about{max-width:1080px;margin-inline:auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}
.about h1{text-align:left}
.about-txt p + p{margin-top:1em}
.facts{list-style:none;font-size:.92em}
.facts li{display:grid;grid-template-columns:96px 1fr;gap:12px}
.facts li + li{margin-top:8px}
.facts li > span:first-child{color:var(--mute)}
h2.left{text-align:left;font-size:clamp(22px,2vw,28px)}
@media (max-width:820px){ .about{grid-template-columns:minmax(0,1fr)} .about-img{max-width:420px} }
.ph{line-height:1.45}.ph b{max-width:620px}

/* emotion cards */
.pairs{list-style:none;counter-reset:p;font-style:normal;line-height:1.5}
.pairs li{counter-increment:p;display:grid;grid-template-columns:36px 1fr}
.pairs li::before{content:counter(p);color:var(--blue);font-style:italic;font-size:.85em;padding-top:3px}
.pairs li + li{margin-top:6px}
.pairs i{color:var(--mute)}
.styles{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,36px)}
.styles li{display:flex;flex-direction:column;gap:10px;font-size:.88em;line-height:1.45}
.styles b{font-weight:700;font-size:1.08em}
.styles q{font-style:italic}
.styles span{color:var(--mute);font-size:.92em}
@media (max-width:900px){ .styles{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:520px){ .styles{grid-template-columns:minmax(0,1fr)} }
.work figcaption a.t{color:var(--ink);font-weight:700;font-size:1.12em}
.work > a{display:block}
.work > a:hover img{opacity:.92}
.portrait{max-width:300px;margin-inline:auto}
.about-one p + p{margin-top:1em}

/* design index: square on the left, text on the right */
.plist{max-width:860px;margin-inline:auto}
.prow{display:grid;grid-template-columns:clamp(110px,18vw,200px) 1fr;gap:clamp(20px,4vw,48px);align-items:center;text-decoration:none;color:inherit}
.prow + .prow{margin-top:clamp(36px,5vw,56px)}
.pthumb img,.pthumb .ph{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.pthumb .ph{font-size:11px;padding:8px}
.ptxt{display:flex;flex-direction:column;gap:6px}
.ptxt b{font-size:clamp(22px,2vw,28px);font-weight:700;line-height:1.2}
.ptxt em{color:var(--mute);font-size:.86em}
a.prow:hover b{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
a.prow:hover img{opacity:.9}
.parts a[aria-current="page"]{color:var(--ink);text-decoration:none;font-style:normal}
.parts{line-height:1.8}
.foot{align-items:baseline}
.ph b{display:block}

/* art timeline */
.tags{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;font-size:16px}
.tags button{font:inherit;background:none;border:0;padding:2px 0;color:var(--mute);cursor:pointer;border-bottom:1px solid transparent}
.tags button:hover{color:var(--ink)}
.tags button[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--ink)}
.tags button:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
.tl{max-width:1120px;margin-inline:auto}
.yr{display:grid;grid-template-columns:clamp(70px,10vw,140px) 1fr;gap:clamp(16px,3vw,40px);padding-top:clamp(40px,6vw,72px);border-top:1px solid var(--hair);transition:opacity .3s}
.yr + .yr{margin-top:clamp(40px,6vw,72px)}
.yr .y{text-align:left;font-size:clamp(26px,2.6vw,36px);font-weight:400;position:sticky;top:20px;align-self:start}
.yr.dim{opacity:.25}
.ex{line-height:1.6}
.works{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3.5vw,48px);margin-top:clamp(24px,3vw,40px);align-items:start}
.w figcaption{margin-top:12px;font-size:.84em;line-height:1.45;color:var(--mute)}
.w figcaption b{color:var(--ink)}
.w img,.w video{width:100%;max-height:70vh;object-fit:contain;object-position:left top}
.w.off{display:none}
.undated .y{color:var(--mute)}
@media (max-width:640px){ .yr{grid-template-columns:minmax(0,1fr)} .yr .y{position:static} .works{grid-template-columns:minmax(0,1fr)} }

/* art: intro and index on the left, floor video on the right */
.art-hero{max-width:1120px;margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
.art-hero h1{text-align:left}
.art-hero .tags{justify-content:flex-start}
.art-video video{width:100%;max-height:82vh;object-fit:contain;background:#f3f3f3;display:block}
.art-video figcaption{margin-top:10px;font-size:.84em;color:var(--mute)}
.years{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:clamp(20px,1.8vw,24px)}
.years a{text-decoration:none}
.years a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.tl{max-width:1200px}
.yr{scroll-margin-top:24px}
.w.wide,.wcap{grid-column:1/-1}
.wcap{font-size:.84em;color:var(--mute);margin-top:-24px}
.wcap b{color:var(--ink)}
.w.wide img{max-height:none}
.w .vid{max-height:80vh}
@media (max-width:820px){ .art-hero{grid-template-columns:minmax(0,1fr)} .art-video{max-width:420px} }
.plist{max-width:1040px}
.prow{grid-template-columns:clamp(140px,32vw,380px) 1fr}
@media (max-width:560px){ .prow{grid-template-columns:minmax(0,1fr)} }
.w.wide img{max-height:85vh;width:auto;max-width:100%}
.w.tall .vid{width:auto!important;max-width:100%;height:80vh;max-height:80vh;aspect-ratio:9/16;background:none}
.w .vid{background:none}

/* design index, option B: two columns, image above, text below */
.plist.grid2{max-width:1120px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(48px,6vw,88px) clamp(28px,4vw,64px)}
.grid2 .prow{grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}
.grid2 .prow + .prow{margin-top:0}
.grid2 .pthumb img,.grid2 .pthumb .ph{aspect-ratio:4/3}
@media (max-width:640px){ .plist.grid2{grid-template-columns:minmax(0,1fr)} }
/* option A: slightly bigger squares */
.prow{grid-template-columns:clamp(160px,38vw,440px) 1fr}
.plist{max-width:1120px}
.grid2 .pthumb .ph{aspect-ratio:4/3!important}
.portrait{max-width:340px}

/* image slots: a file in img/boxes/ replaces the grey box */
.slot{position:relative}
.slot > img{display:block;width:100%;height:auto}
.slot:has(> img) > .ph{display:none}
.ph .fname{display:block;margin-top:6px;font-style:normal;font-size:11px;color:#9a9a9a;font-family:ui-monospace,Menlo,monospace}
.pthumb .slot > img{aspect-ratio:4/3;object-fit:cover}
img.box{display:block;width:100%;height:auto}
/* home: larger name */
.top.home{padding-top:96px}
.top.home .name{font-size:17px;font-weight:700;line-height:1.2}
.cap-c{max-width:560px;margin:16px auto 0;text-align:center;font-size:.86em;line-height:1.5;color:var(--mute)}
.cap-l{margin-top:8px;font-size:.82em;color:var(--mute);font-style:italic}

/* annotated object */
.anno{max-width:1080px;margin-inline:auto;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:clamp(24px,4vw,56px);align-items:center}
.anno-img{position:relative}
.anno-img img{display:block;width:100%}
.pin{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border:1.5px solid var(--blue);border-radius:50%;background:#fff}
.pin::after{position:absolute;inset:0;display:grid;place-items:center;font-size:11px;font-style:italic;color:var(--blue);font-family:var(--serif)}
.anno-img{counter-reset:pin}
.pin{counter-increment:pin}
.pin::after{content:counter(pin)}
.anno-list{list-style:none;counter-reset:a;font-size:.92em;line-height:1.4}
.anno-list li{counter-increment:a;display:grid;grid-template-columns:28px 1fr;column-gap:6px}
.anno-list li::before{content:counter(a);grid-row:span 2;color:var(--blue);font-style:italic}
.anno-list li + li{margin-top:14px}
.anno-list b{display:block;font-weight:700}
.anno-list li{color:var(--mute)} .anno-list b{color:var(--ink)}
@media (max-width:720px){ .anno{grid-template-columns:minmax(0,1fr)} }
.gest{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 28px;font-style:italic;font-size:clamp(20px,1.8vw,24px)}
.field-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 16px}
@media (max-width:640px){ .field-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
.flow{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;counter-reset:f;max-width:1040px;margin-inline:auto}
.flow li{counter-increment:f;position:relative;padding:18px 22px 0 0;border-top:1px solid var(--ink,#111);font-size:.9em;line-height:1.45}
.flow li::before{content:counter(f);position:absolute;top:-11px;left:0;width:20px;height:20px;border-radius:50%;background:var(--paper);border:1px solid var(--ink,#111);font-size:11px;line-height:19px;text-align:center;font-style:italic}
.flow li b{display:block;margin:6px 0 6px;font-size:1.05em}
@media (max-width:640px){ .flow{grid-template-columns:minmax(0,1fr);gap:24px} }
.week{list-style:none;margin:0;padding:0}
.week li{display:grid;grid-template-columns:5.5em 1fr;gap:12px;padding:12px 0;border-bottom:1px solid rgba(0,0,0,.12)}
.week li b{font-weight:400;font-style:italic;color:var(--mute)}
.week.wide-b li{grid-template-columns:8.5em 1fr}
@media (max-width:800px){#iv-grid{grid-template-columns:minmax(0,1fr)!important}}
.days-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px;max-width:1100px;margin-inline:auto}
.days-grid figure{margin:0}
.days-grid figcaption{margin-top:12px;font-size:.88em;line-height:1.45}
.days-grid figcaption b{display:block;font-weight:400;font-style:italic;color:var(--mute)}
@media (max-width:700px){.days-grid{grid-template-columns:minmax(0,1fr)}}
.days-grid.v1-wide{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}
.days-grid.v1-tall{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}
@media (max-width:800px){.days-grid.v1-wide,.days-grid.v1-tall{grid-template-columns:repeat(2,minmax(0,1fr))}}
.findings{list-style:none;padding:0;margin:40px auto 0;max-width:1100px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 40px;font-size:.9em;line-height:1.5}
.findings b{display:block;font-weight:400;font-style:italic;color:var(--mute);margin-bottom:6px}
@media (max-width:800px){.findings{grid-template-columns:minmax(0,1fr)}}
.stop .findings{grid-column:1/-1;width:100%}
.days-grid.v1-wide{align-items:start}.days-grid.v1-wide img{aspect-ratio:1000/625;object-fit:contain;width:100%}
.days-grid.v1-tall{align-items:start}.days-grid.v1-tall img{aspect-ratio:574/800;object-fit:contain;width:100%}
.filled-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:start}
.filled-grid img{aspect-ratio:4/3;object-fit:contain;background:#f4f4f2;width:100%}
@media (max-width:800px){.filled-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
#iv-grid .iv-img{width:100%;height:100%;object-fit:cover;object-position:50% 60%}@media (max-width:800px){#iv-grid .iv-img{height:auto}}
.days-grid.v1-wide{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px}
.days-grid.v1-wide{max-width:760px}.days-grid.v1-tall{max-width:900px}
.findings.questions{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:56px}
.findings.questions span{display:block;margin-top:8px}
@media (max-width:900px){.findings.questions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.findings.questions{grid-template-columns:minmax(0,1fr)}}
.cards-list .cn{display:block;font-style:italic;color:var(--mute);margin-bottom:6px}.cards-list b{display:inline;font-style:normal;color:inherit;font-weight:700;margin:0}
.tool-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:center;max-width:1180px;margin-left:auto;margin-right:calc(-1 * var(--gut));padding-left:clamp(0px,4vw,60px)}
.tool-intro .ti-txt p{margin-top:16px}
.tool-intro .ti-art{margin:0}
.tool-intro .ti-art img{width:100%;max-width:560px;margin-left:auto;display:block}
@media (min-width:1300px){.tool-intro{margin-left:calc((100% - 1180px)/2)}}
@media (max-width:800px){.tool-intro{grid-template-columns:minmax(0,1fr);padding-left:0}.tool-intro .ti-txt{padding-right:var(--gut)}}
.tool-intro{max-width:none;padding-left:0;margin-left:max(0px,calc((100% - var(--col)) / 2));grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
@media (min-width:1300px){.tool-intro{margin-left:max(0px,calc((100% - var(--col)) / 2))}}
.tool-intro{grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr)}.tool-intro .ti-art img{max-width:700px}
.tool-intro h2{text-align:left}
.tool-intro{grid-template-columns:minmax(0,0.7fr) minmax(0,1.3fr)}.tool-intro .ti-art img{max-width:none}
.gap:has(+ .thread-wrap),.gap-s:has(+ .thread-wrap){height:clamp(48px,6vw,88px)}
/* art page, chapters from the book */
.art-open{max-width:var(--col);margin-inline:auto}
.art-open .lede{margin-top:28px;font-size:1.08em;line-height:1.6;text-align:center}
.ch-nav{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:40px;font-size:.95em}
.ch-nav a{text-decoration:none}
.ch-nav span{display:inline-block;min-width:2.2em;color:var(--mute);font-style:italic}
.ch{max-width:1200px;margin:clamp(110px,13vw,190px) auto 0;scroll-margin-top:24px}
.ch-head{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,80px);align-items:center}
.ch-n{font-style:italic;color:var(--mute);margin-bottom:10px}
.ch-head h2{text-align:left;margin-bottom:22px}
.ch-head .ch-txt p:last-child{line-height:1.6}
.ch:nth-of-type(even) .ch-head{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
.ch:nth-of-type(even) .ch-txt{order:2}
.piece{margin-top:clamp(64px,8vw,112px)}
.piece.flush{margin-top:clamp(16px,2vw,28px)}
.piece-head{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(20px,5vw,80px);margin-bottom:clamp(24px,3vw,36px)}
.piece-head h3{text-transform:none}
.piece-head .at{font-style:italic;color:var(--mute);margin-bottom:10px}
.piece-head p + p{margin-top:.8em}
.piece-head p{line-height:1.6}
.piece-note{max-width:calc(1.2 / 2 * 100%);margin:28px 0 0 auto;line-height:1.6}
.row{display:flex;gap:clamp(12px,2vw,28px);align-items:flex-start}
.row + .row{margin-top:clamp(12px,2vw,28px)}
.row > figure{flex:var(--a) 1 0;min-width:0;margin:0}
.row img,.row video{display:block;width:100%;height:auto;background:none}
.row figcaption{margin-top:10px;font-size:.84em;line-height:1.45;color:var(--mute)}
.row figcaption b{color:var(--ink);font-weight:400;font-style:italic}
.row.narrow{max-width:560px}
.row-cap{margin-top:10px;font-size:.84em;color:var(--mute);font-style:italic}
.ch-art .row{align-items:flex-start}
.art-exh h2{text-align:left;margin-bottom:28px}
.art-exh .exh{max-width:820px;margin-bottom:28px}
@media (max-width:820px){
 .ch-head,.ch:nth-of-type(even) .ch-head,.piece-head{grid-template-columns:minmax(0,1fr)}
 .ch:nth-of-type(even) .ch-txt{order:0}
 .piece-note{max-width:none}
}
@media (max-width:560px){
 .row{flex-wrap:wrap}
 .row > figure{flex-basis:calc(50% - 8px)}
 .row.caps > figure{flex-basis:100%}
}
.ch-nav{display:grid;grid-template-columns:auto;justify-content:center;justify-items:start}
/* wellbeing probe */
.days-grid.w-days{grid-template-columns:repeat(4,minmax(0,1fr));max-width:1100px;align-items:end}
.days-grid.w-days img{width:100%;aspect-ratio:3/4;object-fit:contain}
.w-pair{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px;align-items:start}
.w-pair img{width:100%}
@media (max-width:800px){.days-grid.w-days{grid-template-columns:repeat(2,minmax(0,1fr))}.w-pair{grid-template-columns:minmax(0,1fr)}}
/* cyber-physical */
.cp-photos{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,0.9fr) minmax(0,1.4fr) minmax(0,1.3fr);gap:20px;align-items:end;max-width:1100px;margin-inline:auto;width:100%}
.cp-photos img{width:100%;display:block}
.cp-boards{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;align-items:start;width:100%}
.cp-boards img{width:100%;display:block}
.cp-boards figcaption{margin-top:12px;font-size:.88em;line-height:1.45}
.cp-boards figcaption b{display:block;font-weight:400;font-style:italic;color:var(--mute)}
@media (max-width:800px){.cp-photos,.cp-boards{grid-template-columns:minmax(0,1fr)}}
/* research by approach */
.approach-wrap{max-width:1120px;margin-inline:auto;border-top:1px solid var(--hair);padding-top:clamp(56px,7vw,96px)}
.approach-wrap .lede{max-width:var(--col);margin:22px auto 0;text-align:center;line-height:1.6}
.approach{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,64px);margin-top:clamp(44px,5vw,72px)}
.approach h3{font-size:clamp(19px,1.6vw,22px);margin-bottom:18px}
.approach ul{list-style:none;padding:0;margin:0}
.approach li{padding:14px 0;border-top:1px solid var(--hair);display:flex;flex-direction:column;gap:4px}
.approach li em{font-size:.85em;color:var(--mute)}
@media (max-width:760px){.approach{grid-template-columns:minmax(0,1fr)}}
.approach-wrap .lede{font-size:1em}
.rs{min-height:0}
.approach-wrap{margin-top:clamp(48px,6vw,80px);padding-top:clamp(40px,5vw,64px)}
.nfc-pair{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end;max-width:640px;margin-inline:auto;width:100%}
.nfc-pair img{width:100%;display:block}
.stop .findings + .findings{margin-top:28px}
/* neuropottery */
.np-two{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr);gap:40px;align-items:center;width:100%;max-width:1080px;margin-inline:auto}
.np-two .week li{grid-template-columns:6.5em 1fr}
.np-two .week li:first-child b{color:var(--ink);font-style:normal;font-weight:700}
.np-pots{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:end}
.np-pots img{width:100%;display:block}
@media (max-width:800px){.np-two{grid-template-columns:minmax(0,1fr)}}
.np-grid img{aspect-ratio:4/5;object-fit:cover;width:100%}
.np-flow{list-style:none;padding:0;margin:0;counter-reset:f}
.np-flow li{position:relative;padding:12px 0 12px 2.2em;border-bottom:1px solid rgba(0,0,0,.12);line-height:1.45}
.np-flow li::before{counter-increment:f;content:counter(f);position:absolute;left:0;top:12px;color:var(--mute);font-style:italic}
.np-flow li b{display:block;font-weight:700}
.np-flow li + li::after{content:"";}
.w-days.np-grid{align-items:start}
.days-grid.w-days.np-grid img{aspect-ratio:4/5;object-fit:cover;object-position:50% 70%}
.line-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,32px);max-width:900px}
.line-grid figure{margin:0}
.line-grid video{width:100%;display:block;aspect-ratio:4/5;background:#fff}
.line-grid figcaption{margin-top:8px;font-size:.84em;color:var(--mute)}
.line-grid figcaption b{color:var(--ink);font-weight:400;font-style:italic}
@media (max-width:560px){.line-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
#improvisation .ch-head{grid-template-columns:minmax(0,1fr)!important}
#improvisation .ch-txt{order:0!important;max-width:var(--col)}
#improvisation .ch-art{max-width:900px;width:100%;margin-inline:auto}
/* art tabs */
.ch-tabs{position:sticky;top:0;z-index:5;background:var(--bg,#fff);max-width:1200px;margin:clamp(40px,5vw,64px) auto 0;padding:14px 0;display:flex;justify-content:center;flex-wrap:wrap;gap:6px 28px;border-bottom:1px solid var(--hair);font-size:.98em}
.ch-tabs a{text-decoration:none;color:var(--mute);padding:4px 0;border-bottom:1px solid transparent;white-space:nowrap}
.ch-tabs a[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--ink)}
.ch-tabs a:hover{color:var(--ink)}
.tabbed .ch{margin-top:clamp(48px,6vw,80px)}
.ch[hidden]{display:none!important}
.ch-sub{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:22px;font-size:.88em}
.ch-sub a{color:var(--mute);text-decoration:none;border-bottom:1px solid var(--hair)}
.ch-sub a:hover{color:var(--ink)}
.piece{scroll-margin-top:96px}
@media (max-width:700px){.ch-tabs{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-inline:var(--gut);gap:20px}}
/* lost in place */
.lip-fig img,.lip-fig video,.lip-two img{width:100%;display:block}
.lip-fig figcaption,.lip-two figcaption{margin-top:10px;font-size:.84em;line-height:1.45;color:var(--mute)}
.lip-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.lip-chain{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;font-style:italic}
.lip-chain li+li::before{content:"→";margin-right:14px;font-style:normal;color:var(--mute)}
@media (max-width:800px){.lip-two{grid-template-columns:minmax(0,1fr)}}
/* cv page */
.cv-head .cv-sub{margin-top:14px;line-height:1.45}
.cv-head .cv-links{margin-top:12px;font-size:.92em}
.cv-head .cv-dl{margin-top:18px;font-style:italic}
.cv{max-width:820px}
.cv-sec + .cv-sec{margin-top:56px}
.cv-sec h2{text-align:left;font-size:clamp(22px,2vw,28px);margin-bottom:20px;padding-bottom:8px;border-bottom:1px solid #ddd}
.cv-sec h3{font-size:1em;font-weight:400;font-style:italic;color:var(--mute);margin:28px 0 12px}
.cv-sec h2 + h3{margin-top:0}
.cv-list{list-style:none;padding:0;margin:0}
.cv-list > li + li{margin-top:16px}
.cv-row{display:flex;justify-content:space-between;align-items:baseline;gap:24px}
.cv-y{flex:none;color:var(--mute);font-size:.9em;white-space:nowrap}
.cv-d{margin-top:4px;font-size:.92em;line-height:1.5;color:#444}
.cv-b{margin:6px 0 0;padding-left:1.1em}
.cv-b li + li{margin-top:4px}
.cv-pubs{padding-left:2.2em;margin:0}
.cv-pubs li{font-size:.94em;line-height:1.5}
.cv-pubs li + li{margin-top:12px}
.cv-pubs li::marker{color:var(--mute)}
.cv a{text-decoration-color:#bbb}
@media (max-width:640px){.cv-row{flex-direction:column;gap:2px}}
@media print{
  @page{size:Letter;margin:16mm 16mm 18mm}
  body.cv-page{padding:0;font-size:10.2pt;line-height:1.4;background:#fff}
  .cv-page header.top,.cv-page .foot,.cv-page .cv-dl,.cv-page .gap-s{display:none}
  .cv-page .cv-head h1{font-size:20pt;margin:0}
  .cv-page .cv-head .cv-sub,.cv-page .cv-head .cv-links{margin-top:4pt}
  .cv-page .cv{max-width:none;margin-top:14pt}
  .cv-page .cv-sec + .cv-sec{margin-top:14pt}
  .cv-page .cv-sec h2{font-size:12.5pt;margin-bottom:7pt;padding-bottom:3pt;break-after:avoid}
  .cv-page .cv-sec h3{margin:9pt 0 5pt;break-after:avoid}
  .cv-page .cv-list > li + li{margin-top:6pt}
  .cv-page .cv-pubs li + li{margin-top:5pt}
  .cv-page .cv-list > li,.cv-page .cv-pubs li{break-inside:avoid}
  .cv-page a{color:inherit}
}
.cv-web{display:none}
@media print{.cv-page .cv-web{display:inline}}
