/* =========================================================
   Ori Jauch — static rebuild
   Palette:  white background · ink #141312 (also used as sole accent)
             grey #8A8579 · line #D9D4C8
   Type:     "JetBrains Mono" (dossier/meta) + "Neue Haas Grotesk Display" (body/heads)
             — loaded via Adobe Typekit (kit lqz8quo). Exposed weights on
             this kit are 500 (regular-ish), 700 (bold) and 900 (black);
             there is no true 400, so body copy uses 500 as its base.
   ========================================================= */

@import url("https://use.typekit.net/lqz8quo.css");
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap');

/* ⇩ Pragmasevka ⇩ */
@import url('https://cdn.jsdelivr.net/npm/@aptre/pragmasevka/font.min.css');
/*
font-family: 'Pragmasevka', monospace;
---------------------------------------------------*/
/* ⇩ Iosevka ⇩ */
@import url('https://cdnjs.cloudflare.com/ajax/libs/Iosevka/6.0.0/iosevka/iosevka.min.css');
/*
font-family: 'Iosevka Web', monospace;
ss08 — Pragmata Pro Style
----------------------------------------------------*/

:root{
  --paper:#FFFFFF;
  /* --ink:#141312; */
  --ink:#343536;
  --red:#343536; /* accent color = black, kept as an alias so existing rules below don't need renaming */
  /* --grey:#8A8579; */
  --grey: #252525;
  /* --line:#D9D4C8; */
  --line:#f3f3f3;
  --paper-raised:#FFFFFF;
  --nav-bg:#FFFFFF;
  --mono: "Pragmasevka", "JetBrains Mono", ui-monospace, Menlo, monospace;
  --sans: "neue-haas-grotesk-display", "Helvetica Neue", Helvetica, Arial, -apple-system, "Segoe UI", sans-serif;
  /* --nav-w: 300px; */
  --nav-w: 33.33333%;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:500;
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}

b, h1, h2, h3,
.entry-cta {
  word-spacing: 2px;
  font-kerning: auto;
  font-optical-sizing: auto;
  /* letter-spacing: -0.6px; */
  letter-spacing: -0.020em !important;
  transform: scaleY(1.05);
  line-height: 1.1em;
}

a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
::selection{background:var(--red);color:var(--paper);}

/* focus visibility */
a:focus-visible, button:focus-visible{
  outline:2px solid var(--red);
  outline-offset:2px;
}

/* ---------- layout shell ---------- */
.shell{
  display:flex;
  min-height:100vh;
}

/* ---------- sidebar / dossier index ---------- */
.nav{
  width:var(--nav-w);
  flex-shrink:0;
  background:var(--nav-bg);
  color:var(--ink);
  padding:0 1.75rem 2rem;
  position:sticky;
  top:0;
  height:100vh;
  overflow-y:auto;
  /* border-right:1px solid var(--line); */
  scrollbar-width:none;      /* Firefox */
  -ms-overflow-style:none;   /* old Edge/IE */
}
.nav::-webkit-scrollbar{
  display:none;              /* Chrome, Safari, newer Edge */
  width:0;
  height:0;
}

/* Marquee — homepage only. Lives inside the shared nav.html partial for
   every page, but stays display:none unless the current page is
   index.html (flagged via <body data-nav-current="index.html">). */
.nav-marquee{
  display:none;
  margin:0 -1.75rem 1.5rem;
  overflow:hidden;
  /* background:var(--ink); */
  /* border-bottom:2px solid var(--red); */
}
body[data-nav-current="index.html"] .nav-marquee{
  display:block;
}
.nav-marquee-track{
  display:flex;
  width:max-content;
  animation:nav-marquee-scroll 12s linear infinite;
}
.nav-marquee-track span{
    flex-shrink: 0;
    white-space: nowrap;
    padding: .55rem 2rem .55rem 0;
    font-weight: 900;
    font-size: 5.5em;
    color: #343536;
    font-family: 'neue-haas-grotesk-display';
}
@keyframes nav-marquee-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .nav-marquee-track{animation:none;}
}

