/* The Instrument · Folly's restrained reading rhythm without a score.
   A single vertical document, generous white space, unsnapped horizontal
   gallery and a black image-viewing plane. Scoped to The Instrument only. */
html:has(.ins-room),
body:has(.ins-room){
  height:auto;
  min-height:100%;
  overflow-x:clip;
  overflow-y:auto;
  background:#eeede8;
}
.site-root:has(.ins-room){
  position:relative;
  inset:auto;
  width:100%;
  height:auto;
  min-height:100svh;
}
.room-view.ins-room{
  position:relative;
  inset:auto;
  display:block;
  min-height:100svh;
  height:auto;
  overflow:visible;
  background:#eeede8;
  color:#222922;
  animation:none!important;
  transform:none!important;
}
.ins-room .room-head{
  position:sticky;
  top:0;
  inset:auto;
  width:100%;
  height:54px;
  z-index:80;
  border-bottom:1px solid rgba(36,41,37,.14);
  background:rgba(238,237,232,.94);
  color:#232a24;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.ins-room .room-head > p,
.ins-room .room-back{
  color:rgba(36,41,37,.53);
}
.ins-room .room-head .language button{
  color:rgba(36,41,37,.4);
}
.ins-room .room-head .language button.is-active,
.ins-room .room-head .language button[aria-pressed="true"]{
  color:#202620;
}
.ins-room button{-webkit-tap-highlight-color:transparent;}
.ins-page{
  --ins-side:clamp(23px,6vw,100px);
  width:100%;
  padding-bottom:clamp(100px,16vh,235px);
  background:#eeede8;
}
.ins-page-title{
  padding:clamp(66px,10vh,118px) var(--ins-side) clamp(47px,7vh,84px);
}
.ins-page-title h1{
  margin:0;
  font:400 clamp(37px,4.3vw,65px)/1.2 var(--serif),serif;
  letter-spacing:.045em;
  color:#222922;
}
.ins-about{
  padding:clamp(44px,8vh,108px) var(--ins-side) clamp(100px,15vh,218px);
  border-top:1px solid rgba(31,38,31,.12);
}
.ins-about h2{
  margin:0 0 clamp(24px,3vw,40px);
  font:400 clamp(21px,1.8vw,28px)/1.5 var(--serif),serif;
  letter-spacing:.03em;
}
.ins-about > p{
  width:min(100%,730px);
  margin:0;
  font:400 clamp(15px,1.18vw,18px)/2.06 var(--serif),serif;
  letter-spacing:.015em;
  color:rgba(34,40,34,.84);
}
.ins-contents{
  margin-top:clamp(36px,5vw,68px);
  padding-top:9px;
  border-top:1px solid rgba(34,39,34,.16);
  max-width:660px;
}
.ins-contents ol{margin:0;padding:0;list-style:none;}
.ins-contents li{margin:0;border-bottom:1px solid rgba(34,39,34,.1);}
.ins-contents button{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:clamp(12px,1.8vw,26px);
  width:100%;
  padding:clamp(11px,1.3vw,18px) 0;
  border:0;
  background:none;
  color:#252c25;
  font:400 clamp(14px,1.1vw,17px)/1.75 var(--serif),serif;
  text-align:left;
  cursor:pointer;
}
.ins-contents button span{
  color:rgba(36,42,36,.59);
  font-size:.85em;
}
.ins-contents button:hover{color:#080d09;}
.ins-work{
  scroll-margin-top:90px;
  padding:0 0 clamp(50px,6vw,110px);
}
.ins-work + .ins-work{
  padding-top:clamp(115px,16vw,240px);
  border-top:1px solid rgba(28,36,29,.12);
}
.ins-work-title{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px 20px;
  padding:0 var(--ins-side) clamp(47px,5vw,82px);
}
.ins-work-title h2{
  margin:0;
  font:400 clamp(32px,3vw,49px)/1.5 var(--serif),serif;
  letter-spacing:.025em;
  color:#111713;
}
.ins-work-title > span{
  font:400 clamp(12px,.98vw,15px)/1.65 var(--serif),serif;
  color:rgba(32,40,34,.55);
  white-space:nowrap;
}
.ins-hero-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  gap:clamp(23px,3.8vw,64px);
  width:min(1210px,calc(100% - 2 * var(--ins-side)));
  margin:0 var(--ins-side);
}
.ins-hero{min-width:0;margin:0;}
.ins-hero-visual{
  display:grid;
  place-items:center;
  width:100%;
  min-width:0;
  height:auto;
  aspect-ratio:1.19 / 1;
  border:0;
  background:#e8e7e1;
  overflow:hidden;
}
.ins-hero-visual img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.ins-await{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:15px;
  width:100%;
  height:100%;
  border:1px solid rgba(31,38,30,.11);
  color:rgba(37,44,36,.62);
  font:400 clamp(14px,1.15vw,17px)/1.5 var(--serif),serif;
  text-align:center;
  box-sizing:border-box;
}
.ins-await small{
  color:rgba(37,44,36,.39);
  font:400 clamp(10px,.85vw,12px)/1.5 var(--serif),serif;
  letter-spacing:.03em;
}
.ins-hero figcaption{
  display:flex;
  justify-content:space-between;
  gap:15px;
  padding-top:clamp(11px,1.3vw,18px);
  font:400 clamp(12px,1.02vw,15px)/1.65 var(--serif),serif;
  color:rgba(33,39,33,.7);
}
.ins-hero figcaption span:first-child{
  font-size:clamp(19px,1.6vw,26px);
  color:#242a24;
}
.ins-work-progress{
  margin:clamp(23px,3vw,44px) var(--ins-side) 0;
  font:400 clamp(13px,1.05vw,16px)/1.9 var(--serif),serif;
  letter-spacing:.025em;
  color:rgba(31,39,32,.78);
}
.ins-gallery{
  margin-top:clamp(88px,11vw,165px);
}
.ins-gallery-heading{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
  padding:0 var(--ins-side) clamp(29px,3.3vw,53px);
}
.ins-gallery-heading h3{
  margin:0;
  font:400 clamp(20px,1.75vw,28px)/1.55 var(--serif),serif;
  color:#1f241f;
  letter-spacing:.035em;
}
.ins-gallery-heading p{
  margin:0;
  font:400 clamp(11px,.91vw,13px)/1.7 var(--serif),serif;
  color:rgba(37,43,37,.53);
}
.ins-gallery-rail{
  width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:none;
  scroll-behavior:auto;
  scrollbar-width:none;
  touch-action:pan-x pan-y;
  cursor:grab;
}
.ins-gallery-rail::-webkit-scrollbar{display:none;}
.ins-gallery-rail.is-dragging{cursor:grabbing;}
.ins-gallery-rail:focus-visible{
  outline:1px solid rgba(28,38,30,.27);
  outline-offset:-2px;
}
.ins-gallery-strip{
  display:flex;
  align-items:flex-start;
  width:max-content;
  min-width:100%;
  box-sizing:border-box;
  gap:clamp(24px,3vw,50px);
  margin:0;
  padding:12px var(--ins-side) 24px;
  list-style:none;
}
.ins-card{
  flex:0 0 auto;
  width:clamp(300px,51vw,730px);
  min-width:0;
  transition:transform .42s cubic-bezier(.2,.8,.2,1);
  transform-origin:center center;
}
.ins-card:hover{
  transform:translateY(-4px) scale(1.018);
}
.ins-gallery-rail.is-dragging .ins-card{
  transform:none;
}
.ins-card-button{
  display:block;
  width:100%;
  margin:0;
  padding:0;
  background:transparent;
  border:0;
  cursor:pointer;
  color:inherit;
  text-align:left;
}
.ins-card-image{
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden;
  width:100%;
  aspect-ratio:16 / 10;
  background:#e3e3dc;
}
.ins-card-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.ins-arrow{
  position:absolute;
  top:15px;
  right:18px;
  font:400 18px/1 var(--serif),serif;
  color:rgba(27,36,30,.65);
  opacity:0;
  transition:opacity .24s;
}
.ins-card-button:hover .ins-arrow,
.ins-card-button:focus-visible .ins-arrow{opacity:1;}
.ins-card-copy{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:18px;
  min-height:0;
  padding-top:clamp(10px,1.4vw,18px);
  color:#222922;
}
.ins-card-number{
  flex:none;
  white-space:nowrap;
  font:400 clamp(23px,1.9vw,29px)/1.18 var(--serif),serif;
}
.ins-card-number small{
  font:400 clamp(10px,.85vw,12px)/1.4 var(--serif),serif;
  color:rgba(36,42,36,.53);
}
.ins-card-name{
  font:400 clamp(12px,1vw,15px)/1.7 var(--serif),serif;
  text-align:right;
  color:rgba(34,39,34,.81);
}
.ins-gallery-navigation{
  width:calc(100% - 2 * var(--ins-side));
  height:27px;
  margin:clamp(18px,2.4vw,34px) var(--ins-side) 0;
}
.ins-gallery-navigation input{
  display:block;
  width:100%;
  height:21px;
  margin:0;
  padding:0;
  appearance:none;
  -webkit-appearance:none;
  background:transparent;
  cursor:ew-resize;
}
.ins-gallery-navigation input::-webkit-slider-runnable-track{
  height:1px;
  background:rgba(37,45,38,.25);
}
.ins-gallery-navigation input::-moz-range-track{
  height:1px;
  background:rgba(37,45,38,.25);
}
.ins-gallery-navigation input::-webkit-slider-thumb{
  width:18px;
  height:18px;
  margin-top:-8.5px;
  border:1px solid rgba(36,43,36,.8);
  border-radius:50%;
  background:#eeede8;
  appearance:none;
  -webkit-appearance:none;
}
.ins-gallery-navigation input::-moz-range-thumb{
  width:17px;
  height:17px;
  border:1px solid rgba(36,43,36,.8);
  border-radius:50%;
  background:#eeede8;
}
body.ins-modal-open{overflow:hidden!important;}
.ins-room .ins-viewer[hidden]{display:none!important;}
.ins-room .ins-viewer{
  position:fixed;
  z-index:1200;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(14px,3vw,38px);
  box-sizing:border-box;
  background:rgba(0,0,0,.965);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.ins-viewer-scrim{
  position:absolute;
  inset:0;
  padding:0;
  border:0;
  background:transparent;
  cursor:zoom-out;
}
.ins-viewer-stage{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  width:max-content;
  max-width:94vw;
  min-width:0;
  background:transparent;
}
.ins-viewer-image{
  display:block;
  width:auto;
  height:auto;
  max-width:92vw;
  max-height:75dvh;
  object-fit:contain;
  background:transparent;
}
.ins-viewer-copy{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:24px;
  min-width:0;
  margin-top:clamp(11px,1.5vw,20px);
  color:rgba(244,244,238,.92);
  font:400 clamp(23px,1.9vw,29px)/1.2 var(--serif),serif;
}
.ins-viewer-copy small{
  color:rgba(244,244,238,.52);
  font:400 clamp(10px,.9vw,12px)/1.4 var(--serif),serif;
}
.ins-viewer-copy [data-ins-name]{
  font:400 clamp(12px,1vw,15px)/1.6 var(--serif),serif;
  color:rgba(244,244,238,.78);
  text-align:right;
}
@media(max-width:700px){
  .ins-page{--ins-side:22px;}
  .ins-room .room-head{height:50px;}
  .ins-page-title{padding:clamp(48px,8vh,90px) 22px 40px;}
  .ins-page-title h1{font-size:clamp(30px,8vw,46px);}
  .ins-about{padding:58px 22px 105px;}
  .ins-about h2{font-size:21px;}
  .ins-about > p{font-size:14px;}
  .ins-contents button{gap:7px 12px;font-size:14px;}
  .ins-contents button span{font-size:11px;}
  .ins-work-title{padding-bottom:30px;}
  .ins-work-title h2{font-size:clamp(27px,6.7vw,39px);}
  .ins-work-title > span{font-size:12px;}
  .ins-hero-grid{grid-template-columns:minmax(0,1fr);gap:35px;}
  .ins-hero-visual{aspect-ratio:1.22 / 1;}
  .ins-hero figcaption span:first-child{font-size:23px;}
  .ins-work-progress{margin-top:24px;font-size:13px;}
  .ins-gallery{margin-top:93px;}
  .ins-gallery-heading h3{font-size:20px;}
  .ins-gallery-strip{gap:21px;padding-top:8px;}
  .ins-card{width:clamp(235px,81vw,490px);}
  .ins-card-image{aspect-ratio:1.28 / 1;}
  .ins-card:hover{transform:none;}
  .ins-card-number{font-size:23px;}
  .ins-card-name{font-size:12px;}
  .ins-viewer-copy{font-size:23px;}
}
@media(prefers-reduced-motion:reduce){
  .ins-card,.ins-arrow{transition:none!important;}
}

/* v47 · Ion Trap (2023): one image field, two visual states.
   The design plate and rendering exchange as a slow, 7-second Folly-style
   diptych; the original horizontal archive stays below, unsnapped. */
.ins-room .ins-hero-grid{
  display:block;
  width:min(1210px,calc(100% - 2 * var(--ins-side)));
  max-width:1210px;
  margin:0 var(--ins-side);
}
.ins-room .ins-hero-switch{
  display:block;
  position:relative;
  width:100%;
  min-width:0;
  margin:0;
  padding:0;
}
.ins-room .ins-hero-screen{
  display:block;
  position:relative;
  width:100%;
  height:clamp(350px,51vw,715px);
  min-height:0;
  aspect-ratio:auto;
  box-sizing:border-box;
  background:#e9e8e2;
  overflow:hidden;
  border:0;
}
.ins-room .ins-hero-face{
  position:absolute;
  display:flex;
  align-items:center;
  justify-content:center;
  inset:0;
  z-index:1;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 1.15s cubic-bezier(.2,.8,.2,1),visibility 0s 1.15s;
}
.ins-room .ins-hero-face.is-active{
  z-index:2;
  opacity:1;
  visibility:visible;
  transition:opacity 1.15s cubic-bezier(.2,.8,.2,1),visibility 0s;
}
.ins-room .ins-hero-face img{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  user-select:none;
  -webkit-user-drag:none;
}
.ins-room .ins-hero-meta{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:14px 28px;
  margin:0;
  padding:clamp(19px,2.2vw,30px) 0 0;
}
.ins-room .ins-hero-options{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:clamp(12px,2vw,26px);
  max-width:100%;
}
.ins-room .ins-hero-option{
  display:inline-flex;
  align-items:baseline;
  gap:clamp(7px,1vw,12px);
  margin:0;
  padding:0 0 4px;
  min-height:30px;
  width:auto;
  border:0;
  background:transparent;
  color:rgba(33,41,34,.51);
  cursor:pointer;
  font:400 clamp(13px,1.15vw,16px)/1.5 var(--serif),serif;
  transition:color .75s ease;
}
.ins-room .ins-hero-option span{
  display:inline-block;
  font-size:1em;
  transition:font-size .6s cubic-bezier(.2,.8,.2,1),opacity .6s ease;
}
.ins-room .ins-hero-option.is-active span{
  font-size:clamp(23px,2vw,29px);
  color:#242b24;
}
.ins-room .ins-hero-option small{
  color:rgba(35,42,34,.44);
  font:400 clamp(11px,.88vw,13px)/1.45 var(--serif),serif;
  letter-spacing:.025em;
}
.ins-room .ins-hero-option:hover span{color:#242b24;}
.ins-room .ins-hero-separator{
  color:rgba(35,41,35,.27);
  font:400 clamp(11px,1vw,14px)/1.5 var(--serif),serif;
  transform:translateY(-1px);
}
.ins-room .ins-hero-project{
  display:block;
  color:rgba(34,39,34,.47);
  font:400 clamp(11px,.92vw,13px)/1.6 var(--serif),serif;
  letter-spacing:.055em;
  white-space:nowrap;
}
.ins-room .ins-work-progress{
  margin-top:clamp(28px,3.5vw,52px);
}
.ins-room .ins-gallery{
  margin-top:clamp(85px,10.8vw,156px);
}
@media(max-width:700px){
  .ins-room .ins-hero-screen{
    height:clamp(300px,94vw,530px);
  }
  .ins-room .ins-hero-meta{
    padding-top:18px;
    align-items:baseline;
    gap:10px 20px;
  }
  .ins-room .ins-hero-options{
    gap:9px 15px;
  }
  .ins-room .ins-hero-option.is-active span{
    font-size:23px;
  }
  .ins-room .ins-hero-option small{
    font-size:10px;
  }
  .ins-room .ins-hero-project{
    font-size:11px;
  }
}
@media(prefers-reduced-motion:reduce){
  .ins-room .ins-hero-face,
  .ins-room .ins-hero-option,
  .ins-room .ins-hero-option span{
    transition:none!important;
  }
}


/* v48 · The Instrument uses Folly's two full reading chapters, no Score.
   Shared key measures: section left inset 6vw / 100px, image ~1.5 ×
   Folly picture card, moving-image card clamp(216px,30.6vw,459px).
   Folly's alignment determines the layout; all Instrument selectors scoped. */
.ins-room .ins-work.ins-reading-page{
  position:relative;
  margin:0;
  padding:clamp(45px,6vw,92px) 0 clamp(100px,12vw,175px);
  border:0;
  background:#eeede8;
  isolation:isolate;
  scroll-margin-top:54px;
}
.ins-room .ins-work.ins-reading-page + .ins-work.ins-reading-page{
  padding-top:clamp(58px,7vw,105px);
  border-top:0;
}
.ins-room .ins-work-title{
  padding:0 var(--ins-side) clamp(29px,4.4vw,65px);
  align-items:baseline;
}
.ins-room .ins-work-title h2{
  font:400 clamp(33px,3.7vw,60px)/1.35 var(--serif),serif;
  color:#111512;
  letter-spacing:.022em;
}
.ins-room .ins-work-title > span{
  font:400 clamp(13px,1.1vw,17px)/1.6 var(--serif),serif;
  color:rgba(28,35,29,.84);
}
.ins-room .ins-reading-content{
  display:block;
  width:100%;
}
.ins-room .ins-design-section{
  display:block;
  width:100%;
  padding:0;
}
.ins-room .ins-hero-grid{
  display:block;
  width:min(clamp(360px,51vw,765px),calc(100% - 2 * var(--ins-side)));
  max-width:none;
  margin:0 var(--ins-side);
}
.ins-room .ins-hero-screen{
  height:auto;
  min-height:0;
  aspect-ratio:16/10;
  background:rgba(226,225,219,.55);
}
.ins-room .ins-hero-meta{
  padding:clamp(12px,1.7vw,24px) 0 0;
}
.ins-room .ins-hero-project{
  opacity:.68;
}
.ins-room .ins-reading-copy{
  width:min(850px,calc(100% - 2 * var(--ins-side)));
  max-width:850px;
  margin:0 var(--ins-side);
  padding:0;
  font:400 clamp(14px,1.16vw,17px)/2.12 var(--serif),serif;
  color:rgba(44,49,44,.74);
  letter-spacing:.012em;
  text-align:left;
}
.ins-room .ins-work-intro{
  max-width:770px;
  margin:clamp(58px,7.7vw,112px) var(--ins-side) 0;
}
.ins-room .ins-work-progress{
  margin:clamp(16px,1.8vw,27px) var(--ins-side) 0;
  font:400 clamp(12px,1vw,15px)/1.75 var(--serif),serif;
  color:rgba(37,45,37,.57);
  letter-spacing:.025em;
}
.ins-room .ins-section-heading{
  margin:0 0 clamp(22px,2.8vw,37px);
  padding:0 var(--ins-side);
}
.ins-room .ins-section-heading h3,
.ins-room .ins-gallery-heading h3{
  margin:0;
  font:400 clamp(20px,1.75vw,28px)/1.55 var(--serif),serif;
  letter-spacing:.035em;
  color:#1f241f;
}
.ins-room .ins-film-section{
  margin-top:clamp(67px,9vw,132px);
  padding:0;
}
.ins-room .ins-film-layout{
  display:block;
  width:100%;
  padding:0 var(--ins-side);
  box-sizing:border-box;
}
.ins-room .ins-video-card{
  position:relative;
  width:clamp(216px,30.6vw,459px);
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  margin:0;
  --ins-video-aspect:16/9;
}
.ins-room .ins-video-open{
  display:block;
  width:100%;
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  color:inherit;
  cursor:pointer;
  text-align:left;
}
.ins-room .ins-video-screen{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:var(--ins-video-aspect);
  overflow:hidden;
  background:#050505;
  isolation:isolate;
  box-shadow:none;
  border:0;
  transition:transform .45s cubic-bezier(.18,.8,.22,1);
}
.ins-room .ins-video-open:hover .ins-video-screen{
  transform:scale(1.025);
}
.ins-room .ins-video-still,
.ins-room .ins-video-preview{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  background:transparent;
  object-fit:contain;
  pointer-events:none;
}
.ins-room .ins-video-still{
  z-index:1;
  opacity:0;
  transition:opacity .36s ease;
}
.ins-room .ins-video-card.has-still .ins-video-still{
  opacity:1;
}
.ins-room .ins-video-preview{
  z-index:2;
  opacity:0;
  transition:opacity .45s ease;
}
.ins-room .ins-video-card.is-previewing .ins-video-preview{
  opacity:1;
}
.ins-room .ins-video-open-mark{
  position:absolute;
  top:14px;right:17px;
  z-index:4;
  font:400 18px/1 var(--serif),serif;
  color:rgba(245,245,238,.88);
  opacity:0;
  transition:opacity .3s ease;
  pointer-events:none;
}
.ins-room .ins-video-card:hover .ins-video-open-mark,
.ins-room .ins-video-open:focus-visible .ins-video-open-mark{
  opacity:1;
}
.ins-room .ins-video-caption{
  display:flex;
  width:100%;
  align-items:baseline;
  justify-content:space-between;
  gap:clamp(12px,1.6vw,25px);
  margin:clamp(9px,1.3vw,17px) 0 0;
  padding:0;
  color:#222821;
}
.ins-room .ins-video-number{
  flex:none;
  font:400 clamp(23px,1.9vw,29px)/1.18 var(--serif),serif;
  color:#242b25;
  white-space:nowrap;
}
.ins-room .ins-video-number small{
  font:400 clamp(10px,.86vw,12px)/1.4 var(--serif),serif;
  color:rgba(39,45,39,.54);
}
.ins-room .ins-video-name{
  font:400 clamp(12px,1.02vw,15px)/1.6 var(--serif),serif;
  letter-spacing:.02em;
  color:rgba(31,37,31,.84);
  text-align:right;
}
.ins-room .ins-film-copy{
  margin-top:clamp(21px,2.4vw,33px);
}
.ins-room .ins-gallery{
  margin-top:clamp(78px,9vw,132px);
}
.ins-room .ins-gallery-heading{
  padding:0 var(--ins-side) 0;
  gap:10px;
}
.ins-room .ins-gallery-intro{
  margin-top:clamp(14px,2vw,25px);
  margin-bottom:clamp(34px,4vw,58px);
}
.ins-room .ins-gallery-strip{
  padding-left:var(--ins-side);
  gap:clamp(13px,2.7vw,46px);
}
.ins-room .ins-card{
  width:clamp(216px,30.6vw,459px);
}
.ins-room .ins-card-image{
  aspect-ratio:16/10;
}
.ins-room .ins-page-turn{
  position:relative;
  padding:clamp(60px,10vw,165px) var(--ins-side) clamp(55px,8vw,140px);
  background:linear-gradient(180deg,#eeede8 0%,#e2e1dc 60%,#eeede8 100%);
  border-top:1px solid rgba(35,42,35,.11);
  border-bottom:1px solid rgba(35,42,35,.11);
}
.ins-room .ins-turn-link{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:clamp(13px,2.2vw,30px);
  width:100%;
  max-width:940px;
  margin:0 auto;
  padding:0;
  border:0;
  background:transparent;
  color:#242b25;
  font:400 clamp(14px,1vw,16px)/1.7 var(--serif),serif;
  text-align:left;
  cursor:pointer;
}
.ins-room .ins-turn-line{
  flex:1 1 100%;
  display:block;
  height:1px;
  background:rgba(37,44,38,.27);
  margin:0 0 clamp(17px,2vw,28px);
}
.ins-room .ins-turn-small{
  color:rgba(39,45,40,.5);
  font-size:clamp(11px,.85vw,13px);
}
.ins-room .ins-turn-name{
  font:400 clamp(21px,2.1vw,30px)/1.5 var(--serif),serif;
  color:#222922;
}
.ins-room .ins-turn-arrow{
  margin-left:auto;
  color:rgba(37,44,38,.5);
  font-size:18px;
  transition:transform .3s ease;
}
.ins-room .ins-turn-link:hover .ins-turn-arrow{
  transform:translateY(5px);
}
/* The photo viewer is unchanged; the film uses Folly's v38 minimal screen. */
.ins-room .ins-viewer-film{
  display:none;
}
.ins-room .ins-viewer.is-video .ins-viewer-image{
  display:none!important;
}
.ins-room .ins-viewer.is-video .ins-viewer-stage{
  display:flex;
  flex-direction:column;
  width:min(92vw,1460px,calc((100dvh - 142px) * var(--ins-film-ratio,1.777778)));
  max-width:92vw;
  max-height:calc(100dvh - 20px);
  margin:auto;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.ins-room .ins-viewer.is-video .ins-viewer-film{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:var(--ins-film-ratio,1.777778);
  min-height:0;
  max-height:calc(100dvh - 105px);
  object-fit:contain;
  background:transparent;
  border:0;
  cursor:pointer;
}
.ins-room .ins-viewer.is-video .ins-viewer-copy{
  margin-top:clamp(10px,1.6vw,19px);
}
@media(max-width:700px){
  .ins-room .ins-work.ins-reading-page{
    padding:46px 0 95px;
  }
  .ins-room .ins-hero-grid{
    width:calc(100% - 2 * var(--ins-side));
  }
  .ins-room .ins-hero-screen{
    aspect-ratio:1.27/1;
  }
  .ins-room .ins-work-title h2{
    font-size:clamp(27px,6.7vw,39px);
  }
  .ins-room .ins-reading-copy{
    font-size:13px;
    line-height:2.05;
  }
  .ins-room .ins-work-intro{
    margin-top:36px;
  }
  .ins-room .ins-film-section{
    margin-top:clamp(67px,15vw,112px);
  }
  .ins-room .ins-video-card,
  .ins-room .ins-card{
    width:clamp(211.5px,68.4vw,324px);
  }
  .ins-room .ins-video-name{
    font-size:12px;
  }
  .ins-room .ins-gallery{
    margin-top:clamp(71px,17vw,103px);
  }
  .ins-room .ins-gallery-strip{
    gap:20px;
  }
  .ins-room .ins-page-turn{
    padding:74px var(--ins-side) 65px;
  }
  .ins-room .ins-viewer.is-video .ins-viewer-stage{
    width:min(95vw,calc((100dvh - 106px) * var(--ins-film-ratio,1.777778)));
    max-width:95vw;
  }
}
@media(prefers-reduced-motion:reduce){
  .ins-room .ins-video-screen,
  .ins-room .ins-video-still,
  .ins-room .ins-video-preview,
  .ins-room .ins-turn-arrow{
    transition:none!important;
  }
}


/* v50 · The Instrument, source-edited artist statements (2026-10-26).
   Reading hierarchy: series argument, each work's exact research TYPE,
   one image-led conceptual description, then small unobtrusive image notes.
   No scientific results, formulae or unsupported empirical claims. */
.ins-room .ins-series-statement{
  display:block;
  width:min(100%,795px);
  max-width:795px;
}
.ins-room .ins-series-statement p{
  width:100%;
  margin:0;
  padding:0;
  color:rgba(33,40,34,.85);
  font:400 clamp(15px,1.18vw,18px)/2.06 var(--serif),serif;
  letter-spacing:.012em;
  text-wrap:pretty;
}
.ins-room .ins-series-statement p + p{
  margin-top:clamp(17px,2.5vw,31px);
}
.ins-room .ins-work-title{
  padding-bottom:clamp(9px,1.5vw,20px);
}
.ins-room .ins-work-kind{
  display:block;
  width:calc(100% - 2 * var(--ins-side));
  max-width:880px;
  margin:0 var(--ins-side) clamp(33px,4.8vw,69px);
  padding:0;
  color:rgba(39,46,39,.55);
  font:400 clamp(12px,1vw,15px)/1.8 var(--serif),serif;
  letter-spacing:.028em;
  overflow-wrap:anywhere;
}
.ins-room .ins-card-note{
  display:block;
  margin-top:clamp(10px,1.4vw,18px);
  padding:0;
  width:100%;
  min-height:2.9em;
  max-width:100%;
  color:rgba(40,46,40,.55);
  font:400 clamp(11px,.9vw,13px)/1.72 var(--serif),serif;
  letter-spacing:.005em;
  text-align:left;
  text-wrap:pretty;
}
.ins-room .ins-card-button:hover .ins-card-note,
.ins-room .ins-card-button:focus-visible .ins-card-note{
  color:rgba(29,38,31,.76);
  transition:color .25s ease;
}
@media(max-width:700px){
  .ins-room .ins-series-statement p{
    font-size:14px;
    line-height:2.06;
  }
  .ins-room .ins-series-statement p+p{
    margin-top:21px;
  }
  .ins-room .ins-work-title{
    padding-bottom:11px;
  }
  .ins-room .ins-work-kind{
    margin-bottom:34px;
    font-size:11px;
    line-height:1.8;
  }
  .ins-room .ins-card-note{
    min-height:3.2em;
    margin-top:10px;
    font-size:11px;
    line-height:1.7;
  }
}


/* v52 · A real JPEG poster for the 25MB Klein Bottle Ship film.
   No canvas seeking or full video download until the visitor interacts. */
.ins-room .ins-video-screen{
  position:relative;
}
.ins-room .ins-video-poster{
  position:absolute;
  inset:0;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  user-select:none;
  -webkit-user-drag:none;
  pointer-events:none;
  background:transparent;
}
.ins-room .ins-video-poster[hidden]{display:none!important;}
.ins-room .ins-video-still{
  z-index:1;
}
.ins-room .ins-video-preview{
  z-index:2;
}
.ins-room .ins-video-card.is-previewing .ins-video-poster{
  opacity:0;
}
.ins-room .ins-arrow,
.ins-room .ins-video-open-mark,
.ins-room .ins-turn-arrow{
  font-family:Georgia,"Times New Roman",serif;
  font-variant-emoji:text;
}
.ins-room .ins-arrow,
.ins-room .ins-video-open-mark{
  font-size:0!important;
  line-height:0!important;
  width:18px;
  height:18px;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19 19 5M9 5h10v10' stroke='%23f9f9ef' stroke-width='1.8' fill='none' stroke-linecap='square'/%3E%3C/svg%3E");
}
.ins-room .ins-arrow{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19 19 5M9 5h10v10' stroke='%23363834' stroke-width='1.8' fill='none' stroke-linecap='square'/%3E%3C/svg%3E");
}


/* v60 · Remove inherited grey artwork mats from the instrument. */
/* Background artwork is allowed to retain its own actual pixel colours.
   These overrides remove only the artificial grey CSS stages. */
.ins-room .ins-hero-screen,
.ins-room .ins-hero-visual,
.ins-room .ins-hero-face,
.ins-room .ins-card-image,
.ins-room .ins-card-button,
.ins-room .ins-hero-switch {
  background: transparent !important;
  background-color: transparent !important;
  border: 0;
  box-shadow: none;
}
.ins-room .ins-hero-screen::before,
.ins-room .ins-hero-screen::after,
.ins-room .ins-card-image::before,
.ins-room .ins-card-image::after {
  background: none !important;
  box-shadow: none !important;
}
/* The former bordered pending-image tile is also unframed. */
.ins-room .ins-await {
  border: 0;
  background: transparent;
}
