:root{
  --paper:#F6F6F3;
  --surface:#FFFFFF;
  --ink:#22282A;
  --muted:#6D7679;
  --line:#E0E1DC;
  --accent:#2F5D50;
  --accent-soft:#E6EDE9;
  --shadow:0 1px 2px rgba(34,40,42,.06), 0 12px 28px -18px rgba(34,40,42,.35);
  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --body:"Karla",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --maxw:1180px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#15181A; --surface:#1C2124; --ink:#E9E8E3; --muted:#9AA3A5;
    --line:#2C3336; --accent:#7FB6A2; --accent-soft:#22302B;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 14px 30px -18px rgba(0,0,0,.8);
  }
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:20px;}
h1,h2,h3{font-family:var(--display);font-weight:400;text-wrap:balance;margin:0;line-height:1.15;}
p{margin:0;}
a{color:inherit;text-decoration:none;}
.prose a{text-decoration:underline;text-underline-offset:3px;}
.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600;}

/* header */
header.site{position:sticky;top:0;z-index:40;background:color-mix(in srgb, var(--paper) 88%, transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.bar{display:flex;align-items:baseline;gap:24px;flex-wrap:wrap;padding-block:16px;}
.wordmark{font-family:var(--display);font-size:21px;letter-spacing:.01em;margin-right:auto;}
.wordmark small{display:block;font-family:var(--body);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:3px;}
nav.main{display:flex;gap:22px;flex-wrap:wrap;}
nav.main a{color:var(--muted);font-size:14px;letter-spacing:.02em;border-bottom:1px solid transparent;padding-bottom:2px;}
nav.main a:hover{color:var(--ink);}
nav.main a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent);}

/* hero */
.hero{display:grid;grid-template-columns:1.35fr .9fr;gap:40px;align-items:end;padding-block:52px 40px;}
.hero-frame{margin:0;background:var(--surface);padding:14px;border:1px solid var(--line);box-shadow:var(--shadow);}
.hero-copy h1{font-size:clamp(30px,4.4vw,46px);letter-spacing:-.015em;}
.hero-copy .lede{margin-top:16px;color:var(--muted);max-width:34em;}
.caption{margin-top:20px;border-top:1px solid var(--line);padding-top:14px;font-size:13px;color:var(--muted);}
.caption strong{font-family:var(--display);font-size:16px;color:var(--ink);font-weight:400;font-style:italic;}

/* filters */
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding-block:22px;border-top:1px solid var(--line);}
.chip{font-family:var(--body);font-size:13px;padding:6px 13px;border-radius:999px;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--muted);}
.chip:hover{color:var(--ink);border-color:var(--muted);}
.chip[aria-pressed="true"]{background:var(--accent-soft);border-color:transparent;color:var(--ink);font-weight:600;}
.count{margin-left:auto;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;}

/* gallery */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:28px 24px;padding-bottom:64px;}
.work{display:flex;flex-direction:column;gap:10px;}
.work .mat{background:var(--surface);border:1px solid var(--line);padding:10px;transition:box-shadow .25s ease, transform .25s ease;}
.work:hover .mat{box-shadow:var(--shadow);transform:translateY(-2px);}
.work .meta{font-size:13px;line-height:1.45;}
.work .meta .t{font-family:var(--display);font-style:italic;font-size:15px;}
.work .meta .d{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;}
.tagline{display:inline-block;margin-top:3px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;}
.ph{display:grid;place-items:center;background:linear-gradient(140deg,var(--accent-soft),var(--line));color:var(--muted);font-size:11px;letter-spacing:.12em;text-transform:uppercase;text-align:center;padding:20px;}

/* single work */
.work-detail{display:grid;grid-template-columns:1.5fr .8fr;gap:44px;align-items:start;padding-block:44px 72px;}
.work-detail .frame{margin:0;background:var(--surface);border:1px solid var(--line);padding:18px;box-shadow:var(--shadow);}
.work-detail h1{font-size:clamp(26px,3.4vw,36px);font-style:italic;margin-top:8px;}
.work-detail dl{margin:22px 0 0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:13px;}
.work-detail dt{color:var(--muted);}
.work-detail dd{margin:0;font-variant-numeric:tabular-nums;}
.work-detail .note{margin-top:20px;font-size:15px;color:var(--muted);}
.back{font-size:13px;color:var(--muted);}
.back:hover{color:var(--ink);}

