/* ============================================================
   Origins of Value — "museum" mockup shared design system
   Navy / brass + cream catalogue. Applied to the real collection.
   ============================================================ */
:root{
  --navy:#0c1a2e; --navy-2:#12243b; --navy-3:#0a1728;
  --line:#21344d; --brass:#c9a24b; --cream:#efe9dd; --cream-2:#e4dcc9;
  --oxblood:#7c3a2d; --ink:#16273f; --paper-line:#cdc4b1;
  --fg:#f4f1ea; --muted:#8f97a5; --muted-2:#c3cad6; --muted-cream:#6b6555;

  /* css/map.css still speaks the old palette's names — map them onto the museum one
     so the choropleth chrome renders without dragging in the whole old stylesheet */
  --gold:#c9a24b; --navy-light:#12243b; --parchment-dark:#e4dcc9;
  --text:#16273f; --text-light:#6b6555; --white:#ffffff;
  --radius:3px; --transition:.2s ease;
}

/* map page */
.map-deck{margin:18px 0 0;font-size:17px;line-height:1.6;color:#4a4638;max-width:680px}
#map-container{position:relative}
*{box-sizing:border-box}
body{margin:0;background:var(--navy);color:var(--fg);
  font-family:'Hanken Grotesk',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.cap{font-family:'Space Mono',monospace}
.wrap{max-width:1440px;margin:0 auto}
.pad{padding-left:56px;padding-right:56px}
.cover{width:100%;height:100%;object-fit:cover}

/* nav — sticky top banner */
.topbar{position:sticky;top:0;z-index:200;background:var(--navy);color:var(--fg);
  border-bottom:1px solid var(--line)}
.topbar-inner{max-width:1440px;margin:0 auto;display:flex;justify-content:space-between;
  align-items:center;padding:18px 56px}
.nav{display:flex;justify-content:space-between;align-items:center;
  padding:22px 56px;border-bottom:1px solid var(--line)}
.brand{display:flex;flex-direction:column;line-height:1}
.brand b{font-family:'Spectral',serif;font-weight:400;font-size:23px;letter-spacing:.01em}
.brand span{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-top:7px}
.navlinks{display:flex;gap:30px;font-size:14.5px;font-weight:600;letter-spacing:.02em;align-items:center}
.navlinks a:hover{color:var(--brass)}
.navlinks .on{color:var(--brass)}
.navlinks .search{color:var(--muted-2)}
.navlinks .search.on{color:var(--brass)}  /* must outrank .search, which is defined after .on */

/* full-bleed image hero (homepage) */
.hero-full{position:relative;width:100%;min-height:600px;display:flex;align-items:center;
  overflow:hidden;background:var(--navy-3)}
.hero-full-bg{position:absolute;inset:0;background-size:cover;background-position:center 30%}
.hero-full-overlay{position:absolute;inset:0;
  background:linear-gradient(92deg, rgba(8,18,32,.95) 0%, rgba(8,18,32,.82) 40%, rgba(8,18,32,.42) 100%)}
.hero-full-content{position:relative;z-index:2;max-width:1440px;margin:0 auto;width:100%;
  padding:96px 56px}
.hero-full-content .head{max-width:740px;text-shadow:0 1px 30px rgba(0,0,0,.35)}
.head-sub{font-family:'Spectral',serif;font-weight:400;font-size:44px;
  line-height:1;letter-spacing:.01em;color:var(--brass);margin-top:10px;
  text-shadow:0 1px 30px rgba(0,0,0,.35)}
.hero-full-content .deck{color:#d6dbe4}

/* hero (grid variant, kept for reference) */
.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;
  padding:76px 56px 60px;align-items:center}
.eyebrow{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--brass)}
h1.head{margin:26px 0 0;font-family:'Spectral',serif;font-weight:400;
  font-size:72px;line-height:1.02;letter-spacing:-.01em}
.deck{margin:28px 0 0;font-size:19px;line-height:1.55;color:var(--muted-2);max-width:520px}
.cta{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap}
.btn{font-weight:700;font-size:15px;padding:14px 28px;border-radius:3px}
.btn.solid{background:var(--brass);color:var(--navy)}
.btn.ghost{border:1px solid #34496a;color:var(--fg);font-weight:600}
.btn.solid:hover{filter:brightness(1.06)}
.btn.ghost:hover{border-color:var(--brass);color:var(--brass)}

.feature{background:var(--navy-2);padding:22px;border:1px solid var(--line);position:relative}
.zoom{position:absolute;top:34px;right:34px;z-index:2;display:flex;align-items:center;gap:7px;
  background:rgba(12,26,46,.82);border:1px solid #34496a;color:var(--fg);
  font-size:12px;font-weight:600;padding:7px 12px;border-radius:20px}
.feature .imgbox{width:100%;height:460px;background:var(--navy-3)}
.feat-cap{display:flex;justify-content:space-between;align-items:baseline;margin-top:16px;padding:0 2px;gap:16px}
.feat-cap .t{font-size:16px;font-weight:700;line-height:1.3}
.feat-cap .s{font-size:13px;color:var(--muted);margin-top:4px}
.feat-cap .acc{font-size:12px;color:var(--brass);white-space:nowrap}

/* stats strip */
.stats{display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat{padding:30px 56px;border-right:1px solid var(--line)}
.stat:last-child{border-right:none}
.stat b{font-family:'Spectral',serif;font-weight:400;font-size:40px;display:block;line-height:1}
.stat span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:10px;display:block}

/* section head */
.sec-head{display:flex;justify-content:space-between;align-items:baseline;padding-top:30px;margin-top:12px}
.sec-head h2{margin:0;font-family:'Spectral',serif;font-weight:400;font-size:30px}
.sec-head .meta{font-size:12px;color:var(--muted)}
.sec-head a.meta:hover{color:var(--brass)}

/* collection highlights (homepage) */
.hl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding:28px 56px 8px}

/* departments */
.depts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  margin:28px 56px 8px;border:1px solid var(--line)}
.dept{background:var(--navy);padding:28px 26px;transition:background .15s}
.dept:hover{background:var(--navy-2)}
.dept .n{font-size:12px;color:var(--brass)}
.dept .d{font-size:20px;font-weight:700;margin-top:16px}
.dept .sub{font-size:13px;color:var(--muted);margin-top:7px}
.dept .ct{font-size:12px;color:var(--muted-2);margin-top:14px}

