/* Layout: research-catalogue on cream paper. Serif reading text, DM Mono labels, one colour field per work. Deliberately single-theme (light paper), colours set explicitly. */
:root{
  --paper:#f5f0e8; --ink:#141414; --soft:#5e5a52; --rule:#d8d1c4; --ph:#a9a39a;
  --pleaser:#d23a32; --meta:#2f7d3b; --comedy:#7b5cd6; --ts:#0a1a0f; --gold:#d4a843;
  --serif:"Newsreader", "Iowan Old Style", Georgia, serif;
  --mono:"DM Mono", ui-monospace, Menlo, Consolas, monospace;
  color-scheme:light;
}
html,body{background:var(--paper);color:var(--ink)}
body{font-family:var(--serif);font-size:18px;line-height:1.62;padding-inline:20px;padding-block:0 0}
a{color:inherit}
.wrap{max-width:1040px;margin:0 auto}
.lbl{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.soft{color:var(--soft)}
h1,h2,h3{font-weight:400;margin:0;text-wrap:balance;line-height:1.08}

/* header */
header{position:sticky;top:env(safe-area-inset-top,0px);background:var(--paper);z-index:5;border-bottom:1px solid var(--ink)}
.bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-block:22px}
.brand{font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
nav{display:flex;gap:20px;align-items:center;flex-wrap:wrap;font-family:var(--mono);font-size:.78rem;letter-spacing:.02em}
nav a{text-decoration:none}
nav a:hover,nav summary:hover{text-decoration:underline;text-underline-offset:4px}
nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:4px}
details{position:relative}
summary{cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:" ▾";font-size:.7em}
.drop{position:absolute;top:calc(100% + 10px);left:-12px;background:var(--paper);border:1px solid var(--ink);display:flex;flex-direction:column;min-width:150px}
.drop a{padding:9px 12px;border-top:1px solid var(--rule)}
.drop a:first-child{border-top:0}
@media (max-width:640px){
  .bar{gap:14px;padding-block:18px}
  .brand{flex-basis:100%}
  nav{flex-basis:100%;flex-wrap:nowrap;justify-content:space-between;gap:10px;font-size:.7rem;letter-spacing:0;white-space:nowrap}
  .drop{left:-10px;min-width:140px}
}
:focus-visible{outline:2px solid var(--meta);outline-offset:3px}

/* pages */
.page{padding-block:88px 128px;display:flex;flex-direction:column;gap:104px}
@media (max-width:640px){.page{padding-block:52px 80px;gap:68px}}


