:root {
  --hall: #9fa49f;
  --hall-pale: #d7d7cf;
  --sheet: #eceae2;
  --sheet-shadow: #a6aaa5;
  --ink: #1d2421;
  --ink-soft: #424b47;
  --orange: #f05a24;
  --gold: #e7b75e;
  --night: #151b18;
  --forum: 'Forum', serif;
  --manrope: 'Manrope', sans-serif;
  --dawn: 0;
  --museum-progress: 0;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scrollbar-color: var(--orange) #232a26; scrollbar-width: thin; }
body { margin: 0; overflow-x: hidden; background: var(--hall-pale); color: var(--ink); font-family: var(--manrope); font-synthesis: none; font-optical-sizing: auto; text-rendering: optimizeLegibility; }
button, a { font: inherit; touch-action: manipulation; -webkit-tap-highlight-color: rgba(240,90,36,.18); }
a { color: inherit; }
::selection { background: var(--orange); color: #fff; }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #232a26; }
::-webkit-scrollbar-thumb { background: var(--orange); border: 3px solid #232a26; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 100; padding: .8rem 1rem; background: #fff; color: #111; transform: translateY(-150%); }
.skip-link:focus-visible { transform: none; }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }
h1, h2 { text-wrap: balance; }
p { text-wrap: pretty; }
section[id], article[id] { scroll-margin-top: 24px; }
.page-is-hidden * { animation-play-state: paused !important; }
.grain { position: fixed; inset: 0; z-index: 50; pointer-events: none; opacity: .1; mix-blend-mode: multiply; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.24'/%3E%3C/svg%3E"); }

.site-header { position: absolute; inset: 0 0 auto; z-index: 20; height: 94px; padding: 18px clamp(20px,4vw,64px); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: #f1f0e8; border-bottom: 1px solid rgba(255,255,255,.17); }
.museum-mark { justify-self: start; min-height: 44px; display: flex; align-items: center; gap: 10px; text-decoration: none; font-size: .72rem; line-height: .85; letter-spacing: .12em; transition: color .25s ease, transform .45s cubic-bezier(.16,1,.3,1); }
.museum-mark:hover, .museum-mark:focus-visible { color: #ff7544; transform: translateY(-2px); }
.museum-mark svg { width: 42px; fill: currentColor; }
.museum-mark small { color: var(--orange); font-size: .55rem; }
.site-header nav { display: flex; gap: clamp(22px,3vw,54px); }
.site-header nav a { position: relative; min-height: 44px; display: flex; align-items: center; text-decoration: none; color: rgba(255,255,255,.82); font-size: .67rem; text-transform: uppercase; letter-spacing: .17em; }
.site-header nav a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 7px; height: 1px; background: var(--orange); transition: right .35s cubic-bezier(.16,1,.3,1); }
.site-header nav a:hover::after, .site-header nav a:focus-visible::after { right: 0; }
.status { justify-self: end; font-size: .63rem; letter-spacing: .18em; }
.status i { display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 14px rgba(240,90,36,.7); }

.hero { position: relative; min-height: 100svh; overflow: hidden; color: #f0efe8; background: radial-gradient(circle at 67% 19%, rgba(218,183,116,.12), transparent 19%), linear-gradient(152deg,#35403b 0%,#222a26 48%,#111714 100%); border-bottom: 7px solid var(--orange); }
.hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(0,0,0,.2),transparent 30%,transparent 73%,rgba(0,0,0,.28)), repeating-linear-gradient(90deg,transparent 0 12.42%,rgba(255,255,255,.034) 12.5% 12.57%); }
.hero::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 28%; background: linear-gradient(178deg,transparent 0 12%,rgba(0,0,0,.18) 12.4%,rgba(0,0,0,.42) 100%); clip-path: polygon(0 18%,100% 0,100% 100%,0 100%); }
#dust { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .5; }
.ceiling-grid { position: absolute; left: 0; right: 0; top: 0; height: 32%; opacity: .3; transform: perspective(520px) rotateX(-58deg) scale(1.16); transform-origin: top; background: repeating-linear-gradient(90deg,transparent 0 10%,rgba(255,255,255,.1) 10.1% 10.25%), repeating-linear-gradient(0deg,transparent 0 48px,rgba(255,255,255,.08) 49px 50px); mask-image: linear-gradient(#000,transparent); }
.skylight { position: absolute; top: -15%; width: 30vw; height: 92%; transform: skewX(-18deg); filter: blur(7px); opacity: .24; background: linear-gradient(180deg,rgba(255,240,199,.55),rgba(215,178,108,.1) 47%,transparent 82%); pointer-events: none; }
.skylight-a { left: 11%; }
.skylight-b { right: -4%; opacity: .13; }
.room-number { position: absolute; z-index: 4; top: 118px; right: clamp(20px,4vw,64px); margin: 0; font-size: .64rem; letter-spacing: .2em; writing-mode: vertical-rl; }
.room-number span { color: var(--orange); }
.hero-title-wrap { position: relative; z-index: 4; width: 61%; padding: clamp(150px,18vh,210px) 4vw 0; }
.eyebrow, .kicker { margin: 0 0 20px; color: var(--orange); font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .23em; }
.hero h1 { width: min-content; margin: 0; font-family: var(--forum); font-weight: 400; font-size: clamp(6.3rem,12.7vw,12.3rem); line-height: .69; letter-spacing: -.045em; text-shadow: 0 16px 44px rgba(0,0,0,.24); }
.hero h1 span { display: block; }
.hero h1 span:last-child { margin-left: clamp(32px,7vw,112px); color: rgba(239,238,230,.06); -webkit-text-stroke: 1px rgba(239,238,230,.88); }
.hero-deck { margin: clamp(30px,4.2vh,50px) 0 0 clamp(32px,7vw,112px); font-family: var(--forum); font-size: clamp(1.45rem,2.25vw,2.25rem); line-height: 1.04; color: rgba(241,240,232,.76); }
.hero-meter { position: absolute; z-index: 5; top: 26%; right: clamp(56px,7vw,120px); width: min(275px,24vw); }
.hero-meter div { display: grid; grid-template-columns: 1fr auto auto; align-items: end; }
.meter-label { align-self: center; color: rgba(255,255,255,.78); font-size: .53rem; letter-spacing: .2em; }
.hero-meter b { font-size: clamp(2.8rem,5vw,5rem); font-weight: 200; line-height: .8; letter-spacing: -.06em; font-variant-numeric: tabular-nums; }
.hero-meter em { padding-left: 6px; color: var(--orange); font-size: .67rem; font-style: normal; }
.hero-meter svg { width: 100%; stroke: rgba(255,255,255,.28); stroke-width: 1; }
.hero-meter .signal { stroke: var(--orange); stroke-dasharray: 2 6; }
.hero-meter small { display: block; text-align: right; color: rgba(255,255,255,.55); font-size: .49rem; letter-spacing: .17em; }
.hero-register { position: absolute; z-index: 4; left: 4vw; bottom: 82px; display: flex; align-items: end; gap: 12px; color: rgba(255,255,255,.52); }
.hero-register span { color: var(--orange); font-family: var(--forum); font-size: 3.4rem; line-height: .7; }
.hero-register small { padding-left: 12px; border-left: 1px solid rgba(255,255,255,.23); font-size: .47rem; line-height: 1.6; letter-spacing: .17em; text-transform: uppercase; }
.hero-machine { position: absolute; z-index: 3; right: -4%; bottom: 8px; width: min(66vw,980px); filter: drop-shadow(0 27px 22px rgba(0,0,0,.5)); animation: machineSettle 1.4s .25s cubic-bezier(.16,1,.3,1) both; }
.hero-machine svg { display: block; width: 100%; overflow: visible; }
.hero-shadow { fill: rgba(0,0,0,.58); }
.hero-cloth { fill: url(#heroCloth); }
.fold, .hem { fill: none; stroke: rgba(45,53,49,.36); stroke-width: 2; }
.hem { stroke: rgba(255,255,255,.48); }
.plinth-line { position: absolute; z-index: 5; right: 0; bottom: 4px; width: 79%; height: 3px; background: var(--orange); box-shadow: 0 0 22px rgba(240,90,36,.35); transform-origin: right; animation: drawLine 1.2s .8s cubic-bezier(.16,1,.3,1) both; }
.scroll-cue { position: absolute; z-index: 6; bottom: 24px; left: 4vw; min-height: 44px; display: flex; align-items: center; gap: 16px; text-decoration: none; color: rgba(255,255,255,.72); font-size: .56rem; text-transform: uppercase; letter-spacing: .19em; }
.scroll-cue i { position: relative; width: 60px; height: 1px; background: currentColor; }
.scroll-cue i::after { content: ''; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-right: 1px solid; border-bottom: 1px solid; transform: rotate(-45deg); }
.reveal { opacity: 0; transform: translateY(24px); animation: reveal .9s cubic-bezier(.16,1,.3,1) forwards; }
.hero-title-wrap .reveal:nth-child(2) { animation-delay: .12s; }
.hero-title-wrap .reveal:nth-child(3), .hero-meter.reveal { animation-delay: .3s; }
.room-number.reveal { animation-delay: .45s; }
.hero-register.reveal { animation-delay: .65s; }
@keyframes reveal { to { opacity: 1; transform: none; } }
@keyframes machineSettle { from { opacity: 0; transform: translate3d(4%,28px,0) scale(1.015); } to { opacity: 1; transform: none; } }
@keyframes drawLine { from { transform: scaleX(0); } }

.threshold { position: relative; min-height: 790px; display: grid; grid-template-columns: 120px minmax(300px,1.15fr) minmax(250px,.8fr); gap: clamp(30px,6vw,105px); padding: clamp(105px,12vw,180px) clamp(24px,6vw,100px); background: linear-gradient(108deg,#d9d9d1 0 62%,#c6c9c3 62.1% 100%); }
.threshold::before { content: 'PLEASE DO NOT TOUCH THE COVERS'; position: absolute; right: 4vw; bottom: 28px; color: rgba(29,36,33,.4); font-size: .47rem; letter-spacing: .2em; }
.threshold::after { content: ''; position: absolute; left: 0; bottom: 78px; width: 44%; height: 1px; background: var(--orange); }
.threshold-label { display: flex; align-items: flex-start; gap: 12px; writing-mode: vertical-rl; }
.threshold-label span { color: var(--orange); font-family: var(--forum); font-size: 2.7rem; font-weight: 400; line-height: 1; }
.threshold-label small { color: var(--ink-soft); font-size: .54rem; font-weight: 600; letter-spacing: .21em; }
.threshold-copy h2, .collection h2, .silence h2, .ledger h2, .essay h2 { margin: 0; font-family: var(--forum); font-weight: 400; font-size: clamp(3.3rem,6vw,6.8rem); line-height: .88; letter-spacing: -.035em; }
.threshold-copy > p:last-child { max-width: 620px; margin: 50px 0 0 clamp(0px,5vw,80px); color: var(--ink-soft); font-size: clamp(1rem,1.3vw,1.18rem); line-height: 1.85; }
.conditions { margin: 48px 0 0; align-self: start; border-top: 1px solid rgba(29,36,33,.45); }
.conditions div { display: flex; justify-content: space-between; padding: 17px 0; border-bottom: 1px solid rgba(29,36,33,.25); }
.conditions dt { color: var(--ink-soft); font-size: .62rem; text-transform: uppercase; letter-spacing: .18em; }
.conditions dd { margin: 0; font-family: var(--forum); font-size: 1.55rem; }
.conditions dd, .hero-meter b, .machine-no, .hall-vitals, .db-value b, .db-foot, .ledger-table td, .dawn-clock { font-variant-numeric: tabular-nums lining-nums; }
.curator-note { grid-column: 2 / 4; display: grid; grid-template-columns: .55fr 1.55fr .8fr; gap: 30px; align-items: start; margin: 52px 0 0 clamp(0px,5vw,80px); padding-top: 22px; border-top: 1px solid rgba(29,36,33,.4); }
.curator-note span, .curator-note small { color: var(--ink-soft); font-size: .54rem; letter-spacing: .16em; line-height: 1.7; }
.curator-note p { margin: 0; font-family: var(--forum); font-size: clamp(1.55rem,2.5vw,2.65rem); line-height: 1.15; }

.threshold-copy, .conditions, .curator-note, .silence-left, .db-instrument, .ledger-title, .ledger-table, .essay-columns { opacity: 0; transform: translateY(32px); transition: opacity .9s ease, transform 1s cubic-bezier(.16,1,.3,1); }
.threshold-copy.in-view, .conditions.in-view, .curator-note.in-view, .silence-left.in-view, .db-instrument.in-view, .ledger-title.in-view, .ledger-table.in-view, .essay-columns.in-view { opacity: 1; transform: none; }

.collection { padding: clamp(95px,10vw,150px) 0 82px; overflow: hidden; background: #b8bbb6; }
.collection-head { display: grid; grid-template-columns: 120px minmax(380px,1.2fr) minmax(260px,.65fr); gap: clamp(30px,6vw,95px); padding: 0 clamp(24px,6vw,100px) 92px; }
.collection-intro { align-self: end; max-width: 430px; margin: 0; color: var(--ink-soft); font-size: .9rem; line-height: 1.75; }
.collection-aside { align-self: end; min-width: 0; }
.inspection-trigger { width: 100%; min-height: 60px; margin-top: 28px; padding: 0; display: grid; grid-template-columns: 58px 1fr; align-items: stretch; text-align: left; color: var(--ink); background: transparent; border: 1px solid rgba(29,36,33,.42); cursor: pointer; transition: color .25s ease, background-color .25s ease, border-color .25s ease, transform .45s cubic-bezier(.16,1,.3,1); }
.inspection-trigger:hover, .inspection-trigger:focus-visible, .inspection-trigger[aria-pressed="true"] { color: #f4f0e5; background: var(--ink); border-color: var(--ink); transform: translateY(-2px); }
.inspection-trigger > span:last-child { min-width: 0; padding: 11px 13px 10px; display: flex; flex-direction: column; justify-content: center; }
.inspection-trigger b { font-size: .57rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.inspection-trigger small { margin-top: 4px; color: currentColor; opacity: .66; font-size: .45rem; letter-spacing: .14em; text-transform: uppercase; font-variant-numeric: tabular-nums; }
.inspection-icon { position: relative; overflow: hidden; border-right: 1px solid rgba(29,36,33,.35); }
.inspection-trigger:hover .inspection-icon, .inspection-trigger:focus-visible .inspection-icon, .inspection-trigger[aria-pressed="true"] .inspection-icon { border-right-color: rgba(255,255,255,.25); }
.inspection-icon::before { content: ''; position: absolute; left: 16px; top: 19px; width: 25px; height: 16px; border: 1px solid currentColor; border-top: 0; transform: skewX(-18deg); }
.inspection-icon i { position: absolute; left: 29px; top: 10px; width: 1px; height: 42px; background: var(--orange); transform: rotate(29deg); transform-origin: top; transition: transform .65s cubic-bezier(.16,1,.3,1); }
.inspection-trigger[aria-pressed="true"] .inspection-icon i { transform: rotate(73deg) scaleY(1.15); }
.hall-shell { position: relative; padding: 132px clamp(18px,3vw,52px) 76px; overflow: hidden; background: radial-gradient(ellipse at 50% 9%,rgba(246,230,190,.18),transparent 24%), linear-gradient(106deg,rgba(229,183,94,.08),transparent 18% 78%,rgba(244,235,205,.08)), linear-gradient(180deg,#707772 0 112px,#969c97 113px,#c8c8c0 46%,#a2a6a1 100%); box-shadow: inset 0 34px 70px rgba(15,22,18,.32), inset 0 -24px 55px rgba(29,36,33,.22); }
.hall-shell::before { content: ''; position: absolute; inset: 112px 0 0; background: repeating-linear-gradient(90deg,transparent 0 8.25%,rgba(43,49,46,.17) 8.3% 8.45%), repeating-linear-gradient(0deg,transparent 0 283px,rgba(255,255,255,.08) 284px 285px), linear-gradient(174deg,transparent 0 76%,rgba(34,40,37,.16) 76.2% 100%); mask-image: linear-gradient(#000,rgba(0,0,0,.32) 58%,#000); }
.hall-shell::after { content: ''; position: absolute; z-index: 1; left: 0; right: 0; bottom: 39px; height: 3px; background: var(--orange); box-shadow: 0 0 18px rgba(240,90,36,.3); }
.hall-roof { position: absolute; inset: 0 0 auto; height: 112px; display: grid; grid-template-columns: repeat(6,1fr); perspective: 460px; background: #656c68; border-bottom: 1px solid rgba(255,255,255,.3); }
.hall-roof i { transform: skewX(-14deg); background: linear-gradient(135deg,rgba(255,241,204,.72),rgba(255,255,255,.07) 72%); border: 10px solid #5d6561; box-shadow: 0 28px 54px rgba(236,199,125,.15); }
.hall-depth { position: absolute; inset: 112px 0 0; background: radial-gradient(circle at 8% 12%,rgba(244,224,180,.38) 0 1px,transparent 1.7px), radial-gradient(circle at 63% 24%,rgba(244,224,180,.28) 0 1px,transparent 1.5px), radial-gradient(circle at 86% 46%,rgba(244,224,180,.27) 0 1px,transparent 1.4px), repeating-linear-gradient(90deg,rgba(33,40,36,.2) 0 2px,transparent 2px 16.666%); background-size: 310px 380px,430px 520px,370px 470px,auto; mask-image: linear-gradient(#000,rgba(0,0,0,.08) 62%,#000); }
.inspection-beam { position: absolute; z-index: 3; inset: 112px -12% auto; height: 29%; pointer-events: none; opacity: 0; transform: translate3d(0,-105%,0); background: linear-gradient(180deg,transparent,rgba(255,231,169,.05) 16%,rgba(255,218,132,.28) 52%,rgba(255,236,188,.08) 84%,transparent); mix-blend-mode: screen; }
.inspection-beam i { position: absolute; left: 8%; right: 8%; top: 50%; height: 1px; background: rgba(255,239,198,.72); box-shadow: 0 0 38px 8px rgba(244,197,103,.2); }
.hall-shell.is-inspecting .inspection-beam { animation: inspectionPass 7.4s cubic-bezier(.44,.04,.28,1) both; }
@keyframes inspectionPass { 0% { opacity: 0; transform: translate3d(0,-105%,0); } 8% { opacity: 1; } 91% { opacity: 1; } 100% { opacity: 0; transform: translate3d(0,355%,0); } }
.hall-vitals { position: absolute; z-index: 2; top: 120px; left: clamp(18px,3vw,52px); right: clamp(18px,3vw,52px); display: flex; justify-content: space-between; color: rgba(29,36,33,.67); font-size: .46rem; font-weight: 600; letter-spacing: .18em; }
.machines { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 74px 18px; }
.machine { position: relative; min-width: 0; grid-column: span 3; opacity: 0; transform: translateY(28px); transition: opacity .65s ease, transform .8s cubic-bezier(.16,1,.3,1); transition-delay: calc((var(--order) % 4) * 55ms); }
.machine.in-view { opacity: 1; transform: none; }
.machine--streamliner, .machine--train, .machine--foil, .machine--wing, .machine--glider { grid-column: span 6; }
.machine-link { position: relative; display: block; min-height: 292px; overflow: hidden; text-decoration: none; border-bottom: 1px solid rgba(29,36,33,.55); background: linear-gradient(180deg,rgba(255,255,255,.02) 0 66%,rgba(29,36,33,.07) 66% 100%); }
.machine--streamliner .machine-link, .machine--train .machine-link, .machine--foil .machine-link, .machine--wing .machine-link, .machine--glider .machine-link { min-height: 350px; }
.machine-link::before { content: ''; position: absolute; left: 7%; right: 7%; bottom: 51px; height: 16px; border-radius: 50%; background: rgba(20,27,23,.3); filter: blur(8px); transition: transform .5s ease; }
.machine-link::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 0; height: 3px; background: var(--orange); transition: right .55s cubic-bezier(.16,1,.3,1); }
.machine-link:hover::after, .machine-link:focus-visible::after, .machine-link.is-open::after { right: 0; }
.machine svg { position: absolute; left: 3%; bottom: 47px; width: 94%; overflow: visible; }
.machine--streamliner svg, .machine--train svg, .machine--foil svg, .machine--wing svg, .machine--glider svg { left: 7%; width: 86%; }
.machine-body { fill: var(--machine-color,#dd5d32); stroke: #28302c; stroke-width: 1; opacity: 0; transition: transform .6s cubic-bezier(.16,1,.3,1), opacity .4s ease; transform-origin: bottom; }
.wheel { fill: #222925; stroke: #7d837f; stroke-width: 2; opacity: 0; transition: opacity .4s ease; }
.hub { fill: #d7d7cf; opacity: 0; transition: opacity .4s ease; }
.machine-cloth { stroke: rgba(54,62,58,.42); stroke-width: 1; filter: drop-shadow(0 6px 5px rgba(33,39,36,.23)); }
.machine-cloth-core { transition: transform .7s cubic-bezier(.16,1,.3,1), opacity .5s ease; transform-origin: center bottom; }
.machine-corner { transition: transform .72s cubic-bezier(.16,1,.3,1), opacity .5s ease; transform-origin: 100% 92%; }
.machine-link[data-corner="left"] .machine-corner { transform-origin: 0 92%; }
.machine-fold { fill: none; stroke: rgba(54,62,58,.3); stroke-width: 1; transition: opacity .35s, transform .7s cubic-bezier(.16,1,.3,1); }
.machine-link:hover .machine-corner, .machine-link:focus-visible .machine-corner, .machine-link.is-open .machine-corner { transform: translate(9px,-19px) rotate(11deg); }
.machine-link[data-corner="left"]:hover .machine-corner, .machine-link[data-corner="left"]:focus-visible .machine-corner, .machine-link[data-corner="left"].is-open .machine-corner { transform: translate(-9px,-18px) rotate(-11deg); }
.machine-link:hover .machine-cloth-core, .machine-link:focus-visible .machine-cloth-core, .machine-link.is-open .machine-cloth-core { transform: translateY(-2px); }
.machine-link:hover .machine-fold, .machine-link:focus-visible .machine-fold, .machine-link.is-open .machine-fold { opacity: .58; transform: translateY(-2px); }
.machine-link:hover .machine-body, .machine-link:focus-visible .machine-body, .machine-link.is-open .machine-body { opacity: 1; transform: translateY(-5px); }
.machine-link:hover .wheel, .machine-link:focus-visible .wheel, .machine-link.is-open .wheel, .machine-link:hover .hub, .machine-link:focus-visible .hub, .machine-link.is-open .hub { opacity: 1; }
.machine-link:hover::before, .machine-link:focus-visible::before, .machine-link.is-open::before { transform: scaleX(1.08); }
.hall-shell.is-inspecting .machine-body, .hall-shell.is-inspecting .wheel, .hall-shell.is-inspecting .hub { animation: inspectionGhost 1.55s cubic-bezier(.16,1,.3,1) calc(var(--order) * 210ms + 320ms) both; }
.hall-shell.is-inspecting .machine-cloth { animation: clothGild 1.55s cubic-bezier(.16,1,.3,1) calc(var(--order) * 210ms + 320ms) both; }
.hall-shell.is-inspecting .machine-no { animation: numberGild 1.55s ease calc(var(--order) * 210ms + 320ms) both; }
@keyframes inspectionGhost { 0%,100% { opacity: 0; transform: none; } 35%,66% { opacity: .28; transform: translateY(-2px); } }
@keyframes clothGild { 0%,100% { opacity: 1; } 35%,66% { opacity: .72; } }
@keyframes numberGild { 0%,100% { opacity: .72; } 35%,66% { opacity: 1; } }
.machine-no { position: absolute; z-index: 2; top: 16px; left: 14px; color: rgba(29,36,33,.7); font-size: .5rem; font-weight: 600; letter-spacing: .18em; }
.machine-placard { position: absolute; z-index: 3; inset: auto 10px 10px; display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; padding: 11px 13px; color: #f3f1ea; background: rgba(21,27,24,.96); box-shadow: 0 15px 35px rgba(20,26,23,.22); transform: translateY(calc(100% + 14px)); transition: transform .55s cubic-bezier(.16,1,.3,1); }
.machine-link:hover .machine-placard, .machine-link:focus-visible .machine-placard, .machine-link.is-open .machine-placard { transform: none; }
.machine-placard b { font-family: var(--forum); font-size: 1.16rem; font-weight: 400; }
.machine-placard span { align-self: center; color: #ff7544; font-size: .48rem; font-weight: 700; letter-spacing: .13em; }
.machine-placard small { grid-column: 1 / -1; color: rgba(255,255,255,.69); font-size: .48rem; letter-spacing: .09em; text-transform: uppercase; }
.hall-instruction { margin: 22px clamp(24px,6vw,100px) 0; display: flex; align-items: flex-start; color: var(--ink-soft); font-size: .61rem; letter-spacing: .14em; text-transform: uppercase; }
.hall-instruction > span:first-child { flex: 0 0 auto; margin-right: 10px; color: var(--orange); font-size: 1.3rem; }
.instruction-copy { padding-top: .35em; }
.instruction-copy b { font-weight: 600; }

.silence { position: relative; min-height: 930px; padding: clamp(105px,9vw,140px) clamp(24px,6vw,100px); display: grid; grid-template-columns: .9fr 1.2fr; grid-template-rows: auto auto; gap: 88px clamp(45px,9vw,150px); overflow: hidden; color: #eae9e2; background: radial-gradient(ellipse at 75% 45%,#35403a 0,#1b221e 36%,#101512 74%); }
.silence::before { content: '0.0'; position: absolute; right: -2vw; top: 0; color: rgba(255,255,255,.018); font-family: var(--forum); font-size: 42vw; line-height: .7; }
.silence-left { display: grid; grid-template-columns: 84px 1fr; position: relative; z-index: 1; }
.silence-left .kicker, .silence-left h2, .silence-left > p:last-child { grid-column: 2; }
.threshold-label.light { grid-row: 1 / 5; color: rgba(255,255,255,.82); }
.threshold-label.light small { color: rgba(255,255,255,.7); }
.silence-left > p:last-child { max-width: 550px; margin: 42px 0 0 3vw; color: rgba(239,238,231,.72); line-height: 1.85; }
.db-instrument { position: relative; z-index: 1; align-self: center; padding: 24px; border: 1px solid rgba(255,255,255,.25); background: linear-gradient(145deg,#0b0f0d,#050706); box-shadow: 0 45px 100px rgba(0,0,0,.58), inset 0 0 70px rgba(255,255,255,.015); }
.db-instrument::before, .db-instrument::after { content: ''; position: absolute; width: 8px; height: 8px; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; top: 13px; left: 13px; }
.db-instrument::after { left: auto; right: 13px; }
.db-top, .db-foot { display: flex; justify-content: space-between; color: rgba(255,255,255,.52); font-size: .48rem; letter-spacing: .2em; }
.db-value { display: flex; justify-content: center; align-items: flex-end; padding: 68px 0 40px; color: #f4c567; text-shadow: 0 0 34px rgba(244,197,103,.25); }
.db-value b { font-size: clamp(6rem,12vw,11rem); font-weight: 200; letter-spacing: -.09em; line-height: .65; font-variant-numeric: tabular-nums; }
.db-value span { padding-left: 12px; color: #ff7544; font-size: .7rem; }
.db-ruler { position: relative; height: 44px; margin: 30px 0; background: repeating-linear-gradient(90deg,rgba(255,255,255,.32) 0 1px,transparent 1px 4%), linear-gradient(180deg,transparent 48%,rgba(255,255,255,.18) 49% 51%,transparent 52%); }
.db-ruler i { position: absolute; left: 50%; top: -7px; bottom: -7px; width: 1px; background: var(--orange); box-shadow: 0 0 12px var(--orange); }
.db-instrument > p { margin: 22px 0 0; text-align: center; color: rgba(255,255,255,.38); font-size: .44rem; letter-spacing: .2em; }
.silence blockquote { position: relative; z-index: 1; grid-column: 1 / -1; max-width: 1040px; margin: 0 auto; text-align: left; font-family: var(--forum); font-size: clamp(2.2rem,4.4vw,4.8rem); line-height: 1.05; color: rgba(239,238,231,.9); }
.silence blockquote::before { content: ''; display: block; width: 25%; height: 2px; margin-bottom: 35px; background: var(--orange); }

.ledger { position: relative; min-height: 900px; display: grid; grid-template-columns: 96px minmax(330px,.7fr) 1fr; gap: clamp(35px,6vw,95px); padding: clamp(110px,11vw,165px) clamp(24px,6vw,100px); background: linear-gradient(103deg,#deded6 0 68%,#cbd0ca 68.1%); }
.ledger::before { content: 'PF / CUSTODY COPY / DO NOT REMOVE'; position: absolute; top: 34px; right: 5vw; color: rgba(29,36,33,.42); font-size: .46rem; letter-spacing: .2em; }
.ledger-title h2 { font-size: clamp(3.5rem,5.8vw,6.7rem); }
.ledger-table { width: 100%; align-self: center; border-collapse: collapse; border-top: 1px solid var(--ink); }
.ledger-table caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ledger-table tr { border-bottom: 1px solid rgba(29,36,33,.3); }
.ledger-table td, .ledger-table th { padding: 22px 0; text-align: left; }
.ledger-table td:first-child { width: 90px; color: var(--orange); font-family: var(--forum); font-size: 2.7rem; }
.ledger-table th { font-size: .68rem; letter-spacing: .17em; text-transform: uppercase; }
.ledger-table td:last-child { text-align: right; color: var(--ink-soft); font-size: .5rem; letter-spacing: .11em; text-transform: uppercase; }
.seal { position: absolute; left: 28%; bottom: 8%; width: 160px; height: 160px; border: 1px solid rgba(240,90,36,.52); border-radius: 50%; display: grid; place-content: center; text-align: center; color: rgba(240,90,36,.72); transform: rotate(-13deg); }
.seal::after { content: ''; position: absolute; inset: 9px; border: 1px dashed; border-radius: 50%; }
.seal span { font-family: var(--forum); font-size: 3.1rem; line-height: .8; }
.seal small { font-size: .46rem; letter-spacing: .16em; }

.essay { position: relative; min-height: 1280px; padding: clamp(110px,12vw,180px) clamp(24px,9vw,150px) 145px; overflow: hidden; color: #232a26; background: linear-gradient(118deg,#c2c6c1 0%,#d4d2c5 calc(40% - var(--dawn) * 7%),#f3ddb0 calc(73% - var(--dawn) * 15%),#cba55d 125%); transition: background-color .3s; }
.essay::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 87% 12%,rgba(255,221,146,calc(.08 + var(--dawn) * .42)),transparent 25%), linear-gradient(90deg,rgba(255,255,255,.12),transparent 38%); }
.essay-sun { position: absolute; right: 4vw; top: 10%; width: min(30vw,420px); aspect-ratio: 1; border-radius: 50%; background: rgba(244,197,103,calc(.09 + var(--dawn) * .28)); filter: blur(calc(9px - var(--dawn) * 7px)); box-shadow: 0 0 calc(70px + var(--dawn) * 80px) rgba(244,197,103,.22); transform: translateY(calc((1 - var(--dawn)) * 38px)); }
.essay-skylights { position: absolute; inset: -12% -10% 0 20%; display: flex; gap: 6%; transform: skewX(-15deg); pointer-events: none; }
.essay-skylights i { width: 17%; background: linear-gradient(180deg,rgba(255,246,211,calc(.1 + var(--dawn) * .45)),rgba(255,225,158,calc(.03 + var(--dawn) * .24)) 65%,transparent 100%); filter: blur(3px); }
.essay-skylights i:nth-child(2) { width: 23%; opacity: .75; }
.essay > *:not(.essay-sun):not(.essay-skylights) { position: relative; z-index: 1; }
.essay-overline { margin: 72px 0 25px 12%; color: var(--ink-soft); font-size: .59rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.essay h2 { margin-left: 12%; font-size: clamp(4.2rem,9vw,9.9rem); line-height: .82; }
.essay h2 em { margin-left: 10%; color: var(--orange); font-weight: 400; }
.essay-columns { display: grid; grid-template-columns: .8fr 1fr 1fr; gap: clamp(35px,6vw,100px); margin: 112px 0 0 12%; }
.essay-columns p { margin: 0 0 25px; color: var(--ink-soft); line-height: 1.82; }
.essay-columns .lead { color: var(--ink); font-family: var(--forum); font-size: clamp(1.5rem,2.1vw,2.15rem); line-height: 1.25; }
.final-line { max-width: 1100px; margin: 145px 0 0 12%; font-family: var(--forum); font-size: clamp(2.4rem,4.2vw,4.7rem); line-height: 1.05; }
.sun-line { height: 2px; margin: 66px 0 0 12%; background: linear-gradient(90deg,var(--orange) 0 28%,rgba(29,36,33,.34) 28%); }
.dawn-clock { margin: 58px 0 0 12%; display: flex; align-items: center; gap: 18px; }
.dawn-clock span { font-family: var(--forum); font-size: 3.3rem; }
.dawn-clock small { padding-left: 18px; border-left: 1px solid rgba(29,36,33,.4); color: var(--ink-soft); font-size: .46rem; line-height: 1.7; letter-spacing: .18em; }

.site-footer { position: relative; min-height: 300px; display: grid; grid-template-columns: 1fr auto; grid-template-rows: 1fr auto; gap: 30px; padding: 56px clamp(24px,6vw,100px); color: #e4e2db; background: linear-gradient(115deg,#121815 0 72%,#1d2521 72%); border-top: 4px solid var(--orange); }
.site-footer::before { content: 'ENGINES OFF / ARCHIVE SEALED / 06:12'; position: absolute; left: clamp(24px,6vw,100px); right: clamp(24px,6vw,100px); top: 50%; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.42); font-size: .44rem; letter-spacing: .2em; }
.footer-lockup span { display: block; font-family: var(--forum); font-size: 2.05rem; }
.footer-lockup small { color: rgba(255,255,255,.58); font-size: .48rem; letter-spacing: .16em; }
.site-footer > p { grid-row: 2; margin: 0; align-self: end; color: rgba(255,255,255,.67); font-size: .61rem; }
.site-footer nav { grid-column: 2; grid-row: 1 / 3; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-end; gap: 4px; }
.site-footer nav a { min-height: 44px; display: flex; align-items: center; color: rgba(255,255,255,.88); font-size: .72rem; text-underline-offset: 4px; }
.site-footer nav a { transition: color .2s ease, transform .35s cubic-bezier(.16,1,.3,1); }
.site-footer nav a:hover, .site-footer nav a:focus-visible { color: #ff7544; transform: translateX(-4px); }

@media (max-width:1050px) {
  .hero-title-wrap { width: 68%; }
  .hero-machine { width: 95vw; right: -19%; }
  .hero-register { display: none; }
  .threshold { grid-template-columns: 82px 1fr 285px; gap: 34px; }
  .collection-head { grid-template-columns: 82px 1fr 285px; gap: 34px; }
  .machines { grid-template-columns: repeat(6,minmax(0,1fr)); }
  .machine { grid-column: span 2; }
  .machine--streamliner, .machine--train, .machine--foil, .machine--wing, .machine--glider { grid-column: span 3; }
  .machine-link { min-height: 250px; }
  .machine--streamliner .machine-link, .machine--train .machine-link, .machine--foil .machine-link, .machine--wing .machine-link, .machine--glider .machine-link { min-height: 290px; }
  .silence { min-height: 830px; grid-template-columns: .88fr 1.12fr; gap: 55px; padding-top: 100px; }
  .silence-left { display: block; }
  .silence-left .threshold-label { margin-bottom: 30px; writing-mode: horizontal-tb; flex-direction: row; align-items: center; }
  .silence-left > p:last-child { margin: 35px 0 0; }
  .ledger { grid-template-columns: 68px 1fr; }
  .ledger-table { grid-column: 2; }
  .seal { left: 7%; }
}

@media (max-width:760px) {
  .site-header { height: 78px; padding: 12px 18px; grid-template-columns: 1fr auto; }
  .site-header nav { position: absolute; top: 78px; left: 0; right: 0; padding: 0 18px; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); }
  .site-header nav a { font-size: .5rem; letter-spacing: .13em; }
  .status { font-size: .54rem; letter-spacing: .15em; }
  .museum-mark svg { width: 36px; }
  .hero { min-height: 860px; }
  .hero::after { height: 24%; }
  .ceiling-grid { height: 25%; }
  .skylight { width: 52vw; }
  .hero-title-wrap { width: 100%; padding: 180px 20px 0; }
  .eyebrow { max-width: 275px; line-height: 1.6; }
  .hero h1 { font-size: clamp(5.25rem,25vw,6.8rem); line-height: .72; }
  .hero h1 span:last-child { margin-left: 18px; }
  .hero-deck { margin: 34px 0 0 22px; font-size: 1.42rem; }
  .hero-meter { top: auto; right: 20px; bottom: 250px; width: 170px; }
  .meter-label { font-size: .44rem; }
  .hero-machine { right: -11%; bottom: 18px; width: 116vw; }
  .room-number { top: 145px; right: 18px; }
  .scroll-cue { display: none; }
  .plinth-line { width: 88%; }
  .threshold { min-height: 0; grid-template-columns: 38px 1fr; gap: 24px; padding: 92px 20px 112px; background: linear-gradient(100deg,#d7d7cf 0 88%,#c5c9c3 88.2%); }
  .threshold::before { right: 20px; font-size: .4rem; }
  .threshold-copy h2, .collection h2, .silence h2, .ledger h2 { font-size: clamp(3.1rem,15vw,4.4rem); }
  .threshold-copy > p:last-child { margin: 34px 0 0; font-size: .95rem; line-height: 1.76; }
  .conditions { grid-column: 2; margin-top: 22px; }
  .conditions dd { font-size: 1.35rem; }
  .curator-note { grid-column: 1 / -1; margin: 38px 0 0; grid-template-columns: 1fr; gap: 15px; }
  .threshold-label { gap: 6px; }
  .threshold-label span { font-size: 2.1rem; }
  .collection { padding-top: 88px; }
  .collection-head { grid-template-columns: 38px 1fr; gap: 24px; padding: 0 20px 72px; }
  .collection-aside { grid-column: 2; }
  .inspection-trigger { max-width: 330px; }
  .hall-shell { padding: 94px 14px 58px; }
  .hall-shell::before { top: 78px; background: repeating-linear-gradient(90deg,transparent 0 24.8%,rgba(43,49,46,.13) 25% 25.5%); }
  .hall-shell::after { bottom: 28px; }
  .hall-roof { height: 78px; }
  .hall-roof i { border-width: 6px; }
  .hall-depth { top: 78px; }
  .hall-vitals { top: 85px; font-size: .4rem; }
  .hall-vitals span:nth-child(2) { display: none; }
  .inspection-beam { inset-inline: -35%; height: 22%; }
  .machines { display: block; }
  .machine { margin-bottom: 38px; transition-delay: 0ms; }
  .machine-link, .machine--streamliner .machine-link, .machine--train .machine-link, .machine--foil .machine-link, .machine--wing .machine-link, .machine--glider .machine-link { min-height: 260px; }
  .machine svg, .machine--streamliner svg, .machine--train svg, .machine--foil svg, .machine--wing svg, .machine--glider svg { left: 5%; width: 90%; }
  .machine-placard { inset: auto 8px 8px; }
  .machine-placard b { font-size: 1.08rem; }
  .hall-instruction { max-width: 340px; margin: 20px 20px 0; line-height: 1.6; letter-spacing: .1em; }
  .instruction-copy b { display: block; margin-top: 3px; }
  .silence { min-height: 0; display: block; padding: 94px 20px 112px; }
  .silence-left { display: block; }
  .silence-left .threshold-label { margin-bottom: 30px; }
  .silence-left > p:last-child { margin: 30px 0 0; }
  .db-instrument { margin: 72px 0; padding: 18px 14px; }
  .db-value { padding: 52px 0 32px; }
  .db-value b { font-size: 6.2rem; }
  .silence blockquote { font-size: 2.25rem; }
  .ledger { min-height: 0; grid-template-columns: 38px 1fr; gap: 24px; padding: 94px 20px 150px; background: linear-gradient(100deg,#deded6 0 91%,#c9cec8 91.2%); }
  .ledger-table { grid-column: 1 / -1; margin-top: 34px; }
  .ledger-table td, .ledger-table th { padding: 18px 0; }
  .ledger-table td:first-child { width: 55px; font-size: 2rem; }
  .ledger-table th { font-size: .57rem; letter-spacing: .12em; }
  .ledger-table td:last-child { display: none; }
  .seal { left: auto; right: 18px; bottom: 22px; width: 112px; height: 112px; }
  .essay { min-height: 0; padding: 102px 20px 115px; }
  .essay-skylights { left: -20%; right: -50%; }
  .essay-overline { margin: 55px 0 20px 40px; line-height: 1.6; }
  .essay h2 { margin-left: 40px; font-size: clamp(3.45rem,17vw,5rem); }
  .essay h2 em { display: block; margin-left: -20px; }
  .essay-columns { grid-template-columns: 1fr; gap: 25px; margin: 72px 0 0 40px; }
  .final-line { margin: 92px 0 0 40px; }
  .sun-line, .dawn-clock { margin-left: 40px; }
  .dawn-clock span { font-size: 2.6rem; }
  .site-footer { min-height: 380px; display: flex; flex-direction: column; padding: 46px 20px; background: linear-gradient(155deg,#121815 0 76%,#1d2521 76%); }
  .site-footer::before { top: 29%; left: 20px; right: 20px; line-height: 1.6; }
  .site-footer > p { margin-top: auto; order: 3; }
  .site-footer nav { align-items: flex-start; gap: 0; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  #dust { display: none; }
  .reveal, .machine, .threshold-copy, .conditions, .curator-note, .silence-left, .db-instrument, .ledger-title, .ledger-table, .essay-columns { opacity: 1; transform: none; }
  .hall-shell.is-inspecting .inspection-beam { opacity: .2; transform: translateY(135%); animation: none; }
  .hall-shell.is-inspecting .machine-body, .hall-shell.is-inspecting .wheel, .hall-shell.is-inspecting .hub { opacity: .2; animation: none; }
  .hall-shell.is-inspecting .machine-cloth { opacity: .78; animation: none; }
}