.nav-brand{
  display:block;
  margin-top:2.25rem;
  /* font-family:var(--mono); */
  font-family:var(--sans);
  font-weight:900 !important;
  font-size:.95rem;
  /* letter-spacing:.06em; */
  letter-spacing: -0.02em;
  word-spacing: 2px;
  text-transform:uppercase;
  transform: scaleY(1.05);
  color:var(--ink);
  margin-bottom:.35rem;
}
.nav-tagline{
  font-family:var(--mono);
  font-size:.7rem;
  color:var(--red);
  letter-spacing:.04em;
  margin-bottom:2rem;
  display:block;
}
.nav-label{
  font-family:var(--mono);
  font-size:.65rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--grey);
  margin:0 0 .75rem;
  padding-bottom:.5rem;
  border-bottom:1px solid var(--line);
}
.nav-list{
  list-style:none;
  margin:0 0 1.75rem;
  padding:0;
}
.nav-list li{
  margin-bottom:.05rem;
}
.nav-list a{
  display:flex;
  /* gap:.6rem; */
  gap: 1em;
  font-family:var(--sans);
  font-weight:500;
  /* font-size:.82rem; */
  font-size: 1.1em;
  line-height:1.35;
  padding:.45rem .35rem;
  border-radius:2px;
  border-bottom: 1px solid var(--line);
  color:var(--ink);
  transition:background .15s, color .15s;
}
.nav-list a::before{
  content:">";
  /* font-family:var(--mono); */
  /* font-weight:700; */
  /* font-size:.78rem; */
  color:var(--red);
  flex-shrink:0;
  transition:content .1s;
}
.nav-list a:hover,
.nav-list a[aria-current="page"]{
  color:var(--ink);
  font-weight:900;
}
.nav-list a:hover::before,
.nav-list a[aria-current="page"]::before{
  content:">>>";
}

/* .nav-list a.nav-brand:hover::before, */
.nav-list a.nav-brand[aria-current="page"]::before{
  content:">" !important;
}

/* .nav-list a[aria-current="page"]{
  box-shadow:inset 3px 0 0 var(--ink);
} */
.nav-secondary{
  list-style:none;
  margin:0;
  padding:0;
  border-top:1px solid var(--line);
  padding-top:1rem;
}
.nav-secondary li{margin-bottom:.15rem;}
.nav-secondary a{
  display:flex;
  align-items:baseline;
  gap:.6rem;
  font-family:var(--mono);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  padding:.5rem .35rem;
  color:var(--ink);
  border-radius:2px;
}
.nav-secondary a::before{
  content:">";
  color:var(--red);
  font-weight:700;
  flex-shrink:0;
}
.nav-secondary a:hover,
.nav-secondary a[aria-current="page"]{
  color:var(--ink);
  font-weight:700;
}
.nav-secondary a:hover::before,
.nav-secondary a[aria-current="page"]::before{
  content:">>>";
}

/* mobile nav toggle */
.nav-toggle{
  display:none;
  position:fixed;
  top:.9rem;
  right:.9rem;
  z-index:50;
  width:44px;height:44px;
  background:var(--ink);
  color:var(--paper);
  border:1px solid var(--line);
  border-radius:2px;
  font-family:var(--mono);
  font-size:1.1rem;
  cursor:pointer;
}

/* ---------- main column ---------- */
.main{
  flex:1;
  min-width:0;
  padding:2.5rem 3rem 5rem;
  max-width:900px;
}

/* page header used on subpages */
.page-head{
  margin-bottom:2.5rem;
  padding-bottom:1.5rem;
  border-bottom:2px solid var(--ink);
}
.page-head h1{
  font-size:clamp(1.6rem, 3.4vw, 2.5rem);
  font-weight:900;
  line-height:1.15;
  margin:0 0 .75rem;
  max-width:38ch;
}
.meta-block{
  font-family:var(--sans);
  font-size:1.25rem !important;
  color:var(--grey);
  /* line-height:1.7; */
  white-space:pre-line;
}