/* home */
.say{font-size:clamp(1.7rem,4.4vw,2.9rem);max-width:24ch;line-height:1.12}
.meta{font-family:var(--mono);font-size:.74rem;color:var(--soft);margin-top:12px}
.works{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:72px 48px}
@media (max-width:640px){.works{grid-template-columns:1fr;gap:56px}}
.work{display:flex;flex-direction:column;gap:12px;text-decoration:none;border-top:1px solid var(--ink);padding-top:16px;min-width:0}
.work:hover h3{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.photo{position:relative;aspect-ratio:4/3;max-width:100%;display:grid;grid-template-columns:3fr 1fr;overflow:hidden}
.photo .img{background:repeating-linear-gradient(135deg,#b3ada3 0 2px,var(--ph) 2px 14px);display:flex;align-items:flex-end;padding:10px;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:#f5f0e8}
.photo .field{background:var(--c)}
.photo .img.pic{background-size:cover;background-repeat:no-repeat;color:transparent}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.gallery.two{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:640px){.gallery,.gallery.two{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gallery img{width:100%;height:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.gallery.two img{aspect-ratio:auto}
.photo.ts .field{background:#8fa9c4}
.work h3{font-size:1.6rem}
.work .k{font-family:var(--mono);font-size:.72rem;color:var(--soft)}
.blk{border-top:1px solid var(--ink);padding-top:18px;display:flex;flex-direction:column;gap:18px}
.bio{font-size:1.15rem;max-width:56ch}
.more{font-family:var(--mono);font-size:.74rem;text-underline-offset:4px;align-self:flex-start}
.facts{list-style:none;margin:0;padding:0}
.facts li{display:grid;grid-template-columns:6rem minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--rule)}
.facts b{font-family:var(--mono);font-weight:400;font-size:.74rem;color:var(--soft);padding-top:4px;font-variant-numeric:tabular-nums}
.names{max-width:70ch;color:#3a3833}

/* show pages */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:end}
@media (max-width:760px){.hero{grid-template-columns:1fr}}
.hero h1{font-size:clamp(2.6rem,7vw,4.6rem);line-height:1}
.hero .one{font-size:1.25rem;margin-top:22px;max-width:32ch}
.hero .photo{aspect-ratio:5/4}
.cols{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:80px;align-items:start}
@media (max-width:760px){.cols{grid-template-columns:1fr;gap:56px}}
.prose{display:flex;flex-direction:column;gap:22px;max-width:62ch}
.prose .q{font-style:italic;font-size:1.25rem}
.quote{border-left:3px solid var(--c);padding-left:16px;display:flex;flex-direction:column;gap:6px}
.quote p{font-size:1.35rem;line-height:1.25}
.quote a{font-family:var(--mono);font-size:.72rem;color:var(--soft)}
.side{display:flex;flex-direction:column;gap:28px}
dl{margin:0;display:grid;grid-template-columns:7.5rem minmax(0,1fr);border-top:1px solid var(--ink)}
dt,dd{margin:0;padding:13px 0;border-bottom:1px solid var(--rule);font-size:.95rem}
dt{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);padding-top:16px}
.vids{display:flex;flex-wrap:wrap;gap:12px}
.vid{display:flex;align-items:center;gap:12px;text-decoration:none;border:1px solid var(--ink);padding:10px 14px 10px 10px;min-width:0}
.vid i{width:38px;height:38px;background:var(--c);display:grid;place-items:center;flex:none}
.vid i::after{content:"";border-left:11px solid var(--paper);border-top:7px solid transparent;border-bottom:7px solid transparent;margin-left:3px}
.vid span{font-family:var(--mono);font-size:.74rem}
.vid:hover{background:var(--ink);color:var(--paper)}
.list{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.list li{display:grid;grid-template-columns:7.5rem minmax(0,1fr) auto;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule);font-size:.95rem}
.list .d{font-family:var(--mono);font-size:.72rem;color:var(--soft);padding-top:3px}
.list .w{font-family:var(--mono);font-size:.64rem;color:var(--soft);padding-top:4px;text-transform:uppercase;letter-spacing:.08em}
@media (max-width:520px){.list li{grid-template-columns:1fr}.list .w{padding-top:0}}
.book{background:var(--c);padding:36px;display:flex;flex-direction:column;gap:12px}
.book.dark{color:var(--paper)}
.book p{max-width:60ch}
.book .mail{font-family:var(--mono);font-size:.85rem;user-select:all}
.cross{font-family:var(--mono);font-size:.78rem}

/* footer */
footer{border-top:1px solid var(--ink);padding-block:36px 64px}
.ft{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;font-size:.92rem}
@media (max-width:640px){.ft{grid-template-columns:1fr}}
.ft p{margin:6px 0 0;color:#3a3833}
.sub{display:flex;border:1px solid var(--ink);margin-top:10px;max-width:320px}
.sub input{flex:1;min-width:0;border:0;background:transparent;padding:8px 10px;font-family:var(--mono);font-size:.74rem;color:var(--ink)}
.sub button{border:0;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:.72rem;padding:8px 12px;cursor:pointer}
.note{font-family:var(--mono);font-size:.68rem;color:var(--soft);margin-top:24px}
p{margin:0}

.embed{position:relative;aspect-ratio:16/9;max-width:100%;background:#000}
.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.btn{display:inline-block;margin-top:10px;font-family:var(--mono);font-size:.74rem;background:var(--ink);color:var(--paper);padding:8px 12px;text-decoration:none}
.quote .tr{font-size:1rem;font-style:italic;color:var(--soft)}
.video{margin:0;display:flex;flex-direction:column;gap:10px}
.video figcaption{color:var(--soft)}
.tryouts{font-size:.95rem;line-height:1.7;color:#3a3833;margin-top:-12px}
.gallery-wrap{margin:0;display:flex;flex-direction:column;gap:12px}
.gallery-wrap figcaption{font-family:var(--mono);font-size:.68rem;color:var(--soft)}
.gallery.land{grid-template-columns:repeat(4,minmax(0,1fr))}
.gallery.land img{aspect-ratio:4/3}
@media (max-width:760px){.gallery.land{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* galleries: whole photos, mixed orientation, no cropping */
.gallery,.gallery.two,.gallery.land{display:block;columns:3;column-gap:16px}
.gallery img,.gallery.two img,.gallery.land img{width:100%;height:auto;aspect-ratio:auto;object-fit:initial;margin:0 0 16px;break-inside:avoid}
@media (max-width:640px){.gallery,.gallery.two,.gallery.land{columns:2;column-gap:10px}.gallery img{margin-bottom:10px}}

/* index timeline */
.strip{display:grid;grid-template-columns:repeat(22,minmax(0,1fr));gap:4px;align-items:end;height:96px;border-bottom:1px solid var(--ink);padding-bottom:6px}
.strip .yb{display:flex;flex-direction:column;justify-content:flex-end;height:100%;text-decoration:none;min-width:0}
.strip .yb::before{content:"";display:block;height:calc(var(--h) * 62px + 2px);background:var(--ink);transition:background .15s}
.strip .yb.empty::before{background:var(--rule)}
.strip .yb:hover::before,.strip .yb:focus-visible::before{background:var(--comedy)}
.strip .yb span{font-family:var(--mono);font-size:.6rem;color:var(--soft);text-align:center;margin-top:6px}
.filters{display:flex;flex-wrap:wrap;gap:8px 18px;font-family:var(--mono);font-size:.74rem}
.filters button{background:none;border:0;border-bottom:1px solid transparent;padding:4px 0;cursor:pointer;color:var(--soft);font:inherit;display:inline-flex;align-items:center;gap:7px}
.filters button.on{color:var(--ink);border-bottom-color:var(--ink)}
.filters i,.dot{width:9px;height:9px;border-radius:50%;background:var(--d);display:inline-block;flex:none}
.tl{display:flex;flex-direction:column;gap:40px}
.ix-more[hidden]{display:none}
.page[data-page="index"]{gap:44px}
.tl .yr{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:24px;border-top:1px solid var(--ink);padding-top:14px;scroll-margin-top:96px}
.tl h2{font-size:2.1rem;line-height:1}
.tl ul{list-style:none;margin:0;padding:0}
.it{border-bottom:1px solid var(--rule);transition:opacity .2s}
.it.dim{opacity:.14}
.row{all:unset;box-sizing:border-box;width:100%;display:grid;grid-template-columns:14px minmax(0,1fr) minmax(0,auto);gap:12px;align-items:baseline;padding:11px 0;cursor:pointer}
.row[disabled]{cursor:default}
.row:focus-visible{outline:2px solid var(--meta);outline-offset:2px}
.row .t{font-size:1rem;line-height:1.35}
.row .r{font-family:var(--mono);font-size:.68rem;color:var(--soft);text-align:right}
.row[aria-expanded="false"] .t::after{content:" +";color:var(--soft);font-family:var(--mono);font-size:.7rem}
.row[aria-expanded="true"] .t::after{content:" –";color:var(--soft);font-family:var(--mono);font-size:.7rem}
.ix-more{padding:0 0 16px 26px;font-size:.92rem;color:#3a3833;display:flex;flex-direction:column;gap:6px;max-width:62ch}
.ix-more .span{font-family:var(--mono);font-size:.7rem;color:var(--soft)}
@media (max-width:640px){.tl .yr{grid-template-columns:1fr;gap:6px}.row{grid-template-columns:14px minmax(0,1fr)}.row .r{grid-column:2;text-align:left}.strip{height:76px}.strip .yb span{font-size:.48rem}}

/* v6 */
summary.cur{text-decoration:underline;text-underline-offset:4px}
#aboutMenu .drop{left:auto;right:-12px;min-width:190px}
@media (max-width:640px){#aboutMenu .drop{right:-10px}}
.intro .one{font-size:1.25rem;margin-top:22px;max-width:40ch}
.intro h1{font-size:clamp(2.6rem,7vw,4.6rem);line-height:1}
.show{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start;border-top:4px solid var(--c);padding-top:28px}
@media (max-width:760px){.show{grid-template-columns:1fr;gap:28px}}
.show .pic{margin:0}
.show .pic img{width:100%;height:auto;display:block;max-height:640px;object-fit:contain;object-position:left top}
.show .ph{background:var(--c);aspect-ratio:4/3;padding:28px;display:flex;flex-direction:column;justify-content:flex-end;gap:10px}
.show .ph p{font-size:1.35rem;line-height:1.25;font-style:italic}
.show .ph span{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}
.show .txt{display:flex;flex-direction:column;gap:20px;min-width:0}
.show h2{font-size:clamp(1.9rem,4vw,2.6rem)}
.show .k{font-family:var(--mono);font-size:.74rem;color:var(--soft);margin-top:-8px}
.show dl{grid-template-columns:7rem minmax(0,1fr)}
.show dd{font-size:.88rem;line-height:1.5}
.small{font-size:.95rem}
.h2{font-size:clamp(1.7rem,3.6vw,2.3rem);border-top:4px solid var(--c);padding-top:20px}
.show .cap{font-family:var(--mono);font-size:.68rem;color:var(--soft);margin-top:8px}
.gallery.four{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:start;columns:auto}
.gallery.four img{margin:0}
@media (max-width:640px){.gallery.four{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
.side-img{width:100%;height:auto;display:block}
.row .t sup{font-family:var(--mono);font-size:.6rem;margin-left:4px;color:var(--soft)}
.ix-more .lk{font-family:var(--mono);font-size:.74rem}
