/* Shared exhibition controls; the same display type and room language as the entrance. */
:root {
  --display:'Bricolage Grotesque','Archivo',Arial,sans-serif;
  --content-max:1520px;
  --header-height:4.75rem;
}

/* Consistent controls on exhibition chapters, case studies and article readers. */
.reader-breadcrumb{font-size:.8125rem;gap:12px;align-items:center;flex-wrap:wrap}
.reader-breadcrumb a,.reader-end a{display:inline-flex;align-items:center;min-height:44px}
.reader-end a{font-size:.8125rem;line-height:1.5;text-underline-offset:5px}
.reader-end a:hover{color:var(--accent)}
a,button,summary,input,select{touch-action:manipulation}
:where(a,button,summary,input,select):focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.button{gap:12px;text-align:center;white-space:normal}
.gallery-toolbar .text-button,.social-links a,.social-links .text-button{min-width:44px}
.reader-source-notes summary,.reader-saved summary{min-height:52px;align-items:center}

.section-shell {
  max-width:var(--content-max)
}

html {
  scroll-padding-top:calc(var(--header-height) + 24px)
}

.site-header {
  height:var(--header-height);
  padding:10px max(var(--gutter),calc((100% - var(--content-max))/2 + var(--gutter)));
  gap:24px;
  border-bottom-color:#b697ff13;
  background:#07070aed;
}

.wordmark {
  min-width:0;
  overflow-wrap:anywhere;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:44px;
  font-weight:500;
  letter-spacing:-.025em;
}

.wordmark>span {
  font-size:.875rem;
  margin-top:4px
}

.site-header #main-nav {
  gap:4px;
  align-items:center
}

.site-header #main-nav a {
  padding:10px 12px;
  min-height:44px;
  font-size:.875rem;
  line-height:1.4;
  border-radius:6px;
  text-decoration:none;
  transition:color .2s,background .2s;
}

.site-header #main-nav a:hover {
  background:#b697ff07
}

.site-header #main-nav a[aria-current] {
  background:#b697ff0c;
  color:var(--ink)
}

.nav-caption {
  position:relative
}

.site-header #main-nav a[aria-current] .nav-caption:after {
  content:'';
  position:absolute;
  height:1px;
  background:var(--accent);
  bottom:-6px;
  left:0;
  right:0;
  box-shadow:0 0 7px #b697ff35;
}

.site-header .nav-note,.site-header #main-nav .nav-contact {
    flex-shrink:0;
  display:none
}

.site-header .header-contact {
  padding:9px 18px;
  min-height:44px;
  font-size:.875rem;
  font-weight:500;
  border:1px solid #b697ff33;
  border-radius:6px;
  white-space:nowrap;
}

.site-header .header-contact:hover {
  transform:none
}

.room-symbol {
  display:inline-flex;
  gap:3px;
  align-items:flex-end;
  width:23px;
  height:19px;
  flex-shrink:0;
  color:var(--accent);
}

.room-symbol i {
  display:block;
  width:6px;
  height:17px;
  border:1px solid currentColor;
  border-radius:5px 5px 0 0;
}

.room-symbol i:nth-child(2) {
  height:19px
}

.room-return {
  display:inline-flex;
  gap:10px;
  align-items:center;
  justify-content:center;
  padding:9px 14px;
  min-height:44px;
  border:1px solid #b697ff29;
  border-radius:6px;
  color:var(--ink);
  font-size:.875rem;
  line-height:1.3;
  white-space:nowrap;
  transition:background .25s,border-color .25s;
}

.room-return:hover {
  background:#b697ff08;
  border-color:#b697ff66
}

.exhibition-toolbar {
  align-items:center;
  padding-block:22px 0;
  font-size:.875rem;
}

.exhibition-toolbar p {
  padding:0;
  max-width:none;
  line-height:1.4
}

.exhibition-toolbar a {
  max-width:none
}

/* Native first-load fragment scrolling must leave the room navigation visible. */
.exhibition-ready #work,.exhibition-ready #approach,.exhibition-ready #about {
  scroll-margin-top:66px
}

.exhibition-ready[data-exhibition=work] .work, .exhibition-ready[data-exhibition=thinking] .approach, .exhibition-ready[data-exhibition=person] .about {
  padding-top:26px
}

.section-shell h2 {
  font-weight:500;
  letter-spacing:-.035em
}

.work h2 {
  font-size:clamp(2.125rem,3.8vw,3.5rem);
  max-width:none
}

.work .section-heading {
  gap:24px;
  margin-bottom:28px;
  align-items:end
}

.gallery-intro {
  max-width:280px;
  font-size:.9375rem;
  line-height:1.5
}

.gallery-intro .text-link {
  margin-top:7px
}

.studio-heading {
  margin-bottom:28px
}

.ne-lobby {
  --entrance-display:var(--display);
  min-height:calc(100svh - var(--header-height));
}

.exhibition-flash {
  inset:var(--header-height) 0 0
}

.scroll-progress {
  height:1px;
  opacity:.4
}

