/* Folly · tableaux, not a film player. A narrow photographic archive with
   magnetic centring; projected film and notation exist only on selection. */
.fc-room {
  --fc-bg:#ebeae5;
  --fc-ink:#242925;
  --fc-haze:rgba(36,41,37,.52);
  --fc-hair:rgba(36,41,37,.16);
  --fc-card-width:clamp(224px,25vw,390px);
  --fc-card-height:clamp(230px,27vw,360px);
  background:var(--fc-bg);
  color:var(--fc-ink);
}
.fc-room .room-head {
  background:rgba(239,238,233,.93);
  color:var(--fc-ink);
  border-bottom:1px solid var(--fc-hair);
  backdrop-filter:blur(14px);
}
.fc-room .room-head > p,.fc-room .room-back { color:var(--fc-haze); }
.fc-room .room-head .language button { color:rgba(36,41,37,.38); }
.fc-room .room-head .language button.is-active,
.fc-room .room-head .language button[aria-pressed="true"] { color:var(--fc-ink); }
.fc-room button { -webkit-tap-highlight-color:transparent; }
.fc-rail { cursor:grab; }
.fc-page { position:absolute; inset:54px 0 0; display:grid; grid-template-rows:auto minmax(0,1fr) auto; overflow:hidden; isolation:isolate; }
.fc-page-heading {
  min-height:155px;
  padding:clamp(19px,3vw,41px) clamp(20px,5vw,80px) 28px;
  display:grid;
  grid-template-columns:minmax(160px,1.05fr) minmax(210px,1fr) auto;
  gap:clamp(17px,4vw,65px);
  align-items:end;
  border-bottom:1px solid var(--fc-hair);
}
.fc-heading-primary p {
  margin:0 0 13px;
  font:9px/1.5 var(--sans),sans-serif;
  letter-spacing:.16em;
  color:var(--fc-haze);
}
.fc-heading-primary h1 {
  margin:0;
  font:400 clamp(25px,3vw,41px)/1.17 var(--serif),serif;
  letter-spacing:.07em;
}
.fc-instruction { margin:0 0 2px; font:400 clamp(12px,1vw,14px)/1.9 var(--serif),serif; color:rgba(36,41,37,.76); }
.fc-instruction span { display:block; color:rgba(36,41,37,.46); }
.fc-series-tabs { display:flex; align-items:end; gap:22px; }
.fc-series-tabs button {
  min-width:76px; padding:0 0 8px;
  color:rgba(36,41,37,.36);
  font:400 22px/1.1 var(--serif),serif;
  text-align:left;
  border-bottom:1px solid transparent;
  transition:color .25s,border-color .25s;
}
.fc-series-tabs button small {
  display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  max-width:133px; margin-top:7px;
  font:9px/1.2 var(--sans),sans-serif;
  letter-spacing:.055em;
}
.fc-series-tabs button.is-current,.fc-series-tabs button:hover { color:var(--fc-ink); border-bottom-color:var(--fc-ink); }
.fc-gallery-area {
  position:relative;
  display:flex; align-items:center;
  min-height:0; overflow:hidden;
  background:radial-gradient(ellipse 65% 70% at 48% 48%,#deddd7,#ebeae5 85%);
}
.fc-gallery-area::before,.fc-gallery-area::after {
  content:""; position:absolute; top:0; bottom:0;
  width:clamp(20px,6vw,100px); z-index:3; pointer-events:none;
}
.fc-gallery-area::before { left:0; background:linear-gradient(90deg,var(--fc-bg),transparent); }
.fc-gallery-area::after { right:0; background:linear-gradient(270deg,var(--fc-bg),transparent); }
.fc-rail {
  width:100%; height:100%; min-height:0;
  overflow-x:auto; overflow-y:hidden;
  scrollbar-width:none; -webkit-overflow-scrolling:touch;
  
  
  overscroll-behavior-x:contain;
  touch-action:pan-x pan-y;
  outline:none;
}
.fc-rail::-webkit-scrollbar { display:none; }
.fc-rail.is-dragging {  cursor:grabbing; }
.fc-strip {
  display:flex; align-items:center;
  min-height:100%; width:max-content;
  gap:clamp(14px,3vw,51px);
  margin:0; padding:24px calc((100vw - var(--fc-card-width))/2) 24px clamp(20px,6vw,100px);
  list-style:none;
}
.fc-card {
  width:var(--fc-card-width); min-width:var(--fc-card-width);
   
  transition:transform .52s cubic-bezier(.17,.82,.19,1),opacity .5s ease;
  opacity:.84;
}
.fc-card.is-magnet { transform:translateY(-7px) scale(1.035); opacity:1; }
.fc-card:hover { opacity:1; }
.fc-card-button { display:block; width:100%; padding:0; text-align:left; color:inherit; cursor:pointer; }
.fc-frame {
  position:relative; display:block;
  aspect-ratio:1.08/1;
  overflow:hidden;
  background:#090a09;
  border:1px solid var(--fc-hair);
  box-shadow:0 8px 32px rgba(0,0,0,.16);
  transition:border-color .3s ease,box-shadow .45s ease;
}
.fc-card.is-magnet .fc-frame {
  border-color:rgba(36,41,37,.48);
  box-shadow:0 23px 62px rgba(0,0,0,.20),0 0 0 3px rgba(36,41,37,.04);
}
.fc-preview,.fc-poster {
  position:absolute; inset:0;
  display:block; width:100%; height:100%;
  object-fit:cover; pointer-events:none;
  user-select:none; -webkit-user-drag:none;
}
.fc-poster {
  filter:saturate(.91) contrast(1.03) brightness(.95);
  transition:opacity .55s ease;
}
.fc-preview {
  opacity:0;
  filter:saturate(.92) contrast(1.04) brightness(.97);
  transition:opacity .5s ease;
}
.fc-card.has-frame .fc-preview { opacity:1; }
.fc-card.has-frame .fc-poster { opacity:0; }
.fc-card-filmwash {
  position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 52%,rgba(0,0,0,.17));
  pointer-events:none;
}
.fc-card-open-sign {
  position:absolute; right:14px; top:11px;
  color:rgba(250,250,241,.82);
  font:21px/1 var(--serif),serif;
  opacity:0; transform:translate(-3px,3px);
  transition:opacity .28s,transform .28s;
  pointer-events:none;
}
.fc-card:hover .fc-card-open-sign,.fc-card.is-magnet .fc-card-open-sign {opacity:.9;transform:none;}
.fc-card-copy {
  display:flex; align-items:baseline; justify-content:space-between; gap:17px;
  min-height:35px; margin-top:15px;
  font-size:11px; color:rgba(36,41,37,.76);
}
.fc-card-count { font:400 23px/1 var(--serif),serif; white-space:nowrap; color:var(--fc-ink); }
.fc-card-count small { font:10px/1 var(--sans),sans-serif; color:rgba(36,41,37,.42); }
.fc-card-name { font:12px/1.7 var(--serif),serif; text-align:right; }
.fc-navigation {
  display:flex; align-items:center; gap:clamp(10px,1.8vw,27px);
  height:84px; padding:14px clamp(20px,5vw,80px);
  border-top:1px solid var(--fc-hair);
}
.fc-rail-index { display:flex; align-items:baseline; gap:6px; min-width:76px; font:12px/1 var(--serif),serif; color:var(--fc-haze); }
.fc-rail-index strong {font:400 26px/1 var(--serif),serif;color:var(--fc-ink);}
.fc-nudge {
  width:36px; height:36px; flex-shrink:0;
  border:1px solid var(--fc-hair);
  border-radius:50%;
  color:var(--fc-ink);
  font:16px/1 var(--sans),sans-serif;
  transition:border-color .24s;
}
.fc-nudge:hover { border-color:rgba(36,41,37,.7); }
.fc-slider {
  flex:1; height:30px; min-width:100px;
  cursor:pointer;
  background:transparent;
  appearance:none; -webkit-appearance:none;
}
.fc-slider::-webkit-slider-runnable-track { height:1px; background:rgba(36,41,37,.43); }
.fc-slider::-moz-range-track { height:1px; background:rgba(36,41,37,.43); }
.fc-slider::-webkit-slider-thumb {
  appearance:none;-webkit-appearance:none;
  width:11px;height:11px;border-radius:50%;background:#242925;
  border:2px solid #ebeae5;box-shadow:0 0 0 1px rgba(36,41,37,.65);margin-top:-5px;
}
.fc-slider::-moz-range-thumb {
  width:10px;height:10px;border-radius:50%;background:#242925;
  border:2px solid #ebeae5;box-shadow:0 0 0 1px rgba(36,41,37,.65);
}
.fc-rail-caption { min-width:150px; margin:0 0 0 auto; text-align:right; color:var(--fc-haze); font:12px/1.5 var(--serif),serif; }
.fc-rail-caption span { display:inline-block; margin-left:14px; font-style:italic; font-size:17px; color:var(--fc-ink); }
.fc-projection[hidden],.fc-inspection[hidden] {display:none!important;}
.fc-projection {
  --fc-ink:#e5e5dd;
  --fc-haze:rgba(230,231,223,.57);
  --fc-hair:rgba(230,231,223,.14);
  position:absolute; inset:0;
  z-index:30; display:grid;
  place-items:center;
  background:rgba(8,10,9,.1);
  animation:fc-darken .48s ease both;
}
@keyframes fc-darken { from{background:rgba(8,10,9,.0)}to{background:rgba(8,10,9,.62)} }
.fc-projection-scrim { position:absolute;inset:0; }
.fc-projection-shell {
  position:relative;
  width:min(97%,1410px);
  height:min(calc(100% - 28px),820px);
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  min-height:0;
  padding:0 clamp(4px,1vw,15px);
  background:radial-gradient(ellipse 65% 80% at 40% 44%,rgba(20,23,22,.86),rgba(6,7,7,.97));
  box-shadow:0 27px 90px rgba(0,0,0,.5);
  border:1px solid rgba(230,231,223,.13);
  transform-origin:50% 53%;
  animation:fc-scale-in .63s cubic-bezier(.16,.85,.2,1) both;
}
@keyframes fc-scale-in {from{opacity:.1;transform:scale(.76)}to{opacity:1;transform:scale(1)}}
.fc-projection-top,.fc-projection-bottom {
  display:flex;align-items:center;justify-content:space-between;
  min-height:52px;
  margin-inline:clamp(12px,2.7vw,38px);
  color:var(--fc-haze);
  font:10px/1.4 var(--sans),sans-serif;
  letter-spacing:.11em;
}
.fc-projection-top {border-bottom:1px solid var(--fc-hair);}
.fc-projection-top b {font-weight:400;margin-left:21px;color:var(--fc-ink);}
.fc-projection-top button {font:28px/1 var(--sans),sans-serif;padding:3px 8px;color:var(--fc-ink);}
.fc-projection-center {
  position:relative; min-height:0; width:100%;
  display:grid; grid-template-columns:clamp(28px,3.5vw,58px) minmax(0,1fr) clamp(28px,3.5vw,58px);
  align-items:center;
  padding:clamp(12px,2vw,26px) clamp(0px,1.2vw,24px);
}
.fc-film-wrap {
  position:relative;
  min-width:0; min-height:0;
  width:min(100%,1070px);
  height:min(100%,67vh);
  justify-self:center;
  display:grid;place-items:center;
  overflow:hidden;
  background:#030404;
  border:1px solid rgba(230,231,223,.08);
}
.fc-film {
  display:block; width:100%;height:100%;min-width:0;min-height:0;
  object-fit:contain;
  background:#030404;
}
.fc-film-vignette {
  position:absolute;inset:0;
  pointer-events:none;
  background:linear-gradient(0deg,rgba(0,0,0,.18),transparent 27%);
}
.fc-film-status {
  position:absolute;left:18px;bottom:17px;right:30px;
  pointer-events:none;color:rgba(230,231,223,.66);
  font:11px/1.6 var(--sans),sans-serif;letter-spacing:.03em;
}
.fc-projection-arrow { color:rgba(230,231,223,.76); font:24px/1 var(--serif),serif; }
.fc-projection-arrow:hover{color:var(--fc-ink);}
.fc-film-pause-sign {
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:47px;height:47px;border:1px solid rgba(230,231,223,.4);border-radius:50%;
  color:#f5f5ee;background:rgba(0,0,0,.3);
  font:16px/1 var(--sans),sans-serif;opacity:0;
  transition:opacity .27s;
}
.fc-film-wrap:hover .fc-film-pause-sign,.fc-film-wrap:focus-within .fc-film-pause-sign,.fc-film-wrap.has-error .fc-film-pause-sign {opacity:1;}
.fc-projection-bottom { border-top:1px solid var(--fc-hair);font-size:11px;}
.fc-now-title{font:15px/1.6 var(--serif),serif;letter-spacing:.03em;color:var(--fc-ink);}
.fc-time-index{position:absolute;left:50%;transform:translateX(-50%);font:12px/1 var(--serif),serif;}
.fc-play-actions{display:flex;align-items:center;gap:19px;}
.fc-play-actions button{padding:9px;color:var(--fc-ink);font:15px/1 var(--sans),sans-serif;}
/* Left film / right apparatus: score HUD and its independent shadow layer. */
.fc-score-cluster {
  --fc-magnet-x:0px;--fc-magnet-y:0px;
  position:absolute;
  width:clamp(126px,15vw,210px);
  height:clamp(202px,24vw,350px);
  right:clamp(51px,7.1vw,101px);
  top:clamp(87px,15vh,170px);
  z-index:3;
  pointer-events:auto;
}
.fc-score-shadow {
  position:absolute;
  inset:0;
  border:1px solid rgba(230,231,223,.2);
  opacity:.4;
  background:rgba(190,191,183,.055);
  filter:grayscale(1) blur(.55px);
  transform:translate(13px,14px) scale(.94);
  transform-origin:center;
  overflow:hidden;
  pointer-events:none;
  transition:transform .5s,filter .5s,opacity .4s;
}
.fc-score-hud {
  position:absolute;
  inset:0;
  overflow:hidden;
  display:flex;flex-direction:column;
  padding:10px;
  background:rgba(12,14,13,.63);
  border:1px solid rgba(230,231,223,.49);
  backdrop-filter:blur(9px);
  box-shadow:0 8px 25px rgba(0,0,0,.35);
  transform:translate(var(--fc-magnet-x),var(--fc-magnet-y));
  transition:transform .17s ease,border-color .26s,background .26s;
  cursor:crosshair;
}
.fc-score-cluster.is-magnetic .fc-score-hud {
  border-color:rgba(250,246,222,.92);
  background:rgba(16,19,18,.4);
}
.fc-score-cluster.is-magnetic .fc-score-shadow{
  opacity:.74;filter:blur(2px);
  transform:translate(2px,3px) scale(.995);
}
.fc-score-mark{margin:0 0 7px;font:8px/1 var(--sans),sans-serif;letter-spacing:.14em;color:rgba(230,231,223,.65);}
.fc-score-notation{
  position:relative;flex:1;min-height:0;
  display:grid;place-items:center;
  overflow:hidden;
}
.fc-mechanical-notation > img {
  display:block;width:100%;height:100%;object-fit:contain;
  filter:contrast(1.08);
}
.fc-shadow-scan{position:absolute;inset:6px;}
.fc-shadow-scan img{width:100%;height:100%;object-fit:contain;filter:grayscale(1);}
.fc-scan-line,.fc-shadow-scan i{
  position:absolute;top:2%;height:95%;width:1px;
  background:rgba(255,255,245,.96);
  box-shadow:0 0 5px rgba(250,239,205,.85);
  transition:left .09s linear;
}
.fc-scan-pulse{
  position:absolute;width:8px;height:8px;border-radius:50%;background:#d23634;
  box-shadow:0 0 13px rgba(238,39,36,.8);
  pointer-events:none;transition:left .09s linear,top .09s linear;
}
.fc-score-indicator{
  display:flex;align-items:center;justify-content:space-between;
  height:23px;margin-top:6px;border-top:1px solid var(--fc-hair);
  font:8px/1 var(--sans),sans-serif;
  letter-spacing:.1em;
  color:rgba(230,231,223,.57);
}
.fc-score-light{width:4px;height:4px;border-radius:50%;background:#b9b5a0;box-shadow:0 0 7px rgba(250,244,192,.42);}
.fc-score-manual {
  position:absolute;bottom:-27px;right:0;
  width:max-content;max-width:200%;margin:0;
  color:rgba(230,231,223,.46);font:8px/1.4 var(--sans),sans-serif;text-align:right;
}
.fc-score-expand {
  position:absolute;top:-30px;right:0;
  font:9px/1.5 var(--sans),sans-serif;letter-spacing:.04em;
  color:rgba(230,231,223,.75);
}
.fc-score-expand:hover{text-decoration:underline;text-underline-offset:5px;}
/* Fold-score is a rigid centre and three individually hinged wings. */
.fc-fold-notation{perspective:800px;transform-style:preserve-3d;}
.fc-fold-stage{
  position:relative;
  width:min(90%,290px);
  aspect-ratio:1;
  container-type:inline-size;
  transform-style:preserve-3d;
  --fc-side:42cqw;
  --fc-high:36cqw;
}
.fc-fold-core,.fc-fold-finish {
  position:absolute;left:29%;top:38%;
  width:42%;height:36%;z-index:1;
  clip-path:polygon(0 0,100% 0,50% 100%);
  pointer-events:none;
}
.fc-fold-core img,.fc-fold-finish img,.fc-fold-face img{
  display:block;width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none;
}
.fc-fold-finish{opacity:0;z-index:5;transition:opacity .35s;}
.fc-fold-stage.is-folded .fc-fold-finish{opacity:1;}
.fc-fold-axis{
  position:absolute;width:0;height:0;z-index:2;
  transform-style:preserve-3d;
}
.fc-fold-axis-1{left:50%;top:38%;transform:rotateZ(0deg);}
.fc-fold-axis-2{left:39.5%;top:56%;transform:rotateZ(120deg);}
.fc-fold-axis-3{left:60.5%;top:56%;transform:rotateZ(-120deg);}
.fc-fold-wing{
  position:absolute;
  width:var(--fc-side);
  height:var(--fc-high);
  left:calc(var(--fc-side) * -.5);
  top:calc(var(--fc-high) * -1);
  transform-origin:50% 100%;
  transform-style:preserve-3d;
  transform:rotateX(var(--fc-fold-angle,0deg));
  clip-path:polygon(50% 0,100% 100%,0 100%);
  cursor:grab;touch-action:none;
  transition:transform .72s cubic-bezier(.2,.79,.18,1);
}
.fc-fold-face{
  position:absolute;inset:0;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
.fc-fold-face-back{transform:rotateX(180deg);opacity:.55;filter:grayscale(1);}
.fc-fold-notation>.fc-fold-stage{width:min(100%,180px);}
.fc-score-shadow .fc-fold-stage{width:100%;opacity:.78;}
.fc-radial-needles{
  position:absolute;
  left:29%;top:39%;width:42%;height:36%;
  pointer-events:none;z-index:7;
}
.fc-radial-needles i{
  position:absolute;display:block;
  height:1px;width:80%;
  left:11%;top:88%;
  background:#efab6c;box-shadow:0 0 7px #db734c,0 0 14px rgba(216,111,66,.9);
  transform-origin:0 50%;
  transition:transform .1s linear;
}
.fc-radial-needles i:nth-child(2){left:84%;top:7%;width:55%;}
/* Inspection is subordinate to the score HUD, not a second full-screen player. */
.fc-inspection {
  position:absolute;inset:10px;
  z-index:10;
  display:grid;grid-template-rows:auto minmax(0,1fr) auto;
  background:rgba(3,5,5,.97);
  border:1px solid rgba(230,231,223,.42);
  box-shadow:0 18px 65px rgba(0,0,0,.63);
  backdrop-filter:blur(17px);
}
.fc-inspection-head,.fc-inspection-foot{
  display:flex;align-items:center;justify-content:space-between;
  padding:9px 15px;color:var(--fc-ink);font:9px/1.5 var(--sans),sans-serif;
  letter-spacing:.14em;
}
.fc-inspection-head{border-bottom:1px solid var(--fc-hair);}
.fc-inspection-head button{font:24px/1 var(--sans),sans-serif;}
.fc-inspection-foot{border-top:1px solid var(--fc-hair);justify-content:center;gap:25px;}
.fc-inspection-foot button{font:14px/1.4 var(--sans),sans-serif;}
.fc-inspection-body{
  display:grid;place-items:center;min-height:0;overflow:hidden;
  touch-action:none;
}
.fc-inspect-mechanical{
  position:relative;min-height:0;height:100%;max-width:100%;
  aspect-ratio:1337/2048;transform-origin:center;
}
.fc-inspect-mechanical>img{display:block;height:100%;width:100%;object-fit:contain;}
.fc-inspect-lever{
  appearance:slider-vertical;
  writing-mode:vertical-rl;
  direction:rtl;
  position:absolute;left:47%;top:5%;height:15%;width:19px;
  accent-color:#e5e5dd;
  cursor:ns-resize;
}
.fc-inspect-fold {display:grid;justify-items:center;gap:12px;transform-origin:center;}
.fc-inspect-fold .fc-fold-stage{width:min(35vh,310px);}
.fc-inspect-wings{display:flex;gap:18px;}
.fc-inspect-wings button{min-width:28px;border-bottom:1px solid var(--fc-hair);color:var(--fc-ink);font:13px/1.8 var(--serif),serif;}
.fc-room button:focus-visible,.fc-room [tabindex]:focus-visible,.fc-room input:focus-visible{
  outline:1px solid rgba(36,41,37,.72);outline-offset:3px;
}
.fc-projection button:focus-visible,.fc-projection [tabindex]:focus-visible,.fc-projection input:focus-visible{outline-color:rgba(230,231,223,.92);}
/* The viewing interface is an overlay, while the collection remains the work. */
.fc-page.is-projected .fc-gallery-area,.fc-page.is-projected .fc-navigation,.fc-page.is-projected .fc-page-heading{filter:brightness(.57);}
@media(max-width:1100px){
  .fc-page-heading{min-height:126px;grid-template-columns:1fr auto;gap:12px;}
  .fc-instruction{grid-column:1/-1;grid-row:2;}
  .fc-series-tabs{grid-row:1;grid-column:2;}
  .fc-score-cluster{width:clamp(110px,14vw,156px);height:clamp(185px,23vw,265px);right:6.5vw;top:20%;}
  .fc-projection-center{padding:10px 0;}
  .fc-score-manual{display:none;}
  .fc-projection-shell{width:98%;}
}
@media(max-width:700px){
  .fc-room{--fc-card-width:clamp(218px,65vw,360px);}
  .fc-page-heading{
    min-height:0;grid-template-columns:1fr auto;
    gap:9px 12px;padding:19px 17px 16px;
  }
  .fc-heading-primary p{font-size:8px;margin-bottom:6px;}
  .fc-heading-primary h1{font-size:25px;}
  .fc-series-tabs{gap:12px;}
  .fc-series-tabs button{min-width:36px;padding-bottom:5px;font-size:18px;}
  .fc-series-tabs button small{font-size:8px;max-width:82px;}
  .fc-instruction{font-size:11px;line-height:1.55;}
  .fc-rail{}
  .fc-strip{gap:22px;padding-block:23px;padding-left:17px;padding-right:calc((100vw - var(--fc-card-width))/2);}
  .fc-card-copy{margin-top:9px;}
  .fc-card-count{font-size:20px;}
  .fc-navigation{height:71px;padding:9px 13px;gap:11px;}
  .fc-rail-index{min-width:54px;}
  .fc-rail-index strong{font-size:21px;}
  .fc-nudge{width:30px;height:30px;font-size:13px;}
  .fc-rail-caption{display:none;}
  .fc-slider{min-width:55px;}
  .fc-projection-shell{height:100%;width:100%;padding:0;border:none;}
  .fc-projection-top,.fc-projection-bottom{margin-inline:15px;min-height:46px;}
  .fc-projection-center{
    display:flex;align-items:center;justify-content:center;
    padding:6px 6px 90px;
  }
  .fc-film-wrap{
    height:auto;max-height:55vh;min-height:140px;aspect-ratio:16/10;
    width:100%;
  }
  .fc-projection-arrow{
    position:absolute;z-index:6;bottom:44px;
    padding:8px;color:var(--fc-ink);font-size:19px;
  }
  .fc-arrow-prev{left:22px;}
  .fc-arrow-next{right:22px;}
  .fc-score-cluster{
    width:90px;height:124px;
    top:auto;right:clamp(35px,12vw,90px);bottom:85px;
    z-index:7;opacity:.95;
  }
  .fc-score-hud{padding:5px;}
  .fc-score-mark{font-size:6px;margin-bottom:3px;}
  .fc-score-indicator{height:13px;font-size:6px;}
  .fc-score-shadow{transform:translate(7px,7px) scale(.95);}
  .fc-score-expand{top:-24px;font-size:8px;}
  .fc-time-index{position:static;transform:none;}
  .fc-now-title{font-size:12px;}
  .fc-play-actions{gap:3px;}
  .fc-play-actions button{padding:7px;}
  .fc-inspection{inset:6px 6px 55px;}
  .fc-inspect-fold .fc-fold-stage{width:min(64vw,300px);}
}
@media(hover:none){
  .fc-card-open-sign{opacity:.6;transform:none;}
  .fc-film-pause-sign{opacity:.8;width:40px;height:40px;}
}
@media(prefers-reduced-motion:reduce){
  .fc-card,.fc-frame,.fc-score-hud,.fc-score-shadow,.fc-fold-wing,.fc-projection,.fc-projection-shell,.fc-preview,.fc-poster{
    animation:none!important;transition:none!important;
  }
  .fc-rail{scroll-behavior:auto!important;}
}




/* v3 — ORDINARY DOCUMENT FLOW.
   The page itself scrolls vertically. Only the two photographic strips scroll
   horizontally. No virtual viewport, nested vertical scrollbar or hijacked
   vertical mouse wheel. */
html:has(.fc-room),
body:has(.fc-room) {
  height:auto;
  min-height:100%;
  overflow-x:clip;
  overflow-y:auto;
  overscroll-behavior-y:auto;
  background:#eeede8;
}
body:has(.fc-room) { touch-action:pan-x pan-y; }
.site-root:has(.fc-room) {
  position:relative;
  inset:auto;
  display:block;
  width:100%;
  height:auto;
  min-height:100svh;
}
.fc-room {
  position:relative;
  inset:auto;
  display:block;
  width:100%;
  min-height:100svh;
  height:auto;
  background:#eeede8;
  color:#242925;
  overflow:visible;
}
.fc-room .room-head {
  position:sticky;
  inset:auto;
  top:0;
  z-index:80;
  width:100%;
  height:54px;
  background:rgba(238,237,232,.94);
  color:#242925;
  border-bottom:1px solid rgba(36,41,37,.14);
  backdrop-filter:blur(14px);
}
.fc-room .fc-page {
  position:relative;
  inset:auto;
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  overflow:visible;
  isolation:auto;
  background:#eeede8;
}
.fc-page-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  flex-wrap:wrap;
  gap:20px 6vw;
  min-height:0;
  padding:clamp(66px,10vh,118px) clamp(23px,6vw,100px) clamp(47px,7vh,84px);
  border:0;
}
.fc-heading-primary p {
  margin-bottom:13px;
  color:rgba(36,41,37,.44);
}
.fc-heading-primary h1 {
  font-size:clamp(37px,4.3vw,65px);
  line-height:1.2;
}
.fc-instruction {
  max-width:380px;
  margin-bottom:4px;
  font-size:clamp(12px,1.12vw,15px);
  line-height:1.95;
  color:rgba(36,41,37,.76);
}
.fc-instruction span {
  display:block;
  color:rgba(36,41,37,.43);
}
.fc-scroll-content {display:block; width:100%; min-height:0;}
.fc-series-block {
  --fc-ratio-number:1.77778;
  --fc-video-aspect:16 / 9;
  --fc-card-width:clamp(240px,34vw,510px);
  display:block;
  position:relative;
  width:100%;
  min-width:0;
  padding:clamp(40px,6vh,76px) 0 clamp(50px,8vh,100px);
  margin:0;
  background:transparent;
  border-top:1px solid rgba(36,41,37,.15);
  border-bottom:0;
}
.fc-series-block:nth-of-type(2) {background:#e7e6e0;}
.fc-series-heading {
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:clamp(22px,5vw,75px);
  padding:0 clamp(23px,6vw,100px) 28px;
  color:#242925;
}
.fc-series-number {
  min-width:70px;
  font:400 clamp(33px,4.4vw,60px)/1 var(--serif),serif;
  color:rgba(36,41,37,.33);
}
.fc-series-number span {
  font:10px/1.5 var(--sans),sans-serif;
  color:rgba(36,41,37,.4);
}
.fc-series-title h2 {
  margin:0 0 8px;
  font:400 clamp(22px,2.4vw,32px)/1.3 var(--serif),serif;
  letter-spacing:.035em;
}
.fc-series-title p {
  margin:0;
  color:rgba(36,41,37,.47);
  font-size:10px;
  line-height:1.6;
  letter-spacing:.065em;
}
.fc-gallery-area {
  position:relative;
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  overflow:hidden;
  background:transparent;
}
.fc-gallery-area::before,
.fc-gallery-area::after {display:none;}
.fc-rail {
  display:block;
  width:100%;
  max-width:100%;
  min-height:0;
  height:auto;
  overflow-x:auto;
  overflow-y:hidden;
  
  
  scroll-behavior:auto;
  overscroll-behavior-x:contain;
  touch-action:pan-x pan-y;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  cursor:grab;
}
.fc-rail::-webkit-scrollbar {display:none;}
.fc-rail.is-dragging {cursor:grabbing;}
.fc-strip {
  display:flex;
  align-items:flex-start;
  gap:clamp(19px,2.9vw,44px);
  box-sizing:border-box;
  width:max-content;
  min-height:0;
  height:auto;
  padding:10px clamp(23px,6vw,100px) 20px;
  margin:0;
}
.fc-card {
  flex:0 0 var(--fc-card-width);
  display:block;
  width:var(--fc-card-width);
  min-width:var(--fc-card-width);
  max-width:var(--fc-card-width);
  opacity:.9;
  transform:none;
  
  
}
.fc-card.is-magnet {
  transform:none;
  opacity:1;
}
.fc-card-button {width:100%;display:block;}
.fc-frame {
  display:block;
  position:relative;
  width:100%;
  height:auto;
  min-height:0;
  max-height:none;
  aspect-ratio:var(--fc-video-aspect,16 / 9);
  background:#080908;
  border:1px solid rgba(36,41,37,.19);
  box-shadow:none;
  overflow:hidden;
}
.fc-card.is-magnet .fc-frame,
.fc-card-button:hover .fc-frame {
  border-color:rgba(36,41,37,.48);
  box-shadow:0 10px 30px rgba(0,0,0,.08);
}
.fc-preview,.fc-poster {
  display:block;
  position:absolute;
  inset:0;
  height:100%;
  width:100%;
  object-fit:contain;
  object-position:center;
}
.fc-poster { filter:saturate(.85) contrast(1.04) brightness(.96); }
.fc-preview { filter:saturate(.90) contrast(1.04) brightness(.98); }
.fc-card-copy {
  margin-top:11px;
  display:flex;
  justify-content:space-between;
  gap:15px;
  min-height:28px;
  color:rgba(36,41,37,.69);
}
.fc-card-count { font:400 20px/1.2 var(--serif),serif; }
.fc-card-name { font:12px/1.7 var(--serif),serif;text-align:right; }
.fc-card-open-sign {color:#eee;}
.fc-navigation {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  max-width:none;
  width:auto;
  height:auto;
  min-height:0;
  margin:0 clamp(23px,6vw,100px);
  padding:14px 0 0;
  border-top:1px solid rgba(36,41,37,.15);
}
.fc-rail-index {min-width:0;color:rgba(36,41,37,.48);}
.fc-rail-index strong {color:#242925;font-size:20px;}
.fc-sideways-hint {
  margin-left:auto;
  color:rgba(36,41,37,.44);
  font:10px/1.6 var(--sans),sans-serif;
  letter-spacing:.09em;
}
.fc-series-breath {height:0;display:none;}
.fc-essay {
  display:grid;
  grid-template-columns:minmax(115px,.7fr) minmax(250px,2fr);
  gap:24px clamp(30px,6vw,90px);
  min-height:45vh;
  padding:clamp(62px,10vh,140px) clamp(23px,8vw,140px) clamp(90px,15vh,200px);
  background:#eeede8;
  border-top:1px solid rgba(36,41,37,.15);
}
.fc-essay-rule {grid-column:1/-1;height:1px;background:rgba(36,41,37,.14);}
.fc-essay-index {
  margin:0;
  color:rgba(36,41,37,.49);
  font:10px/1.5 var(--sans),sans-serif;
  letter-spacing:.09em;
}
.fc-essay-intro {
  max-width:650px;
  margin:0;
  color:#343833;
  font:400 clamp(14px,1.3vw,18px)/2 var(--serif),serif;
}
.fc-essay-space {grid-column:1/-1;height:clamp(45px,9vh,130px);min-height:0;}
/* Film projection remains an optional temporary layer above the ordinary page. */
.fc-projection {
  position:fixed;
  inset:0;
  z-index:150;
  overflow:hidden;
}
.fc-projection-shell {
  height:min(calc(100% - 28px),820px);
}
.fc-page.is-projected .fc-page-heading,
.fc-page.is-projected .fc-scroll-content {filter:brightness(.84);}
body.fc-modal-open {overflow:hidden;}
@media(max-width:700px){
  .fc-page-heading {
    display:block;
    min-height:0;
    padding:clamp(48px,8vh,90px) 22px 40px;
  }
  .fc-page-heading .fc-heading-primary h1 {font-size:clamp(30px,8vw,46px);}
  .fc-page-heading .fc-instruction {max-width:320px;margin:30px 0 0;font-size:12px;}
  .fc-series-block {
    --fc-card-width:clamp(235px,76vw,360px);
    padding:46px 0 65px;
  }
  .fc-series-heading {padding:0 22px 23px;gap:21px;}
  .fc-series-number {min-width:39px;font-size:38px;}
  .fc-series-title h2 {font-size:23px;}
  .fc-series-title p {font-size:9px;}
  .fc-strip {padding:7px 20px 17px;gap:20px;}
  .fc-rail {}
  .fc-card {}
  .fc-card-count {font-size:19px;}
  .fc-card-name {font-size:11px;}
  .fc-navigation {margin:0 22px;padding-top:12px;}
  .fc-essay {
    display:block;
    min-height:48vh;
    padding:70px 24px 115px;
  }
  .fc-essay-index {margin:30px 0 22px;}
  .fc-essay-intro {font-size:15px;line-height:2;}
  .fc-essay-space {margin-top:60px;}
  .fc-projection {inset:0;}
}
@media(prefers-reduced-motion:reduce){
  .fc-rail {scroll-behavior:auto;}
}


/* v4 · Local 1-second MP4 contact sheets and score apparatus */
.fc-frame .fc-preview-frame {
  display:block;
  position:absolute;
  z-index:1;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  object-fit:contain;
  transition:opacity .65s ease,filter .7s ease;
  filter:brightness(.97);
  pointer-events:none;
}
.fc-card.has-frame .fc-preview-frame {opacity:1;}
.fc-frame .fc-preview {
  position:absolute;
  z-index:0;
  top:0;
  left:0;
  width:1px;
  height:1px;
  opacity:0!important;
  pointer-events:none;
}
.fc-frame .fc-poster {
  z-index:0;
  transition:opacity .6s ease, filter .7s ease;
}
.fc-card.has-frame .fc-poster {opacity:0;}
.fc-frame .fc-card-filmwash {z-index:2;}
.fc-frame .fc-card-open-sign {z-index:3;}
.fc-card.is-playing .fc-preview-frame,
.fc-card.is-playing .fc-poster {
  filter:brightness(.42) saturate(.55);
}
.fc-page.is-projected .fc-scroll-content {
  filter:brightness(.63);
  transition:filter .62s ease;
}
.fc-page.is-projected .fc-page-heading {
  filter:brightness(.72);
  transition:filter .62s ease;
}
.fc-rail:not(.is-dragging) {
  
}
.fc-card.is-magnet .fc-frame {
  box-shadow:0 13px 35px rgba(12,14,12,.09);
  transition:box-shadow .38s ease,border-color .38s ease;
}
.fc-navigation {
  gap:clamp(19px,3vw,54px);
}
.fc-navigation .fc-slider {
  display:block;
  flex:1 1 240px;
  min-width:80px;
  max-width:640px;
  height:30px;
  margin:0;
  padding:0;
  background:transparent;
  border:0;
  appearance:none;
  -webkit-appearance:none;
  cursor:ew-resize;
}
.fc-navigation .fc-slider::-webkit-slider-runnable-track{
  height:1px;
  background:linear-gradient(90deg,rgba(39,42,38,.5),rgba(39,42,38,.20));
}
.fc-navigation .fc-slider::-moz-range-track{
  height:1px;
  background:linear-gradient(90deg,rgba(39,42,38,.5),rgba(39,42,38,.20));
}
.fc-navigation .fc-slider::-webkit-slider-thumb{
  width:11px;height:11px;
  border:1px solid #373b37;
  border-radius:50%;
  margin-top:-5px;
  background:#e9e8e1;
  box-shadow:0 0 0 3px rgba(36,41,37,.07);
  -webkit-appearance:none;
}
.fc-navigation .fc-slider::-moz-range-thumb{
  width:11px;height:11px;
  border:1px solid #373b37;
  border-radius:50%;
  background:#e9e8e1;
  box-shadow:0 0 0 3px rgba(36,41,37,.07);
}
.fc-sideways-hint{
  margin-left:0;
  white-space:nowrap;
}
.fc-mechanical-notation,
.fc-shadow-scan {isolation:isolate;}
.fc-mechanical-lever {
  --fc-mech-knob:15%;
  --fc-mech-ring:15%;
  --fc-mech-engage:1;
  position:absolute;
  z-index:5;
  top:36%;
  left:36%;
  width:28%;
  height:49%;
  pointer-events:none;
}
.fc-mechanical-guide {
  position:absolute;
  display:block;
  top:8%;bottom:8%;left:50%;
  width:1px;
  background:rgba(214,222,219,.28);
  transform:translateX(-50%);
}
.fc-mechanical-knob {
  display:block;
  position:absolute;
  top:var(--fc-mech-knob);
  left:50%;
  transform:translate(-50%,-50%);
  width:8px;height:8px;
  background:#f3f3eb;
  border:1px solid rgba(24,25,23,.45);
  border-radius:50%;
  box-shadow:0 0 7px rgba(241,245,231,.65);
}
.fc-mechanical-ring {
  position:absolute;
  display:block;
  top:var(--fc-mech-ring);
  left:50%;
  width:clamp(13px,1.5vw,22px);
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  border:1px solid rgba(233,231,213,.89);
  border-radius:50%;
  opacity:calc(.26 + .74 * var(--fc-mech-engage));
  box-shadow:0 0 9px rgba(220,219,201,.25);
}
.fc-shadow-scan .fc-mechanical-lever{opacity:.58;}
.fc-score-cluster.is-magnetic .fc-score-hud {
  box-shadow:0 0 0 1px rgba(229,224,210,.28),0 6px 35px rgba(0,0,0,.45);
}
.fc-projection[hidden]{display:none!important;}
@media (max-width:700px){
  .fc-navigation{gap:12px;}
  .fc-navigation .fc-slider{min-width:78px;max-width:none;}
  .fc-sideways-hint{font-size:9px;}
  .fc-mechanical-knob{width:5px;height:5px;}
  .fc-mechanical-ring{width:12px;}
}
@media (prefers-reduced-motion:reduce){
  .fc-frame .fc-preview-frame,
  .fc-frame .fc-poster,
  .fc-page.is-projected .fc-scroll-content,
  .fc-page.is-projected .fc-page-heading{
    transition:none;
  }
}


/* Folly II: the four-panel score belongs to the SHADOW, not the live glass.
   The live overlay only calibrates the two moving needles. */
.fc-score-radial .fc-score-shadow {
  opacity:.78;
  filter:grayscale(.12) contrast(1.06);
  background:rgba(232,232,220,.045);
  transform:translate(10px,12px) scale(.96);
}
.fc-score-radial .fc-score-shadow .fc-fold-stage {opacity:1;}
.fc-score-radial .fc-score-hud {
  background:rgba(15,19,18,.18);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  transition:opacity .55s ease,transform .17s ease,border-color .26s,background .26s;
}
.fc-score-radial .fc-score-hud .fc-fold-stage {
  opacity:0;
  pointer-events:none;
}
.fc-score-radial .fc-score-hud .fc-radial-needles{
  position:absolute;
  z-index:9;
}
.fc-score-radial.is-hud-awaiting .fc-score-hud {
  opacity:0;
  pointer-events:none;
}
.fc-score-radial.is-hud-awaiting .fc-score-expand {
  opacity:0;
  pointer-events:none;
}
.fc-score-radial.is-magnetic .fc-score-shadow{
  transform:translate(1px,2px) scale(.99);
  opacity:.9;
}


/* v6 · FREE FILM STRIP: no magnetic scroll positions, and no autoplay till rest. */
.fc-room .fc-rail,
.fc-room .fc-rail.is-dragging,
.fc-room .fc-rail.is-wheel-active {
  scroll-snap-type:none !important;
  scroll-behavior:auto !important;
  touch-action:pan-x pan-y;
  cursor:grab;
}
.fc-room .fc-rail.is-dragging {cursor:grabbing;}
.fc-room .fc-card {
  scroll-snap-align:none !important;
  scroll-snap-stop:normal;
  opacity:1;
  transform:none;
  transition:transform .46s cubic-bezier(.2,.8,.2,1), box-shadow .46s ease;
  position:relative;
  z-index:1;
}
.fc-room .fc-card.is-hovering{
  transform:translateY(-4px) scale(1.034);
  z-index:6;
}
.fc-room .fc-card.is-previewing{
  transform:translateY(-5px) scale(1.054);
  z-index:7;
}
.fc-room .fc-card .fc-frame {
  transition:box-shadow .46s ease,border-color .36s ease;
  box-shadow:0 4px 17px rgba(0,0,0,.025);
}
.fc-room .fc-card.is-hovering .fc-frame{
  box-shadow:0 18px 53px rgba(0,0,0,.17);
  border-color:rgba(33,38,34,.48);
}
.fc-room .fc-card .fc-card-filmwash {
  background:transparent !important;
  pointer-events:none;
}
.fc-room .fc-card .fc-preview-frame{
  filter:brightness(1.28) contrast(.98) saturate(1.09);
}
.fc-room .fc-card .fc-poster {
  filter:brightness(1.21) contrast(.98) saturate(1.06);
}
.fc-room .fc-card .fc-hover-video {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  background:#101310;
  opacity:0;
  z-index:4;
  pointer-events:none;
  filter:brightness(1.13) contrast(1.01) saturate(1.04);
  transition:opacity .45s ease;
}
.fc-room .fc-card.is-previewing .fc-hover-video{opacity:1;}
.fc-room .fc-card .fc-card-open-sign{z-index:6;color:#fafaf2;}
.fc-room .fc-card.is-hovering .fc-card-open-sign {opacity:.92;}
.fc-room .fc-strip{
  /* Larger opening blank margin is deliberate; thereafter movement is free. */
  padding-left:clamp(205px,18vw,370px);
  padding-right:clamp(40px,5.8vw,104px);
  user-select:none;
  -webkit-user-select:none;
}
.fc-room .fc-card img {
  -webkit-user-drag:none;
  user-select:none;
}
.fc-room .fc-navigation .fc-slider {cursor:ew-resize;}
.fc-room .fc-card.is-playing .fc-preview-frame,
.fc-room .fc-card.is-playing .fc-poster {
  filter:brightness(.52) saturate(.69);
}
@media(max-width:700px){
  .fc-room .fc-strip{
    padding-left:clamp(34px,9vw,70px);
    padding-right:34px;
  }
  .fc-room .fc-card.is-hovering {transform:translateY(-2px) scale(1.021);}
  .fc-room .fc-card.is-previewing {transform:translateY(-3px) scale(1.032);}
  .fc-room .fc-card .fc-preview-frame{filter:brightness(1.22) contrast(.99) saturate(1.07);}
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-card,
  .fc-room .fc-card .fc-hover-video,
  .fc-room .fc-card .fc-frame {transition:none !important;}
}


/* No photographic fallback: pure black until a real decoded film frame exists.
   This applies to the card strip and the selected film's loading state. */
.fc-room .fc-card .fc-frame {
  background:#000;
}
.fc-room .fc-card:not(.has-frame) .fc-preview-frame {
  opacity:0;
}
.fc-room .fc-film-wrap,
.fc-room .fc-film {
  background:#000;
}
.fc-room .fc-film-wrap:not(.has-started) .fc-film {
  opacity:0;
}
.fc-room .fc-film-wrap.has-started .fc-film {
  opacity:1;
  transition:opacity .32s ease;
}


/* ==============================================================
   Folly field atlas · v8
   Front/back, instrument/body, instrument motion, film fragments,
   and an always-visible mechanical/folding score beneath the rail.
   Both volumes remain in ordinary vertically flowing document space.
   ============================================================== */
.fc-room .fc-series-block {
  padding-top:clamp(56px,7vw,112px);
  padding-bottom:clamp(95px,14vw,220px);
}
.fc-room .fc-series-composition {
  width:calc(100% - 2 * clamp(24px,7vw,120px));
  max-width:1450px;
  margin:10px auto clamp(54px,9vw,130px);
}
.fc-asset-pair {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:start;
  gap:clamp(17px,3vw,48px);
}
.fc-artifact {margin:0;min-width:0;}
.fc-artifact-image {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  background:rgba(194,195,186,.11);
  min-height:clamp(170px,19vw,350px);
}
.fc-artifact-image img {
  display:block;
  width:100%;
  height:auto;
  max-height:clamp(340px,59vw,780px);
  object-fit:contain;
  object-position:center center;
  border:0;
  filter:none;
}
.fc-artifact figcaption {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  margin-top:12px;
  border-top:1px solid rgba(41,44,40,.13);
  padding-top:10px;
  color:rgba(41,44,40,.7);
  font:400 12px/1.65 var(--serif),serif;
}
.fc-artifact figcaption small{
  font:400 9px/1.5 var(--sans),sans-serif;
  color:rgba(41,44,40,.39);
  letter-spacing:.09em;
  white-space:nowrap;
}
.fc-room .fc-structure-description,
.fc-room .fc-instrument-description{
  margin:clamp(36px,6vw,92px) 0 clamp(62px,10vw,140px) auto;
  width:min(580px,73%);
  font:400 clamp(14px,1.1vw,17px)/2.15 var(--serif),serif;
  color:rgba(41,44,40,.76);
  letter-spacing:.015em;
}
.fc-asset-pair-detail {margin-top:0;}
.fc-room .fc-subchapter{
  display:flex;
  align-items:baseline;
  gap:24px;
  min-width:0;
  margin:0 0 clamp(25px,3.5vw,46px);
  color:#262924;
}
.fc-subchapter span {
  font:400 9px/1.65 var(--sans),sans-serif;
  letter-spacing:.1em;
  color:rgba(41,44,40,.42);
  white-space:nowrap;
}
.fc-subchapter h3{
  font:400 clamp(21px,2.2vw,33px)/1.35 var(--serif),serif;
  letter-spacing:.045em;
  margin:0;
}
.fc-instrument-wrap {
  margin:clamp(86px,13vw,175px) 0 clamp(68px,11vw,150px);
  padding-top:20px;
  border-top:1px solid rgba(41,44,40,.16);
}
.fc-room .fc-instrument-card {
  display:block;
  width:min(570px,75%) !important;
  min-width:0 !important;
  max-width:none !important;
  margin-left:clamp(0px,3vw,48px);
  scroll-snap-align:none;
}
.fc-room .fc-instrument-card .fc-frame{
  aspect-ratio:var(--fc-instrument-aspect,16 / 9);
  background:#000;
}
.fc-room .fc-instrument-card .fc-card-copy{margin-top:12px;}
.fc-room .fc-instrument-card .fc-preview-frame{opacity:0;}
.fc-room .fc-instrument-card.has-frame .fc-preview-frame{opacity:1;}
.fc-room .fc-instrument-description {
  margin-top:clamp(32px,4.5vw,70px);
  margin-bottom:0;
}
.fc-room .fc-main-subchapter{
  padding:0 clamp(24px,7vw,120px);
  margin-bottom:34px;
}
.fc-room .fc-inline-score{
  position:relative;
  display:block;
  width:calc(100% - 2 * clamp(24px,7vw,120px));
  max-width:1400px;
  margin:clamp(80px,10vw,145px) auto 0;
  padding-top:23px;
  color:#222822;
  border-top:1px solid rgba(40,43,40,.20);
  background:transparent;
  isolation:isolate;
}
.fc-inline-score-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  margin:0 0 clamp(24px,4vw,52px);
}
.fc-inline-score-top p {
  margin:0 0 8px;
  font:400 9px/1.5 var(--sans),sans-serif;
  letter-spacing:.11em;
  color:rgba(40,43,40,.45);
}
.fc-inline-score-top h3 {
  margin:0;
  font:400 clamp(26px,3vw,45px)/1.25 var(--serif),serif;
  letter-spacing:.04em;
}
.fc-inline-expand {
  color:rgba(40,43,40,.7);
  font:400 11px/1.5 var(--sans),sans-serif;
  white-space:nowrap;
  transition:opacity .2s;
}
.fc-inline-expand:hover {opacity:.55;}
.fc-inline-score-main {
  display:grid;
  grid-template-columns:minmax(0,1.44fr) minmax(190px,.65fr);
  align-items:center;
  gap:clamp(26px,5vw,100px);
}
.fc-inline-score-device {
  position:relative;
  isolation:isolate;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  width:100%;
  height:clamp(430px,50vw,660px);
  overflow:hidden;
  border:1px solid rgba(39,42,39,.22);
  background:radial-gradient(ellipse 80% 90% at 48% 49%,#292e2a,#111411 80%);
}
.fc-inline-score-device>.fc-score-cluster {
  position:relative;
  top:auto;right:auto;bottom:auto;left:auto;
  z-index:3;
  width:min(70%,470px);
  height:min(78%,515px);
  min-width:210px;
  min-height:300px;
  flex:0 0 auto;
  margin:0;
  --fc-magnet-x:0px;
  --fc-magnet-y:0px;
}
.fc-inline-score .fc-score-hud {
  padding:clamp(10px,1.4vw,18px);
}
.fc-inline-score .fc-score-mark {font-size:10px;letter-spacing:.17em;}
.fc-inline-score .fc-score-indicator {height:32px;font-size:10px;}
.fc-inline-score .fc-score-light {width:6px;height:6px;}
.fc-inline-score .fc-score-expand {top:-27px;color:#e8e8df;}
.fc-inline-score .fc-score-manual {bottom:-29px;max-width:100%;font-size:9px;}
.fc-inline-score .fc-score-shadow {transform:translate(17px,18px) scale(.94);}
.fc-inline-score .fc-score-frame {image-rendering:auto;}
.fc-inline-score .fc-mechanical-notation .fc-mechanical-lever{
  pointer-events:auto;
  cursor:ns-resize;
  touch-action:none;
}
.fc-inline-score .fc-mechanical-notation .fc-mechanical-knob{
  width:clamp(8px,1vw,15px);
  height:clamp(8px,1vw,15px);
}
.fc-inline-score .fc-score-radial .fc-score-hud{
  pointer-events:none;
}
.fc-inline-score .fc-score-radial .fc-score-shadow {
  pointer-events:auto;
  opacity:.86;
}
.fc-inline-score .fc-score-radial .fc-score-shadow .fc-fold-wing{
  pointer-events:auto;
  touch-action:none;
  cursor:grab;
}
.fc-inline-score .fc-fold-notation>.fc-fold-stage {width:min(95%,320px);}
.fc-inline-score .fc-radial-needles i{height:2px;}
.fc-inline-score .fc-inline-score-fold {
  position:absolute;
  bottom:19px;right:21px;
  padding:8px 10px;
  color:rgba(232,232,225,.79);
  font:400 10px/1.5 var(--sans),sans-serif;
  border:1px solid rgba(229,228,220,.17);
  z-index:8;
  background:rgba(12,15,13,.35);
}
.fc-inline-score .fc-inline-score-fold[hidden]{display:none!important;}
.fc-inline-score-text{
  align-self:center;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:clamp(20px,3.5vw,45px);
}
.fc-inline-score-text p{
  margin:0;
  max-width:420px;
  color:rgba(41,44,40,.77);
  font:400 clamp(14px,1.15vw,17px)/2.1 var(--serif),serif;
}
.fc-inline-score-text [data-fc-score-state]{
  font:400 clamp(13px,1vw,15px)/1.8 var(--serif),serif;
  color:rgba(41,44,40,.57);
}
.fc-inline-score-actions{display:flex;gap:23px;flex-wrap:wrap;}
.fc-inline-score-actions button {
  color:rgba(41,44,40,.6);
  font:400 10px/1.7 var(--sans),sans-serif;
  border-bottom:1px solid rgba(41,44,40,.23);
}
.fc-inline-score-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  min-height:42px;
  border-top:1px solid rgba(41,44,40,.15);
  margin-top:14px;
  font:400 10px/1.5 var(--sans),sans-serif;
  color:rgba(41,44,40,.47);
  letter-spacing:.065em;
}
.fc-room .fc-inline-score.is-expanded{
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  max-width:none;
  height:100dvh;
  z-index:240;
  overflow-y:auto;
  padding:clamp(18px,4vh,45px) clamp(22px,6vw,100px);
  margin:0;
  border:none;
  background:rgba(237,236,231,.985);
  box-shadow:0 0 0 100vmax rgba(8,11,8,.48);
  isolation:isolate;
}
.fc-inline-score.is-expanded .fc-inline-score-main{
  max-width:1500px;
  margin:0 auto;
  grid-template-columns:minmax(0,1.5fr) minmax(190px,.5fr);
}
.fc-inline-score.is-expanded .fc-inline-score-device{
  height:min(69vh,740px);
}
.fc-inline-score.is-expanded .fc-inline-score-device>.fc-score-cluster {
  width:min(72%,590px);
  height:min(89%,670px);
}
.fc-inline-score.is-expanded .fc-inline-expand::first-letter{text-transform:uppercase;}
body.fc-score-expanded{overflow:hidden!important;}
@media(max-width:850px) {
  .fc-inline-score-main{grid-template-columns:minmax(0,1fr);gap:25px;}
  .fc-inline-score-text{gap:13px;}
  .fc-inline-score-device{height:clamp(390px,64vw,580px);}
  .fc-inline-score-main .fc-inline-score-text{padding:6px;}
}
@media(max-width:700px){
  .fc-room .fc-series-block{padding-top:50px;padding-bottom:96px;}
  .fc-room .fc-series-composition {
    width:calc(100% - 44px);
    margin:8px auto 75px;
  }
  .fc-asset-pair {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:13px;
  }
  .fc-artifact-image{min-height:105px;}
  .fc-artifact-image img{max-height:360px;}
  .fc-artifact figcaption{font-size:10px;display:block;margin-top:7px;padding-top:7px;}
  .fc-artifact figcaption small{display:block;font-size:7px;margin-top:3px;}
  .fc-room .fc-structure-description,
  .fc-room .fc-instrument-description {
    width:min(100%,390px);
    max-width:none;
    font-size:13px;
    line-height:2;
    margin:37px 0 65px auto;
  }
  .fc-instrument-wrap{margin:72px 0 76px;}
  .fc-room .fc-instrument-card{width:100% !important;margin:0;}
  .fc-room .fc-main-subchapter{padding:0 22px;margin-bottom:22px;}
  .fc-room .fc-inline-score{
    width:calc(100% - 44px);
    margin:74px auto 0;
    padding-top:16px;
  }
  .fc-inline-score-top{gap:12px;margin-bottom:22px;}
  .fc-inline-score-top h3{font-size:26px;}
  .fc-inline-expand{font-size:9px;}
  .fc-inline-score-device{height:420px;}
  .fc-inline-score-device>.fc-score-cluster{
    width:min(66%,260px);
    min-width:190px;
    height:315px;
    min-height:0;
  }
  .fc-inline-score .fc-score-manual{display:block;font-size:7px;}
  .fc-inline-score .fc-score-mark{font-size:8px;}
  .fc-inline-score .fc-score-indicator{height:22px;font-size:8px;}
  .fc-inline-score-text p{font-size:13px;line-height:2;}
  .fc-inline-score.is-expanded .fc-inline-score-main{grid-template-columns:1fr;}
  .fc-inline-score.is-expanded .fc-inline-score-device{height:55vh;min-height:340px;}
  .fc-inline-score.is-expanded .fc-inline-score-device>.fc-score-cluster{
    width:min(75%,340px);height:min(80%,410px);
  }
}
@media(prefers-reduced-motion:reduce){
  .fc-inline-score .fc-score-hud,.fc-inline-score .fc-score-shadow {transition:none!important;}
}


/* Score inspection controls and independent hand interaction. */
.fc-inline-score-actions button[data-fc-action="score-zoom-in"],
.fc-inline-score-actions button[data-fc-action="score-zoom-out"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:26px;
  min-height:27px;
  padding:0 5px;
  border:1px solid rgba(36,41,37,.19);
  font-size:17px;
  line-height:1;
}
.fc-inline-score.is-expanded .fc-inline-score-device {touch-action:none;}
.fc-inline-score.is-expanded .fc-inline-score-top{
  position:relative;
  z-index:3;
}
.fc-inline-score.is-expanded .fc-inline-score-top button{
  padding:8px 11px;
  border:1px solid rgba(36,41,37,.25);
}
.fc-inline-score.is-expanded .fc-inline-score-foot {
  max-width:1500px;
  margin-left:auto;
  margin-right:auto;
}
.fc-inline-score.is-expanded .fc-score-shadow{
  opacity:.75;
}


/* v10 — quiet picture switcher: one photograph, two dots, two arrows.
   The photographic frame remains 150% as wide as a Folly film card. */
.fc-room .fc-series-composition .fc-asset-pair {
  position:relative;
  display:block;
  isolation:isolate;
  width:min(100%,calc(var(--fc-card-width) * 1.5));
  max-width:none;
  margin:clamp(18px,2vw,32px) auto 0;
  padding:0;
}
.fc-room .fc-swap-stage {
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:var(--fc-video-aspect,16 / 9);
  min-height:0;
  overflow:hidden;
  background:transparent;
  border:0;
  box-shadow:none;
}
.fc-room .fc-swap-face {
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  margin:0;
  padding:0;
  opacity:0;
  pointer-events:none;
  transition:opacity 2.3s cubic-bezier(.35,.03,.74,1);
}
.fc-room .fc-swap-face.is-current {
  z-index:2;
  opacity:1;
  transition:none;
}
.fc-room .fc-swap-face.is-fading {
  z-index:4;
  opacity:0;
  transition:opacity 2.3s cubic-bezier(.35,.03,.74,1);
}
.fc-room .fc-swap-face .fc-artifact-image {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  min-height:0;
  overflow:hidden;
  padding:0;
  box-sizing:border-box;
  background:transparent;
}
.fc-room .fc-swap-face .fc-artifact-image img {
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  filter:none;
}
.fc-room .fc-swap-controls {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(21px,3.5vw,35px);
  padding:15px 0 0;
  min-height:38px;
  color:#3b413b;
}
.fc-room .fc-swap-arrow {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:25px;
  height:29px;
  padding:0;
  color:rgba(41,45,41,.57);
  background:transparent;
  border:0;
  font:300 19px/1 Arial,Helvetica,sans-serif;
  cursor:pointer;
  transition:color .2s ease;
}
.fc-room .fc-swap-arrow:hover {color:rgba(41,45,41,.95);}
/* Text selection stays entirely unframed: only a slightly heavier word. */
.fc-room .fc-swap-options {
  display:inline-flex;
  align-items:baseline;
  justify-content:center;
  gap:clamp(10px,1.4vw,16px);
  min-width:0;
}
.fc-room .fc-swap-option {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-width:0;
  height:30px;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:transparent;
  color:rgba(41,45,41,.51);
  font:400 clamp(12px,1.05vw,15px)/1.55 var(--serif),serif;
  letter-spacing:.018em;
  white-space:nowrap;
  cursor:pointer;
  transition:color .28s ease;
}
.fc-room .fc-swap-option.is-active {
  color:#343c35;
  font-weight:500;
  text-shadow:0 0 .16px currentColor;
}
.fc-room .fc-swap-option:not(.is-active):hover {
  color:rgba(41,45,41,.81);
}
.fc-room .fc-swap-separator {
  display:inline-block;
  color:rgba(41,45,41,.32);
  font:400 13px/1 var(--serif),serif;
  user-select:none;
}
.fc-room .fc-swap-option:focus-visible,
.fc-room .fc-swap-arrow:focus-visible {
  outline:1px solid rgba(40,49,42,.76);
  outline-offset:2px;
}
.fc-room .fc-instrument-card.fc-card {
  width:var(--fc-card-width) !important;
  min-width:var(--fc-card-width) !important;
  max-width:var(--fc-card-width) !important;
  margin-left:0;
}
.fc-room .fc-instrument-card.fc-card .fc-frame {
  aspect-ratio:var(--fc-video-aspect,16 / 9);
}
@media(max-width:700px) {
  .fc-room .fc-series-composition .fc-asset-pair {
    width:100%;
    margin:14px auto 0;
  }
  .fc-room .fc-swap-stage {aspect-ratio:1.12 / 1;}
  .fc-room .fc-swap-face .fc-artifact-image {padding:0;}
  .fc-room .fc-swap-controls {gap:16px;padding:11px 0 0;}
  .fc-room .fc-swap-arrow {width:25px;height:30px;font-size:18px;}
  .fc-room .fc-swap-options {gap:9px;}
  .fc-room .fc-swap-option {font-size:12px;height:30px;}
  .fc-room .fc-swap-separator {font-size:12px;}
}
@media(prefers-reduced-motion:reduce) {
  .fc-room .fc-swap-face,
  .fc-room .fc-swap-face.is-fading {transition:none!important;}
}


/* ================================================================
   v12 / Score without its viewer.
   The authored score floats on the page with only material shadow.
   No dark stage, HUD glass, panel, modal zoom or surrounding frame.
   The live pointer is strictly opt-in.  Score and film share time.
   ================================================================ */
.fc-room .fc-inline-score {
  --fc-score-ink:rgba(36,42,37,.64);
  width:min(calc(100% - 2 * clamp(24px,7vw,120px)),1050px);
  max-width:1050px;
  margin:clamp(76px,9vw,136px) auto 0;
  padding:0;
  border:0;
  background:transparent;
  isolation:isolate;
  overflow:visible;
}
.fc-room .fc-inline-score-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:0 0 clamp(20px,3vw,37px);
  padding:0;
  border:0;
}
.fc-room .fc-inline-score-top>span {
  font:400 10px/1.6 var(--sans),sans-serif;
  letter-spacing:.12em;
  color:rgba(40,44,40,.45);
}
.fc-room .fc-inline-score-main {
  display:block;
  width:100%;
  max-width:none;
  background:transparent;
  margin:0 auto;
}
.fc-room .fc-inline-score-device {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  isolation:isolate;
  width:100%;
  height:clamp(410px,45vw,620px);
  min-height:0;
  overflow:visible;
  border:0;
  background:none;
  box-shadow:none;
}
.fc-room .fc-inline-score-device>.fc-score-cluster {
  position:relative;
  top:auto;right:auto;bottom:auto;left:auto;
  display:block;
  z-index:2;
  width:min(75%,490px);
  height:min(88%,540px);
  min-height:330px;
  min-width:210px;
  flex:0 0 auto;
  margin:0;
  transform-origin:center center;
  cursor:default;
}
.fc-room .fc-inline-score .fc-score-shadow {
  inset:0;
  border:0;
  background:transparent;
  overflow:visible;
  opacity:1;
  transform:none;
  filter:drop-shadow(5px 9px 12px rgba(35,40,35,.18));
  box-shadow:none;
  pointer-events:auto;
}
.fc-room .fc-inline-score .fc-score-cluster.is-magnetic .fc-score-shadow{
  inset:0;
  border:0;
  background:transparent;
  opacity:1;
  transform:none;
  filter:drop-shadow(5px 9px 12px rgba(35,40,35,.18));
}
.fc-room .fc-inline-score .fc-score-hud{
  display:block;
  position:absolute;
  inset:0;
  z-index:4;
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  cursor:default;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transform:none;
  transition:opacity .36s ease,visibility .36s;
}
/* Show the floating pointer graphics, never the old opaque glass box. */
.fc-room .fc-inline-score[data-fc-pointers="on"] .fc-score-hud,
.fc-room .fc-inline-score[data-fc-pointers="on"] .fc-score-radial.is-hud-awaiting .fc-score-hud{
  opacity:1;
  visibility:visible;
  pointer-events:none;
}
.fc-room .fc-inline-score .fc-score-cluster.is-magnetic .fc-score-hud{
  background:transparent;
  border:0;
  box-shadow:none;
  transform:none;
}
.fc-room .fc-inline-score .fc-score-hud .fc-score-notation {
  display:block;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  background:transparent;
  overflow:visible;
}
.fc-room .fc-inline-score .fc-score-hud .fc-mechanical-notation>img,
.fc-room .fc-inline-score .fc-score-hud .fc-fold-notation>.fc-fold-stage{
  opacity:0;
  pointer-events:none;
}
/* The image in the lower layer is the actual notation.
   Source artwork, not the duplicated HUD image, stays visible. */
.fc-room .fc-inline-score .fc-shadow-scan {
  position:absolute;
  inset:0;
  touch-action:none;
  cursor:ns-resize;
  pointer-events:auto;
}
.fc-room .fc-inline-score .fc-shadow-scan img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:grayscale(1) contrast(1.05);
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
}
.fc-room .fc-inline-score .fc-score-shadow .fc-shadow-scan>i,
.fc-room .fc-inline-score .fc-score-shadow .fc-mechanical-lever{
  opacity:0;
  pointer-events:none;
}
.fc-room .fc-inline-score .fc-score-shadow .fc-fold-stage {
  width:100%;
  opacity:1;
  pointer-events:auto;
}
.fc-room .fc-inline-score .fc-score-radial .fc-score-shadow {
  background:transparent;
  opacity:1;
}
.fc-room .fc-inline-score .fc-score-radial .fc-score-shadow .fc-fold-wing{
  pointer-events:auto;
  cursor:grab;
  touch-action:none;
}
.fc-room .fc-inline-score .fc-score-manual,
.fc-room .fc-inline-score .fc-score-expand,
.fc-room .fc-inline-score .fc-score-mark,
.fc-room .fc-inline-score .fc-score-indicator{
  display:none!important;
}
.fc-room .fc-inline-score .fc-radial-needles{
  display:block;
  position:absolute;
  z-index:6;
}
/* Lightweight pointer switch, initially OFF for each Folly. */
.fc-room .fc-pointer-switch {
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
  padding:4px 0 4px 8px;
  color:rgba(38,43,38,.66);
  background:transparent;
  border:0;
  font:400 11px/1.6 var(--sans),sans-serif;
  cursor:pointer;
}
.fc-room .fc-pointer-switch-track {
  position:relative;
  display:block;
  flex:0 0 auto;
  width:27px;height:15px;
  border:1px solid rgba(39,46,41,.30);
  border-radius:12px;
  background:rgba(38,45,39,.065);
  transition:background .3s,border-color .3s;
}
.fc-room .fc-pointer-switch-track i{
  display:block;
  position:absolute;
  left:2px;top:2px;
  width:9px;height:9px;
  border-radius:50%;
  background:rgba(41,47,42,.51);
  transition:transform .3s,background .3s;
}
.fc-room .fc-inline-score[data-fc-pointers="on"] .fc-pointer-switch-track {
  background:rgba(38,47,40,.20);
  border-color:rgba(39,46,41,.58);
}
.fc-room .fc-inline-score[data-fc-pointers="on"] .fc-pointer-switch-track i{
  transform:translateX(12px);
  background:#29382f;
}
/* A continuous hairline locates the selected phase, without snapping cards. */
.fc-room .fc-inline-score-detail{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  width:min(640px,100%);
  margin:clamp(16px,3vw,34px) auto 0;
  padding:0;
  color:rgba(36,42,37,.62);
  border:0;
  background:transparent;
}
.fc-room .fc-inline-score-detail [data-fc-score-state]{
  font:400 clamp(12px,1vw,15px)/1.7 var(--serif),serif;
  letter-spacing:.01em;
  color:rgba(36,42,37,.7);
  text-align:center;
}
.fc-room .fc-score-timeline{
  display:block;
  width:100%;
  height:22px;
  min-height:22px;
  margin:0;
  padding:0;
  background:transparent;
  cursor:ew-resize;
  -webkit-appearance:none;
  appearance:none;
}
.fc-room .fc-score-timeline::-webkit-slider-runnable-track {
  height:1px;
  background:rgba(37,45,39,.34);
}
.fc-room .fc-score-timeline::-moz-range-track {
  height:1px;
  background:rgba(37,45,39,.34);
}
.fc-room .fc-score-timeline::-webkit-slider-thumb {
  -webkit-appearance:none;
  width:10px;height:10px;
  margin-top:-4.5px;
  border-radius:50%;
  border:1px solid rgba(32,42,36,.69);
  background:#e9e9e2;
}
.fc-room .fc-score-timeline::-moz-range-thumb {
  width:10px;height:10px;
  border-radius:50%;
  border:1px solid rgba(32,42,36,.69);
  background:#e9e9e2;
}
.fc-room .fc-score-minimal-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  width:100%;
  font:400 10px/1.5 var(--sans),sans-serif;
  letter-spacing:.07em;
  color:rgba(37,44,39,.46);
}
.fc-room .fc-score-minimal-actions button{
  font:inherit;
  letter-spacing:inherit;
  color:inherit;
  border:0;
  background:transparent;
  cursor:pointer;
}
.fc-room .fc-score-minimal-actions button:hover{color:#242b25;}
.fc-room .fc-pointer-switch:focus-visible,
.fc-room .fc-score-timeline:focus-visible,
.fc-room .fc-score-minimal-actions button:focus-visible{
  outline:1px solid rgba(39,47,41,.72);
  outline-offset:3px;
}
@media(max-width:850px){
  .fc-room .fc-inline-score-main{display:block;}
  .fc-room .fc-inline-score-device{
    height:clamp(375px,57vw,550px);
  }
}
@media(max-width:700px){
  .fc-room .fc-inline-score{
    width:calc(100% - 44px);
    margin:70px auto 0;
  }
  .fc-room .fc-inline-score-top{margin-bottom:15px;}
  .fc-room .fc-inline-score-device{
    height:clamp(310px,93vw,420px);
  }
  .fc-room .fc-inline-score-device>.fc-score-cluster {
    width:min(80%,300px);
    min-width:0;
    height:min(88%,350px);
    min-height:0;
  }
  .fc-room .fc-pointer-switch{font-size:10px;gap:7px;}
  .fc-room .fc-inline-score-detail{
    gap:12px;
    margin-top:13px;
  }
  .fc-room .fc-score-minimal-actions{font-size:9px;}
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-pointer-switch-track,
  .fc-room .fc-pointer-switch-track i,
  .fc-room .fc-inline-score .fc-score-hud {transition:none!important;}
}


/* Optional live needles can be dragged to seek the folio timeline. */
.fc-room .fc-inline-score[data-fc-pointers="on"] .fc-score-hud .fc-radial-needles {
  pointer-events:auto;
  touch-action:none;
  cursor:ew-resize;
}
.fc-room .fc-inline-score[data-fc-pointers="off"] .fc-score-hud .fc-radial-needles {
  pointer-events:none;
}


/* v14 — physical alignment with the first unsnapped Folly film fragment.
   One shared left inset anchors the film, photographs and instrument clip.
   The score is a smaller, closer piece of paper below the timeline. */
.fc-room .fc-series-block {
  --fc-film-left:clamp(205px,18vw,370px);
}
.fc-room .fc-strip {
  padding-left:var(--fc-film-left);
}
.fc-room .fc-series-composition {
  display:block;
  width:calc(100% - var(--fc-film-left) - clamp(24px,7vw,120px));
  max-width:none;
  margin-left:var(--fc-film-left);
  margin-right:0;
}
.fc-room .fc-series-composition .fc-asset-pair {
  margin-left:0;
  margin-right:0;
}
.fc-room .fc-swap-face .fc-artifact-image {
  justify-content:flex-start;
}
.fc-room .fc-swap-face .fc-artifact-image img {
  object-position:left center;
}
.fc-room .fc-instrument-wrap {
  margin-left:0;
  margin-right:0;
}
.fc-room .fc-instrument-card.fc-card {
  margin-left:0;
  margin-right:0;
}
.fc-room .fc-swap-controls {
  gap:0;
  justify-content:center;
}
/* Only the word tabs are controls: no auxiliary right-arrow button. */
.fc-room .fc-inline-score {
  width:min(calc(100% - 2 * clamp(24px,7vw,120px)),830px);
  max-width:830px;
  margin:clamp(32px,4vw,54px) auto 0;
}
.fc-room .fc-inline-score-top {
  margin-bottom:clamp(10px,1.5vw,19px);
}
.fc-room .fc-inline-score-device {
  height:clamp(300px,33vw,465px);
}
.fc-room .fc-inline-score-device>.fc-score-cluster {
  width:min(75%,380px);
  height:min(88%,405px);
  min-width:0;
  min-height:255px;
}
.fc-room .fc-inline-score-detail {
  gap:13px;
  margin-top:clamp(7px,1.7vw,18px);
}
@media(max-width:850px){
  .fc-room .fc-inline-score-device {
    height:clamp(300px,48vw,420px);
  }
}
@media(max-width:700px){
  .fc-room .fc-series-block {
    --fc-film-left:clamp(34px,9vw,70px);
  }
  .fc-room .fc-strip {
    padding-left:var(--fc-film-left);
  }
  .fc-room .fc-series-composition {
    width:calc(100% - var(--fc-film-left) - 22px);
    max-width:none;
    margin-left:var(--fc-film-left);
    margin-right:0;
  }
  .fc-room .fc-series-composition .fc-asset-pair {
    margin-left:0;
    margin-right:0;
  }
  .fc-room .fc-inline-score {
    width:calc(100% - 44px);
    margin:30px auto 0;
  }
  .fc-room .fc-inline-score-device {
    height:clamp(270px,75vw,330px);
  }
  .fc-room .fc-inline-score-device>.fc-score-cluster {
    width:min(76%,245px);
    height:min(86%,280px);
    min-height:0;
    min-width:0;
  }
  .fc-room .fc-inline-score-detail {
    gap:10px;
    margin-top:8px;
  }
}


/* ==============================================================
   v15 · Folly chapters, image-edge typographic tabs, quiet divider.
   Three reading movements: a picture, film fragments, and notation.
   ============================================================== */
.fc-room .fc-page-heading {
  padding-bottom:clamp(28px,4vh,54px);
}
.fc-room .fc-page-heading .fc-heading-primary>p{display:none;}
.fc-room .fc-series-heading {
  display:flex;
  align-items:baseline;
  gap:clamp(18px,3.2vw,52px);
  padding:0 clamp(24px,7vw,120px) clamp(28px,5vw,55px);
}
.fc-room .fc-series-heading h2 {
  margin:0;
  font:400 clamp(34px,4.4vw,64px)/1.25 var(--serif),serif;
  letter-spacing:.045em;
  color:#2e352e;
}
.fc-room .fc-series-heading p {
  margin:0;
  font:400 clamp(16px,1.55vw,24px)/1.5 var(--serif),serif;
  letter-spacing:.035em;
  color:rgba(43,49,43,.62);
}
.fc-room .fc-artifact-reading {
  display:block;
  width:min(100%,calc(var(--fc-card-width) * 1.5));
  margin:0;
  padding:0;
}
.fc-room .fc-artifact-reading+.fc-artifact-reading{
  margin-top:clamp(58px,9vw,135px);
}
.fc-room .fc-artifact-reading .fc-asset-pair {
  width:100%;
  margin-left:0;
  margin-right:0;
}
.fc-room .fc-artifact-reading .fc-structure-description {
  width:min(580px,78%);
  max-width:100%;
  margin-left:auto;
  margin-right:0;
  text-align:left;
}
/* The switchers occupy the image's own left-bottom corner.
   No external pager, block, mat or extra frame is added. */
.fc-room .fc-swap-stage {
  position:relative;
  overflow:hidden;
  border:0;
  background:transparent;
  box-shadow:none;
}
.fc-room .fc-swap-face {transition:opacity 1.65s cubic-bezier(.35,.03,.72,1);}
.fc-room .fc-swap-face.is-fading{transition:opacity 1.65s cubic-bezier(.35,.03,.72,1);}
.fc-room .fc-swap-controls {
  position:absolute;
  z-index:8;
  left:clamp(10px,1.55vw,22px);
  right:auto;
  bottom:clamp(12px,1.8vw,27px);
  width:auto;
  min-height:0;
  padding:0;
  margin:0;
  justify-content:flex-start;
  background:transparent;
  border:0;
  box-shadow:none;
  pointer-events:auto;
}
.fc-room .fc-swap-options {
  justify-content:flex-start;
  align-items:baseline;
  gap:clamp(10px,1.6vw,20px);
  text-shadow:0 1px 8px rgba(237,238,231,.55);
}
.fc-room .fc-swap-option {
  display:inline-block;
  width:auto;
  height:auto;
  padding:5px 0;
  margin:0;
  font:400 clamp(15px,1.55vw,22px)/1.5 var(--serif),serif;
  color:rgba(41,45,41,.65);
  text-align:left;
  letter-spacing:.018em;
  text-shadow:inherit;
}
.fc-room .fc-swap-option.is-active {
  color:#2b342d;
  font-weight:500;
  text-shadow:0 0 .22px currentColor,0 1px 8px rgba(244,244,239,.7);
}
.fc-room .fc-swap-separator {
  font:400 clamp(14px,1.3vw,19px)/1.5 var(--serif),serif;
  color:rgba(41,45,41,.43);
  text-shadow:inherit;
}
.fc-room .fc-instrument-wrap {
  padding-top:0;
  border-top:0;
}
.fc-room .fc-instrument-description {
  width:min(460px,var(--fc-card-width));
  max-width:var(--fc-card-width);
  margin-right:auto;
  margin-left:0;
  text-align:left;
}
/* Film notes move to the upper-right corner of the film section. */
.fc-room .fc-film-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:clamp(25px,6vw,100px);
  padding:0 clamp(23px,6vw,100px) 0 var(--fc-film-left);
  margin:clamp(28px,5vw,66px) 0 clamp(14px,2.2vw,29px);
}
.fc-room .fc-film-head h3{
  flex:0 0 auto;
  margin:0;
  color:#293128;
  font:400 clamp(22px,2vw,32px)/1.45 var(--serif),serif;
  letter-spacing:.025em;
}
.fc-room .fc-film-head .fc-instruction{
  display:block;
  flex:0 1 400px;
  max-width:400px;
  margin:0;
  text-align:right;
  font:400 clamp(12px,1vw,15px)/1.8 var(--serif),serif;
  color:rgba(40,46,41,.7);
}
.fc-room .fc-film-head .fc-instruction span{
  display:block;
  color:rgba(40,46,41,.50);
}
/* Film's continuous range is ABOVE the images, sharing their left edge. */
.fc-room .fc-navigation{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:clamp(15px,2.2vw,34px);
  margin:0 clamp(23px,6vw,100px) clamp(15px,1.9vw,27px) var(--fc-film-left);
  padding:9px 0 0;
  border-top:1px solid rgba(37,44,39,.14);
  min-height:32px;
  height:auto;
}
.fc-room .fc-navigation .fc-rail-index {
  flex:0 0 auto;
  min-width:67px;
}
.fc-room .fc-navigation .fc-rail-index strong {
  font-size:20px;
}
.fc-room .fc-navigation .fc-slider {
  max-width:750px;
  flex:1 1 240px;
  height:28px;
}
/* Remove old smaller subhead markers without touching the works themselves. */
.fc-room .fc-instrument-wrap .fc-subchapter {
  margin-bottom:clamp(19px,2.7vw,40px);
}
.fc-room .fc-instrument-wrap .fc-subchapter>span,
.fc-room .fc-main-subchapter,
.fc-room .fc-sideways-hint,
.fc-room .fc-series-number,
.fc-room .fc-series-title>p,
.fc-room .fc-essay-index {display:none!important;}
.fc-room .fc-inline-score-top {
  justify-content:flex-end;
  margin-bottom:clamp(12px,2vw,24px);
}
.fc-room .fc-inline-score-top>span{display:none;}
.fc-room .fc-score-minimal-actions [data-fc-score-frame-label]{display:none;}
.fc-room .fc-inline-score-detail [data-fc-score-state]{
  font-size:12px;
  letter-spacing:0;
}
.fc-room .fc-series-block[data-fc-series-block="1"] {background:#e7e6e0;}
.fc-room .fc-series-block[data-fc-series-block="0"] {background:transparent;}
/* A scroll-length, sticky reading threshold makes both directions linger
   on only a title and a cropped portion of the neighbouring construction.
   Scroll remains native, including on touch: no blocking wheel handler. */
.fc-room .fc-chapter-gate {
  display:block;
  position:relative;
  height:clamp(850px,142vh,1650px);
  padding:0;
  margin:0;
  background:linear-gradient(180deg,#ebeae5 0%,#e8e7e1 60%,#e7e6e0 100%);
  overflow:clip;
  isolation:isolate;
}
.fc-room .fc-gate-sticky {
  display:grid;
  position:sticky;
  top:clamp(38px,9vh,105px);
  width:100%;
  height:clamp(490px,76vh,800px);
  align-items:center;
  justify-items:center;
  isolation:isolate;
}
.fc-room .fc-gate-view {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(27px,5.5vh,66px);
  opacity:0;
  pointer-events:none;
  transition:opacity .75s ease;
}
.fc-room .fc-chapter-gate[data-fc-direction="down"] .fc-gate-view-down,
.fc-room .fc-chapter-gate[data-fc-direction="up"] .fc-gate-view-up {
  opacity:1;
  pointer-events:auto;
}
.fc-room .fc-gate-visual {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(18px,3vw,40px);
}
.fc-room .fc-gate-visual h2 {
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:clamp(11px,2vw,30px);
  margin:0;
  color:#2d352e;
  font:400 clamp(25px,3.4vw,49px)/1.35 var(--serif),serif;
  letter-spacing:.035em;
}
.fc-room .fc-gate-visual h2 span {
  color:rgba(42,48,42,.64);
  font:400 clamp(15px,1.65vw,24px)/1.6 var(--serif),serif;
}
.fc-room .fc-gate-preview {
  position:relative;
  display:block;
  width:min(660px,67vw);
  height:clamp(132px,20vw,248px);
  overflow:hidden;
  background:transparent;
  border:0;
  mask-image:linear-gradient(180deg,#000 77%,transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,#000 77%,transparent 100%);
}
.fc-room .fc-gate-preview img {
  display:block;
  width:100%;
  height:auto;
  min-height:100%;
  object-fit:cover;
  object-position:center top;
  filter:saturate(.86) contrast(.98);
  pointer-events:none;
}
.fc-room .fc-gate-continue {
  display:inline-flex;
  gap:clamp(12px,2vw,30px);
  align-items:baseline;
  justify-content:center;
  color:rgba(36,43,37,.79);
  border:0;
  background:none;
  padding:9px 8px;
  font:400 clamp(12px,1.1vw,16px)/1.7 var(--serif),serif;
  letter-spacing:.035em;
  cursor:pointer;
  transition:color .25s;
}
.fc-room .fc-gate-continue:hover {color:#151d17;}
.fc-room .fc-gate-continue span {font:400 20px/1 var(--serif),serif;}
.fc-room .fc-gate-continue:focus-visible {
  outline:1px solid rgba(39,45,40,.58);
  outline-offset:3px;
}
@media(max-width:700px){
  .fc-room .fc-series-heading {
    padding:0 22px 30px;
    gap:13px;
  }
  .fc-room .fc-series-heading h2 {font-size:32px;}
  .fc-room .fc-series-heading p {font-size:16px;}
  .fc-room .fc-artifact-reading {width:100%;}
  .fc-room .fc-artifact-reading .fc-structure-description{
    width:min(88%,390px);
    margin-right:0;
    margin-left:auto;
  }
  .fc-room .fc-swap-controls {bottom:9px;left:11px;}
  .fc-room .fc-swap-options {gap:10px;}
  .fc-room .fc-swap-option {font-size:14px;}
  .fc-room .fc-swap-separator {font-size:13px;}
  .fc-room .fc-film-head {
    gap:20px;
    align-items:flex-start;
    padding:0 22px 0 var(--fc-film-left);
    margin:28px 0 18px;
  }
  .fc-room .fc-film-head h3 {font-size:18px;min-width:0;}
  .fc-room .fc-film-head .fc-instruction {
    flex:0 1 230px;
    max-width:230px;
    font-size:11px;
    line-height:1.65;
    text-align:right;
  }
  .fc-room .fc-navigation {
    margin:0 22px 13px var(--fc-film-left);
    padding:7px 0 0;
    gap:13px;
  }
  .fc-room .fc-navigation .fc-rail-index {min-width:52px;}
  .fc-room .fc-navigation .fc-rail-index strong {font-size:17px;}
  .fc-room .fc-navigation .fc-slider {min-width:48px;}
  .fc-room .fc-chapter-gate {height:126vh;min-height:690px;}
  .fc-room .fc-gate-sticky {
    top:8vh;
    height:77vh;
    min-height:420px;
  }
  .fc-room .fc-gate-visual{gap:17px;}
  .fc-room .fc-gate-visual h2 {gap:10px;font-size:28px;}
  .fc-room .fc-gate-visual h2 span {font-size:15px;}
  .fc-room .fc-gate-preview {
    width:min(80vw,440px);
    height:clamp(120px,35vw,195px);
  }
  .fc-room .fc-gate-continue {font-size:12px;padding:9px 18px;text-align:center;}
}
@media(prefers-reduced-motion:reduce) {
  .fc-room .fc-gate-view,
  .fc-room .fc-swap-face,
  .fc-room .fc-swap-face.is-fading {transition:none!important;}
}


/* A caption begins at the right side of its associated physical work.
   Its right edge coincides with the photo or film, not the wider page. */
.fc-room .fc-artifact-reading .fc-structure-description {
  margin-top:clamp(28px,4vw,64px);
  margin-bottom:0;
}
.fc-room .fc-instrument-wrap {
  width:min(100%,var(--fc-card-width));
}
.fc-room .fc-instrument-description {
  width:78%;
  max-width:100%;
  margin-left:auto;
  margin-right:0;
}
@media(max-width:700px){
  .fc-room .fc-artifact-reading .fc-structure-description {
    margin-top:28px;
    margin-bottom:0;
  }
  .fc-room .fc-instrument-wrap {width:min(100%,var(--fc-card-width));}
  .fc-room .fc-instrument-description {
    width:88%;
    margin-left:auto;
    margin-right:0;
  }
}


/* ==============================================================
   v16 · Quiet illustrated archive.
   The photo is at left; its own changing archive slip stays below;
   a longer changing note occupies the right-bottom reading field.
   No overlay captions, no switch shadows, no fabricated location/date.
   ============================================================== */
.fc-room .fc-series-heading {
  align-items:baseline;
  gap:clamp(18px,2.2vw,37px);
  padding-bottom:clamp(34px,4.6vw,68px);
}
.fc-room .fc-series-heading h2,
.fc-room .fc-series-heading p {
  font:400 clamp(18px,1.65vw,27px)/1.55 var(--serif),serif;
  letter-spacing:.035em;
  margin:0;
}
.fc-room .fc-series-heading h2 {color:#2d352e;}
.fc-room .fc-series-heading p {color:rgba(43,49,43,.68);}
/* Each complete pair occupies the width of the available reading area.
   The first grid column remains exactly the photograph's former width. */
.fc-room .fc-series-composition {
  display:block;
}
.fc-room .fc-series-composition .fc-asset-pair {
  display:grid;
  grid-template-columns:minmax(0,min(100%,calc(var(--fc-card-width) * 1.5))) minmax(0,1fr);
  align-items:stretch;
  column-gap:clamp(26px,3.5vw,75px);
  width:100%;
  max-width:none;
  margin:clamp(18px,2vw,32px) 0 0;
  padding:0;
}
.fc-room .fc-series-composition .fc-asset-pair+.fc-asset-pair {
  margin-top:clamp(74px,11vw,150px);
}
.fc-room .fc-photo-column {
  display:block;
  min-width:0;
  width:100%;
}
.fc-room .fc-photo-column .fc-swap-stage {
  display:block;
  position:relative;
  width:100%;
  max-width:100%;
  overflow:hidden;
  box-shadow:none;
  background:transparent;
  border:0;
}
.fc-room .fc-photo-column .fc-swap-controls {
  position:relative;
  inset:auto;
  left:auto;
  right:auto;
  top:auto;
  bottom:auto;
  z-index:5;
  display:flex;
  align-items:baseline;
  justify-content:flex-start;
  width:100%;
  min-height:0;
  gap:0;
  padding:clamp(9px,1.4vw,17px) 0 0;
  margin:0;
  text-shadow:none;
  box-shadow:none;
  background:none;
}
.fc-room .fc-photo-column .fc-swap-options {
  justify-content:flex-start;
  align-items:baseline;
  gap:clamp(10px,1.8vw,22px);
  text-shadow:none;
  filter:none;
}
.fc-room .fc-photo-column .fc-swap-option {
  font:400 clamp(18px,1.65vw,26px)/1.45 var(--serif),serif;
  color:rgba(43,48,43,.5);
  padding:1px 0;
  margin:0;
  text-shadow:none;
  filter:none;
  transition:color .26s ease;
}
.fc-room .fc-photo-column .fc-swap-option.is-active {
  color:#303830;
  font-weight:500;
  text-shadow:none;
}
.fc-room .fc-photo-column .fc-swap-separator {
  font:400 clamp(12px,1.25vw,18px)/1.5 var(--serif),serif;
  color:rgba(43,48,43,.35);
  text-shadow:none;
  filter:none;
}
.fc-room .fc-photo-meta {
  width:100%;
  min-height:0;
  margin:clamp(17px,2.35vw,31px) 0 0;
  padding:0;
  border:0;
  color:rgba(42,48,42,.6);
}
.fc-room .fc-photo-meta-panel[hidden],
.fc-room .fc-aside-panel[hidden] {
  display:none!important;
}
.fc-room .fc-photo-meta-fields {
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:clamp(15px,2vw,32px);
  padding:0;
  margin:0;
  color:rgba(45,51,45,.50);
  font:400 clamp(10px,.83vw,12px)/1.8 var(--sans),sans-serif;
  letter-spacing:.03em;
}
.fc-room .fc-photo-meta-note {
  margin:clamp(5px,.8vw,12px) 0 0;
  max-width:min(100%,580px);
  font:400 clamp(12px,1vw,15px)/2 var(--serif),serif;
  color:rgba(45,51,45,.68);
  letter-spacing:.012em;
}
.fc-room .fc-asset-aside {
  align-self:end;
  min-width:0;
  max-width:100%;
  margin:0;
  padding:0 0 clamp(17px,2.7vw,46px);
  background:none;
  border:0;
  box-shadow:none;
}
.fc-room .fc-aside-panel {
  display:block;
  max-width:100%;
  margin:0;
  padding:0;
  font:400 clamp(14px,1.12vw,18px)/2.15 var(--serif),serif;
  letter-spacing:.012em;
  color:rgba(44,49,44,.7);
  text-align:left;
  overflow-wrap:anywhere;
}
/* Instrument film remains exactly one Folly movie card wide. Its longer
   description uses the same right-hand reading field as the photographs. */
.fc-room .fc-instrument-wrap {
  width:100%;
  max-width:none;
  margin:clamp(78px,12vw,168px) 0 clamp(70px,10vw,128px);
  border:0;
}
.fc-room .fc-instrument-layout {
  display:grid;
  grid-template-columns:minmax(0,var(--fc-card-width)) minmax(0,1fr);
  align-items:end;
  gap:clamp(26px,3.5vw,75px);
  width:100%;
}
.fc-room .fc-instrument-card.fc-card {
  width:var(--fc-card-width)!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0;
}
.fc-room .fc-instrument-layout .fc-instrument-description {
  align-self:end;
  width:auto;
  max-width:560px;
  margin:0 0 clamp(11px,1.6vw,23px);
  padding:0;
  color:rgba(44,49,44,.70);
  font:400 clamp(14px,1.12vw,18px)/2.15 var(--serif),serif;
  letter-spacing:.012em;
  text-align:left;
}
/* In the theatre the title and two-line invitation sit together at left. */
.fc-room .fc-film-head {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:clamp(6px,.8vw,12px);
  padding-right:clamp(23px,6vw,100px);
  margin-bottom:clamp(22px,2.8vw,42px);
}
.fc-room .fc-film-head h3 {
  margin:0;
  font:400 clamp(25px,2.2vw,35px)/1.45 var(--serif),serif;
  letter-spacing:.035em;
}
.fc-room .fc-film-head .fc-instruction {
  flex:none;
  width:auto;
  max-width:500px;
  margin:0;
  padding:0;
  font:400 clamp(12px,1.02vw,15px)/1.95 var(--serif),serif;
  color:rgba(42,48,42,.67);
  text-align:left;
}
.fc-room .fc-film-head .fc-instruction span {
  color:rgba(42,48,42,.53);
}
.fc-room .fc-navigation {
  position:relative;
  display:block;
  margin:0 clamp(23px,6vw,100px) clamp(20px,2.6vw,34px) var(--fc-film-left);
  padding:0;
  width:auto;
  height:22px;
  min-height:22px;
  border:0;
  background:none;
}
.fc-room .fc-navigation .fc-rail-index {
  display:none!important;
}
.fc-room .fc-navigation .fc-slider {
  display:block;
  width:100%;
  max-width:none;
  min-width:0;
  flex:none;
  height:22px;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  appearance:none;
  -webkit-appearance:none;
}
.fc-room .fc-navigation .fc-slider::-webkit-slider-runnable-track {
  height:1px;
  background:rgba(40,47,41,.31);
  box-shadow:none;
}
.fc-room .fc-navigation .fc-slider::-moz-range-track {
  height:1px;
  background:rgba(40,47,41,.31);
  box-shadow:none;
}
/* The score has its own small title. The optional pointer lives below
   the notation and timeline and stays switched off initially. */
.fc-room .fc-inline-score-top {
  display:flex;
  justify-content:flex-start;
  align-items:baseline;
  margin:0 0 clamp(14px,2vw,27px);
  padding:0;
}
.fc-room .fc-inline-score-top h3 {
  display:block;
  margin:0;
  padding:0;
  color:#293329;
  font:400 clamp(24px,2.1vw,34px)/1.45 var(--serif),serif;
  letter-spacing:.035em;
}
.fc-room .fc-score-controls-bottom {
  display:flex;
  justify-content:flex-end;
  align-items:center;
  flex-wrap:wrap;
  gap:clamp(12px,2.5vw,32px);
  width:100%;
  margin:clamp(10px,1.6vw,21px) 0 0;
  padding:0;
}
.fc-room .fc-score-controls-bottom .fc-pointer-switch{
  margin:0;
  padding:3px 0;
}
.fc-room .fc-score-controls-bottom .fc-score-minimal-actions{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:0;
  width:auto;
  margin-right:auto;
}
@media(max-width:850px){
  .fc-room .fc-series-composition .fc-asset-pair {
    grid-template-columns:minmax(0,min(100%,calc(var(--fc-card-width) * 1.5))) minmax(0,1fr);
    gap:clamp(18px,3vw,35px);
  }
}
@media(max-width:700px){
  .fc-room .fc-series-heading h2,
  .fc-room .fc-series-heading p{
    font-size:clamp(17px,4.3vw,23px);
  }
  .fc-room .fc-series-composition .fc-asset-pair {
    display:block;
    width:100%;
    margin:14px 0 0;
  }
  .fc-room .fc-series-composition .fc-asset-pair+.fc-asset-pair {
    margin-top:clamp(58px,10vw,100px);
  }
  .fc-room .fc-photo-column{width:100%;}
  .fc-room .fc-photo-column .fc-swap-controls{
    padding:10px 0 0;
  }
  .fc-room .fc-photo-column .fc-swap-options {gap:12px;}
  .fc-room .fc-photo-column .fc-swap-option {
    font-size:clamp(17px,4.35vw,21px);
  }
  .fc-room .fc-photo-meta {
    margin-top:18px;
  }
  .fc-room .fc-photo-meta-fields{
    gap:14px;
    font-size:10px;
  }
  .fc-room .fc-photo-meta-note{
    font-size:12px;
    line-height:1.9;
  }
  .fc-room .fc-asset-aside{
    width:100%;
    margin:24px 0 0;
    padding:0;
  }
  .fc-room .fc-aside-panel {
    font-size:13px;
    line-height:2;
  }
  .fc-room .fc-instrument-wrap {
    width:100%;
    margin:69px 0 74px;
  }
  .fc-room .fc-instrument-layout {
    display:block;
  }
  .fc-room .fc-instrument-card.fc-card {
    width:var(--fc-card-width)!important;
    min-width:0!important;
    max-width:100%!important;
  }
  .fc-room .fc-instrument-layout .fc-instrument-description{
    margin:24px 0 0;
    width:100%;
    max-width:100%;
    font-size:13px;
    line-height:2;
  }
  .fc-room .fc-film-head {
    gap:7px;
    padding:0 22px 0 var(--fc-film-left);
    margin:22px 0 23px;
  }
  .fc-room .fc-film-head h3 {
    font-size:clamp(23px,5vw,29px);
  }
  .fc-room .fc-film-head .fc-instruction {
    flex:none;
    max-width:100%;
    font-size:11px;
    text-align:left;
  }
  .fc-room .fc-navigation {
    margin:0 22px 18px var(--fc-film-left);
    height:20px;
    min-height:20px;
    border:0;
    padding:0;
  }
  .fc-room .fc-navigation .fc-slider{
    width:100%;
    min-width:0;
    height:20px;
  }
  .fc-room .fc-inline-score-top {
    margin-bottom:15px;
  }
  .fc-room .fc-inline-score-top h3 {
    font-size:24px;
  }
  .fc-room .fc-score-controls-bottom{
    justify-content:flex-end;
    gap:11px;
    margin-top:12px;
  }
}


/* Keep the secondary reading field spacious on smaller laptop screens. */
@media(min-width:701px) and (max-width:1000px){
  .fc-room .fc-series-composition .fc-asset-pair{
    display:block;
    width:100%;
  }
  .fc-room .fc-photo-column{
    width:min(100%,calc(var(--fc-card-width) * 1.5));
  }
  .fc-room .fc-asset-aside{
    width:min(100%,580px);
    margin-top:clamp(20px,3vw,36px);
    padding:0;
  }
  .fc-room .fc-instrument-layout{
    display:block;
  }
  .fc-room .fc-instrument-layout .fc-instrument-description{
    max-width:580px;
    margin:clamp(20px,3vw,36px) 0 0;
  }
}


/* v17 · Active photo title grows like a fragment index (01 / 06):
   the other title stays quietly smaller, with no shadow or underline. */
.fc-room .fc-photo-column .fc-swap-options{
  display:inline-flex;
  gap:clamp(10px,1.5vw,19px);
  align-items:baseline;
  justify-content:flex-start;
  min-height:clamp(34px,3vw,43px);
}
.fc-room .fc-photo-column .fc-swap-option {
  display:inline-block;
  flex:0 0 auto;
  font:400 clamp(12px,.87vw,14px)/1.4 var(--serif),serif;
  color:rgba(46,52,46,.39);
  text-shadow:none!important;
  filter:none;
  transform:none;
  padding:0;
  vertical-align:baseline;
  transition:font-size .48s cubic-bezier(.22,.78,.26,1),
             color .38s ease,font-weight .38s ease;
}
.fc-room .fc-photo-column .fc-swap-option.is-active {
  font-size:clamp(22px,1.8vw,29px);
  font-weight:500;
  color:#30382f;
  text-shadow:none!important;
}
.fc-room .fc-photo-column .fc-swap-separator{
  font-size:clamp(11px,1vw,16px);
  color:rgba(45,51,45,.34);
  text-shadow:none!important;
}
/* Old words first fade OUT. The matching date/place and longer paragraph
   subsequently fade IN, rather than cutting from one set to the next. */
.fc-room .fc-photo-meta-panel,
.fc-room .fc-aside-panel{
  opacity:1;
  transition:opacity .52s ease;
}
.fc-room .fc-photo-meta-panel.is-copy-leaving,
.fc-room .fc-aside-panel.is-copy-leaving{
  opacity:0;
  transition:opacity .33s ease;
}
.fc-room .fc-photo-meta-panel.is-copy-entering,
.fc-room .fc-aside-panel.is-copy-entering{
  opacity:0;
  transition:none!important;
}
/* Align caption to the *painted* object-fit image, not its empty frame.
   The JavaScript geometry sets these measurements on image load / resize. */
@media(min-width:1201px) {
  .fc-room .fc-series-composition .fc-asset-pair {
    display:block;
    position:relative;
    width:100%;
    min-height:var(--fc-photo-min-height,auto);
    overflow:visible;
    isolation:isolate;
  }
  .fc-room .fc-asset-pair .fc-photo-column {
    width:min(100%,calc(var(--fc-card-width) * 1.5));
    max-width:none;
    margin:0;
  }
  .fc-room .fc-asset-pair .fc-asset-aside {
    position:absolute;
    align-self:auto;
    top:var(--fc-caption-top,calc(var(--fc-card-width) * .92 + 35px));
    left:var(--fc-caption-left,calc(var(--fc-card-width) * 1.5 + 50px));
    width:calc(100% - var(--fc-caption-left,calc(var(--fc-card-width) * 1.5 + 50px)));
    max-width:none;
    min-width:0;
    margin:0;
    padding:0;
    transform:none;
  }
  .fc-room .fc-instrument-layout{
    position:relative;
    display:block;
    min-height:var(--fc-instrument-min-height,auto);
    overflow:visible;
  }
  .fc-room .fc-instrument-layout .fc-instrument-description{
    position:absolute;
    align-self:auto;
    top:var(--fc-instrument-caption-top,calc(var(--fc-card-width) * .62 + 35px));
    left:var(--fc-instrument-caption-left,calc(var(--fc-card-width) + 50px));
    width:calc(100% - var(--fc-instrument-caption-left,calc(var(--fc-card-width) + 50px)));
    max-width:none;
    margin:0;
    padding:0;
    transform:none;
  }
}
/* Smaller screens continue to read image, metadata, then prose without
   squeezing the right-hand column into unreadably narrow measures. */
@media(min-width:701px) and (max-width:1200px){
  .fc-room .fc-series-composition .fc-asset-pair{display:block;width:100%;}
  .fc-room .fc-photo-column{width:min(100%,calc(var(--fc-card-width)*1.5));}
  .fc-room .fc-asset-aside{position:static;width:min(100%,590px);margin:26px 0 0;padding:0;}
  .fc-room .fc-instrument-layout{display:block;}
  .fc-room .fc-instrument-layout .fc-instrument-description{position:static;width:min(100%,590px);max-width:none;margin:26px 0 0;}
}
@media(max-width:700px){
  .fc-room .fc-photo-column .fc-swap-option{
    font-size:11px;
  }
  .fc-room .fc-photo-column .fc-swap-option.is-active{
    font-size:clamp(19px,5.1vw,24px);
  }
  .fc-room .fc-photo-column .fc-swap-options{
    min-height:34px;
    gap:12px;
  }
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-photo-column .fc-swap-option,
  .fc-room .fc-photo-meta-panel,
  .fc-room .fc-aside-panel{transition:none!important;}
}


/* v18 · Real chapter boundary, not a blurred preview or half-loaded page.
   The previous chapter is removed before the next film nodes are created.
   Native scrolling brings the reader here; the last transition needs
   an intentional long pull, wheel resistance, or a click on this text. */
.fc-room .fc-chapter-gate,
.fc-room .fc-chapter-gate[data-fc-direction="up"],
.fc-room .fc-chapter-gate[data-fc-direction="down"]{
  --fc-gate-pull:0;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100svh;
  min-height:min(100svh,490px);
  max-height:none;
  overflow:visible;
  padding:0 22px;
  margin:0;
  box-sizing:border-box;
  border:0;
  background:transparent;
  background-image:none;
  box-shadow:none;
  isolation:auto;
  overscroll-behavior-y:contain;
}
.fc-room .fc-chapter-gate .fc-gate-sticky,
.fc-room .fc-chapter-gate .fc-gate-preview,
.fc-room .fc-chapter-gate .fc-gate-visual,
.fc-room .fc-chapter-gate .fc-gate-view {
  display:none!important;
}
.fc-room .fc-chapter-gate .fc-gate-continue {
  display:inline-flex;
  flex:0 1 auto;
  flex-direction:row;
  justify-content:center;
  align-items:baseline;
  gap:clamp(13px,2vw,28px);
  padding:16px 20px;
  margin:0;
  width:auto;
  max-width:calc(100vw - 40px);
  color:rgba(38,45,39,.78);
  background:transparent;
  border:0;
  box-shadow:none;
  font:400 clamp(14px,1.25vw,19px)/1.85 var(--serif),serif;
  letter-spacing:.02em;
  text-align:center;
  cursor:pointer;
  transition:opacity .28s ease,color .25s ease,
             transform .26s cubic-bezier(.23,.72,.25,1);
  transform:translateY(calc(var(--fc-gate-pull) * -13px));
}
.fc-room .fc-chapter-gate[data-fc-direction="up"] .fc-gate-continue{
  transform:translateY(calc(var(--fc-gate-pull) * 13px));
}
.fc-room .fc-chapter-gate .fc-gate-continue>span:first-child {
  font:inherit;
  color:inherit;
  white-space:normal;
}
.fc-room .fc-chapter-gate .fc-gate-continue .fc-gate-arrow {
  display:inline-block;
  flex:0 0 auto;
  color:inherit;
  font:400 clamp(19px,1.65vw,26px)/1.3 var(--serif),serif;
  transform:translateY(calc(var(--fc-gate-pull) * -8px));
  transition:transform .25s ease;
}
.fc-room .fc-chapter-gate[data-fc-direction="up"] .fc-gate-continue .fc-gate-arrow {
  transform:translateY(calc(var(--fc-gate-pull) * 8px));
}
.fc-room .fc-chapter-gate .fc-gate-continue:hover,
.fc-room .fc-chapter-gate.is-pulling .fc-gate-continue {
  color:#222c24;
}
.fc-room .fc-chapter-gate .fc-gate-continue:focus-visible {
  outline:1px solid rgba(35,45,38,.56);
  outline-offset:5px;
}
@media(max-width:700px){
  .fc-room .fc-chapter-gate,
  .fc-room .fc-chapter-gate[data-fc-direction="up"],
  .fc-room .fc-chapter-gate[data-fc-direction="down"] {
    height:100svh;
    min-height:0;
    padding:0 20px;
  }
  .fc-room .fc-chapter-gate .fc-gate-continue{
    gap:18px;
    font-size:clamp(13px,3.4vw,17px);
    line-height:1.8;
    padding:18px 10px;
  }
  .fc-room .fc-chapter-gate .fc-gate-continue .fc-gate-arrow {
    font-size:23px;
  }
}
@media(prefers-reduced-motion:reduce) {
  .fc-room .fc-chapter-gate .fc-gate-continue,
  .fc-room .fc-chapter-gate .fc-gate-continue .fc-gate-arrow {
    transition:none!important;
    transform:none!important;
  }
}


/* v19 · An elastic seam, not a separate full-screen reading page.
   The soft resistance is felt only at the edge of the current chapter. */
.fc-room .fc-chapter-gate,
.fc-room .fc-chapter-gate[data-fc-direction="up"],
.fc-room .fc-chapter-gate[data-fc-direction="down"] {
  --fc-gate-pull:0;
  position:relative;
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
  height:clamp(210px,40svh,400px);
  min-height:0;
  max-height:none;
  padding:0 22px;
  margin:0;
  border:0;
  background:transparent;
  background-image:none;
  box-shadow:none;
  overflow:visible;
  overscroll-behavior-y:auto;
}
.fc-room .fc-chapter-gate .fc-gate-continue{
  gap:clamp(12px,2vw,22px);
  padding:13px 16px;
  margin:0;
  color:rgba(37,44,38,.72);
  font:400 clamp(13px,1.12vw,17px)/1.8 var(--serif),serif;
  letter-spacing:.025em;
  transform:translateY(calc(var(--fc-gate-pull) * -13px));
  opacity:calc(.84 + var(--fc-gate-pull) * .16);
  transition:transform .48s cubic-bezier(.2,1.36,.39,1),
             opacity .42s ease,color .26s ease;
}
.fc-room .fc-chapter-gate[data-fc-direction="up"] .fc-gate-continue {
  transform:translateY(calc(var(--fc-gate-pull) * 13px));
}
.fc-room .fc-chapter-gate.is-pulling .fc-gate-continue {
  transition:none;
}
.fc-room .fc-chapter-gate .fc-gate-continue .fc-gate-arrow {
  font-size:clamp(16px,1.3vw,20px);
  transform:none;
  transition:none;
}
.fc-room .fc-chapter-gate[data-fc-direction="up"] .fc-gate-continue .fc-gate-arrow{
  transform:none;
}
.fc-room .fc-scroll-content.is-chapter-arriving > .fc-series-block {
  opacity:.68;
  transform:translateY(12px);
  transition:opacity .54s ease,transform .57s cubic-bezier(.16,1,.3,1);
}
.fc-room .fc-scroll-content.is-chapter-arriving[data-fc-arrival="up"] > .fc-series-block {
  transform:translateY(-12px);
}
.fc-room .fc-scroll-content.is-chapter-arriving.is-chapter-settled > .fc-series-block {
  opacity:1;
  transform:translateY(0);
}
@media(max-width:700px) {
  .fc-room .fc-chapter-gate,
  .fc-room .fc-chapter-gate[data-fc-direction="up"],
  .fc-room .fc-chapter-gate[data-fc-direction="down"]{
    height:clamp(190px,38svh,340px);
    min-height:0;
    padding:0 18px;
  }
  .fc-room .fc-chapter-gate .fc-gate-continue {
    font-size:clamp(12px,3.1vw,15px);
    gap:13px;
    padding:12px;
  }
}
@media(prefers-reduced-motion:reduce) {
  .fc-room .fc-chapter-gate .fc-gate-continue,
  .fc-room .fc-scroll-content.is-chapter-arriving > .fc-series-block {
    transform:none!important;
    transition:none!important;
  }
}


/* v20 · Both Folly works are one continuous document.
   The reading seam is short; the browser owns the scroll position.
   Only its caption bends gently and springs back before the threshold. */
.fc-room .fc-chapter-gate,
.fc-room .fc-chapter-gate[data-fc-direction="down"],
.fc-room .fc-chapter-gate[data-fc-direction="up"] {
  height:clamp(130px,23svh,235px);
  min-height:0;
  padding-top:0;
  padding-bottom:0;
  scroll-snap-align:none!important;
  scroll-snap-stop:normal;
  overscroll-behavior-y:auto;
}
.fc-room .fc-chapter-gate .fc-gate-continue {
  transform:translateY(calc(var(--fc-gate-pull) * -10px));
  transition:transform .47s cubic-bezier(.2,1.26,.36,1),
             opacity .38s ease,color .25s ease;
}
.fc-room .fc-chapter-gate[data-fc-direction="up"] .fc-gate-continue {
  transform:translateY(calc(var(--fc-gate-pull) * 10px));
}
.fc-room .fc-chapter-gate.is-pulling .fc-gate-continue {transition:none;}
.fc-room .fc-scroll-content {
  scroll-behavior:auto;
  scroll-snap-type:none;
}
.fc-room .fc-chapter-gate+.fc-series-block{
  scroll-margin-top:clamp(24px,5vh,64px);
}
@media(max-width:700px){
  .fc-room .fc-chapter-gate,
  .fc-room .fc-chapter-gate[data-fc-direction="down"],
  .fc-room .fc-chapter-gate[data-fc-direction="up"]{
    height:clamp(118px,22svh,210px);
    min-height:0;
  }
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-chapter-gate .fc-gate-continue{transition:none!important;}
}


/* v21 · Visible, physical elasticity: the document itself moves by up to
   32px against the input before it springs back or returns to native scroll.
   The caption is only a quiet indication of that tension. */
.fc-room .fc-chapter-gate .fc-gate-continue{
  will-change:transform;
  transform:translate3d(0,calc(var(--fc-gate-pull) * -15px),0);
  transition:transform .36s cubic-bezier(.19,1.34,.32,1),
             opacity .36s ease,color .25s ease;
}
.fc-room .fc-chapter-gate[data-fc-direction="up"] .fc-gate-continue{
  transform:translate3d(0,calc(var(--fc-gate-pull) * 15px),0);
}
.fc-room .fc-chapter-gate.is-pulling .fc-gate-continue{
  transition:none;
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-chapter-gate .fc-gate-continue{will-change:auto;transform:none!important;}
}


/* v22 · Folly I / Ruin Archive mechanical score.
   The sheet itself is the uploaded 15-frame stop-motion drawing; the
   temporary canvas and shared image cache do not invent intermediary frames.
   Only the calibrated lever is interactive. The score stays on the page. */
.fc-room .fc-inline-score-device>.fc-score-cluster.fc-mechanical-v2 {
  display:block;
  position:relative;
  box-sizing:border-box;
  height:min(92%,455px);
  width:auto;
  aspect-ratio:1337 / 2048;
  min-height:0;
  min-width:0;
  max-width:95%;
  background:transparent;
  border:0;
  overflow:visible;
}
.fc-room .fc-inline-score.is-expanded .fc-inline-score-device>.fc-score-cluster.fc-mechanical-v2 {
  height:min(93%,660px);
  width:auto;
  max-width:92%;
  aspect-ratio:1337 / 2048;
}
.fc-mechanical-v2 .fc-score-shadow {
  position:absolute;
  inset:0;
  z-index:1;
  opacity:1;
  display:block;
  background:transparent;
  border:0;
  overflow:visible;
}
.fc-room .fc-inline-score .fc-mechanical-v2 .fc-score-shadow{
  filter:drop-shadow(4px 8px 11px rgba(31,34,30,.17));
}
.fc-mechanical-v2 .fc-mechanical-v2-sheet,
.fc-room .fc-inline-score .fc-mechanical-v2 .fc-mechanical-v2-sheet {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  padding:0;
  margin:0;
  box-sizing:border-box;
  overflow:visible;
  touch-action:pan-y;
  background:transparent;
}
.fc-mechanical-v2 .fc-mechanical-v2-sheet>img,
.fc-room .fc-inline-score .fc-mechanical-v2 .fc-mechanical-v2-sheet>img {
  display:block;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:none;
  opacity:1;
  padding:0;
  margin:0;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
}
.fc-mechanical-v2.is-mechanical-decoded .fc-mechanical-v2-sheet>img {
  opacity:0;
}
.fc-mechanical-v2 .fc-mechanical-v2-canvas {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  background:transparent;
  pointer-events:none;
  opacity:0;
}
.fc-mechanical-v2.is-mechanical-decoded .fc-mechanical-v2-canvas {
  opacity:1;
}
/* Original mechanical calibration:
   center 49.85%, upper/lower knob 6.80% / 14.55%,
   large ring 9.70% / 14.35%; frames 01–07 precede ring coupling. */
.fc-mechanical-v2 .fc-mechanical-v2-lever {
  --fc-m2-knob:6.8%;
  --fc-m2-ring:9.7%;
  --fc-m2-engage:1;
  position:absolute;
  inset:0;
  z-index:4;
  display:block;
  pointer-events:none;
}
.fc-mechanical-v2 .fc-mechanical-v2-guide {
  position:absolute;
  top:6.45%;
  left:49.85%;
  width:0;
  height:9.15%;
  background:transparent;
  box-shadow:none;
  border-left:1px solid rgba(27,26,24,.36);
  opacity:.65;
  transform:translateX(-50%);
  pointer-events:none;
}
.fc-mechanical-v2 .fc-mechanical-v2-ring {
  position:absolute;
  top:var(--fc-m2-ring);
  left:49.85%;
  width:11.2%;
  height:auto;
  aspect-ratio:1 / 1;
  background:transparent;
  box-shadow:none;
  box-sizing:border-box;
  border:1px solid rgba(28,26,22,.55);
  border-radius:50%;
  opacity:calc(.3 + var(--fc-m2-engage) * .47);
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.fc-mechanical-v2 .fc-mechanical-v2-knob {
  position:absolute;
  top:var(--fc-m2-knob);
  left:49.85%;
  display:block;
  width:max(13px,3.5%);
  height:auto;
  aspect-ratio:1 / 1;
  min-height:13px;
  padding:0;
  margin:0;
  box-sizing:border-box;
  background:rgba(255,255,249,.7);
  border:1.2px solid rgba(25,24,20,.78);
  border-radius:50%;
  box-shadow:0 0 0 2px rgba(255,255,249,.30),0 1px 5px rgba(0,0,0,.18);
  transform:translate(-50%,-50%);
  cursor:ns-resize;
  touch-action:none;
  pointer-events:auto;
  transition:box-shadow .15s ease,border-color .15s ease;
}
.fc-mechanical-v2 .fc-mechanical-v2-knob::after {
  content:"";
  position:absolute;
  inset:-13px;
  border-radius:50%;
}
.fc-mechanical-v2 .fc-mechanical-v2-knob.is-dragging,
.fc-mechanical-v2 .fc-mechanical-v2-knob:hover {
  box-shadow:0 0 0 3px rgba(255,255,249,.4),0 2px 8px rgba(0,0,0,.27);
}
.fc-projection .fc-mechanical-v2 .fc-mechanical-v2-knob {
  pointer-events:none;
}
.fc-mechanical-v2 .fc-score-hud {
  position:absolute;
  inset:0;
  z-index:5;
  background:transparent;
  border:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  pointer-events:none;
}
.fc-mechanical-v2 .fc-mechanical-v2-graphics {
  position:absolute;
  inset:0;
  display:block;
  pointer-events:none;
  overflow:visible;
}
.fc-mechanical-v2 .fc-scan-line {
  position:absolute;
  top:72%;
  height:22%;
  width:1.5px;
  left:12%;
  background:rgba(130,66,37,.62);
  box-shadow:0 0 6px rgba(180,96,49,.38);
  pointer-events:none;
}
.fc-mechanical-v2 .fc-scan-pulse {
  position:absolute;
  top:94%;
  left:12%;
  width:8px;
  height:8px;
  border-radius:50%;
  background:rgba(142,55,21,.91);
  box-shadow:0 0 8px rgba(161,58,26,.67);
  pointer-events:none;
}
.fc-mechanical-v2 .fc-mechanical-v2-arcs {
  display:block;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  pointer-events:none;
}
.fc-mechanical-v2 .fc-mechanical-v2-arcs g {
  transform-origin:calc(41.5%) calc(23.75%);
}
.fc-mechanical-v2 .fc-mechanical-v2-arcs path {
  fill:none;
  stroke:rgba(103,51,29,.60);
  stroke-width:1.3px;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
}
/* Source art is always present, independent of whether the optional
   scanning/HUD pointer layer is enabled. */
.fc-room .fc-inline-score[data-fc-pointers="off"] .fc-mechanical-v2>.fc-score-hud {
  opacity:0!important;
  visibility:hidden!important;
}
.fc-room .fc-inline-score[data-fc-pointers="on"] .fc-mechanical-v2>.fc-score-hud {
  opacity:1!important;
  visibility:visible!important;
}
/* Keep this Folly-specific detail isolated from the radial Folly II score. */
@media(max-width:700px){
  .fc-room .fc-inline-score-device>.fc-score-cluster.fc-mechanical-v2{
    height:min(91%,315px);
    width:auto;
    aspect-ratio:1337 / 2048;
    min-height:0;
    max-width:90%;
  }
  .fc-mechanical-v2 .fc-mechanical-v2-knob {width:max(17px,4%);min-height:17px;}
}
@media(prefers-reduced-motion:reduce){
  .fc-mechanical-v2 .fc-mechanical-v2-knob {transition:none;}
}


/* v24 · One shared timeline BETWEEN Folly film fragments and Ruin Score.
   90% applies to films only; the four full/back/instrument/body photographs
   retain their established sizes and their caption geometry. */
.fc-room .fc-series-block {
  /* Original desktop clamp(240px,34vw,510px) × .90. */
  --fc-film-card-width:clamp(216px,30.6vw,459px);
}
.fc-room .fc-gallery-area .fc-strip {
  gap:clamp(13px,2.7vw,46px);
}
.fc-room .fc-gallery-area .fc-card {
  box-sizing:border-box;
  flex:0 0 var(--fc-film-card-width);
  width:var(--fc-film-card-width);
  min-width:var(--fc-film-card-width);
  max-width:var(--fc-film-card-width);
}
.fc-room .fc-instrument-layout {
  grid-template-columns:minmax(0,var(--fc-film-card-width)) minmax(0,1fr);
}
.fc-room .fc-instrument-card.fc-card {
  box-sizing:border-box;
  width:var(--fc-film-card-width)!important;
  min-width:0!important;
  max-width:var(--fc-film-card-width)!important;
}
/* After the film strip's labels, before the score heading. */
.fc-room .fc-navigation {
  margin:clamp(14px,2.3vw,29px) clamp(23px,6vw,100px) 0 var(--fc-film-left);
  padding:0;
  height:24px;
  min-height:24px;
  border:0;
  background:transparent;
}
.fc-room .fc-navigation .fc-slider {
  width:100%;
  height:24px;
  min-height:24px;
  background:transparent;
}
.fc-room .fc-inline-score {
  margin-top:clamp(23px,3.3vw,42px);
}
/* The score now has no independent playback indicator or range control.
   Keep only the small pointer/fold controls beneath its actual artwork. */
.fc-room .fc-inline-score .fc-score-controls-bottom {
  margin:clamp(12px,2vw,26px) auto 0;
  width:min(640px,100%);
  justify-content:flex-end;
}
@media(max-width:700px){
  .fc-room .fc-series-block {
    /* Original mobile clamp(235px,76vw,360px) × .90. */
    --fc-film-card-width:clamp(211.5px,68.4vw,324px);
  }
  .fc-room .fc-gallery-area .fc-strip {
    gap:20px;
  }
  .fc-room .fc-navigation {
    margin:15px 22px 0 var(--fc-film-left);
    height:24px;
    min-height:24px;
  }
  .fc-room .fc-navigation .fc-slider {
    height:24px;
    min-height:24px;
  }
  .fc-room .fc-inline-score {
    margin-top:22px;
  }
  .fc-room .fc-inline-score .fc-score-controls-bottom {
    margin-top:13px;
  }
}


/* v25 · Ruin Score title is a quiet caption below the score artwork. */
.fc-room .fc-inline-score .fc-score-caption {
  display:block;
  width:100%;
  margin:clamp(8px,1.25vw,19px) auto 0;
  padding:0;
  color:rgba(43,50,44,.60);
  font:400 clamp(12px,.98vw,15px)/1.8 var(--serif),serif;
  letter-spacing:.065em;
  text-align:center;
}
.fc-room .fc-inline-score .fc-score-controls-bottom {
  margin-top:clamp(9px,1.4vw,18px);
}
@media(max-width:700px){
  .fc-room .fc-inline-score .fc-score-caption {
    margin-top:9px;
    font-size:12px;
  }
  .fc-room .fc-inline-score .fc-score-controls-bottom{
    margin-top:10px;
  }
}


/* v26 · A short article-reading threshold, not a separate page.
   Leave just enough quiet space to register the physical spring. */
.fc-room .fc-chapter-gate,
.fc-room .fc-chapter-gate[data-fc-direction="up"],
.fc-room .fc-chapter-gate[data-fc-direction="down"] {
  height:clamp(165px,27svh,250px);
  min-height:0;
  scroll-snap-align:none!important;
  overscroll-behavior-y:auto;
}
.fc-room .fc-chapter-gate .fc-gate-continue {
  transform:translate3d(0,calc(var(--fc-gate-pull) * -13px),0);
  transition:transform .34s cubic-bezier(.19,1.28,.35,1),
             opacity .32s ease,color .25s ease;
}
.fc-room .fc-chapter-gate[data-fc-direction="up"] .fc-gate-continue {
  transform:translate3d(0,calc(var(--fc-gate-pull) * 13px),0);
}
.fc-room .fc-chapter-gate.is-pulling .fc-gate-continue{
  transition:none;
}
@media(max-width:700px){
  .fc-room .fc-chapter-gate,
  .fc-room .fc-chapter-gate[data-fc-direction="up"],
  .fc-room .fc-chapter-gate[data-fc-direction="down"] {
    height:clamp(155px,25svh,212px);
  }
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-chapter-gate .fc-gate-continue {
    transform:none!important;
    transition:none!important;
  }
}


/* v27 · Short-video-style chapter switch: a quiet seam, not an extra page.
   JS advances one chapter per deliberate vertical gesture and disposes of
   inertial wheel events until the 2nd work has settled into the viewport. */
.fc-room .fc-chapter-seam {
  display:block;
  position:relative;
  width:100%;
  height:clamp(78px,13svh,124px);
  min-height:0;
  padding:0;
  margin:0;
  border:0;
  box-shadow:none;
  background:transparent;
  overflow:visible;
  pointer-events:none;
}
.fc-room .fc-chapter-seam+.fc-series-block {
  scroll-margin-top:clamp(24px,6vh,76px);
}
@media(max-width:700px){
  .fc-room .fc-chapter-seam {
    height:clamp(70px,11svh,105px);
  }
}


/* v28 · Two independent Folly reading pages.
   They slide past one another under the browser's native vertical scrolling.
   The departing page enters shadow as the arriving one comes into light.
   No mouse-wheel interception, scroll snapping, or body-sized filters. */
.fc-room .fc-scroll-content[data-fc-chapter-body]{
  display:block;
  overflow:visible;
  scroll-snap-type:none;
  scroll-behavior:auto;
}
.fc-room .fc-chapter-page {
  position:relative;
  display:block;
  isolation:isolate;
  width:100%;
  min-width:0;
  min-height:100svh;
  overflow:visible;
  margin:0;
  padding:0;
  background:#eeede8;
  box-sizing:border-box;
}
.fc-room .fc-chapter-page-one {
  z-index:1;
}
.fc-room .fc-chapter-page-two {
  z-index:2;
  background:#e7e6e0;
  box-shadow:0 -22px 64px rgba(16,20,17,.18);
}
.fc-room .fc-chapter-page .fc-series-block{
  position:relative;
  display:block;
  z-index:1;
  background:transparent;
  margin:0;
  border-top:0;
}
/* One viewport-sized veil, held over each long chapter as it scrolls.
   Only its opacity changes. The overlay never captures touches/clicks
   and has no blur or backdrop filter, so film and score stay responsive. */
.fc-room .fc-chapter-page .fc-page-shadow{
  position:sticky;
  top:54px;
  z-index:9;
  display:block;
  width:100%;
  height:calc(100svh - 54px);
  min-height:1px;
  margin:0 0 calc(-100svh + 54px);
  padding:0;
  border:0;
  background:linear-gradient(180deg,
     rgba(11,16,13,.92) 0%,
     rgba(15,21,18,.97) 100%);
  opacity:0;
  pointer-events:none;
  user-select:none;
  -webkit-user-select:none;
  will-change:opacity;
  transform:translateZ(0);
}
/* The incoming page is initially in shadow; its shading disappears as
   its top edge reaches the reading area. The previous page darkens. */
.fc-room .fc-chapter-page-two .fc-page-shadow{
  opacity:.46;
}
@media(max-width:700px){
  .fc-room .fc-chapter-page .fc-page-shadow{
    top:54px;
    height:calc(100svh - 54px);
    margin-bottom:calc(-100svh + 54px);
  }
  .fc-room .fc-chapter-page-two{
    box-shadow:0 -13px 40px rgba(16,20,17,.16);
  }
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-chapter-page .fc-page-shadow{
    transition:none!important;
    will-change:auto;
  }
}


/* v29 · Three movements per Folly: garden / instrument / theatre.
   The content's original photo scale, 90% film cards, stage transitions
   and projection viewer are preserved; only the reading order changes. */
.fc-room .fc-reading-part {
  display:block;
  position:relative;
  width:100%;
  margin:0;
  padding:0;
  box-sizing:border-box;
}
.fc-room .fc-reading-part-head{
  display:flex;
  align-items:baseline;
  gap:clamp(14px,2.7vw,40px);
  width:100%;
  margin:0 0 clamp(25px,3vw,48px);
  padding:0;
  color:rgba(39,46,40,.88);
}
.fc-room .fc-reading-part-number{
  min-width:27px;
  font:400 clamp(10px,.85vw,13px)/1.7 var(--sans),sans-serif;
  letter-spacing:.10em;
  color:rgba(42,48,42,.36);
}
.fc-room .fc-reading-part-head h3,
.fc-room .fc-film-head .fc-reading-part-head h3{
  margin:0;
  padding:0;
  font:400 clamp(20px,1.75vw,28px)/1.55 var(--serif),serif;
  letter-spacing:.038em;
  color:#303830;
}
.fc-room .fc-reading-garden{
  padding-top:clamp(22px,3vw,45px);
}
.fc-room .fc-reading-instrument{
  margin-top:clamp(125px,18vw,250px);
}
.fc-room .fc-reading-instrument .fc-instrument-wrap{
  width:100%;
  margin:0 0 clamp(14px,2vw,28px);
  padding:0;
}
.fc-room .fc-reading-instrument .fc-instrument-wrap .fc-subchapter{
  margin:0 0 clamp(13px,2vw,24px);
}
.fc-room .fc-reading-instrument .fc-instrument-wrap .fc-subchapter h3 {
  margin:0;
  font:400 clamp(12px,1vw,15px)/1.8 var(--serif),serif;
  color:rgba(44,49,44,.50);
  letter-spacing:.04em;
}
.fc-room .fc-reading-instrument .fc-asset-pair-detail{
  margin-top:clamp(8px,1.2vw,18px);
}
.fc-room .fc-reading-copy{
  max-width:850px;
  margin:0;
  padding:0;
  color:rgba(44,49,44,.74);
  font:400 clamp(14px,1.16vw,17px)/2.12 var(--serif),serif;
  letter-spacing:.012em;
  text-align:left;
}
.fc-room .fc-reading-garden .fc-garden-copy{
  width:min(100%,770px);
  margin:clamp(62px,8vw,118px) 0 0;
}
.fc-room .fc-reading-theatre{
  margin-top:clamp(140px,17vw,255px);
}
.fc-room .fc-reading-theatre .fc-film-head{
  margin-top:0;
}
.fc-room .fc-film-head .fc-reading-film-title{
  display:block;
}
.fc-room .fc-film-head .fc-reading-part-head{
  margin:0;
}
.fc-room .fc-theatre-copy{
  width:calc(100% - var(--fc-film-left) - clamp(24px,6vw,100px));
  max-width:820px;
  margin:0 0 clamp(34px,5vw,72px) var(--fc-film-left);
}
.fc-room .fc-score-reading {
  width:calc(100% - 48px);
  max-width:760px;
  margin:clamp(38px,6vw,78px) auto clamp(35px,5vw,68px);
  color:rgba(44,49,44,.70);
}
.fc-room .fc-reading-part .fc-swap-options{
  flex-wrap:wrap;
  row-gap:7px;
}
.fc-room .fc-reading-part .fc-photo-column .fc-swap-option{
  white-space:nowrap;
}
/* Keep three image stages readable on small screens, without converting
   the instrument and stills into a crowded grid. */
@media(max-width:700px){
  .fc-room .fc-reading-part-head{
    gap:14px;
    margin-bottom:22px;
  }
  .fc-room .fc-reading-part-head h3,
  .fc-room .fc-film-head .fc-reading-part-head h3{
    font-size:clamp(18px,4.6vw,22px);
  }
  .fc-room .fc-reading-part-number{
    min-width:22px;
    font-size:10px;
  }
  .fc-room .fc-reading-garden{
    padding-top:12px;
  }
  .fc-room .fc-reading-instrument{
    margin-top:clamp(95px,20vw,142px);
  }
  .fc-room .fc-reading-instrument .fc-instrument-wrap{
    margin-bottom:14px;
  }
  .fc-room .fc-reading-instrument .fc-asset-pair-detail{
    margin-top:9px;
  }
  .fc-room .fc-reading-theatre{
    margin-top:clamp(95px,19vw,148px);
  }
  .fc-room .fc-reading-copy{
    font-size:13px;
    line-height:2.05;
  }
  .fc-room .fc-reading-garden .fc-garden-copy{
    margin-top:36px;
  }
  .fc-room .fc-theatre-copy{
    width:calc(100% - var(--fc-film-left) - 22px);
    margin:4px 22px 32px var(--fc-film-left);
  }
  .fc-room .fc-score-reading{
    width:calc(100% - 44px);
    margin:30px auto 46px;
  }
  /* Preserve the established active-large / inactive-small photo tabs.
     The new three-stage reading layout must not override v17's hierarchy. */
  .fc-room .fc-reading-part .fc-photo-column .fc-swap-option{
    font-size:11px;
    font-weight:400;
    color:rgba(46,52,46,.39);
  }
  .fc-room .fc-reading-part .fc-photo-column .fc-swap-option.is-active{
    font-size:clamp(19px,5.1vw,24px);
    font-weight:500;
    color:#30382f;
  }
  .fc-room .fc-reading-part .fc-swap-options{
    column-gap:8px;
    row-gap:6px;
  }
}

/* Four distinct structure photographs in Folly II: keep the selected
   movement title prominent without clipping the others on narrow screens. */
@media(max-width:560px){
  .fc-room .fc-asset-pair-structure[data-fc-series="1"] .fc-swap-options{
    gap:clamp(4px,1.35vw,8px);
    max-width:100%;
  }
  .fc-room .fc-asset-pair-structure[data-fc-series="1"] .fc-swap-option{
    font-size:clamp(9px,2.55vw,11px);
  }
  .fc-room .fc-asset-pair-structure[data-fc-series="1"] .fc-swap-option.is-active{
    font-size:clamp(17px,4.6vw,23px);
  }
  .fc-room .fc-asset-pair-structure[data-fc-series="1"] .fc-swap-separator{
    font-size:clamp(9px,2.4vw,11px);
  }
}

/* v33 | Folly reading edition: source-specific works, quiet captions,
   projected films, transient viewing hint and a two-gesture reading seam. */
.fc-room .fc-about{
  width:min(980px,calc(100% - 2 * clamp(24px,7vw,120px)));
  margin:clamp(35px,6vh,95px) auto clamp(96px,13vw,188px);
  padding:0;
  color:#252925;
}
.fc-room .fc-about h2{
  margin:0 0 clamp(19px,2.4vw,38px);
  font:400 clamp(18px,1.6vw,25px)/1.5 var(--serif),serif;
  color:#171b18;
}
.fc-room .fc-about>p{
  width:min(100%,760px);
  margin:0;
  font:400 clamp(15px,1.3vw,19px)/2.1 var(--serif),serif;
  letter-spacing:.017em;
  color:#303530;
}
.fc-room .fc-about-index{
  display:flex;
  flex-wrap:wrap;
  gap:clamp(24px,5.2vw,85px);
  margin:clamp(45px,6vw,87px) 0 0;
  padding:18px 0 0;
  border-top:1px solid rgba(34,39,34,.16);
}
.fc-room .fc-about-index a{
  display:inline-flex;
  gap:19px;
  align-items:baseline;
  padding:6px 0;
  color:rgba(30,34,30,.77);
  text-decoration:none;
  font:400 clamp(14px,1.12vw,17px)/1.7 var(--serif),serif;
  transition:opacity .26s ease;
}
.fc-room .fc-about-index a:hover{opacity:.56;}
.fc-room .fc-about-index small{
  font:400 11px/1.5 var(--sans),sans-serif;
  color:rgba(40,44,40,.44);
  letter-spacing:.045em;
}
.fc-room .fc-series-heading{
  display:flex;
  align-items:baseline;
  justify-content:flex-start;
  gap:clamp(16px,3vw,50px);
  padding-bottom:clamp(40px,5vw,70px);
}
.fc-room .fc-series-heading h2{
  margin:0;
  font:400 clamp(33px,3.7vw,60px)/1.35 var(--serif),serif;
  color:#111512;
  letter-spacing:.022em;
  opacity:1;
}
.fc-room .fc-series-heading .fc-series-year{
  flex:none;
  font:400 clamp(13px,1.1vw,17px)/1.6 var(--serif),serif;
  color:#111512;
  opacity:1;
}
.fc-room .fc-reading-part-number{display:none!important;}
.fc-room .fc-reading-part-head{gap:0;margin-bottom:clamp(22px,2.8vw,37px);}
.fc-room .fc-reading-part-head h3,
.fc-room .fc-film-head .fc-reading-part-head h3{
  color:#1f241f;
  opacity:1;
}
.fc-room .fc-reading-garden .fc-garden-copy{
  margin:0 0 clamp(22px,3.5vw,51px);
  max-width:700px;
  line-height:2.08;
}
.fc-room .fc-series-composition .fc-asset-pair{
  display:block!important;
  width:min(100%,calc(var(--fc-card-width) * 1.5));
  max-width:100%;
  min-height:0!important;
  margin:clamp(12px,2vw,29px) 0 0;
  padding:0;
}
.fc-room .fc-asset-pair .fc-photo-column{
  width:100%!important;
  max-width:100%;
  margin:0;
}
.fc-room .fc-asset-pair .fc-asset-aside{display:none!important;}
.fc-room .fc-photo-meta{
  margin:clamp(7px,1vw,15px) 0 0;
  min-height:0;
}
.fc-room .fc-photo-meta-note{
  max-width:min(100%,590px);
  margin:0;
  line-height:1.88;
  font-size:clamp(12px,.98vw,15px);
  color:rgba(33,39,33,.73);
}
.fc-room .fc-instrument-wrap{
  margin-top:clamp(23px,3.5vw,56px);
  margin-bottom:clamp(26px,3.5vw,52px);
  padding-top:0;
}
.fc-room .fc-instrument-lead{
  width:min(100%,660px);
  margin:0 0 clamp(20px,2.8vw,44px);
  font:400 clamp(13px,1.13vw,17px)/2.05 var(--serif),serif;
  color:rgba(35,41,35,.75);
}
.fc-room .fc-instrument-layout{
  position:relative;
  display:block!important;
  min-height:0!important;
  width:100%;
  margin:0;
}
.fc-room .fc-instrument-card.fc-card{margin:0!important;}
.fc-room .fc-instrument-layout .fc-instrument-description{display:none!important;}
.fc-room .fc-reading-instrument .fc-asset-pair-detail{
  margin-top:clamp(22px,3vw,46px);
}
.fc-room .fc-reading-instrument .fc-instrument-full{
  width:min(100%,720px);
  margin:clamp(24px,3.5vw,50px) 0 0;
}
.fc-room .fc-gallery-area{position:relative;}
.fc-room .fc-gallery-hint{
  position:absolute;
  z-index:7;
  left:clamp(12px,2.7vw,42px);
  top:41%;
  width:max(78px,calc(var(--fc-film-left) - clamp(27px,5vw,69px)));
  max-width:250px;
  transform:translate3d(0,-50%,0);
  opacity:0;
  color:rgba(34,40,34,.65);
  cursor:default;
  pointer-events:auto;
  transition:opacity .85s ease;
}
.fc-room .fc-gallery-hint.is-introduced,
.fc-room .fc-gallery-hint:hover,
.fc-room .fc-gallery-hint:focus-visible{opacity:1;}
.fc-room .fc-gallery-hint p{
  margin:0 0 7px;
  font:400 clamp(11px,.99vw,14px)/1.9 var(--serif),serif;
  letter-spacing:.008em;
}
.fc-room .fc-gallery-hint p+p{color:rgba(37,42,37,.48);}
.fc-room .fc-film-head .fc-instruction{display:none;}
.fc-room .fc-gallery-area .fc-card-copy,
.fc-room .fc-instrument-card .fc-card-copy{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(3px,.5vw,7px);
  width:100%;
  min-height:0;
  margin-top:clamp(10px,1.5vw,20px);
  padding:0;
  text-align:center;
  color:#1e231f;
}
.fc-room .fc-gallery-area .fc-card-name,
.fc-room .fc-instrument-card .fc-card-name{
  font:500 clamp(15px,1.26vw,20px)/1.6 var(--serif),serif;
  letter-spacing:.05em;
  text-align:center;
  color:#161b17;
}
.fc-room .fc-gallery-area .fc-card-count,
.fc-room .fc-gallery-area .fc-card-count small,
.fc-room .fc-instrument-card .fc-card-count,
.fc-room .fc-instrument-card .fc-card-count small{
  font:400 clamp(10px,.81vw,12px)/1.5 var(--sans),sans-serif;
  color:rgba(40,46,40,.47);
  letter-spacing:.075em;
  text-align:center;
}
.fc-room .fc-card .fc-frame:after,
.fc-room .fc-instrument-card .fc-frame:after{
  content:'';
  position:absolute;left:0;bottom:0;
  width:var(--fc-card-progress,0%);
  height:2px;
  background:rgba(228,229,219,.8);
  pointer-events:none;
  z-index:9;
  transition:width .12s linear;
}
.fc-room .fc-page.is-projected{position:relative;z-index:900;}
.fc-room [data-fc-projection-slot]{
  position:fixed;inset:0;z-index:910;
  pointer-events:none;
}
.fc-room [data-fc-projection-slot] .fc-projection{
  position:fixed;inset:0;z-index:920;pointer-events:auto;
}
.fc-room [data-fc-projection-slot] .fc-projection[hidden]{
  display:none!important;
}
.fc-room .fc-chapter-threshold{
  --fc-gate-pull:0;
  height:clamp(190px,31svh,330px);
  min-height:190px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(15px,2.8vh,29px);
  width:100%;
  padding:18px 22px;
  box-sizing:border-box;
  background:#eeede8;
  color:#242a24;
}
.fc-room .fc-threshold-link{
  display:block;
  max-width:90%;
  margin:0;
  padding:8px 0;
  font:400 clamp(16px,1.55vw,25px)/1.75 var(--serif),serif;
  color:rgba(28,33,28,.82);
  border:none;
  cursor:pointer;
  text-align:center;
  transform:translate3d(0,calc(var(--fc-gate-pull) * -15px),0);
  transition:transform .42s cubic-bezier(.18,1.5,.29,1),color .4s ease;
}
.fc-room .fc-threshold-link span{font-size:.77em;margin-left:8px;}
.fc-room .fc-threshold-link:hover,.fc-room .fc-chapter-threshold.is-armed .fc-threshold-link{color:#121612;}
.fc-room .fc-threshold-progress{
  width:min(210px,43vw);
  height:1px;
  background:rgba(45,51,45,.15);
  overflow:hidden;
}
.fc-room .fc-threshold-progress i{
  display:block;width:100%;height:100%;
  background:rgba(29,37,31,.73);
  transform-origin:left center;
  transform:scaleX(var(--fc-gate-pull));
  transition:transform .43s cubic-bezier(.18,1.5,.29,1);
}
.fc-room .fc-chapter-threshold.is-pulling .fc-threshold-link,
.fc-room .fc-chapter-threshold.is-pulling .fc-threshold-progress i{
  transition:none;
}
@media(max-width:700px){
  .fc-room .fc-about{
    width:calc(100% - 44px);
    margin:38px 22px 92px;
  }
  .fc-room .fc-about>p{font-size:14px;line-height:2;}
  .fc-room .fc-about-index{margin-top:45px;gap:15px;flex-direction:column;}
  .fc-room .fc-series-heading{gap:13px;flex-wrap:wrap;}
  .fc-room .fc-series-heading h2{font-size:clamp(27px,6.7vw,39px);}
  .fc-room .fc-series-heading .fc-series-year{font-size:12px;}
  .fc-room .fc-reading-garden .fc-garden-copy{margin-bottom:24px;}
  .fc-room .fc-reading-instrument .fc-instrument-full{margin-top:23px;}
  .fc-room .fc-gallery-hint{
    top:0;
    left:var(--fc-film-left);
    width:calc(100% - var(--fc-film-left) - 22px);
    max-width:none;
    transform:translate3d(0,-110%,0);
    pointer-events:none;
  }
  .fc-room .fc-gallery-hint p{font-size:10px;margin-bottom:2px;}
  .fc-room .fc-gallery-hint.is-introduced{opacity:1;}
  .fc-room .fc-gallery-area .fc-card-name{font-size:16px;}
  .fc-room .fc-reading-instrument .fc-asset-pair-detail{margin-top:28px;}
  .fc-room .fc-chapter-threshold{height:230px;}
  .fc-room .fc-threshold-link{font-size:15px;}
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-gallery-hint,.fc-room .fc-threshold-link,.fc-room .fc-threshold-progress i{transition:none!important;}
}


/* v35 · Folly reading refinements: a real contents list, notes after images,
   and modest film captions with prominent left-hand chapter counters. */
.fc-room .fc-about .fc-about-index{
  display:block;
  padding-top:9px;
  margin-top:clamp(38px,5vw,68px);
  border-top:1px solid rgba(34,39,34,.16);
}
.fc-room .fc-about .fc-about-list{
  display:block;
  width:min(100%,620px);
  margin:0;
  padding:0;
  list-style:none;
}
.fc-room .fc-about .fc-about-list li{
  display:block;
  margin:0;
  padding:0;
  border-bottom:1px solid rgba(34,39,34,.10);
}
.fc-room .fc-about .fc-about-list a{
  display:flex;
  justify-content:flex-start;
  align-items:baseline;
  gap:clamp(11px,1.8vw,26px);
  width:100%;
  padding:clamp(10px,1.25vw,18px) 0;
  font:400 clamp(14px,1.12vw,17px)/1.7 var(--serif),serif;
  color:#242a25;
  letter-spacing:.015em;
  text-decoration:none;
}
.fc-room .fc-about .fc-about-year{
  font:inherit;
  font-weight:400;
  font-size:.88em;
  letter-spacing:0;
  color:rgba(38,43,38,.62);
  white-space:nowrap;
}
.fc-room .fc-reading-garden .fc-garden-copy{
  width:min(100%,740px);
  max-width:740px;
  margin:clamp(18px,2.7vw,37px) 0 0;
  padding:0;
}
.fc-room .fc-instrument-wrap .fc-instrument-lead{
  width:min(100%,740px);
  max-width:740px;
  margin:clamp(16px,2.6vw,32px) 0 0;
  padding:0;
  font:400 clamp(12px,.95vw,14px)/1.9 var(--serif),serif;
  letter-spacing:0;
  color:rgba(38,44,38,.70);
}
.fc-room .fc-gallery-area .fc-card-copy,
.fc-room .fc-instrument-card .fc-card-copy{
  display:flex;
  flex-direction:row;
  align-items:baseline;
  justify-content:space-between;
  gap:clamp(12px,1.6vw,25px);
  width:100%;
  min-height:0;
  margin:clamp(9px,1.3vw,17px) 0 0;
  padding:0;
  text-align:left;
  color:#222821;
}
.fc-room .fc-gallery-area .fc-card-count,
.fc-room .fc-instrument-card .fc-card-count{
  display:inline-block;
  flex:0 0 auto;
  min-width:0;
  font:400 clamp(23px,1.9vw,29px)/1.18 var(--serif),serif;
  letter-spacing:.01em;
  color:#242b25;
  text-align:left;
  white-space:nowrap;
}
.fc-room .fc-gallery-area .fc-card-count small,
.fc-room .fc-instrument-card .fc-card-count small{
  font:400 clamp(10px,.86vw,12px)/1.4 var(--serif),serif;
  letter-spacing:.015em;
  color:rgba(39,45,39,.54);
}
.fc-room .fc-gallery-area .fc-card-name,
.fc-room .fc-instrument-card .fc-card-name{
  display:inline-block;
  flex:0 1 auto;
  margin:0;
  font:400 clamp(12px,1.02vw,15px)/1.6 var(--serif),serif;
  letter-spacing:.02em;
  text-align:right;
  color:rgba(31,37,31,.84);
}
.fc-room .fc-navigation .fc-slider.is-hover-progress{
  cursor:ew-resize;
}
@media(max-width:700px){
  .fc-room .fc-about .fc-about-index{
    margin-top:37px;
    padding-top:6px;
  }
  .fc-room .fc-about .fc-about-list a{
    font-size:14px;
    gap:12px;
    padding:11px 0;
  }
  .fc-room .fc-reading-garden .fc-garden-copy{
    margin:22px 0 0;
  }
  .fc-room .fc-instrument-wrap .fc-instrument-lead{
    margin-top:17px;
    font-size:12px;
  }
  .fc-room .fc-gallery-area .fc-card-count,
  .fc-room .fc-instrument-card .fc-card-count{
    font-size:clamp(22px,5.4vw,26px);
  }
  .fc-room .fc-gallery-area .fc-card-name,
  .fc-room .fc-instrument-card .fc-card-name{
    font-size:12px;
  }
}


/* v36 · Material reading rhythm and a native, inertia-friendly seam.
   There is only one vertical scroller: the browser. */
.fc-room .fc-reading-instrument{
  margin-top:clamp(62px,9vw,125px);
}
.fc-room .fc-reading-theatre{
  margin-top:clamp(70px,8.5vw,128px);
}
.fc-room .fc-reading-instrument .fc-instrument-wrap{
  margin-bottom:clamp(13px,1.75vw,26px);
}
.fc-room .fc-instrument-wrap .fc-instrument-lead{
  margin-top:clamp(12px,1.3vw,18px);
  font:400 clamp(14px,1.1vw,17px)/1.6 var(--fc-serif,var(--serif)),serif;
  color:#262c27;
  letter-spacing:.035em;
}
.fc-room .fc-instrument-wrap .fc-instrument-lead::before{
  content:'— ';
  color:rgba(40,45,40,.4);
}
html:has(.fc-room){
  /* Only the inter-chapter threshold has a snap point; long-form pages
     otherwise retain continuous, unsnapped, native scrolling. */
  scroll-snap-type:y proximity;
  scroll-padding-top:54px;
}
.fc-room .fc-chapter-threshold{
  position:relative;
  display:block;
  height:clamp(650px,104svh,1350px);
  min-height:650px;
  width:100%;
  margin:0;
  padding:0;
  overflow:visible;
  background:linear-gradient(180deg,#eeede8 0%,#e9e8e2 58%,#e7e6e0 100%);
  scroll-snap-align:start;
  scroll-snap-stop:always;
}
.fc-room .fc-threshold-sticky{
  position:sticky;
  top:calc(54px + 32svh);
  height:clamp(100px,14svh,160px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(17px,2.7vh,26px);
  width:100%;
  padding:0 24px;
  box-sizing:border-box;
  will-change:transform;
}
.fc-room .fc-chapter-threshold .fc-threshold-link{
  font:400 clamp(16px,1.55vw,24px)/1.8 var(--serif),serif;
  transform:translate3d(0,calc(var(--fc-gate-pull,0) * -28px),0);
  transition:transform .65s cubic-bezier(.14,1.45,.3,1), color .4s ease;
}
.fc-room .fc-chapter-threshold .fc-threshold-progress i{
  transition:transform .65s cubic-bezier(.14,1.45,.3,1);
}
.fc-room .fc-chapter-threshold.is-pulling .fc-threshold-link,
.fc-room .fc-chapter-threshold.is-pulling .fc-threshold-progress i{
  transition:none;
}
.fc-room .fc-chapter-threshold .fc-threshold-progress{
  width:min(190px,45vw);
}
.fc-room .fc-chapter-page-two{
  /* A restrained shadow at the edge, not a separate screen transition. */
  box-shadow:0 -12px 45px rgba(22,29,23,.11);
}
@media(max-width:700px){
  .fc-room .fc-reading-instrument{
    margin-top:clamp(47px,10vw,71px);
  }
  .fc-room .fc-reading-theatre{
    margin-top:clamp(47px,9.5vw,74px);
  }
  .fc-room .fc-reading-instrument .fc-instrument-wrap{
    margin-bottom:13px;
  }
  .fc-room .fc-instrument-wrap .fc-instrument-lead{
    margin-top:12px;
    font-size:14px;
  }
  .fc-room .fc-chapter-threshold{
    height:105svh;
    min-height:540px;
  }
  .fc-room .fc-threshold-sticky{
    top:calc(54px + 30svh);
    height:136px;
  }
  .fc-room .fc-chapter-threshold .fc-threshold-link{
    font-size:clamp(14px,3.7vw,18px);
  }
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-chapter-threshold .fc-threshold-link,
  .fc-room .fc-chapter-threshold .fc-threshold-progress i{
    transition:none!important;
  }
}


/* v37 · Fix the projection viewer's viewport positioning.
   The generic .room-view intro has animation-fill-mode:both and its
   final keyframe keeps transform:translateY(0) permanently. A transformed
   ancestor becomes the containing block for position:fixed descendants;
   at the bottom of these long Folly pages the modal therefore opened
   thousands of pixels above the viewport. Restrict the override to Folly.
   All other rooms retain their original enter animation. */
.room-view.fc-room{
  animation:none !important;
  transform:none !important;
  will-change:auto !important;
}
.room-view.fc-room .fc-page{
  transform:none;
  filter:none;
  perspective:none;
}
.room-view.fc-room [data-fc-projection-slot]{
  position:fixed;
  inset:0;
  z-index:1000;
  pointer-events:none;
}
.room-view.fc-room [data-fc-projection-slot] .fc-projection:not([hidden]){
  position:fixed;
  inset:0;
  width:100vw;
  height:100dvh;
  min-height:100svh;
  z-index:1001;
  pointer-events:auto;
}


/* v38 · The projection is now only moving image and a small film index.
   The actual video dimensions define the screen, never a fixed black box. */
.fc-room [data-fc-projection-slot] .fc-projection:not([hidden]){
  display:flex;
  justify-content:center;
  align-items:center;
  overflow:auto;
  background:rgba(0,0,0,.965);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  animation:fc-viewing-darkness .35s ease both;
}
@keyframes fc-viewing-darkness{
  from{opacity:0;}
  to{opacity:1;}
}
.fc-room .fc-projection-scrim{
  position:fixed;
  inset:0;
}
.fc-room .fc-projection-shell{
  position:relative;
  width:min(92vw,1460px,calc((100dvh - 142px) * var(--fc-projection-ratio,1.77778)));
  min-width:0;
  max-width:92vw;
  height:auto;
  min-height:0;
  max-height:calc(100dvh - 20px);
  margin:auto;
  padding:0;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  gap:0;
  overflow:visible;
  background:none;
  box-shadow:none;
  border:0;
  border-radius:0;
  animation:fc-minimal-projection-appear .5s cubic-bezier(.16,.84,.25,1) both;
}
@keyframes fc-minimal-projection-appear{
  from{opacity:0;transform:translateY(7px);}
  to{opacity:1;transform:translateY(0);}
}
.fc-room .fc-projection-top,
.fc-room .fc-projection-arrow,
.fc-room .fc-projection-shell > .fc-score-cluster,
.fc-room .fc-projection-shell > .fc-inspection,
.fc-room .fc-projection-bottom .fc-play-actions,
.fc-room .fc-film-vignette,
.fc-room .fc-film-pause-sign{
  display:none!important;
}
.fc-room .fc-projection-center{
  display:block;
  flex:0 0 auto;
  width:100%;
  min-width:0;
  min-height:0;
  padding:0;
  margin:0;
}
.fc-room .fc-film-wrap{
  display:block;
  width:100%;
  height:auto;
  min-width:0;
  min-height:0;
  max-width:100%;
  max-height:none;
  aspect-ratio:var(--fc-projection-ratio,1.77778);
  overflow:hidden;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:transparent;
}
.fc-room .fc-film-wrap .fc-film{
  display:block;
  width:100%;
  height:auto;
  min-height:0;
  max-width:100%;
  max-height:none;
  aspect-ratio:var(--fc-projection-ratio,1.77778);
  object-fit:contain;
  object-position:center;
  border:none;
  background:transparent;
}
.fc-room .fc-projection-bottom{
  position:relative;
  display:flex;
  flex:0 0 auto;
  align-items:baseline;
  justify-content:space-between;
  gap:14px;
  width:100%;
  min-height:0;
  margin:clamp(10px,1.6vw,19px) 0 0;
  padding:0;
  border:0;
  box-shadow:none;
  text-align:left;
}
.fc-room .fc-projection-bottom .fc-time-index{
  position:static;
  display:flex;
  align-items:baseline;
  gap:6px;
  flex:none;
  margin:0;
  padding:0;
  transform:none;
  white-space:nowrap;
  font-family:var(--serif),serif;
  letter-spacing:.02em;
}
.fc-room .fc-projection-bottom .fc-time-index strong{
  font:400 clamp(23px,2.2vw,30px)/1.2 var(--serif),serif;
  color:rgba(245,245,239,.92);
}
.fc-room .fc-projection-bottom .fc-time-index small{
  font:400 clamp(10px,.91vw,12px)/1.3 var(--serif),serif;
  color:rgba(245,245,239,.5);
}
.fc-room .fc-projection-bottom .fc-now-title{
  display:block;
  flex:0 1 auto;
  font:400 clamp(12px,1.05vw,15px)/1.6 var(--serif),serif;
  letter-spacing:.035em;
  color:rgba(245,245,239,.8);
  text-align:right;
}
.fc-room .fc-film-status{
  bottom:clamp(9px,2vw,20px);
  left:clamp(10px,2vw,20px);
  right:clamp(10px,2vw,20px);
  color:rgba(246,246,239,.72);
  font-size:11px;
}
.fc-room .fc-film:focus-visible{
  outline:1px solid rgba(245,245,239,.47);
  outline-offset:4px;
}
@media(max-width:700px){
  .fc-room .fc-projection-shell{
    width:min(95vw,calc((100dvh - 106px) * var(--fc-projection-ratio,1.77778)));
    max-width:95vw;
  }
  .fc-room .fc-projection-bottom{
    margin-top:12px;
  }
  .fc-room .fc-projection-bottom .fc-time-index strong{font-size:24px;}
  .fc-room .fc-projection-bottom .fc-now-title{font-size:12px;}
}
@media(prefers-reduced-motion:reduce){
  .fc-room [data-fc-projection-slot] .fc-projection:not([hidden]),
  .fc-room .fc-projection-shell{
    animation:none!important;
  }
}


/* v40 · Named movements: category and work share one unbroken heading,
   with the work's own name a little quieter than the section label. */
.fc-room .fc-reading-part-head h3 .fc-reading-part-kind{
  color:#1f241f;
}
.fc-room .fc-reading-part-head h3 .fc-reading-part-divider{
  color:rgba(35,42,35,.45);
  font-weight:400;
}
.fc-room .fc-reading-part-head h3 .fc-reading-part-title{
  color:rgba(32,39,32,.82);
  font-weight:400;
}
@media(max-width:700px){
  .fc-room .fc-reading-part-head h3{
    overflow-wrap:break-word;
  }
}


/* v43 · Folly II / 朽塔焦土: calibrated four-piece triangular score.
   Direct port of Ruin Archive's physical hinge geometry and layered glass,
   adapted to the portfolio's existing inline (rather than side) score.
   The printed layer stays independently foldable; only the two live
   needles follow the seven film segments. Folly I is not affected. */
.fc-room .fc-inline-score-device > .fc-score-cluster.fc-folly2-score {
  display:block;
  position:relative;
  flex:0 0 auto;
  width:min(92%,min(64vh,555px));
  height:auto;
  min-width:0;
  min-height:0;
  max-width:100%;
  max-height:100%;
  aspect-ratio:1/1;
  padding:0;
  overflow:visible;
  border:0;
  background:transparent;
  box-shadow:none;
  isolation:isolate;
  perspective:1300px;
  transform-style:preserve-3d;
}
.fc-room .fc-inline-score-device:has(> .fc-folly2-score) {
  height:clamp(355px,56vw,590px);
  overflow:visible;
}
.fc-room .fc-inline-score.is-expanded .fc-inline-score-device:has(> .fc-folly2-score){
  height:min(75dvh,750px);
}
.fc-room .fc-inline-score.is-expanded .fc-inline-score-device > .fc-folly2-score{
  height:min(100%,650px);
  width:auto;
  max-width:100%;
}
.fc-room .fc-folly2-score .fc-score-shadow,
.fc-room .fc-folly2-score .fc-score-hud {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:transparent;
  transform:none;
  overflow:visible;
}
.fc-room .fc-folly2-score .fc-score-shadow {
  z-index:2;
  opacity:1;
  pointer-events:auto;
  filter:drop-shadow(3px 6px 10px rgba(29,33,29,.14));
}
.fc-room .fc-folly2-score .fc-score-hud {
  z-index:5;
  opacity:1;
  visibility:visible;
  pointer-events:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.fc-room .fc-folly2-score .fc-folly2-fold-stage {
  position:absolute;
  display:block;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  min-width:0;
  min-height:0;
  opacity:1;
  pointer-events:auto;
  isolation:isolate;
  transform-style:preserve-3d;
  overflow:visible;
}
.fc-room .fc-folly2-score .fc-fold-core,
.fc-room .fc-folly2-score .fc-fold-finish {
  position:absolute;
  left:var(--fc-f2-left,30%);
  top:var(--fc-f2-top,34%);
  width:var(--fc-f2-side,40%);
  height:var(--fc-f2-high,34.64%);
  transform:translateZ(-5px);
  transform-style:preserve-3d;
  clip-path:polygon(0 0,100% 0,50% 100%);
  -webkit-clip-path:polygon(0 0,100% 0,50% 100%);
  overflow:hidden;
  pointer-events:none;
}
.fc-room .fc-folly2-score .fc-fold-core {
  z-index:1;
  background:rgba(248,248,241,.04);
  transition:opacity .25s linear;
}
.fc-room .fc-folly2-score .fc-fold-axis {
  position:absolute;
  width:0;
  height:0;
  min-width:0;
  min-height:0;
  z-index:2;
  transform:rotateZ(var(--fc-f2-axis,0deg));
  transform-style:preserve-3d;
  transition:opacity .25s linear;
}
.fc-room .fc-folly2-score .fc-fold-wing {
  position:absolute;
  left:calc(var(--fc-f2-side,200px) / -2);
  top:calc(var(--fc-f2-high,173px) * -1);
  width:var(--fc-f2-side,200px);
  height:var(--fc-f2-high,173px);
  transform-origin:50% 100%;
  transform-style:preserve-3d;
  transform:rotateX(var(--fc-fold-angle,0deg));
  /* The physical wing owns its triangular cut. Both printed faces remain
     rectangular textures so the reverse never appears to pivot at its apex. */
  clip-path:polygon(50% 0,100% 100%,0 100%);
  -webkit-clip-path:polygon(50% 0,100% 100%,0 100%);
  overflow:hidden;
  cursor:grab;
  touch-action:none;
  pointer-events:auto;
  transition:none;
  will-change:transform;
}
.fc-room .fc-folly2-score .fc-fold-axis.fc-f2-fold-animate .fc-fold-wing {
  transition:transform .72s cubic-bezier(.18,.78,.18,1);
}
.fc-room .fc-folly2-score .fc-fold-axis.fc-f2-dragging .fc-fold-wing{
  cursor:grabbing;
  transition:none!important;
}
.fc-room .fc-folly2-score .fc-fold-face{
  position:absolute;
  inset:0;
  overflow:hidden;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transform-style:preserve-3d;
}
.fc-room .fc-folly2-score .fc-fold-face-front{
  transform:translateZ(.25px);
  opacity:.97;
}
.fc-room .fc-folly2-score .fc-fold-face-back{
  transform:rotateX(180deg) translateZ(.25px);
  opacity:.47;
  filter:none;
}
.fc-room .fc-folly2-score .fc-fold-face-back img{
  transform:scaleX(-1);
  filter:contrast(.93) saturate(.62);
}
.fc-room .fc-folly2-score .fc-fold-core img,
.fc-room .fc-folly2-score .fc-fold-face img,
.fc-room .fc-folly2-score .fc-fold-finish img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:cover;
  object-position:center;
  user-select:none;
  pointer-events:none;
  -webkit-user-drag:none;
}
.fc-room .fc-folly2-score .fc-fold-finish{
  z-index:12;
  opacity:0;
  visibility:hidden;
  transform:none;
  transition:opacity .22s ease,visibility 0s linear .22s;
}
.fc-room .fc-folly2-score.fc-f2-final .fc-fold-finish{
  opacity:1;
  visibility:visible;
  transition:opacity .92s cubic-bezier(.22,1,.36,1),visibility 0s;
}
.fc-room .fc-folly2-score.fc-f2-final .fc-fold-core,
.fc-room .fc-folly2-score.fc-f2-final .fc-fold-axis {
  opacity:.025;
  pointer-events:none;
}
/* Three-corner target + shifted, translucent upper indicator triangle. */
.fc-room .fc-folly2-score .fc-f2-shadow-corners,
.fc-room .fc-folly2-score .fc-f2-live-triangle {
  position:absolute;
  left:var(--fc-f2-left,30%);
  top:var(--fc-f2-top,34%);
  width:var(--fc-f2-side,40%);
  height:var(--fc-f2-high,34.64%);
  overflow:visible;
  box-sizing:border-box;
}
.fc-room .fc-folly2-score .fc-f2-shadow-corners {
  z-index:18;
  opacity:0;
  pointer-events:none;
  transition:opacity .42s ease;
}
.fc-room .fc-folly2-score.fc-f2-live .fc-f2-shadow-corners{
  opacity:.58;
}
.fc-room .fc-folly2-score .fc-f2-live-triangle {
  z-index:25;
  /* Hover offsets are set on the cluster by the calibration controller
     and intentionally INHERIT here; do not shadow them with local defaults. */
  transform:translate(
    calc(12px + var(--fc-f2-hover-x,0px)),
    calc(-14px + var(--fc-f2-hover-y,0px))
  );
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:transform .75s cubic-bezier(.25,1,.5,1),opacity .42s ease,visibility 0s .42s;
}
.fc-room .fc-inline-score[data-fc-pointers="on"] .fc-folly2-score.fc-f2-live .fc-f2-live-triangle{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition:transform .75s cubic-bezier(.25,1,.5,1),opacity .42s ease,visibility 0s;
}
.fc-room .fc-folly2-score.fc-f2-locked .fc-f2-live-triangle{
  transform:translate(0,0)!important;
  transition:transform .28s cubic-bezier(.17,.84,.44,1),opacity .42s ease!important;
}
.fc-room .fc-folly2-score .fc-f2-glass{
  position:absolute;
  inset:0;
  clip-path:polygon(0 0,100% 0,50% 100%);
  -webkit-clip-path:polygon(0 0,100% 0,50% 100%);
  background:rgba(255,255,248,.10);
  border:1px solid rgba(248,248,244,.15);
  backdrop-filter:blur(2px) brightness(1.05);
  -webkit-backdrop-filter:blur(2px) brightness(1.05);
  box-shadow:inset 0 0 17px rgba(255,255,255,.12);
  pointer-events:none;
}
.fc-room .fc-folly2-score.fc-f2-locked .fc-f2-glass{
  background:rgba(255,255,248,.015);
  backdrop-filter:blur(0);
  -webkit-backdrop-filter:blur(0);
}
.fc-room .fc-folly2-score .fc-f2-corners{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
  pointer-events:none;
}
.fc-room .fc-folly2-score .fc-f2-corners path{
  fill:none;
  stroke:rgba(65,71,63,.68);
  stroke-width:1.25px;
  stroke-linecap:square;
  vector-effect:non-scaling-stroke;
}
.fc-room .fc-folly2-score.fc-f2-locked .fc-f2-corners path{
  stroke:rgba(36,48,38,.96);
  stroke-width:1.5px;
}
.fc-room .fc-folly2-score .fc-radial-needles{
  position:absolute;
  inset:0;
  left:0;
  top:0;
  width:100%;
  height:100%;
  z-index:22;
  overflow:hidden;
  clip-path:polygon(0 0,100% 0,50% 100%);
  -webkit-clip-path:polygon(0 0,100% 0,50% 100%);
  pointer-events:none;
}
.fc-room .fc-inline-score[data-fc-pointers="on"] .fc-folly2-score.fc-f2-live .fc-radial-needles{
  pointer-events:auto;
  cursor:ew-resize;
  touch-action:none;
}
.fc-room .fc-folly2-score .fc-radial-needles i{
  position:absolute;
  display:block;
  /* v46: Folly Archive v323 independently calibrated first needle.
     These percentages are measured in the FINAL inverted triangle,
     not the large unfolded three-wing sheet. */
  left:33.5%;top:50%;
  width:40%;height:1.7px;
  transform-origin:left center;
  transform:rotate(-65deg);
  background:#ffb870;
  box-shadow:0 0 5px #ffdaaa,0 0 12px #c45733,0 0 18px #7a4336;
  filter:drop-shadow(0 0 4px rgba(200,90,50,.72));
  transition:transform .15s linear,filter .25s ease;
  pointer-events:none;
}
.fc-room .fc-folly2-score .fc-radial-needles i:nth-child(2){
  /* v46: second needle has a separate origin and shorter length. */
  left:41.5%;top:22%;width:29%;height:1.7px;
  transform:rotate(-55deg);
  transition-duration:.03s,.25s;
}
.fc-room .fc-folly2-score.fc-f2-locked .fc-radial-needles i{
  filter:none;
}
.fc-room .fc-folly2-score .fc-score-manual{
  display:none;
}
.fc-room .fc-folly2-score .fc-score-expand{
  opacity:0;
  pointer-events:none;
}
.fc-room .fc-folly2-score.fc-f2-assets-partial::after{
  content:"SCORE / IMAGE LOADING INCOMPLETE";
  position:absolute;
  bottom:4px;
  left:0;
  color:rgba(45,54,45,.55);
  font:10px/1.4 var(--serif),serif;
  letter-spacing:.04em;
}
@media(max-width:700px),(hover:none){
  .fc-room .fc-inline-score-device:has(> .fc-folly2-score){
    height:clamp(305px,85vw,440px);
  }
  .fc-room .fc-inline-score-device>.fc-folly2-score{
    width:min(100%,440px);
    max-height:100%;
  }
  .fc-room .fc-folly2-score .fc-f2-live-triangle{
    transform:none;
  }
  .fc-room .fc-folly2-score .fc-f2-glass,
  .fc-room .fc-folly2-score .fc-f2-shadow-corners{
    display:none;
  }
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-folly2-score .fc-fold-wing,
  .fc-room .fc-folly2-score .fc-fold-finish,
  .fc-room .fc-folly2-score .fc-f2-live-triangle{
    transition:none!important;
  }
}


/* v46 · The plotted needles must be seated on the final score only.
   The triangle is the common registration plane on desktop and mobile. */
.fc-room .fc-folly2-score .fc-f2-live-triangle{
  transform:translate(
    calc(12px + var(--fc-f2-hover-x,0px)),
    calc(-14px + var(--fc-f2-hover-y,0px))
  );
}
.fc-room .fc-inline-score[data-fc-pointers="on"] .fc-folly2-score.fc-f2-live.fc-f2-folded .fc-f2-live-triangle{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.fc-room .fc-folly2-score:not(.fc-f2-folded) .fc-f2-live-triangle{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.fc-room .fc-folly2-score .fc-radial-needles i{
  min-width:0;
  border:0;
  transform-origin:left center;
}
@media(max-width:700px),(hover:none){
  /* In the compact reference viewer, alignment is direct: no hovering
     glass offset, no magnetic translation, both needles share the
     physical folded centre's origin. */
  .fc-room .fc-folly2-score .fc-f2-live-triangle,
  .fc-room .fc-folly2-score.fc-f2-locked .fc-f2-live-triangle{
    transform:translate(0,0)!important;
  }
}


/* v52 · Safari 4G: printed film stills precede expensive MP4 decoding.
   These are real ~960px FFmpeg-exported JPEGs, generated in GitHub Actions.
   The legacy canvas stays as a fallback only when a thumbnail is absent. */
.fc-room .fc-card .fc-frame{
  position:relative;
}
.fc-room .fc-card .fc-thumbnail{
  position:absolute;
  inset:0;
  z-index:3;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  opacity:1;
  background:transparent;
  filter:brightness(1.07) contrast(1.02);
  transition:opacity .32s ease;
}
.fc-room .fc-card .fc-thumbnail[hidden],
.fc-room .fc-card.has-frame .fc-thumbnail{
  display:none!important;
}
.fc-room .fc-card.is-previewing .fc-thumbnail{
  opacity:0;
}
.fc-room .fc-card .fc-hover-video{
  z-index:4;
}
.fc-room .fc-card .fc-card-open-sign,
.fc-room .fc-threshold-link span,
.fc-room .fc-score-expand{
  font-family:Georgia,"Times New Roman",serif;
  font-variant-emoji:text;
}
/* Render the visible north-east expand symbol as a literal line-drawn SVG,
   rather than depending on a potentially colourful Safari Emoji font. */
.fc-room .fc-card .fc-card-open-sign{
  font-size:0!important;
  line-height:0!important;
  display:flex;
  align-items:center;
  justify-content:center;
  width:clamp(16px,1.7vw,22px);
  height:clamp(16px,1.7vw,22px);
}
.fc-room .fc-card .fc-card-open-sign::before{
  content:"";
  display:block;
  flex:none;
  width:100%;
  height:100%;
  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");
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-card .fc-thumbnail{transition:none!important;}
}

/* v88 · Quiet artwork records. They sit underneath the descriptive prose
   without cards, background panels, or framed metadata containers. */
.fc-room .fc-reading-part .fc-work-facts{
  display:grid;
  gap:5px;
  width:min(100%,770px);
  max-width:100%;
  margin:clamp(18px,2.4vw,32px) 0 0;
  padding:0;
  font:400 clamp(11px,.88vw,13px)/1.85 var(--serif),serif;
  letter-spacing:.012em;
  color:rgba(38,45,39,.71);
}
.fc-room .fc-reading-part .fc-work-fact{
  display:grid;
  grid-template-columns:clamp(66px,7vw,92px) minmax(0,1fr);
  column-gap:clamp(8px,1.3vw,19px);
  align-items:start;
}
.fc-room .fc-reading-part .fc-work-fact dt{
  margin:0;
  font:inherit;
  color:rgba(38,45,39,.48);
  white-space:nowrap;
}
.fc-room .fc-reading-part .fc-work-fact dd{
  margin:0;
  font:inherit;
  min-width:0;
  overflow-wrap:break-word;
}
.fc-room .fc-reading-garden .fc-garden-copy{
  margin-bottom:0;
}
@media(max-width:700px){
  .fc-room .fc-reading-part .fc-work-facts{
    margin-top:20px;
    gap:6px;
    font-size:11px;
    line-height:1.85;
  }
  .fc-room .fc-reading-part .fc-work-fact{
    grid-template-columns:56px minmax(0,1fr);
    column-gap:10px;
  }
}

/* v89 · A restrained physical-object label beneath Folly I's paper score.
   Matches the existing dimensions/materials notes without a new panel. */
.fc-room .fc-inline-score[data-fc-inline-score="0"] .fc-score-object-facts{
  display:grid;
  gap:3px;
  width:min(100%,640px);
  max-width:100%;
  margin:clamp(9px,1.3vw,18px) auto 0;
  padding:0;
  border:0;
  background:transparent;
  color:rgba(38,45,39,.70);
  font:400 clamp(11px,.88vw,13px)/1.85 var(--serif),serif;
  letter-spacing:.012em;
}
.fc-room .fc-inline-score[data-fc-inline-score="0"] .fc-score-object-fact{
  display:grid;
  grid-template-columns:clamp(58px,6vw,82px) minmax(0,1fr);
  align-items:baseline;
  column-gap:clamp(8px,1.3vw,18px);
  width:min(100%,580px);
  margin:0 auto;
  padding:0;
}
.fc-room .fc-inline-score[data-fc-inline-score="0"] .fc-score-object-fact dt{
  margin:0;
  font:inherit;
  color:rgba(38,45,39,.48);
  white-space:nowrap;
}
.fc-room .fc-inline-score[data-fc-inline-score="0"] .fc-score-object-fact dd{
  margin:0;
  min-width:0;
  font:inherit;
  overflow-wrap:break-word;
}
@media(max-width:700px){
  .fc-room .fc-inline-score[data-fc-inline-score="0"] .fc-score-object-facts{
    margin-top:10px;
    font-size:11px;
    line-height:1.85;
  }
  .fc-room .fc-inline-score[data-fc-inline-score="0"] .fc-score-object-fact{
    grid-template-columns:48px minmax(0,1fr);
    column-gap:10px;
  }
}

/* v90 · Folly record disclosures. The short text stays quietly visible;
   the adjacent ellipsis reveals the complete dimensions or material notes.
   Native details/summary supports pointer, keyboard, and screen readers. */
.fc-room .fc-fact-disclosure{
  display:block;
  width:100%;
  min-width:0;
  padding:0;
  margin:0;
  border:0;
  background:transparent;
}
.fc-room .fc-fact-disclosure > summary{
  display:inline-flex;
  max-width:100%;
  align-items:baseline;
  flex-wrap:wrap;
  column-gap:6px;
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  list-style:none;
  cursor:pointer;
  color:inherit;
  font:inherit;
}
.fc-room .fc-fact-disclosure > summary::-webkit-details-marker{
  display:none;
}
.fc-room .fc-fact-disclosure > summary::marker{
  content:'';
}
.fc-room .fc-fact-disclosure .fc-fact-short{
  min-width:0;
  overflow-wrap:anywhere;
}
.fc-room .fc-fact-disclosure .fc-fact-ellipsis{
  display:inline-block;
  flex:none;
  font:400 16px/1 var(--serif),serif;
  letter-spacing:.07em;
  color:rgba(38,45,39,.46);
  transition:color .18s ease;
}
.fc-room .fc-fact-disclosure > summary:hover .fc-fact-ellipsis,
.fc-room .fc-fact-disclosure[open] .fc-fact-ellipsis{
  color:rgba(38,45,39,.85);
}
.fc-room .fc-fact-disclosure > summary:focus-visible{
  outline:1px solid rgba(40,48,41,.55);
  outline-offset:3px;
}
.fc-room .fc-fact-disclosure .fc-fact-expanded{
  display:block;
  max-width:100%;
  margin:4px 0 7px;
  padding:0;
  color:rgba(38,45,39,.62);
  font:inherit;
  line-height:1.95;
  overflow-wrap:break-word;
}
.fc-room .fc-score-object-facts .fc-fact-expanded{
  margin-top:5px;
}
@media(max-width:700px){
  .fc-room .fc-fact-disclosure > summary{
    column-gap:5px;
  }
  .fc-room .fc-fact-disclosure .fc-fact-ellipsis{
    font-size:15px;
  }
  .fc-room .fc-fact-disclosure .fc-fact-expanded{
    margin-top:5px;
    line-height:1.9;
  }
}



/* Folly II · 22 frame score, following Folly I's film-linked sequence.
   Source WebPs are 6000×4000, so preserve their 3:2 paper proportions.
   The original folded score CSS remains archival and no longer matches markup. */
.fc-room .fc-inline-score-device > .fc-score-cluster.fc-score2-sequence {
  display:block;
  position:relative;
  flex:0 1 auto;
  box-sizing:border-box;
  width:min(94%,860px);
  height:auto;
  min-width:0;
  min-height:0;
  max-width:94%;
  max-height:90%;
  aspect-ratio:3/2;
  border:0;
  padding:0;
  margin:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
  isolation:isolate;
}
.fc-room .fc-inline-score.is-expanded .fc-inline-score-device > .fc-score2-sequence{
  width:min(94%,1040px);
  max-height:91%;
}
.fc-room .fc-score2-sequence > .fc-score-shadow,
.fc-room .fc-inline-score .fc-score2-sequence > .fc-score-shadow{
  display:block;
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  opacity:1;
  visibility:visible;
  transform:none;
  filter:drop-shadow(4px 8px 12px rgba(29,33,29,.14));
  border:0;
  background:transparent;
  overflow:visible;
  pointer-events:auto;
}
.fc-room .fc-score2-sequence .fc-score2-sheet{
  display:block;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  overflow:hidden;
  cursor:ns-resize;
  touch-action:none;
  pointer-events:auto;
}
.fc-room .fc-score2-sequence .fc-score2-sheet > img{
  display:block;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  max-width:none;
  max-height:none;
  object-fit:contain;
  object-position:center;
  filter:none;
  user-select:none;
  pointer-events:none;
  -webkit-user-drag:none;
}
.fc-room .fc-score2-sequence > .fc-score-hud{
  position:absolute;
  inset:0;
  z-index:4;
  border:0;
  padding:0;
  margin:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  transform:none;
  overflow:hidden;
  pointer-events:none;
}
.fc-room .fc-inline-score[data-fc-pointers="off"] .fc-score2-sequence > .fc-score-hud{
  opacity:0!important;
  visibility:hidden!important;
}
.fc-room .fc-inline-score[data-fc-pointers="on"] .fc-score2-sequence > .fc-score-hud{
  opacity:1!important;
  visibility:visible!important;
}
.fc-room .fc-score2-sequence .fc-score2-pointer{
  display:block;
  position:absolute;
  left:12%;
  top:2%;
  width:1px;
  height:96%;
  background:rgba(245,235,208,.82);
  box-shadow:0 0 5px rgba(247,226,192,.65);
  transform:translateX(-50%);
  transition:left .09s linear;
  pointer-events:none;
}
.fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-score-object-facts{
  display:grid;
  gap:3px;
  width:min(100%,640px);
  margin:clamp(9px,1.3vw,18px) auto 0;
  padding:0;
  color:rgba(38,45,39,.70);
  font:400 clamp(11px,.88vw,13px)/1.85 var(--serif),serif;
}
.fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-score-object-fact{
  display:grid;
  grid-template-columns:clamp(58px,6vw,82px) minmax(0,1fr);
  align-items:baseline;
  gap:clamp(8px,1.3vw,18px);
  width:min(100%,580px);
  margin:0 auto;
}
.fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-score-object-fact dt{
  margin:0;color:rgba(38,45,39,.48);white-space:nowrap;
}
.fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-score-object-fact dd{
  margin:0;min-width:0;
}
.fc-room .fc-inspect-mechanical.fc-inspect-score2{
  aspect-ratio:3/2;
  width:min(100%,850px);
  height:auto;
  max-height:100%;
}
.fc-room .fc-inspect-score2 > img{
  display:block;width:100%;height:100%;object-fit:contain;
}
.fc-room .fc-inspect-score2 .fc-inspect-lever{
  left:auto;
  right:0;
  top:9%;
  height:82%;
  z-index:3;
}
@media(max-width:700px){
  .fc-room .fc-inline-score-device > .fc-score2-sequence{
    width:94%;
    max-width:94%;
    aspect-ratio:3/2;
  }
  .fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-score-object-facts{
    margin-top:10px;font-size:11px;
  }
  .fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-score-object-fact{
    grid-template-columns:48px minmax(0,1fr);
    column-gap:10px;
  }
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-score2-sequence .fc-score2-pointer{transition:none;}
}


/* v94 · Chapter boundary shading: shadows belong to the PAGE SEAM.
   The prior sticky, viewport-height overlay could remain at 0.46 opacity
   and form a hard-edged gray rectangle over Folly II (including photographs).
   Constrain each veil to a soft strip near the chapter boundary. */
.fc-room .fc-chapter-page > .fc-page-shadow{
  position:absolute;
  display:block;
  left:0;
  right:0;
  width:100%;
  min-height:0;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  pointer-events:none;
  transform:none;
  will-change:auto;
  box-shadow:none;
}
.fc-room .fc-chapter-page-one > .fc-page-shadow{
  top:auto;
  bottom:0;
  height:clamp(130px,23svh,310px);
  background:linear-gradient(to bottom,
    rgba(11,16,13,0) 0%,
    rgba(11,16,13,.10) 32%,
    rgba(11,16,13,.60) 100%);
  opacity:0;
}
.fc-room .fc-chapter-page-two > .fc-page-shadow{
  top:0;
  bottom:auto;
  height:clamp(130px,25svh,330px);
  background:linear-gradient(to bottom,
    rgba(11,16,13,.55) 0%,
    rgba(11,16,13,.12) 65%,
    rgba(11,16,13,0) 100%);
  opacity:.46;
}
@media(max-width:700px){
  .fc-room .fc-chapter-page-one > .fc-page-shadow,
  .fc-room .fc-chapter-page-two > .fc-page-shadow{
    height:clamp(105px,19svh,210px);
    margin:0;
  }
}

/* v94 · No blank frame: the real score is rendered into one persistent canvas.
   The initial 22.webp remains as a fallback until the first frame is painted.
   Subsequent frames overwrite the canvas only AFTER their full decode. */
.fc-room .fc-score2-sequence .fc-score2-sheet > canvas,
.fc-room .fc-inspect-score2 > canvas{
  display:block;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  padding:0;
  margin:0;
  object-fit:contain;
  opacity:0;
  pointer-events:none;
  user-select:none;
}
.fc-room .fc-score2-sequence.fc-score2-ready .fc-score2-sheet > canvas,
.fc-room .fc-inspect-score2.fc-score2-ready > canvas{
  opacity:1;
}
.fc-room .fc-score2-sequence.fc-score2-ready .fc-score2-sheet > img,
.fc-room .fc-inspect-score2.fc-score2-ready > img{
  opacity:0;
}
/* Explicitly give the inspector its own canvas positioning context. */
.fc-room .fc-inspect-score2{
  position:relative;
  overflow:hidden;
}


/* v96 · Optimized Folly score frame buffer.
   Both scores use TWO stacked images, not a repeatedly cleared canvas.
   The inactive image finishes loading/decoding before becoming visible,
   so no loading flash or interim background is ever exposed. */
.fc-room .fc-mechanical-v2-sheet > img.fc-score-frame-playback,
.fc-room .fc-score2-sequence .fc-score2-sheet > img.fc-score-frame-playback,
.fc-room .fc-inspect-mechanical > img.fc-score-frame-playback {
  display:block;
  position:absolute;
  inset:0;
  z-index:3;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  object-fit:contain;
  object-position:center;
  filter:none;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  opacity:0;
  transition:none!important;
}
.fc-room .fc-score2-sequence .fc-score2-sheet > canvas,
.fc-room .fc-mechanical-v2 .fc-mechanical-v2-canvas,
.fc-room .fc-inspect-score2 > canvas {
  display:none!important;
}
/* Existing static frame remains behind the playback layer as a fallback.
   Do not show the old single-frame canvas, nor apply its frame-hide class. */
.fc-room .fc-score2-sequence .fc-score2-sheet > img[data-fc-score2-img],
.fc-room .fc-mechanical-v2-sheet > img[data-fc-score-shadow-img] {
  transition:none!important;
}
.fc-room .fc-inspect-mechanical > .fc-inspect-lever{
  z-index:5;
}


/* v99 · Score II calibrated diagonal lever and enlarged 3:2 score.
   Increase the available actual layout size by 150%; do not use transform
   scale(), which would detach pointer geometry from its hit-testing area. */
.fc-room .fc-inline-score[data-fc-inline-score="1"]{
  width:min(calc(100% - 2 * clamp(24px,7vw,120px)),1575px);
  max-width:1575px;
}
.fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-inline-score-device{
  height:clamp(615px,67.5vw,930px);
  min-height:0;
  overflow:visible;
}
.fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-inline-score-device > .fc-score2-sequence{
  width:min(96%,1290px);
  max-width:96%;
  max-height:90%;
  height:auto;
  min-width:0;
  min-height:0;
  aspect-ratio:3/2;
}
.fc-room .fc-inline-score[data-fc-inline-score="1"].is-expanded .fc-inline-score-device{
  height:min(77dvh,930px);
}
.fc-room .fc-inline-score[data-fc-inline-score="1"].is-expanded .fc-inline-score-device > .fc-score2-sequence{
  width:min(94%,1500px);
  max-height:92%;
}
.fc-room .fc-score2-diagonal{
  position:absolute;
  right:clamp(12px,4.2vw,78px);
  bottom:clamp(17px,4.4vw,82px);
  z-index:12;
  width:clamp(180px,23vw,310px);
  aspect-ratio:260/160;
  height:auto;
  overflow:visible;
  pointer-events:none;
  color:rgba(91,94,89,.74);
}
.fc-room .fc-score2-diagonal svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
  pointer-events:none;
}
.fc-room .fc-score2-diagonal svg path{
  fill:none;
  stroke:currentColor;
  stroke-width:1.25px;
  stroke-dasharray:5 7;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
}
.fc-room .fc-score2-diagonal .fc-score2-handle,
.fc-room .fc-score2-diagonal .fc-score2-trailer{
  position:absolute;
  display:block;
  box-sizing:border-box;
  left:8.46%;
  top:13.75%;
  padding:0;
  border-radius:50%;
  transform:translate(-50%,-50%);
  transition:none;
}
.fc-room .fc-score2-diagonal .fc-score2-handle{
  z-index:3;
  width:clamp(31px,2.9vw,43px);
  height:clamp(31px,2.9vw,43px);
  border:2px solid rgba(92,98,92,.80);
  background:rgba(252,253,249,.91);
  box-shadow:0 0 0 2px rgba(255,255,252,.18);
  cursor:grab;
  touch-action:none;
  pointer-events:auto;
  -webkit-appearance:none;
  appearance:none;
}
.fc-room .fc-score2-diagonal .fc-score2-handle::after{
  content:"";
  position:absolute;
  inset:-12px;
  border-radius:50%;
}
.fc-room .fc-score2-diagonal .fc-score2-handle:hover,
.fc-room .fc-score2-diagonal .fc-score2-handle.is-dragging{
  border-color:rgba(50,55,50,.94);
  box-shadow:0 0 0 3px rgba(255,255,248,.55);
}
.fc-room .fc-score2-diagonal .fc-score2-handle.is-dragging{
  cursor:grabbing;
}
.fc-room .fc-score2-diagonal .fc-score2-handle:focus-visible{
  outline:2px solid rgba(41,49,43,.82);
  outline-offset:5px;
}
.fc-room .fc-score2-diagonal .fc-score2-trailer{
  z-index:2;
  left:91.54%;
  top:86.25%;
  width:clamp(13px,1.3vw,19px);
  height:clamp(13px,1.3vw,19px);
  border:1.6px solid rgba(91,96,88,.78);
  background:rgba(248,249,244,.7);
  pointer-events:none;
}
.fc-room .fc-score2-diagonal .fc-score2-trailer::after{
  content:"";
  position:absolute;
  left:50%;top:50%;
  width:3px;height:3px;border-radius:50%;
  background:rgba(94,100,91,.55);
  transform:translate(-50%,-50%);
}
@media(max-width:700px){
  .fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-inline-score-device{
    height:clamp(480px,108vw,640px);
  }
  .fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-inline-score-device > .fc-score2-sequence{
    width:97%;
    max-width:97%;
    max-height:82%;
  }
  .fc-room .fc-score2-diagonal{
    width:clamp(146px,39vw,205px);
    right:0;
    bottom:2%;
  }
  .fc-room .fc-score2-diagonal .fc-score2-handle{width:33px;height:33px;}
  .fc-room .fc-score2-diagonal .fc-score2-trailer{width:14px;height:14px;}
}

/* Folly's final paragraph is replaced by two quiet links to this site's
   own Ruin Archive and Manifesto rooms, following the existing hash router. */
.fc-room .fc-related-reading{
  width:min(calc(100% - 2 * clamp(24px,7vw,120px)),1060px);
  margin:clamp(80px,12vh,170px) auto clamp(95px,14vh,200px);
  padding:clamp(28px,4vw,48px) 0 0;
  border-top:1px solid rgba(38,44,39,.23);
  background:transparent;
}
.fc-room .fc-related-heading{
  margin:0 0 clamp(26px,4vw,55px);
  color:rgba(39,45,40,.51);
  font:400 11px/1.5 var(--sans),sans-serif;
  letter-spacing:.12em;
}
.fc-room .fc-related-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(35px,7vw,110px);
  row-gap:40px;
}
.fc-room .fc-related-entry{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
  padding:0;
  margin:0;
}
.fc-room .fc-related-entry h3{
  margin:0 0 19px;
  color:#272c27;
  font:400 clamp(21px,2vw,29px)/1.45 var(--serif),serif;
  letter-spacing:.025em;
}
.fc-room .fc-related-entry p{
  max-width:460px;
  margin:0 0 23px;
  color:rgba(39,45,39,.72);
  font:400 clamp(13px,1.05vw,16px)/2 var(--serif),serif;
}
.fc-room .fc-related-entry a{
  display:inline-block;
  margin-top:auto;
  padding-bottom:5px;
  border-bottom:1px solid rgba(40,46,40,.32);
  color:rgba(30,37,31,.82);
  font:400 12px/1.7 var(--serif),serif;
  text-decoration:none;
  transition:border-color .22s,color .22s;
}
.fc-room .fc-related-entry a:hover{
  color:#172018;
  border-color:rgba(28,38,30,.88);
}
.fc-room .fc-related-entry a:focus-visible{
  outline:1px solid rgba(30,40,32,.9);outline-offset:5px;
}
@media(max-width:700px){
  .fc-room .fc-related-reading{margin-top:85px;padding-top:27px;}
  .fc-room .fc-related-grid{grid-template-columns:1fr;gap:38px;}
  .fc-room .fc-related-entry h3{font-size:23px;margin-bottom:13px;}
}


/* v101 · Folly I native HUD alignment and Folly II compiled notation.
   Folly I's original score-hud geometry is sourced from the authored
   scan: x = 12% → 88%, pulse y = 94% → 72%, with the same 1:53
   disappearance. Both indications use the exact same printed sheet box. */
.fc-room .fc-inline-score .fc-mechanical-v2 > .fc-score-hud{
  position:absolute;
  inset:0;
  top:0;left:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  z-index:5;
  box-sizing:border-box;
  transform:none;
  pointer-events:none;
}
.fc-room .fc-inline-score .fc-mechanical-v2 > .fc-score-hud .fc-score-notation,
.fc-room .fc-inline-score .fc-mechanical-v2 > .fc-score-hud .fc-mechanical-v2-graphics{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  box-sizing:border-box;
  transform:none;
  pointer-events:none;
}
.fc-room .fc-mechanical-v2 .fc-scan-line{
  left:var(--fc-folly1-hud-x,12%);
  top:72%;
  height:22%;
  transform:translateX(-50%);
}
.fc-room .fc-mechanical-v2 .fc-scan-pulse{
  left:var(--fc-folly1-hud-x,12%);
  top:var(--fc-folly1-hud-y,94%);
}
.fc-room .fc-inline-score[data-fc-pointers="off"] .fc-mechanical-v2 > .fc-score-hud{
  opacity:0!important;
  visibility:hidden!important;
}
.fc-room .fc-inline-score[data-fc-pointers="on"] .fc-mechanical-v2 > .fc-score-hud{
  opacity:1!important;
  visibility:visible!important;
}
/* The compiled sheet is a second image ABOVE the frame sequence, but BELOW
   the pointer. It does not load or occupy a separate layout box. */
.fc-room .fc-score2-sequence .fc-score2-compiled{
  display:block;
  position:absolute;
  inset:0;
  z-index:3;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:contain;
  object-position:center;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  filter:none;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  opacity:0;
  visibility:hidden;
  transition:opacity .5s ease,visibility .5s ease;
}
.fc-room .fc-inline-score[data-fc-pointers="on"][data-fc-compiled-active="on"] .fc-score2-sequence .fc-score2-compiled{
  opacity:1;
  visibility:visible;
}
/* The pointer must never appear on the unfinished frame rewind; it belongs
   to compiled.png alone. Its provisional origin is low and near the center. */
.fc-room .fc-inline-score[data-fc-pointers="on"]:not([data-fc-compiled-active="on"]) .fc-score2-sequence > .fc-score-hud{
  opacity:0!important;
  visibility:hidden!important;
}
.fc-room .fc-inline-score[data-fc-pointers="on"][data-fc-compiled-active="on"] .fc-score2-sequence > .fc-score-hud{
  opacity:1!important;
  visibility:visible!important;
}
.fc-room .fc-score2-sequence .fc-score2-pointer{
  position:absolute;
  left:var(--fc-score2-pointer-x,49%);
  top:var(--fc-score2-pointer-y,73%);
  width:19px;
  height:19px;
  box-sizing:border-box;
  border:1.4px solid rgba(51,61,55,.80);
  border-radius:50%;
  background:rgba(248,249,244,.64);
  box-shadow:0 0 0 3px rgba(251,251,247,.38);
  transform:translate(-50%,-50%);
  transition:left .12s linear,top .12s linear;
  pointer-events:none;
}
.fc-room .fc-score2-sequence .fc-score2-pointer::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:4px;height:4px;
  background:rgba(51,61,55,.72);
  border-radius:50%;
  transform:translate(-50%,-50%);
}
.fc-room .fc-score2-sequence .fc-score2-pointer::after{
  content:"";
  position:absolute;
  left:50%;
  top:calc(100% + 5px);
  width:1px;height:24px;
  background:linear-gradient(to bottom,rgba(51,61,55,.58),rgba(51,61,55,0));
  transform:translateX(-50%);
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-score2-sequence .fc-score2-compiled,
  .fc-room .fc-score2-sequence .fc-score2-pointer{transition:none;}
}


/* v104 · score II first-frame ghost and 120% physical sizing.
   Keep the initial frame while loading, remove it from paint compositing
   as soon as the first fully decoded buffered frame has been committed.
   This fixes transparent portions revealing the first image underneath. */
.fc-room .fc-score2-sequence .fc-score2-sheet.fc-score-playback-active > img[data-fc-score2-img],
.fc-room .fc-inspect-score2.fc-score-playback-active > img[data-fc-inspect-score2-img]{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.fc-room .fc-score2-sequence .fc-score2-sheet > img.fc-score-frame-playback,
.fc-room .fc-inspect-score2 > img.fc-score-frame-playback{
  visibility:visible;
}

/* Original score II dimensions: 860px artwork, 1040px expanded artwork,
   1050px page width, 620px maximum stage height. 120% gives
   1032 / 1248 / 1260 / 744 respectively (not the previous 150%). */
.fc-room .fc-inline-score[data-fc-inline-score="1"]{
  width:min(calc(100% - 2 * clamp(24px,7vw,120px)),1260px);
  max-width:1260px;
}
.fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-inline-score-device{
  height:clamp(492px,54vw,744px);
}
.fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-inline-score-device > .fc-score2-sequence{
  width:min(94%,1032px);
  max-width:94%;
  max-height:90%;
}
.fc-room .fc-inline-score[data-fc-inline-score="1"].is-expanded .fc-inline-score-device{
  height:min(74dvh,744px);
}
.fc-room .fc-inline-score[data-fc-inline-score="1"].is-expanded .fc-inline-score-device > .fc-score2-sequence{
  width:min(94%,1248px);
  max-width:94%;
  max-height:91%;
}
@media(max-width:700px){
  .fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-inline-score-device{
    height:clamp(450px,68.4vw,660px);
  }
  .fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-inline-score-device > .fc-score2-sequence{
    width:94%;max-width:94%;max-height:85%;
  }
}
/* Keep photo stage selectors above their background images, independently
   of the Film/Score DOM. Their selected word must be clickable in Safari. */
.fc-room .fc-asset-pair .fc-photo-column{position:relative;}
.fc-room .fc-asset-pair .fc-swap-controls{
  z-index:20;
  pointer-events:auto;
}
.fc-room .fc-asset-pair .fc-swap-option{
  position:relative;
  z-index:21;
  pointer-events:auto;
}


/* v106 · Ruin Atlas attachment-viewer HUD transplant (source: style.css).
   Replace improvised Folly I scanning positions and Folly II's lone circle.
   Keep this local to portfolio inline scores, never affect the film images,
   the fold controller, the physical lever, or the existing on/off switches. */

/* Folly I / score-linear #score-playhead and #score-pulse:
   exact body-relative geometry, with left:0 matching the source compact
   override so the JS-authored 12%..88% physical travel is not doubled. */
.fc-room .fc-inline-score .fc-mechanical-v2 .fc-mechanical-v2-graphics{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  pointer-events:none;
}
.fc-room .fc-inline-score .fc-mechanical-v2 .fc-scan-line{
  position:absolute;
  left:0!important;
  top:auto!important;
  bottom:2%!important;
  width:2px!important;
  height:18%!important;
  background:rgba(45,10,0,.9)!important;
  box-shadow:0 0 8px rgba(45,10,0,.8),0 0 3px rgba(45,10,0,.5)!important;
  transform:translateX(0);
  will-change:transform;
  transition:transform .05s linear!important;
  pointer-events:none;
}
.fc-room .fc-inline-score .fc-mechanical-v2 .fc-scan-pulse{
  position:absolute;
  left:0!important;
  top:0!important;
  width:8px!important;
  height:8px!important;
  border-radius:70%!important;
  background:rgba(133,47,2,.95)!important;
  box-shadow:0 0 8px rgba(133,47,2,.95)!important;
  filter:drop-shadow(4px 4px 2.6px rgba(0,0,0,.7));
  transform:translate(0,0);
  will-change:transform,opacity;
  transition:filter .25s ease!important;
  z-index:40;
  pointer-events:none;
}
.fc-room .fc-inline-score .fc-mechanical-v2 .fc-mechanical-v2-arcs path{
  fill:none;
  stroke:#65331da7;
  stroke-width:1.5px;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(4px 4px 1px rgba(0,0,0,.7));
  animation:fc-source-arc-spread 2.5s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes fc-source-arc-spread{
  from{stroke-dashoffset:300;opacity:0}
  to{stroke-dashoffset:0;opacity:.8}
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-inline-score .fc-mechanical-v2 .fc-mechanical-v2-arcs path{
    animation:none;stroke-dashoffset:0;opacity:.8;
  }
}

/* Folly II / .folly2-live-score-center (Ruin Atlas attachment viewer):
   the source points to the INVERTED centre triangle, rather than spanning
   the entire compiled photograph.  These four calibration values map that
   central triangle into the actual 3:2 object-fit:contain picture area. */
.fc-room .fc-inline-score .fc-score2-sequence .fc-score2-native-center{
  position:absolute;
  left:34%;
  top:42%;
  width:32%;
  height:44%;
  z-index:18;
  overflow:visible;
  box-sizing:border-box;
  pointer-events:none;
}
.fc-room .fc-inline-score .fc-score2-sequence .folly2-score-pointer-layer.fc-score2-native-pointer-layer{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  box-sizing:border-box;
  z-index:18;
  opacity:1;
  visibility:visible;
  pointer-events:none;
  clip-path:polygon(0 0,100% 0,50% 100%);
  -webkit-clip-path:polygon(0 0,100% 0,50% 100%);
  --folly2-needle-1-left:33.5%;
  --folly2-needle-1-top:50%;
  --folly2-needle-1-width:40%;
  --folly2-needle-1-thickness:1.7px;
  --folly2-needle-2-left:41.5%;
  --folly2-needle-2-top:22%;
  --folly2-needle-2-width:29%;
  --folly2-needle-2-thickness:1.7px;
}
.fc-room .fc-inline-score .fc-score2-sequence .folly2-score-playhead{
  display:block;
  position:absolute;
  left:var(--folly2-needle-1-left)!important;
  top:var(--folly2-needle-1-top)!important;
  width:var(--folly2-needle-1-width)!important;
  height:var(--folly2-needle-1-thickness)!important;
  transform-origin:left center;
  transform:rotate(-65deg);
  background:#ffb870;
  box-shadow:0 0 5px #ffdaaa,0 0 12px #c45733,0 0 22px #7a4336;
  filter:drop-shadow(0 0 4px rgba(200,90,50,.85));
  pointer-events:none;
  transition:transform .20s linear,filter .25s ease;
}
.fc-room .fc-inline-score .fc-score2-sequence .folly2-score-playhead-2{
  left:var(--folly2-needle-2-left)!important;
  top:var(--folly2-needle-2-top)!important;
  width:var(--folly2-needle-2-width)!important;
  height:var(--folly2-needle-2-thickness)!important;
  transform:rotate(-55deg);
  transition-duration:.03s,.25s;
}
.fc-room .fc-inline-score .fc-score2-sequence > .fc-score-hud{
  overflow:visible;
}
.fc-room .fc-inline-score[data-fc-pointers="off"] .fc-score2-sequence > .fc-score-hud,
.fc-room .fc-inline-score[data-fc-pointers="on"]:not([data-fc-compiled-active="on"]) .fc-score2-sequence > .fc-score-hud{
  opacity:0!important;
  visibility:hidden!important;
}
.fc-room .fc-inline-score[data-fc-pointers="on"][data-fc-compiled-active="on"] .fc-score2-sequence > .fc-score-hud{
  opacity:1!important;
  visibility:visible!important;
}
@media(prefers-reduced-motion:reduce){
  .fc-room .fc-inline-score .fc-score2-sequence .folly2-score-playhead,
  .fc-room .fc-inline-score .fc-score2-sequence .folly2-score-playhead-2{
    transition:none;
  }
}


/* v107 · Five-pixel Folly II HUD adjustment, compiled-score shadow,
   and unrestricted score-pointer overshoot.
   Both radial needles share this parent: translate(5px,5px) moves them
   right/down together without altering either pivot or rotation formula. */
.fc-room .fc-inline-score .fc-score2-sequence .fc-score2-native-center{
  transform:translate(5px,5px);
}
/* The image's own transparency defines the cast shadow. This is active
   ONLY once the rewind is complete and compiled.png is visible. */
.fc-room .fc-inline-score[data-fc-pointers="on"][data-fc-compiled-active="on"]
.fc-score2-sequence .fc-score2-compiled{
  filter:drop-shadow(0 13px 12px rgba(25,27,24,.25))
         drop-shadow(4px 5px 6px rgba(25,27,24,.12));
}
/* No rectangular HUD or triangular clipping mask: indicators can travel
   beyond the sheet. Scope these rules to the two inline score clusters,
   leaving the actual image-buffer and video-card clipping untouched. */
.fc-room .fc-inline-score .fc-mechanical-v2,
.fc-room .fc-inline-score .fc-score2-sequence,
.fc-room .fc-inline-score .fc-mechanical-v2 > .fc-score-hud,
.fc-room .fc-inline-score .fc-score2-sequence > .fc-score-hud,
.fc-room .fc-inline-score .fc-mechanical-v2 > .fc-score-hud .fc-score-notation,
.fc-room .fc-inline-score .fc-mechanical-v2 > .fc-score-hud .fc-mechanical-v2-graphics,
.fc-room .fc-inline-score .fc-score2-sequence .fc-score2-native-center,
.fc-room .fc-inline-score .fc-score2-sequence .folly2-score-pointer-layer.fc-score2-native-pointer-layer{
  overflow:visible!important;
  clip-path:none!important;
  -webkit-clip-path:none!important;
}
.fc-room .fc-inline-score .fc-mechanical-v2 .fc-mechanical-v2-arcs{
  overflow:visible!important;
  clip-path:none!important;
  -webkit-clip-path:none!important;
}


/* v108 · Score II layout tightening. The film cards and score now sit
   closer together without changing either score image dimensions or the
   film-strip progress / pointer systems. */
.fc-room .fc-inline-score[data-fc-inline-score="1"]{
  margin-top:clamp(9px,1.1vw,18px);
}

/* Keep the diagonal progress lever clear of the triangular drawing:
   shrink the full SVG track and both rings, then move the entire unit to
   the lower-right of the device. Its actual pointer/keyboard controls and
   reverse-moving follower still use the original normalized coordinates. */
.fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-score2-diagonal{
  width:clamp(145px,16.5vw,225px);
  right:clamp(2px,1.4vw,22px);
  bottom:clamp(8px,1.6vw,26px);
}
.fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-score2-diagonal .fc-score2-handle{
  width:clamp(25px,2.1vw,32px);
  height:clamp(25px,2.1vw,32px);
}
.fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-score2-diagonal .fc-score2-trailer{
  width:clamp(10px,1vw,15px);
  height:clamp(10px,1vw,15px);
}
@media(max-width:700px){
  .fc-room .fc-inline-score[data-fc-inline-score="1"]{
    margin-top:8px;
  }
  .fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-score2-diagonal{
    width:clamp(125px,30vw,166px);
    right:0;
    bottom:0;
  }
  .fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-score2-diagonal .fc-score2-handle{
    width:28px;
    height:28px;
  }
  .fc-room .fc-inline-score[data-fc-inline-score="1"] .fc-score2-diagonal .fc-score2-trailer{
    width:12px;
    height:12px;
  }
}