.btn{display:inline-block;margin-top:22px;background:var(--accent);color:#fff;border:0;border-radius:2px;padding:11px 20px;font-family:var(--body);font-size:13px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;font-weight:600;}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .btn{color:#12201B;}}
.btn:hover{filter:brightness(1.08);}

/* pages */
.page{padding-block:52px 72px;}
.page-head{border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:34px;}
.page-head h1{font-size:clamp(28px,3.6vw,40px);margin-top:8px;letter-spacing:-.01em;}
.prose{max-width:34em;display:flex;flex-direction:column;gap:18px;font-size:17px;}
.two-col{display:grid;grid-template-columns:1.4fr .8fr;gap:56px;align-items:start;}
.portrait{margin:0;background:var(--surface);border:1px solid var(--line);padding:12px;box-shadow:var(--shadow);}
.portrait figcaption{font-size:12px;color:var(--muted);padding-top:10px;}
.sig{font-family:var(--display);font-size:26px;font-style:italic;color:var(--accent);}

/* archive */
.year-block{border-top:1px solid var(--line);padding-block:22px;}
.year-block h2{font-size:13px;letter-spacing:.16em;text-transform:uppercase;font-family:var(--body);font-weight:600;color:var(--muted);}
.rows{margin-top:12px;display:flex;flex-direction:column;}
.row{display:grid;grid-template-columns:2fr 1.3fr 1fr .8fr;gap:16px;padding-block:11px;border-bottom:1px solid var(--line);font-size:14px;align-items:baseline;}
.row:last-child{border-bottom:0;}
.row .r-title{font-family:var(--display);font-style:italic;font-size:16px;}
.row span:not(.r-title){color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums;}
.status-available{color:var(--accent);font-weight:600;}

/* workshops */
.ws-item{display:grid;grid-template-columns:120px 1fr auto;gap:24px;padding-block:24px;border-top:1px solid var(--line);align-items:start;}
.ws-date{font-family:var(--display);font-size:15px;line-height:1.3;}
.ws-date span{display:block;font-family:var(--body);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:4px;}
.ws-body h2{font-size:20px;}
.ws-body p{font-size:14px;color:var(--muted);margin-top:6px;max-width:44em;}
.ws-seats{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:600;white-space:nowrap;}
.ws-seats.full{color:var(--muted);}

/* video */
.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;}
.vid{background:var(--surface);border:1px solid var(--line);}
.vid .shell{position:relative;aspect-ratio:16/9;max-width:100%;overflow:hidden;background:var(--line);}
.vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.vid .cap{padding:14px;font-size:13px;}
.vid .cap b{font-family:var(--display);font-weight:400;font-style:italic;font-size:15px;display:block;}
.vid .cap span{color:var(--muted);font-size:12px;}

/* contact */
form{display:flex;flex-direction:column;gap:16px;max-width:520px;}
label{display:flex;flex-direction:column;gap:6px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;}
input,select,textarea{font-family:var(--body);font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:11px 12px;width:100%;}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent;}
textarea{min-height:120px;resize:vertical;}
.form-note{font-size:13px;color:var(--muted);}
.contact-side{font-size:14px;display:flex;flex-direction:column;gap:22px;}
.contact-side div b{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;}
.hp{position:absolute;left:-9999px;}

footer.site{border-top:1px solid var(--line);margin-top:20px;}
footer.site .bar{font-size:13px;color:var(--muted);padding-block:34px 46px;}
footer.site .f-mark{font-family:var(--display);font-size:16px;color:var(--ink);margin-right:auto;}

footer.site .bar a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line);}
footer.site .bar a:hover{color:var(--ink);border-bottom-color:var(--accent);}

a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

@media (max-width:860px){
  .hero{grid-template-columns:1fr;gap:28px;padding-block:34px 26px;}
  .two-col,.work-detail{grid-template-columns:1fr;gap:32px;}
  .row{grid-template-columns:1fr auto;gap:4px 16px;}
  .row span:nth-child(3){display:none;}
  .ws-item{grid-template-columns:1fr;gap:10px;}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto;}}