@media(max-width:1100px) and (min-width:901px) {
  .site-header {
    gap:16px
  }
  .site-header #main-nav a {
    padding-inline:9px
  }
  .wordmark>span {
    display:none
  }
}

@media(max-width:900px) {
  :root {
    --header-height:4rem
  }
  .site-header {
    height:var(--header-height);
    gap:16px;
    padding-block:10px
  }
  .wordmark {
    font-size:1.0625rem
  }
  .wordmark>span {
    display:none
  }
  .site-header .header-contact {
    display:none
  }
  .site-header .menu-toggle {
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:9px 13px;
    min-width:0;
    min-height:44px;
    font-size:.875rem;
    border:1px solid #b697ff29;
    border-radius:6px;
    background:#b697ff04;
    transition:background .25s,border-color .25s;
  }
  .site-header .menu-toggle:hover,.site-header .menu-toggle[aria-expanded=true] {
    background:#b697ff0b;
    border-color:#b697ff58;
  }
  .site-header #main-nav {
    display:none;
    position:absolute;
    top:var(--header-height);
    left:0;
    right:0;
    gap:0;
    padding:16px var(--gutter) 22px;
    background:#0d0a12fa;
    backdrop-filter:blur(20px);
    border-bottom:1px solid #b697ff29;
    box-shadow:0 25px 40px #0005;
    max-height:calc(100svh - var(--header-height));
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .site-header #main-nav.is-open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    animation:room-menu-arrive .22s ease both
  }
  .site-header #main-nav .nav-room {
    flex-shrink:0;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:5px;
    padding:14px 16px;
    border-radius:4px;
    border-left:2px solid transparent;
    min-height:78px;
  }
  .site-header #main-nav .nav-caption {
    font:500 1.375rem/1.2 var(--display);
    letter-spacing:-.02em;
  }
  .site-header #main-nav .nav-note {
    display:block;
    color:var(--muted);
    font-size:.875rem;
    line-height:1.4
  }
  .site-header #main-nav a[aria-current] {
    border-left-color:var(--accent);
    background:#b697ff09
  }
  .site-header #main-nav a[aria-current] .nav-caption:after {
    display:none
  }
  .site-header #main-nav .nav-contact {
    flex-shrink:0;
    display:flex;
    justify-content:center;
    margin:14px 0 0;
    padding:12px 20px;
    color:var(--ink);
    font-weight:500;
  }
  .site-header #main-nav .nav-contact:hover {
    background:#793bd8;
    transform:none
  }
  .exhibition-ready[data-exhibition=entrance] .site-header {
    height:var(--header-height);
    min-height:var(--header-height);
  }
  .exhibition-ready[data-exhibition=entrance] .wordmark>span {
    display:none
  }
  .exhibition-ready[data-exhibition=entrance] .header-contact {
    display:flex
  }
  html:not(.js-ready) .site-header {
    height:auto;
    flex-wrap:wrap
  }
  html:not(.js-ready) .site-header #main-nav {
    display:flex;
    position:static;
    flex-direction:row;
    flex-wrap:wrap;
    order:3;
    width:100%;
    padding:0;
    max-height:none;
    background:transparent;
    border:0;
    box-shadow:none;
  }
  html:not(.js-ready) .site-header #main-nav .nav-room {
    min-height:44px;
    padding:10px 12px
  }
  html:not(.js-ready) .site-header #main-nav .nav-caption {
    font:500 .875rem/1.4 var(--sans)
  }
  html:not(.js-ready) .site-header #main-nav .nav-note {
    display:none
  }
}

@media(max-width:600px) {
  .exhibition-toolbar {
    padding-block:16px 0;
    gap:16px
  }
  .exhibition-toolbar p {
    padding:0;
    max-width:none
  }
  .room-return {
    padding:9px 12px;
    gap:8px
  }
  .exhibition-ready[data-exhibition=work] .work,   .exhibition-ready[data-exhibition=thinking] .approach,   .exhibition-ready[data-exhibition=person] .about {
    padding-top:20px
  }
  .work h2 {
    font-size:2.125rem;
    line-height:1.12;
    max-width:none
  }
  .work .section-heading {
    margin-bottom:24px
  }
  .gallery-intro {
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:4px 16px;
    align-items:center;
    margin-top:12px;
    max-width:none;
    font-size:.875rem;
  }
  .gallery-intro .text-link {
    margin:0;
    min-height:44px
  }
  .studio-heading h2 {
    font-size:2.125rem
  }
  .studio-heading {
    margin-bottom:24px
  }
}

