:root{
  --paper:#FAFAF7; --paper-2:#F2F0E9; --rule:#1A1A1A; --rule-thin:#D8D6CE;
  --ink:#0D0D0D; --ink-2:#3F3F3D; --whisper:#7E7C70;
  --serif:'EB Garamond',Georgia,serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --accent:#5A1A1A;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:1.04rem;line-height:1.65}
a{color:inherit}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--ink);color:var(--paper);padding:8px 14px;z-index:99}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

/* Head — cartel framing */
.cube-head{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:end;padding:60px 80px 50px;border-bottom:1px solid var(--rule)}
.ch-ref{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;color:var(--whisper);margin:0 0 28px;text-transform:uppercase}
.ch-mark{font-family:var(--serif);font-weight:500;font-size:clamp(3.2rem,7vw,5.4rem);line-height:.92;margin:0;letter-spacing:-.02em;color:var(--ink)}
.ch-mark span{font-style:italic;font-weight:400;font-size:.74em;letter-spacing:-.01em}
.ch-bul{font-family:var(--mono);font-size:.78rem;color:var(--whisper);letter-spacing:.08em;text-transform:uppercase;margin:24px 0 0}
.ch-meta dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 18px;font-family:var(--mono);font-size:.82rem;line-height:1.5}
.ch-meta dt{color:var(--whisper);letter-spacing:.04em;text-transform:uppercase;font-size:.74rem;align-self:center}
.ch-meta dd{margin:0;color:var(--ink);letter-spacing:.005em}
.ch-meta dd a{text-decoration:none;border-bottom:1px dotted var(--ink)}

/* Exhibit */
.exhibit{padding:120px 80px 100px;max-width:1100px;text-align:center}
.ex-tag{font-family:var(--mono);font-size:.78rem;letter-spacing:.2em;color:var(--accent);margin:0 0 40px;text-transform:uppercase}
.ex-title{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,6.5vw,5.2rem);line-height:1.05;margin:0 0 30px;letter-spacing:-.015em;color:var(--ink)}
.ex-title em{font-style:italic;color:var(--accent);font-weight:400}
.ex-author{font-family:var(--serif);font-style:italic;font-size:1.3rem;margin:0 0 14px;color:var(--ink-2)}
.ex-dates{font-family:var(--mono);font-size:.85rem;letter-spacing:.14em;color:var(--whisper);margin:0 0 36px;text-transform:uppercase}
.ex-blurb{max-width:680px;margin:0 auto;font-size:1.12rem;color:var(--ink-2);line-height:1.7}

/* Shared sec-h */
.sec-h{display:grid;grid-template-columns:80px 1fr;gap:30px;margin-bottom:60px;align-items:start;border-top:1px solid var(--rule);padding-top:36px}
.sec-no{font-family:var(--serif);font-style:italic;font-weight:400;font-size:2.4rem;color:var(--accent);line-height:1}
.sec-h h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,3.6vw,2.8rem);line-height:1.1;margin:0 0 14px;letter-spacing:-.01em;color:var(--ink);grid-column:2}
.sec-h p{margin:0;font-size:1.02rem;color:var(--ink-2);grid-column:2;max-width:640px}

/* Cartels */
.cartels{padding:80px 80px;max-width:1200px;margin:0 auto}
.cartel-list{list-style:none;padding:0;margin:0;display:grid;gap:0}
.cartel{display:grid;grid-template-columns:130px 1fr 180px;gap:40px;padding:36px 0;border-top:1px solid var(--rule-thin);align-items:start}
.cartel:last-child{border-bottom:1px solid var(--rule-thin)}
.cartel .ref{font-family:var(--mono);font-size:.74rem;letter-spacing:.16em;color:var(--whisper);text-transform:uppercase;padding-top:4px}
.cartel h3{font-family:var(--serif);font-weight:500;font-size:1.6rem;line-height:1.1;margin:0 0 10px;letter-spacing:-.005em;color:var(--ink)}
.cartel .who{font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;color:var(--ink);margin:0 0 6px;text-transform:uppercase}
.cartel .what{font-family:var(--serif);font-style:italic;font-size:.98rem;color:var(--ink-2);margin:0 0 14px}
.cartel .why{font-size:1rem;color:var(--ink-2);margin:0;max-width:540px;line-height:1.6}
.cartel .price{font-family:var(--mono);font-size:.95rem;letter-spacing:.04em;color:var(--accent);text-align:right;font-weight:500;padding-top:4px}

/* Atelier (4 essays) */
.atelier{padding:80px 80px;max-width:1100px;margin:0 auto;background:var(--paper-2)}
.at-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px 80px}
.at-grid article p:not(.at-ref){margin:0;color:var(--ink-2);font-size:1.04rem;line-height:1.7}
.at-ref{font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;color:var(--accent);text-transform:uppercase;margin:0 0 14px}

