:root{
  --bone:#F6F3EE;     /* gallery ground            */
  --plinth:#FFFFFF;   /* where work sits           */
  --seam:#E2DDD4;     /* hairlines                 */
  --label:#8A857C;    /* captions, secondary text  */
  --ink:#1A1714;      /* wayfinding, primary text  */
  --ink-soft:#3A352F; /* body paragraphs           */
  --maxw:1180px;
  --gutter:clamp(20px,5vw,72px);
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--bone);
  color:var(--ink);
  font-family:"Switzer",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  font-weight:400;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;}
a:focus-visible, button:focus-visible{outline:2px solid var(--ink);outline-offset:3px;}

.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);}

/* ---- masthead ---- */
.masthead{display:flex;justify-content:space-between;align-items:center;
  padding-block:14px 0;}
.mark{font-size:21px;letter-spacing:.02em;text-decoration:none;}
.mark img{height:22px;width:auto;display:block;}
nav a{font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--label);text-decoration:none;margin-left:22px;transition:color .25s;}
nav a:hover{color:var(--ink);}
nav a[aria-current="page"]{color:var(--ink);font-weight:700;}
@media(max-width:560px){nav a{margin-left:14px;}}

/* ---- dotted seam: the signature, echoed from the paintings ---- */
.seam{height:0;border:0;border-top:2px dotted var(--seam);margin:0;}
.seam.tight{margin-block:14px;}

/* ---- intro / thesis ---- */
.intro{padding-block:clamp(20px,3.5vw,42px) clamp(18px,2.5vw,30px);}
.eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--label);margin:0 0 9px;}
.intro p{font-size:clamp(19px,2.4vw,26px);line-height:1.45;margin:0;color:var(--ink);}
.intro .lead{font-size:clamp(28px,3.6vw,42px);line-height:1.12;letter-spacing:-.01em;margin:0;color:var(--ink);}
.intro .lead-sub{font-size:16px;letter-spacing:.02em;color:var(--label);margin:7px 0 0;}

/* ---- most recent (home) ---- */
.recent{padding-block:clamp(4px,1vw,9px) clamp(10px,1.5vw,14px);}
.recent .eyebrow{margin-bottom:11px;}
.viewall{display:inline-block;margin-top:3px;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--label);text-decoration:none;transition:color .25s;}
.viewall:hover{color:var(--ink);}

/* ---- work page header + year filter ---- */
.page-head{padding-block:clamp(20px,3.5vw,42px) clamp(12px,1.75vw,18px);}
.page-head h1{font-size:clamp(28px,3.6vw,42px);line-height:1.12;letter-spacing:-.01em;
  font-weight:400;margin:0;}
.page-head p{font-size:16px;color:var(--label);margin:6px 0 0;}

.filterbar{display:flex;flex-direction:column;gap:12px;}
.yearfilter{display:flex;flex-wrap:wrap;gap:10px;padding-bottom:6px;}
.pill{font-family:inherit;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--label);background:transparent;border:.5px solid var(--seam);
  padding:9px 16px;border-radius:2px;cursor:pointer;transition:color .2s,background .2s,border-color .2s;}
.pill:hover{color:var(--ink);border-color:var(--label);}
.pill[aria-pressed="true"]{color:var(--bone);background:var(--ink);border-color:var(--ink);}

.year-group{padding-top:clamp(10px,1.75vw,18px);}
.year-head{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--label);
  font-weight:400;margin:0;}

/* ---- works ---- */
.work{padding-block:clamp(20px,3vw,36px);}
.work figure{margin:0;}
.work img{max-width:100%;max-height:75vh;max-height:75dvh;width:auto;height:auto;
  margin-inline:auto;background:var(--plinth);border:.5px solid var(--seam);}
.caption{display:flex;justify-content:space-between;align-items:flex-end;
  gap:24px;margin-top:9px;flex-wrap:wrap;}
.caption .meta h2{font-size:19px;font-weight:400;margin:0;letter-spacing:.01em;}
.caption .meta .didactic{font-size:13px;letter-spacing:.03em;color:var(--label);margin:5px 0 0;}
.caption .acq{text-align:right;}
.caption .price{font-size:14px;color:var(--ink);margin:0 0 4px;}
.caption .taxnote{font-size:11px;letter-spacing:.02em;line-height:1.3;color:var(--label);margin:0 0 8px;}
.btn{display:inline-block;font-family:inherit;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;text-decoration:none;color:var(--bone);background:var(--ink);
  border:none;padding:12px 22px;border-radius:2px;cursor:pointer;transition:opacity .25s;}
.btn:hover{opacity:.82;}
@media(max-width:560px){
  .caption{flex-direction:column;align-items:flex-start;}
  .caption .acq{text-align:left;}
}

/* ---- about / trust ---- */
.about{padding-block:clamp(26px,3.5vw,45px);
  display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(28px,5vw,56px);align-items:start;}
.about .portrait{aspect-ratio:4/5;width:100%;object-fit:cover;object-position:50% 20%;
  background:var(--plinth);border:.5px solid var(--seam);}
.about .statement p{margin:0 0 .5rem;font-size:16px;line-height:1.75;color:var(--ink-soft);}
.about .statement p:first-of-type{color:var(--ink);}
@media(max-width:680px){.about{grid-template-columns:1fr;}}

.trust{display:grid;grid-template-columns:1fr 1fr;gap:11px 40px;margin-top:15px;}
.trust .item{display:flex;gap:12px;}
.trust svg{flex:none;width:20px;height:20px;stroke:var(--ink);fill:none;stroke-width:1.5;margin-top:2px;}
.trust .item p{margin:0;}
.trust .t-title{font-size:14px;color:var(--ink);}
.trust .t-sub{font-size:13px;line-height:1.55;color:var(--label);margin-top:3px;}
@media(max-width:480px){.trust{grid-template-columns:1fr;}}

/* ---- footer ---- */
footer{padding-block:clamp(20px,2.5vw,32px);}
footer .row{display:flex;justify-content:space-between;align-items:center;
  gap:20px;flex-wrap:wrap;}
footer a{font-size:13px;letter-spacing:.04em;color:var(--label);text-decoration:none;transition:color .25s;}
footer a:hover{color:var(--ink);}
footer .copy{font-size:12px;color:var(--label);}

/* ---- quiet entrance, disabled for reduced motion ---- */
@media(prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(14px);
    animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards;}
  @keyframes rise{to{opacity:1;transform:none;}}
}