@keyframes room-menu-arrive {
  from {
    opacity:0;
    transform:translateY(-5px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}

@media(prefers-reduced-motion:reduce) {
  .site-header *,.room-return {
    animation:none!important;
    transition:none!important
  }
}

@media(forced-colors:active) {
  .room-return,.site-header .menu-toggle,.room-symbol i {
    border-color:CanvasText
  }
  .site-header #main-nav a[aria-current] {
    outline:1px solid Highlight
  }
}

/* Shared refinement tokens and controls, also loaded by native exhibit readers. */
:root {
  --content-max:1440px;
  --radius:8px;
  --control-height:46px;
  --space:clamp(56px,6vw,88px);
  --section-title:clamp(2.125rem,4vw,3.75rem)
}

h1,h2,h3,h4 {
  font-weight:500;
  letter-spacing:-.035em;
  text-wrap:balance
}

.section-shell h2 {
  font-size:var(--section-title);
  line-height:1.1
}

.eyebrow {
  font-size:.8125rem;
  line-height:1.5;
  letter-spacing:.025em;
  margin-bottom:12px
}

.section-heading {
  gap:32px;
  align-items:end;
  margin-bottom:32px
}

.section-heading>p {
  font-size:1rem;
  max-width:28ch;
  line-height:1.6
}

.section-heading>p br {
  display:none
}

.button,.button-light {
  min-height:var(--control-height);
  padding:11px 22px;
  border-radius:var(--radius);
  font-size:.9375rem;
  font-weight:500;
  line-height:1.5
}

.button-light {
  background:#7135d0;
  border-color:#b697ff38;
  color:var(--ink);
  box-shadow:inset 0 1px 0 #ffffff12
}

.button-light:hover {
  background:#8344df;
  transform:none;
  box-shadow:0 0 24px #7135d02b
}

.button-outline {
  border-color:var(--line);
  background:transparent;
  color:var(--ink)
}

.button-outline:hover {
  border-color:var(--accent);
  background:var(--surface);
  color:var(--ink)
}

.text-link,.text-button {
  font-size:.9375rem;
  min-height:44px;
  text-underline-offset:5px;
  text-decoration-color:#aaa6b760
}

.text-link:hover,.text-button:hover {
  text-decoration-color:var(--accent);
  color:var(--ink)
}

.disclosure-mark {
  width:20px;
  text-align:center;
  flex:none;
  font-size:1.25rem;
  color:var(--accent);
  font-weight:400
}

details>summary {
  list-style:none;
  cursor:pointer
}

details>summary::-webkit-details-marker {
  display:none
}

details[open]>summary .disclosure-mark {
  transform:rotate(45deg)
}

input,select {
  border-radius:var(--radius)
}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:5px
}

.site-header,.reader-page .site-header.reader-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:var(--header-height);
  min-height:var(--header-height);
  padding:10px max(var(--gutter),calc((100% - var(--content-max))/2 + var(--gutter)));
  gap:24px;
  border-bottom:1px solid #b697ff18;
  background:#07070a
}

.wordmark {
  white-space:normal
}

.wordmark>span {
  font-size:.8125rem;
  margin-top:3px;
  color:var(--muted)
}

.site-header #main-nav {
  width:auto
}

.site-header #main-nav a {
  border-radius:var(--radius)
}

.site-header .header-contact {
  min-height:44px
}

.menu-symbol {
  display:flex;
  flex-direction:column;
  gap:5px;
  width:18px
}

.menu-symbol i {
  height:1px;
  width:100%;
  background:currentColor;
  transition:transform .2s
}

.menu-toggle[aria-expanded=true] .menu-symbol i:first-child {
  transform:translateY(3px) rotate(45deg)
}

.menu-toggle[aria-expanded=true] .menu-symbol i:last-child {
  transform:translateY(-3px) rotate(-45deg)
}

.exhibition-toolbar {
  flex-wrap:wrap;
  padding-block:16px 0;
  font-size:.8125rem
}

.room-return {
  min-height:44px;
  padding:7px 0;
  font-size:.8125rem;
  border:0;
  border-radius:0;
  color:var(--muted);
  background:none
}

.room-return:hover {
  color:var(--ink);
  background:none
}

.exhibition-ready[data-exhibition=work] .work,.exhibition-ready[data-exhibition=thinking] .approach,.exhibition-ready[data-exhibition=person] .about {
  padding-top:20px
}

@media(max-width:900px) {
  .site-header,.reader-page .site-header.reader-header {
    gap:16px;
    padding-block:10px
  }
  .site-header .menu-toggle {
    border-radius:var(--radius);
    background:transparent;
    color:var(--ink)
  }
  .site-header #main-nav {
    width:100%;
    background:#0e0c13;
    backdrop-filter:none;
    box-shadow:0 24px 48px #000b;
    padding-top:12px
  }
  .site-header #main-nav .nav-room {
    min-height:76px;
    border-radius:var(--radius)
  }
  .site-header #main-nav .nav-note {
    font-size:.8125rem
  }
  .site-header #main-nav .nav-contact {
    flex-shrink:0;
    background:#7135d0
  }
}

@media(max-width:600px) {
  .section-heading {
    display:block;
    margin-bottom:24px
  }
  .section-heading>p {
    margin-top:14px;
    max-width:34ch;
    font-size:.9375rem
  }
  .exhibition-toolbar {
    padding-block:10px 0
  }
  .exhibition-ready[data-exhibition=work] .work,.exhibition-ready[data-exhibition=thinking] .approach,.exhibition-ready[data-exhibition=person] .about {
    padding-top:14px
  }
  .section-shell h2 {
    font-size:2.125rem;
    max-width:none
  }
}