/* Programme table */
.program{padding:80px 80px;max-width:1100px;margin:0 auto}
.prog-table{width:100%;border-collapse:collapse;font-family:var(--serif)}
.prog-table tr{border-top:1px solid var(--rule-thin)}
.prog-table tr:last-child{border-bottom:1px solid var(--rule-thin)}
.prog-table td{padding:22px 0;vertical-align:top}
.prog-table .when{font-family:var(--mono);font-size:.8rem;letter-spacing:.06em;color:var(--whisper);width:240px;padding-right:40px;text-transform:uppercase}
.prog-table .what{font-size:1.1rem;color:var(--ink)}
.prog-table strong{font-style:italic;font-weight:500;color:var(--ink)}
.prog-table .now{font-family:var(--mono);font-size:.72rem;background:var(--accent);color:var(--paper);padding:3px 10px;letter-spacing:.1em;margin-left:14px;text-transform:uppercase;vertical-align:middle}

/* Acquire steps */
.acquire{padding:80px 80px;max-width:1100px;margin:0 auto}
.ac-steps{list-style:none;padding:0;margin:0;display:grid;gap:0}
.ac-steps li{display:grid;grid-template-columns:80px 1fr;gap:30px;padding:34px 0;border-top:1px dashed var(--rule-thin);align-items:start}
.ac-steps li:last-child{border-bottom:1px dashed var(--rule-thin)}
.ac-num{font-family:var(--serif);font-style:italic;font-weight:400;font-size:2.4rem;color:var(--accent);line-height:1}
.ac-steps h3{font-family:var(--serif);font-weight:500;font-size:1.4rem;margin:0 0 10px;letter-spacing:-.005em;color:var(--ink)}
.ac-steps p{margin:0;color:var(--ink-2);font-size:1.02rem;line-height:1.65;max-width:680px}

/* QA */
.qa{padding:80px 80px;max-width:1000px;margin:0 auto}
.qa-list{display:grid;gap:0}
.qa details{border-top:1px solid var(--rule-thin);padding:22px 0}
.qa details:last-child{border-bottom:1px solid var(--rule-thin)}
.qa summary{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.3rem;color:var(--ink);cursor:pointer;list-style:none;position:relative;padding-right:50px;letter-spacing:-.005em}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-family:var(--serif);font-size:1.6rem;color:var(--accent);font-style:normal;transition:transform .2s}
.qa details[open] summary::after{content:"−"}
.qa p{margin:16px 0 4px;color:var(--ink-2);font-size:1.04rem;line-height:1.7}

/* Visit */
.visit{padding:120px 80px;text-align:center;border-top:1px solid var(--rule)}
.vs-ref{font-family:var(--mono);font-size:.78rem;letter-spacing:.18em;color:var(--accent);margin:0 0 36px;text-transform:uppercase}
.vs-title{font-family:var(--serif);font-weight:400;font-size:clamp(2.4rem,5.5vw,4.4rem);line-height:1.05;margin:0 0 24px;letter-spacing:-.015em;color:var(--ink)}
.vs-addr{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--ink-2);margin:0 0 36px;line-height:1.6}
.vs-phone{display:inline-block;font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,5vw,3.6rem);color:var(--accent);text-decoration:none;letter-spacing:-.005em;border-top:1px solid var(--accent);border-bottom:1px solid var(--accent);padding:14px 30px}
.vs-phone:hover{color:var(--ink)}
.vs-hours{font-family:var(--mono);font-size:.8rem;letter-spacing:.06em;color:var(--whisper);margin:32px 0 0;line-height:1.7;text-transform:uppercase}

/* Foot */
.foot{padding:40px 80px;background:var(--paper-2);text-align:center;border-top:1px solid var(--rule-thin)}
.foot p{margin:0 0 6px;font-family:var(--mono);font-size:.74rem;color:var(--whisper);letter-spacing:.06em;text-transform:uppercase}
.foot .craft{font-size:.7rem}
.foot strong{color:var(--accent);font-weight:500}

@media (max-width:880px){
  .cube-head{grid-template-columns:1fr;padding:40px 28px;gap:40px}
  .exhibit,.cartels,.atelier,.program,.acquire,.qa,.visit{padding-left:28px;padding-right:28px}
  .cartel{grid-template-columns:1fr;gap:14px}
  .cartel .price{text-align:left}
  .at-grid{grid-template-columns:1fr;gap:40px}
  .prog-table .when{width:auto;display:block;padding-right:0;padding-bottom:6px}
  .prog-table td{display:block;padding:14px 0}
  .ac-steps li{grid-template-columns:50px 1fr}
  .foot{padding:32px 28px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto}}