/* ---------- dossier entry (homepage feed items) ---------- */
.entry{
  position:relative;
  margin:0 0 3.5rem;
  padding:0 0 3.5rem;
  border-bottom:1px solid var(--line);
}
.entry:last-child{border-bottom:none;}
.entry-tag{
  /* display:inline-flex; */
  display: none;
  align-items:center;
  gap:.4rem;
  font-family:var(--mono);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:#fff;
  background:var(--red);
  padding:.3rem .6rem;
  margin-bottom:1rem;
}
.entry-media{
  display:grid;
  gap:.4rem;
  margin-bottom:1.1rem;
}
.entry-media.cols-2{grid-template-columns:1fr 1fr;}
.entry-media img{
  width:100%;
  height:auto;
  border:1px solid var(--line);
  background:var(--paper-raised);
}
.entry-media a{display:block;}
.entry h2, .entry h3{
  font-size:calc(1.3rem + .6vw);
  font-weight:900;
  margin:0 0 .5rem;
  letter-spacing:-.01em;
}
.entry h2 a, .entry h3 a{border-bottom:1px solid transparent;}
.entry h2 a:hover, .entry h3 a:hover{border-color:var(--red);}
.entry .meta-block{margin-bottom:.85rem;}
.entry p{max-width:62ch;margin:0 0 .85rem;font-size:.95rem;}
.entry-cta{
  font-family:var(--sans);
  font-size:1.25rem;
  color:var(--red);
  font-weight:900;
  display:inline-block;
  /* border-bottom:1px solid var(--red); */
  margin-bottom: 1rem;
}
.entry-cta:hover{opacity:.7;}
.entry-note{
  background:var(--paper-raised);
  border-left:3px solid var(--red);
  padding:.9rem 1.1rem;
  font-size:.82rem;
  color:#4a463d;
  margin:1rem 0;
}
.funder-strip{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1.2rem;
  margin-top:1.2rem;
  padding-top:1.2rem;
  border-top:1px dashed var(--line);
}
.funder-strip img{max-height:46px;width:auto;filter:grayscale(1);opacity:.75;}
.funder-strip img:hover{opacity:1;filter:none;}

/* video embed */
.video-frame{
  position:relative;
  padding-top:56.25%;
  margin-bottom:1.1rem;
  border:1px solid var(--line);
  background:#000;
}
.video-frame iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;
}

/* gallery / masonry for artwork detail pages */
.gallery{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1.5rem;
  margin-bottom:2rem;
}
.gallery figure{
  margin:0;
  position:relative;
  border:1px solid var(--line);
  background:var(--paper-raised);
}
.gallery img{width:100%;height:100%;object-fit:cover;}
.gallery figcaption{
  position:absolute;
  /* top:.5rem; */
  right:.5rem;
  font-family:var(--mono);
  font-size:.75rem;
  /* background:var(--ink); */
  color:var(--ink);
  padding:.15rem .45rem;
}

/* exhibitions / publications list cards */
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:1.75rem 1.5rem;
}
.card{
  border:1px solid var(--line);
  background:var(--paper-raised);
  display:flex;
  flex-direction:column;
}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%;border-bottom:1px solid var(--line);}
.card-body{padding:1rem 1.1rem 1.2rem;}
.card-body h3{font-size:1rem;font-weight:700;margin:0 0 .4rem;line-height:1.3;}
.card-body p{
  font-family:var(--mono);
  font-size:.75rem;
  color:var(--grey);
  margin:0;
  line-height:1.55;
}

/* contact page */
.contact-block{
  margin-top:1rem;
}
.contact-email{
  display:inline-block;
  font-family:var(--mono);
  font-size:1.4rem;
  font-weight:700;
  border-bottom:2px solid var(--red);
  padding-bottom:.15rem;
}
.contact-email:hover{color:var(--red);}
.stamp{
  display:inline-block;
  margin-top:2.5rem;
  transform:rotate(-3deg);
  border:2px solid var(--red);
  color:var(--red);
  font-family:var(--mono);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding:.6rem .9rem;
}

/* legal pages */
.legal p{max-width:65ch;font-size:.92rem;}
.legal h2{font-size:1.05rem;margin-top:2rem;}

/* footer */
.site-footer{
  margin-top:3rem;
  padding-top:1.5rem;
  border-top:1px solid var(--line);
  display:flex;
  gap:1.5rem;
  flex-wrap:wrap;
  font-family:var(--mono);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--grey);
}
.site-footer a:hover{color:var(--red);}

/* ---------- responsive ---------- */
@media (max-width: 980px){
  .nav{
    position:fixed;
    left:0;top:0;
    transform:translateX(-100%);
    z-index:40;
    transition:transform .25s ease;
    width:min(84vw, 320px);
    box-shadow:2px 0 24px rgba(0,0,0,.25);
  }
  .nav.open{transform:translateX(0);}
  .nav-toggle{display:block;}
  .main{padding:4.5rem 1.25rem 4rem;max-width:100%;}
  .entry-media.cols-2{grid-template-columns:1fr;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .nav{transition:none;}
}