/* exhibition band (homepage) */
.exband{display:grid;grid-template-columns:1.25fr .75fr;margin-top:44px;border-top:1px solid var(--line)}
.exband .copy{padding:56px;display:flex;flex-direction:column;justify-content:center}
.exband h3{margin:16px 0 0;font-family:'Spectral',serif;font-weight:400;font-size:38px;line-height:1.05}
.exband h3 a:hover{color:var(--brass)}
.exband p{margin:16px 0 0;font-size:16px;line-height:1.55;color:var(--muted-2);max-width:420px}
.exband .more{margin-top:26px;font-size:14px;font-weight:600;color:var(--brass)}
.exband .also{margin-top:22px;font-size:13px;color:var(--muted);line-height:1.9}
.exband .also a:hover{color:var(--brass)}
.exband .art{height:300px;background:var(--navy-3);border-left:1px solid var(--line)}

/* ---- cream catalogue (collection) ---- */
.catalogue{background:#f6f2ea;color:var(--ink)}
.cat-head{padding:48px 56px 20px}
.cat-head .eyebrow{color:var(--oxblood)}
.cat-head h1{margin:14px 0 0;font-family:'Spectral',serif;font-weight:400;
  font-size:52px;letter-spacing:-.01em}
.cat-bar{display:flex;justify-content:space-between;padding:14px 56px;
  border-top:2px solid var(--ink);border-bottom:1px solid var(--paper-line);
  font-size:12px;letter-spacing:.08em;color:var(--muted-cream)}
.cat-body{display:grid;grid-template-columns:240px 1fr;gap:44px;padding:36px 56px 48px}
.cat-body.nofacets{grid-template-columns:1fr}   /* no facet sidebar — filters come from the browse shortcuts + chips */

.facets{font-size:14px}
.facet{border-bottom:1px solid var(--paper-line);padding-bottom:18px;margin-bottom:18px}
.facet:last-child{border-bottom:none}
.facet .h{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--oxblood);margin-bottom:14px}
.facet .list{display:flex;flex-direction:column;gap:11px;color:#3a3830}
.facet .list a{display:flex;justify-content:space-between}
.facet .list a:hover{color:var(--oxblood)}
.facet .list a.sel{font-weight:700}
.facet .list .c{color:#9a927e}

.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.card .ph{height:230px;background:var(--cream-2);border:1px solid var(--paper-line);overflow:hidden}
.card .ph img{transition:transform .4s ease}
.card:hover .ph img{transform:scale(1.04)}
.card .t{margin-top:13px;font-size:15px;font-weight:700;line-height:1.25}
.card .s{font-size:13px;color:var(--muted-cream);margin-top:3px}
.card .acc{font-size:11px;color:var(--oxblood);margin-top:7px}

/* ---- search / browse (cream catalogue) ---- */
.srch{display:flex;gap:12px;margin-top:26px;max-width:720px}
.srch-field{position:relative;flex:1}
.srch-field .ico{position:absolute;left:16px;top:50%;transform:translateY(-50%);
  font-size:17px;color:#9a927e;pointer-events:none}
.srch input{width:100%;font-family:inherit;font-size:16px;color:var(--ink);
  padding:14px 16px 14px 42px;background:#fff;border:1px solid var(--paper-line);border-radius:3px}
.srch input::placeholder{color:#9a927e}
.srch input:focus{outline:none;border-color:var(--oxblood);box-shadow:0 0 0 3px rgba(124,58,45,.10)}
.srch select{font-family:inherit;font-size:14px;font-weight:600;color:var(--ink);
  padding:14px 14px;background:#fff;border:1px solid var(--paper-line);border-radius:3px;cursor:pointer}
.srch select:focus{outline:none;border-color:var(--oxblood)}

.cat-bar .sort{display:flex;align-items:center;gap:9px}
.cat-bar .sort select{font-family:inherit;font-size:12px;letter-spacing:.04em;font-weight:600;
  color:var(--ink);background:transparent;border:none;cursor:pointer;padding:0}
.cat-bar .sort select:focus{outline:none;color:var(--oxblood)}
.cat-bar .n{font-weight:700;color:var(--ink)}

/* facet checkboxes */
.facet .opt{display:flex;align-items:center;gap:9px;cursor:pointer;color:#3a3830;line-height:1.3}
.facet .opt:hover{color:var(--oxblood)}
.facet .opt input{appearance:none;-webkit-appearance:none;flex:none;width:14px;height:14px;margin:0;
  border:1px solid #b3aa95;border-radius:2px;background:#fff;cursor:pointer;position:relative}
.facet .opt input:checked{background:var(--oxblood);border-color:var(--oxblood)}
.facet .opt input:checked::after{content:"✓";position:absolute;inset:0;color:#fff;font-size:10px;
  font-weight:700;display:flex;align-items:center;justify-content:center}
.facet .opt .nm{flex:1}
.facet .opt .c{color:#9a927e;font-size:12px;font-variant-numeric:tabular-nums}
.facet .opt.sel .nm{font-weight:700;color:var(--ink)}
.facet .more{margin-top:12px;font-size:12px;font-weight:700;color:var(--oxblood);
  background:none;border:none;padding:0;cursor:pointer;font-family:inherit;letter-spacing:.02em}
.facet .more:hover{text-decoration:underline}
.facet-clear{width:100%;font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted-cream);background:transparent;
  border:1px solid var(--paper-line);border-radius:3px;padding:11px;cursor:pointer}
.facet-clear:hover{border-color:var(--oxblood);color:var(--oxblood)}

/* active filter chips */
.chips{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:24px}
.chips:empty{display:none}
.chip{display:flex;align-items:center;gap:9px;background:var(--cream);border:1px solid var(--paper-line);
  border-radius:20px;padding:6px 8px 6px 14px;font-size:13px;color:var(--ink);cursor:pointer}
.chip:hover{border-color:var(--oxblood);color:var(--oxblood)}
.chip .x{font-size:15px;line-height:1;color:#9a927e}
.chip:hover .x{color:var(--oxblood)}
.chip-clear{font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted-cream);background:none;border:none;
  padding:6px 4px;cursor:pointer}
.chip-clear:hover{color:var(--oxblood);text-decoration:underline}

/* ---- browse / discovery state (borrowed from the original collection page) ---- */
.browse-sec{margin-bottom:44px}
.browse-sec:last-child{margin-bottom:8px}
.browse-head{display:flex;justify-content:space-between;align-items:baseline;
  padding-bottom:7px;margin-bottom:26px;border-bottom:2px solid var(--paper-line)}
.browse-head .lbl{font-size:18px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--oxblood);font-weight:800;line-height:1.15}
.browse-head .more{font-size:12px;font-weight:700;color:var(--muted-cream);
  background:none;border:none;padding:0;cursor:pointer;font-family:inherit}
.browse-head .more:hover{color:var(--oxblood)}

/* highlights */
.browse-hl{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.browse-hl .ph{height:200px;background:var(--cream-2);border:1px solid var(--paper-line);overflow:hidden}
.browse-hl .ph img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.browse-hl a:hover .ph img{transform:scale(1.04)}
.browse-hl .t{margin-top:12px;font-size:15px;font-weight:700;line-height:1.3;color:var(--ink)}
.browse-hl a:hover .t{color:var(--oxblood)}
.browse-hl .s{margin-top:4px;font-size:13px;color:var(--muted-cream)}

/* country cards (image + dark overlay) */
.browse-country{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.browse-country button{position:relative;height:170px;padding:0;border:1px solid var(--paper-line);
  background:var(--cream-2);overflow:hidden;cursor:pointer;font-family:inherit;display:block;width:100%}
.browse-country img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.browse-country button:hover img{transform:scale(1.05)}
.browse-country .ov{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:flex-start;justify-content:flex-end;text-align:left;padding:18px;
  background:linear-gradient(180deg,rgba(12,26,46,0) 35%,rgba(12,26,46,.86) 100%)}
.browse-country .nm{font-family:'Spectral',serif;font-weight:400;font-size:21px;color:var(--fg)}
.browse-country .ct{margin-top:3px;font-size:12px;letter-spacing:.06em;color:var(--muted-2)}

/* departments — kept quiet, so it sits in the cream page rather than shouting from it */
.deptband{margin-bottom:44px}
.deptband .browse-head .meta{font-family:'Space Mono',monospace;font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted-cream)}
.depts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--paper-line);border:1px solid var(--paper-line)}
.dept{background:#fbf9f4;padding:26px;transition:background .15s;
  border:none;cursor:pointer;font-family:inherit;text-align:left;display:block;width:100%}
.dept:hover{background:#fff}
.dept .n{font-family:'Space Mono',monospace;font-size:12px;color:var(--oxblood)}
.dept .d{font-family:'Spectral',serif;font-weight:400;font-size:22px;line-height:1.2;
  margin-top:14px;color:var(--ink)}
.dept:hover .d{color:var(--oxblood)}
.dept .sub{font-size:13px;color:var(--muted-cream);margin-top:7px}
.dept .ct{font-size:12px;color:#9a927e;margin-top:14px}

/* pills */
.browse-pills{display:flex;flex-wrap:wrap;gap:10px}
.browse-pills button{font-family:inherit;font-size:14px;font-weight:600;color:var(--ink);
  background:#fff;border:1px solid var(--paper-line);border-radius:20px;
  padding:9px 18px;cursor:pointer;display:flex;align-items:center;gap:8px}
.browse-pills button:hover{border-color:var(--oxblood);color:var(--oxblood)}
.browse-pills .c{font-size:12px;color:#9a927e;font-variant-numeric:tabular-nums}
.browse-pills button:hover .c{color:var(--oxblood)}

/* source publications */
.browse-pubs{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.browse-pubs button{padding:0;border:none;background:none;cursor:pointer;font-family:inherit;
  text-align:left;display:block;width:100%}
.browse-pubs .strip{display:flex;gap:5px;height:96px}
.browse-pubs .strip img{flex:1;min-width:0;height:100%;object-fit:cover;
  border:1px solid var(--paper-line);background:var(--cream-2)}
.browse-pubs .k{margin-top:13px;font-family:'Space Mono',monospace;font-size:10px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--oxblood)}
.browse-pubs .t{margin-top:7px;font-family:'Spectral',serif;font-weight:400;font-size:19px;
  line-height:1.2;color:var(--ink)}
.browse-pubs button:hover .t{color:var(--oxblood)}
.browse-pubs .d{margin-top:7px;font-size:13.5px;line-height:1.5;color:var(--muted-cream)}

/* result cards */
.grid{grid-template-columns:repeat(auto-fill,minmax(212px,1fr));gap:28px}
.card{position:relative}
.card .ph{height:212px;position:relative}
.card .pages{position:absolute;bottom:8px;right:8px;background:rgba(22,39,63,.86);color:var(--fg);
  font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.06em;padding:4px 8px;border-radius:2px}
.card:hover .t{color:var(--oxblood)}

.empty{display:none;padding:70px 0;text-align:center}
.empty h2{margin:0;font-family:'Spectral',serif;font-weight:400;font-size:28px;color:var(--ink)}
.empty p{margin:12px 0 0;font-size:16px;color:var(--muted-cream)}

/* pagination */
.pager{display:flex;justify-content:center;align-items:center;gap:7px;
  margin-top:48px;padding-top:30px;border-top:1px solid var(--paper-line)}
.pager:empty{display:none}
.pager button{min-width:38px;font-family:inherit;font-size:14px;font-weight:600;color:var(--ink);
  background:transparent;border:1px solid var(--paper-line);border-radius:3px;padding:9px 12px;cursor:pointer}
.pager button:hover:not(:disabled):not(.on){border-color:var(--oxblood);color:var(--oxblood)}
.pager button.on{background:var(--ink);border-color:var(--ink);color:var(--fg)}
.pager button:disabled{opacity:.35;cursor:default}
.pager .dots{color:#9a927e;padding:0 3px}

.loadnote{padding:70px 0;text-align:center;font-size:15px;color:var(--muted-cream)}

/* ---- exhibitions index ---- */
.exidx-head{padding:56px 56px 8px}
.exidx-head .eyebrow{color:var(--brass)}
.exidx-head h1{margin:14px 0 0;font-family:'Spectral',serif;font-weight:400;
  font-size:52px;letter-spacing:-.01em}
.exlist{padding:20px 56px 48px}
.excard{display:grid;grid-template-columns:.8fr 1.2fr;gap:44px;align-items:center;
  padding:40px 0;border-top:1px solid var(--line)}
.excard:last-child{border-bottom:1px solid var(--line)}
.excard .pic{height:280px;background:var(--navy-3);border:1px solid var(--line);overflow:hidden}
.excard .pic img{transition:transform .4s ease}
.excard:hover .pic img{transform:scale(1.04)}
.excard .label{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--brass)}
.excard h2{margin:14px 0 0;font-family:'Spectral',serif;font-weight:400;font-size:34px;line-height:1.05}
.excard:hover h2{color:var(--brass)}
.excard p{margin:14px 0 0;font-size:17px;line-height:1.55;color:var(--muted-2);max-width:580px}
.excard .meta{margin-top:18px;font-size:12px;color:var(--muted)}

/* ---- exhibition landing ---- */
/* large image fading behind the hero text */
.ex-hero{position:relative;overflow:hidden;background:#f6f2ea}
.ex-hero-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:right 18%;opacity:.95}
.ex-hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg, rgba(246,242,234,.78) 0%, rgba(246,242,234,.44) 44%, rgba(246,242,234,.04) 80%),
    linear-gradient(180deg, rgba(246,242,234,0) 48%, rgba(246,242,234,.42) 80%, #f6f2ea 100%)}
.ex-hero-content{position:relative;z-index:2;max-width:1440px;margin:0 auto;padding:96px 56px 74px}
.ex-hero .eyebrow{color:var(--oxblood)}
.ex-hero .extitle{color:var(--ink)}
.ex-hero-lede{margin:28px 0 0;font-size:19px;line-height:1.6;color:#4a4638;max-width:720px}

/* exhibit introduction + detailed alternating pieces */
.ex-intro{max-width:840px;margin:0 auto;padding:56px 56px 8px}
.ex-intro p{margin:0 0 20px;font-size:18px;line-height:1.7;color:#3a3830}
.ex-intro p:last-child{margin-bottom:0}
.pieces{padding:24px 56px 44px}
.piece{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;
  padding:52px 0;border-top:1px solid var(--paper-line)}
.piece.reverse .piece-img{order:2}
.piece-img{height:440px;background:var(--cream-2);border:1px solid var(--paper-line);
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.piece-img img{max-width:100%;max-height:100%;object-fit:contain;padding:22px;box-sizing:border-box}
.piece-num{font-size:12px;letter-spacing:.2em;color:var(--oxblood)}
.piece-title{margin:12px 0 0;font-family:'Spectral',serif;font-weight:400;font-size:30px;
  line-height:1.14;color:var(--ink)}
.piece-meta{margin:12px 0 0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-cream)}
.piece-body p{margin:18px 0 0;font-size:16px;line-height:1.66;color:#3a3830}
.piece-body em{font-style:italic}
.piece-link{display:inline-block;margin-top:22px;font-size:14px;font-weight:600;color:var(--oxblood)}
.piece-link:hover{color:var(--ink)}

/* exhibition objects grid + object popup */
.ex-objects{padding:44px 56px 64px}
.ex-objects .sec-head{border-top:1px solid var(--paper-line);padding-top:30px}
.ex-objects .sec-head h2{color:var(--ink)}
.ex-objects .sec-head .meta{color:var(--muted-cream)}
.objgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:30px}
.objcard{cursor:pointer;text-align:left;background:none;border:none;padding:0;font:inherit}
.objcard .ph{height:300px;background:var(--cream-2);border:1px solid var(--paper-line);
  display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
.objcard .ph img{max-width:100%;max-height:100%;object-fit:contain;padding:20px;
  box-sizing:border-box;transition:transform .4s ease}
.objcard:hover .ph img{transform:scale(1.03)}
.objcard .ph::after{content:"View ↗";position:absolute;bottom:0;left:0;right:0;
  background:linear-gradient(180deg,rgba(22,39,63,0),rgba(22,39,63,.88));
  color:var(--fg);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:26px 14px 12px;text-align:center;opacity:0;transition:opacity .25s}
.objcard:hover .ph::after{opacity:1}
.objcard .n{margin-top:14px;font-family:'Space Mono',monospace;font-size:11px;
  letter-spacing:.18em;color:var(--oxblood)}
.objcard .t{margin-top:7px;font-family:'Spectral',serif;font-weight:400;font-size:21px;
  line-height:1.2;color:var(--ink)}
.objcard:hover .t{color:var(--oxblood)}
.objcard .m{margin-top:7px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted-cream)}

/* popup */
.objmodal{position:fixed;inset:0;z-index:400;display:none;align-items:center;justify-content:center;
  padding:40px 24px;background:rgba(8,18,32,.72)}
.objmodal.open{display:flex}
.objmodal-panel{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;
  width:100%;max-width:1120px;max-height:86vh;background:#f6f2ea;border:1px solid var(--paper-line);
  box-shadow:0 30px 80px rgba(0,0,0,.4);overflow:hidden}
.objmodal-img{background:var(--cream-2);border-right:1px solid var(--paper-line);
  display:flex;align-items:center;justify-content:center;padding:28px;min-height:0}
.objmodal-img img{max-width:100%;max-height:100%;object-fit:contain}
.objmodal-body{padding:44px 44px 40px;overflow-y:auto;min-height:0}
.objmodal-body .n{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.18em;color:var(--oxblood)}
.objmodal-body h2{margin:14px 0 0;font-family:'Spectral',serif;font-weight:400;font-size:31px;
  line-height:1.14;color:var(--ink);max-width:30ch}
.objmodal-body .m{margin:12px 0 0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-cream)}
.objmodal-body p{margin:20px 0 0;font-size:16px;line-height:1.66;color:#3a3830}
.objmodal-body .piece-link{margin-top:26px}
.objmodal-close{position:absolute;top:16px;right:16px;z-index:2;width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;
  color:var(--ink);background:rgba(246,242,234,.94);border:1px solid var(--paper-line);
  border-radius:50%;cursor:pointer;font-family:inherit}
.objmodal-close:hover{background:var(--ink);border-color:var(--ink);color:var(--fg)}
.objmodal-nav{display:flex;justify-content:space-between;gap:16px;margin-top:30px;
  padding-top:20px;border-top:1px solid var(--paper-line)}
.objmodal-nav button{font-family:inherit;font-size:13px;font-weight:700;color:var(--ink);
  background:none;border:none;padding:0;cursor:pointer}
.objmodal-nav button:hover:not(:disabled){color:var(--oxblood)}
.objmodal-nav button:disabled{opacity:.3;cursor:default}
body.modal-open{overflow:hidden}

.exhero{display:grid;grid-template-columns:1.35fr .65fr;gap:48px;align-items:start;
  padding:70px 56px 44px}
.exhero .eyebrow{color:var(--brass)}
h1.extitle{margin:22px 0 0;font-family:'Spectral',serif;font-weight:400;
  font-size:76px;line-height:.98;letter-spacing:-.02em}
.exhero-copy p{margin:28px 0 0;font-size:19px;line-height:1.6;color:var(--muted-2);max-width:620px}
.exhero-img{height:360px;overflow:hidden;background:var(--navy-3);border:1px solid var(--line)}
.exbig{height:520px;background:var(--navy-3);margin:0 56px;border:1px solid var(--line);overflow:hidden}
.works{padding:56px}
.works h2{margin:0 0 28px;font-family:'Spectral',serif;font-weight:400;font-size:26px}
.works .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.work .ph{height:300px;background:var(--navy-2);border:1px solid var(--line);overflow:hidden}
.work .t{margin-top:12px;font-size:15px;font-weight:700;line-height:1.3}
.work .s{font-size:13px;color:var(--muted);margin-top:3px}
.pull{padding:24px 56px 60px;border-top:1px solid var(--line);margin:0 56px}
.pull p{margin:44px 0 0;font-family:'Spectral',serif;font-weight:400;font-size:34px;
  line-height:1.22;letter-spacing:-.01em;max-width:1000px}
.pull p span{color:var(--brass)}
.pull .attr{font-size:13px;color:var(--muted);margin-top:22px}

/* ---- about ---- */
.abhero{background:var(--navy);color:var(--fg);padding:78px 56px 74px}
.abhero .eyebrow{color:var(--brass)}
.abhero h1{margin:24px 0 0;font-family:'Spectral',serif;font-weight:400;
  font-size:60px;line-height:1.04;letter-spacing:-.01em;max-width:1050px}
.abbody{display:grid;grid-template-columns:1fr 1fr;gap:56px;padding:60px 56px 40px}
.abbody p{margin:0 0 20px;font-size:18px;line-height:1.6;color:#3a3830}
.abstats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--paper-line);
  border:1px solid var(--paper-line);align-self:start}
.abstats .s{background:var(--cream);padding:24px}
.abstats .s b{font-family:'Spectral',serif;font-weight:400;font-size:34px;display:block}
.abstats .s span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--oxblood);margin-top:8px;display:block}
.abvisit{display:grid;grid-template-columns:1.3fr .7fr;gap:40px;padding:20px 56px 56px}
.abvisit .pic{height:340px;background:var(--cream-2);border:1px solid var(--paper-line);overflow:hidden}
.abvisit .info{border-top:2px solid var(--ink);padding-top:20px}
.abvisit .info .h{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--oxblood);margin-bottom:16px}
.abvisit .info .body{font-size:16px;line-height:1.85;color:#3a3830}
.abvisit .info .body a{color:var(--oxblood);font-weight:700}

/* contact form */
.contact-form{display:flex;flex-direction:column;gap:12px;margin-top:20px;max-width:440px}
.contact-form input,.contact-form textarea{width:100%;font-family:inherit;font-size:15px;
  padding:11px 14px;background:#fff;border:1px solid var(--paper-line);border-radius:3px;color:var(--ink)}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#9a927e}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--oxblood);
  box-shadow:0 0 0 3px rgba(124,58,45,.12)}
.contact-form textarea{resize:vertical}
.contact-form button{align-self:flex-start;margin-top:4px;background:var(--navy);color:var(--fg);
  border:none;border-radius:3px;font-family:inherit;font-weight:700;font-size:14px;
  letter-spacing:.02em;padding:12px 28px;cursor:pointer}
.contact-form button:hover{background:var(--ink)}
.form-note{display:none;margin:4px 0 0;font-size:13px;color:var(--oxblood);font-weight:600}

/* ---- record / document viewer (dark stage + light details) ---- */
/* dark top */
.rec-top{background:var(--navy);color:var(--fg)}
.rec-crumb{max-width:1440px;margin:0 auto;padding:15px 56px;border-bottom:1px solid var(--line);
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.rec-crumb a:hover{color:var(--brass)}
.rec-crumb .cur{color:var(--brass)}
.rec-crumb .sep{color:#3a4a63;margin:0 8px}
.rec-stage{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:1fr 320px}
.rec-viewer{position:relative;height:520px;background:var(--navy-3);border-right:1px solid var(--line);
  overflow:hidden;display:flex;align-items:center;justify-content:center}
.rec-viewer img{max-width:100%;max-height:100%;object-fit:contain;padding:30px;box-sizing:border-box}
.rec-vctl{position:absolute;top:20px;left:20px;display:flex;flex-direction:column;gap:8px}
.rec-vctl span{width:36px;height:36px;background:rgba(18,36,59,.92);border:1px solid var(--line);border-radius:5px;
  display:flex;align-items:center;justify-content:center;font-size:17px;color:var(--fg)}
.rec-zoominfo{position:absolute;bottom:18px;left:20px;display:flex;align-items:center;gap:7px;
  background:rgba(12,26,46,.82);border:1px solid var(--line);border-radius:20px;padding:7px 13px;
  font-size:12px;color:var(--muted-2)}
.rec-sides{position:absolute;bottom:18px;right:20px;display:flex;gap:8px}
.rec-sides span{font-size:12px;font-weight:600;padding:8px 15px;border:1px solid var(--line);border-radius:3px;color:var(--fg)}
.rec-sides .on{background:var(--brass);color:var(--navy);border-color:var(--brass)}
/* OpenSeadragon deep-zoom stage */
#osd{position:absolute;inset:0}
.rec-viewer .openseadragon-canvas:focus{outline:none}
.rec-vctl span{cursor:pointer;user-select:none}
.rec-vctl span:hover{border-color:var(--brass);color:var(--brass)}
/* OSD paints its navigator (and drag-frame) inside .rec-navigator. It puts the
   .navigator class on that element and sets display:inline-block inline — which
   collapses the box to zero width, so force it back to a full-width block. */
.rec-navigator.navigator{display:block!important;width:100%!important;
  border:1px solid var(--line)!important;background:var(--navy-3)!important}
.rec-navigator .displayregion{border:2px solid var(--brass)!important;background:rgba(201,162,75,.12)}
.rec-sides span{cursor:pointer;user-select:none}
.rec-sides span.pg{background:rgba(12,26,46,.82);color:var(--muted-2);cursor:default}
.rec-sides span[aria-disabled="true"]{opacity:.35;cursor:default}
.rec-alsofiles .f{cursor:pointer}
.rec-alsofiles .f.on{border-color:var(--brass)}
.rec-alsofiles .f.on img{opacity:.85}
.rec-alsofiles .f.more{display:flex;align-items:center;justify-content:center;
  font-size:12px;color:var(--muted);cursor:default}

.rec-nav{padding:26px 28px;display:flex;flex-direction:column;gap:22px}
.rec-nav .lbl{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.rec-navigator{margin-top:12px;height:150px;background:var(--navy-3);border:1px solid var(--line);position:relative;overflow:hidden}
.rec-navigator img{width:100%;height:100%;object-fit:cover;opacity:.5}
.rec-navigator .frame{position:absolute;top:26px;left:30px;width:82px;height:70px;border:2px solid var(--brass);background:rgba(201,162,75,.12)}
.rec-nav .hint{margin-top:11px;font-size:12px;color:var(--muted);line-height:1.5}
.rec-alsofiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.rec-alsofiles .f{height:80px;background:var(--navy-3);border:1px solid var(--line);overflow:hidden;position:relative}
.rec-alsofiles .f img{width:100%;height:100%;object-fit:cover;opacity:.55}
.rec-alsofiles .f span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:11px;color:var(--fg);font-weight:600}
.rec-actions{display:grid;grid-template-columns:1fr;gap:12px;margin-top:4px}
.rec-actions .btn{text-align:center;font-size:13px;font-weight:700;padding:12px;border-radius:3px}
.rec-actions .cite{border:1px solid var(--line);color:var(--fg)}
.rec-actions .cite:hover{border-color:var(--brass);color:var(--brass)}

/* light bottom */
.rec-body{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr;gap:60px;padding:56px 56px 24px}
.rec-eyebrow{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--oxblood)}
.rec-title{margin:16px 0 0;font-family:'Spectral',serif;font-weight:400;font-size:46px;line-height:1.06;letter-spacing:-.01em;color:var(--ink)}
.rec-subtitle{margin:12px 0 0;font-size:16px;color:var(--muted-cream)}
.rec-desc{margin:26px 0 0;font-size:17px;line-height:1.7;color:#3a3830}
.rec-desc p{margin:0 0 18px}
.rec-desc p:last-child{margin-bottom:0}
.rec-prov{margin-top:28px;border-top:1px solid var(--paper-line);padding-top:22px}
.rec-prov .lbl{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--oxblood)}
.rec-prov .row{display:grid;grid-template-columns:74px 1fr;gap:20px;padding:12px 0;border-bottom:1px solid var(--paper-line);font-size:14.5px}
.rec-prov .yr{font-family:'Space Mono',monospace;color:var(--oxblood)}
.rec-prov .ev{color:#3a3830;line-height:1.5}
.rec-details{border-top:2px solid var(--ink);padding-top:18px}
.rec-details .lbl{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-cream);margin-bottom:6px}
.rec-details .row{display:grid;grid-template-columns:118px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--paper-line)}
.rec-details .k{font-size:13px;color:var(--muted-cream)}
.rec-details .v{font-size:15px;font-weight:600;color:var(--ink);line-height:1.4}
.rec-onview{margin-top:22px;background:#efe9dd;border:1px solid var(--paper-line);padding:20px}
.rec-onview .lbl{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--oxblood)}
.rec-onview .t{margin-top:9px;font-size:15px;font-weight:700;color:var(--ink)}
.rec-onview .t a:hover{color:var(--oxblood)}
.rec-onview .s{font-size:13px;color:var(--muted-cream);margin-top:3px}
.rec-related{max-width:1440px;margin:0 auto;padding:34px 56px 52px;border-top:1px solid var(--ink)}
.rec-related-head{display:flex;justify-content:space-between;align-items:baseline}
.rec-related-head h2{margin:0;font-family:'Spectral',serif;font-weight:400;font-size:28px;color:var(--ink)}
.rec-related-head .lbl{font-family:'Space Mono',monospace;font-size:12px;color:var(--muted-cream)}
.rec-related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:26px}
.rec-rel .ph{height:200px;background:var(--cream-2);border:1px solid var(--paper-line);overflow:hidden}
.rec-rel .ph img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.rec-rel:hover .ph img{transform:scale(1.04)}
.rec-rel .t{margin-top:12px;font-size:15px;font-weight:700;color:var(--ink);line-height:1.25}
.rec-rel .acc{font-family:'Space Mono',monospace;font-size:11px;color:var(--oxblood);margin-top:5px}

/* footers */
.foot{display:flex;justify-content:space-between;align-items:center;
  padding:34px 56px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
.foot b{font-family:'Spectral',serif;color:var(--fg)}
.cat-foot{display:flex;justify-content:space-between;padding:26px 56px;
  border-top:2px solid var(--ink);color:#8a8271;font-size:11px;
  letter-spacing:.12em;text-transform:uppercase}

/* ---- password gate (homepage) ---- */
.login-overlay{position:fixed;inset:0;z-index:9999;background:var(--navy-3);
  display:flex;align-items:center;justify-content:center;padding:24px}
.login-overlay.hidden{display:none}
.login-box{background:#f6f2ea;border-top:3px solid var(--brass);padding:44px 40px;
  max-width:400px;width:100%;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.45)}
.login-box .brand-mark{font-family:'Spectral',serif;font-weight:400;font-size:29px;color:var(--ink)}
.login-subtitle{margin:10px 0 26px;font-size:14px;color:var(--muted-cream)}
.login-input{width:100%;font-family:inherit;font-size:15px;text-align:center;
  padding:12px 14px;background:#fff;border:1px solid var(--paper-line);border-radius:3px;
  color:var(--ink);margin-bottom:12px}
.login-input:focus{outline:none;border-color:var(--oxblood);box-shadow:0 0 0 3px rgba(124,58,45,.12)}
.login-btn{width:100%;font-family:inherit;font-weight:700;font-size:15px;padding:12px;
  background:var(--navy);color:var(--fg);border:none;border-radius:3px;cursor:pointer}
.login-btn:hover{background:var(--ink)}
.login-error{display:none;margin:14px 0 0;font-size:13px;font-weight:600;color:var(--oxblood)}

/* ---- in the news (homepage) ---- */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding:28px 56px 56px}
.news-card{border:1px solid var(--line);background:var(--navy-2);padding:26px 24px;
  display:flex;flex-direction:column;transition:background .15s}
.news-card:hover{background:var(--navy-3);border-color:var(--brass)}
.news-card .src{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.news-card h3{margin:16px 0 0;font-family:'Spectral',serif;font-weight:400;font-size:22px;
  line-height:1.2;color:var(--fg)}
.news-card p{margin:12px 0 0;font-size:15px;line-height:1.55;color:var(--muted-2)}

/* ---- full-text (OCR) results ---- */
.ocr-list{display:flex;flex-direction:column;gap:1px;background:var(--paper-line);
  border:1px solid var(--paper-line)}
.ocr-hit{display:grid;grid-template-columns:96px 1fr;gap:22px;align-items:start;
  background:#fbf9f4;padding:20px 22px}
.ocr-hit:hover{background:#fff}
.ocr-hit .ph{height:120px;background:var(--cream-2);border:1px solid var(--paper-line);overflow:hidden}
.ocr-hit .ph img{width:100%;height:100%;object-fit:cover}
.ocr-hit .t{font-size:16px;font-weight:700;line-height:1.3;color:var(--ink)}
.ocr-hit:hover .t{color:var(--oxblood)}
.ocr-hit .s{margin-top:4px;font-family:'Space Mono',monospace;font-size:11px;
  letter-spacing:.1em;color:var(--muted-cream)}
.ocr-hit .snip{margin:12px 0 0;font-size:14.5px;line-height:1.65;color:#3a3830}
.ocr-hit mark{background:rgba(201,162,75,.34);color:inherit;padding:1px 2px;border-radius:2px}

.flagbar{background:var(--brass);color:var(--navy);text-align:center;
  font-size:12px;font-weight:700;letter-spacing:.08em;padding:8px;text-transform:uppercase}

.copyright{background:var(--navy-3);color:var(--muted);text-align:center;
  padding:18px 24px;font-size:12px;letter-spacing:.02em;border-top:1px solid var(--line)}

/* ===== light-background theme (below-hero sections) ===== */
body.theme-light{background:#fefdfb;color:var(--ink)}
body.theme-light.bg-cream{background:#f6f2ea}  /* warmer shade, matches About */
body.theme-light .sec-head{border-top-color:var(--paper-line)!important}
body.theme-light .sec-head h2{color:var(--ink)}
body.theme-light .sec-head .meta{color:var(--muted-cream)}
body.theme-light .sec-head a.meta:hover{color:var(--oxblood)}
/* exhibition band */
body.theme-light .exband{border-top-color:var(--paper-line)}
body.theme-light .exband .eyebrow{color:var(--oxblood)}
body.theme-light .exband h3 a{color:var(--ink)}
body.theme-light .exband h3 a:hover{color:var(--oxblood)}
body.theme-light .exband p{color:#4a4638}
body.theme-light .exband .more{color:var(--oxblood)}
body.theme-light .exband .art{background:var(--cream-2);border-left-color:var(--paper-line)}
/* highlight cards */
body.theme-light .work .ph{background:var(--cream-2);border-color:var(--paper-line)}
body.theme-light .work .t{color:var(--ink)}
body.theme-light .work:hover .t{color:var(--oxblood)}
body.theme-light .work .s{color:var(--muted-cream)}
/* exhibitions index */
body.theme-light .exidx-head .eyebrow{color:var(--oxblood)}
body.theme-light .exidx-head h1{color:var(--ink)}
body.theme-light .excard{border-top-color:var(--paper-line)}
body.theme-light .excard:last-child{border-bottom-color:var(--paper-line)}
body.theme-light .excard .pic{background:var(--cream-2);border-color:var(--paper-line)}
body.theme-light .excard .label{color:var(--oxblood)}
body.theme-light .excard h2{color:var(--ink)}
body.theme-light .excard:hover h2{color:var(--oxblood)}
body.theme-light .excard p{color:#4a4638}
body.theme-light .excard .meta{color:var(--muted-cream)}
/* exhibition landing */
body.theme-light .exhero .eyebrow{color:var(--oxblood)}
body.theme-light .exhero-copy p{color:#4a4638}
body.theme-light .exhero-img{background:var(--cream-2);border-color:var(--paper-line)}
body.theme-light .pull{border-top-color:var(--paper-line)}
body.theme-light .pull p span{color:var(--oxblood)}
body.theme-light .pull .attr{color:var(--muted-cream)}

@media(max-width:1000px){
  .hero{grid-template-columns:1fr;gap:40px;padding:48px 32px}
  .hero-full{min-height:480px}
  .hero-full-content{padding:60px 32px}
  h1.head{font-size:48px}
  .head-sub{font-size:28px}
  h1.extitle{font-size:52px}
  .abhero h1{font-size:40px}
  .cat-head h1{font-size:38px}
  .topbar-inner,.nav,.stat,.cat-head,.cat-bar,.cat-body,.works,.pull,.exhero,.exbig,.ex-hero-content,.ex-intro,.pieces,.abhero,.abbody,.abvisit,.exidx-head,.exlist,.hl-grid,.rec-crumb,.rec-body,.rec-related,.foot,.cat-foot{padding-left:32px;padding-right:32px}
  .excard{grid-template-columns:1fr;gap:20px}
  .piece{grid-template-columns:1fr;gap:22px}
  .piece.reverse .piece-img{order:0}
  .piece-img{height:340px}
  .rec-stage{grid-template-columns:1fr}
  .rec-nav{border-top:1px solid var(--line)}
  .rec-body{grid-template-columns:1fr;gap:36px}
  .rec-related-grid{grid-template-columns:1fr 1fr}
  .exbig{margin-left:32px;margin-right:32px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .depts,.grid,.works .grid3,.hl-grid,.objgrid,
  .browse-hl,.browse-country,.browse-pubs,.news-grid{grid-template-columns:1fr 1fr}
  .news-grid{padding-left:32px;padding-right:32px}
  .ocr-hit{grid-template-columns:72px 1fr;gap:16px}
  .ex-objects{padding-left:32px;padding-right:32px}
  .objmodal{padding:20px 12px}
  .objmodal-panel{grid-template-columns:1fr;max-height:92vh}
  .objmodal-img{border-right:none;border-bottom:1px solid var(--paper-line);max-height:38vh}
  .objmodal-body{padding:30px 26px 28px}
  .depts{margin-left:32px;margin-right:32px}
  .exband,.cat-body,.exhero,.abbody,.abvisit{grid-template-columns:1fr}
  .exband .art{border-left:none;border-top:1px solid var(--line)}
  .exfacts{border-left:none;padding-left:0}
  .navlinks{display:none}
}
