:root {
  --ink: #0b0b09;
  --ink-soft: #11110e;
  --panel: #171611;
  --paper: #eee5cf;
  --chalk: #f6efdE;
  --muted: #b3aa97;
  --brass: #b98a3e;
  --brass-bright: #dfbc72;
  --brass-dark: #6e4b1d;
  --line: rgba(214, 181, 113, .23);
  --display: 'DM Serif Display', Georgia, serif;
  --body: 'Zilla Slab', Georgia, serif;
  --ease-out: cubic-bezier(.16, .78, .18, 1);
  --ease-mechanical: cubic-bezier(.52, .08, .24, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; color-scheme: dark; scrollbar-color: #725126 #080807; scrollbar-width: thin; }
body {
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--body);
  font-size: 18px;
  line-height: 1.55;
  font-kerning: normal;
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: rgba(223, 188, 114, .16);
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 20;
  pointer-events: none;
  opacity: .095;
  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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}
a { color: inherit; }
button, input { font: inherit; }
button { color: inherit; touch-action: manipulation; }
a, button, input { -webkit-tap-highlight-color: rgba(223, 188, 114, .2); }
h1, h2, h3 { text-wrap: balance; }
p, blockquote { text-wrap: pretty; }
[id] { scroll-margin-top: 28px; }
::selection { color: #0b0b09; background: var(--brass-bright); }
:focus-visible { outline: 2px solid var(--brass-bright); outline-offset: 5px; }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #080807; }
::-webkit-scrollbar-thumb { border: 3px solid #080807; border-radius: 10px; background: linear-gradient(#4d3518, #a67836, #4d3518); }
::-webkit-scrollbar-thumb:hover { background: linear-gradient(#6a4a20, #d0a85c, #6a4a20); }
.skip-link { position: fixed; left: 18px; top: 16px; z-index: 100; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); color: var(--ink); background: var(--paper); white-space: nowrap; }
.skip-link:focus-visible { width: auto; height: auto; padding: 10px 16px; overflow: visible; clip-path: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.site-header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 26px clamp(24px, 4vw, 68px);
  border-bottom: 1px solid rgba(216, 190, 136, .14);
}
.wordmark, .footer-mark { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.wordmark svg, .footer-mark svg { width: 42px; height: 42px; fill: none; stroke: var(--brass-bright); stroke-width: 1.2; }
.wordmark svg { transition: transform .42s var(--ease-out), stroke .25s; }
.wordmark b { transition: color .25s; }
.wordmark:hover svg { stroke: #f0d28b; transform: rotate(18deg); }
.wordmark:hover b { color: var(--brass-bright); }
.wordmark span, .footer-mark span { display: flex; flex-direction: column; font-family: var(--display); line-height: 1; }
.wordmark b { font-size: 17px; font-weight: 400; }
.wordmark small, .footer-mark small { margin-top: 7px; color: var(--muted); font-family: var(--body); font-size: 9px; font-weight: 500; letter-spacing: .17em; text-transform: uppercase; }
.site-header nav, .site-footer nav { display: flex; align-items: center; gap: clamp(20px, 2.6vw, 46px); }
.site-header nav a { color: #c7beab; font-size: 14px; letter-spacing: .035em; text-decoration: none; }
.site-header nav a:not(.nav-ticket) { position: relative; padding: 12px 0; }
.site-header nav a:not(.nav-ticket)::after { content: ""; position: absolute; left: 0; bottom: 7px; width: 100%; height: 1px; background: var(--brass); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.site-header nav a:hover::after { transform: scaleX(1); }
.nav-ticket { padding: 11px 16px; border: 1px solid var(--brass-dark); color: var(--brass-bright) !important; text-decoration-color: transparent; transition: background-color .25s, border-color .25s, color .25s; }
.nav-ticket:hover { border-color: var(--brass-bright); background: rgba(185,138,62,.1); color: var(--chalk) !important; }
.menu-toggle { display: none; width: 48px; height: 48px; border: 1px solid var(--line); background: transparent; }
.menu-toggle:hover { border-color: var(--brass-bright); background: rgba(185,138,62,.08); }

.hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(330px, .74fr) minmax(570px, 1.26fr);
  align-items: center;
  min-height: 100svh;
  padding: 128px clamp(24px, 4vw, 68px) 78px;
  background:
    radial-gradient(circle at 77% 49%, rgba(199, 154, 74, .09), transparent 37%),
    linear-gradient(115deg, #0e0e0b, #080807 68%);
  isolation: isolate;
}
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-radial-gradient(circle at 77% 50%, transparent 0 72px, rgba(202, 167, 97, .032) 73px 74px); }
.hero::after { content: ""; position: absolute; z-index: -1; left: clamp(260px, 39vw, 620px); top: 8%; bottom: 8%; width: 1px; background: linear-gradient(transparent, var(--line), transparent); }
.hero-copy { align-self: center; max-width: 600px; padding: 30px 3vw 30px 0; }
.eyebrow { margin: 0 0 24px; color: var(--brass-bright); font-size: 12px; font-weight: 600; letter-spacing: .19em; text-transform: uppercase; }
.eyebrow span { display: inline-flex; align-items: center; justify-content: center; min-width: 50px; margin-right: 12px; padding: 4px 8px; border: 1px solid var(--brass-dark); }
.hero h1, .section-heading h2, .plaque h2, .mechanism h2, .book-heading h2, .hours h2, .guide-hero h1, .guide-section h2 { margin: 0; font-family: var(--display); font-weight: 400; line-height: .89; }
.hero h1 { max-width: 560px; font-size: clamp(72px, 7.2vw, 124px); letter-spacing: -.052em; }
.title-line { display: block; }
.section-heading h2, .mechanism h2, .book-heading h2, .hours h2 { letter-spacing: -.04em; }
.plaque h2, .guide-hero h1 { letter-spacing: -.048em; }
.guide-section h2 { letter-spacing: -.027em; }
.hero h1 i, .plaque h2 i { color: var(--brass-bright); font-weight: 400; }
.hero-intro { max-width: 455px; margin: 34px 0 0 2px; color: #bdb4a2; font-size: 19px; line-height: 1.58; }
.hero-instruction { display: flex; align-items: center; gap: 16px; margin-top: 34px; color: #948b79; font-size: 13px; line-height: 1.35; }
.hero-instruction b { color: var(--paper); font-size: 14px; font-weight: 500; }
.drag-glyph { position: relative; width: 49px; height: 49px; flex: 0 0 49px; border: 1px solid var(--brass-dark); border-radius: 50%; }
.drag-glyph::before { content: ""; position: absolute; left: 10px; right: 10px; top: 23px; height: 1px; background: var(--brass); }
.drag-glyph::after { content: "‹   ›"; position: absolute; inset: 0; display: grid; place-items: center; color: var(--brass-bright); font-size: 21px; letter-spacing: 10px; transform: translateX(5px); }
.drag-glyph i { position: absolute; left: 21px; top: 16px; width: 7px; height: 14px; border: 1px solid var(--brass-bright); border-radius: 6px; background: var(--ink); z-index: 1; }

.table-column { position: relative; justify-self: center; width: min(100%, 770px); }
.table-status { display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 18px; width: min(92%, 670px); margin: 0 auto 7px; color: #a59c8a; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; font-variant-numeric: tabular-nums; }
.table-status span { display: flex; align-items: center; gap: 9px; }
.table-status .status-scene { color: #c6bba6; }
.table-status b { color: var(--brass-bright); font-size: 9px; font-weight: 500; letter-spacing: .14em; }
.status-lamp { width: 6px; height: 6px; border-radius: 50%; background: #d1a64e; box-shadow: 0 0 9px #d1a64e; animation: breathe 2.8s ease-in-out infinite; }
.projection-rig { --pan-angle: 0deg; --handle-angle: 0deg; position: relative; width: min(46vw, 690px); aspect-ratio: 1; margin: auto; touch-action: pan-y; cursor: grab; filter: drop-shadow(0 32px 28px rgba(0,0,0,.7)); isolation: isolate; }
.projection-rig.dragging { cursor: grabbing; }
#projection { position: absolute; inset: 7.25%; width: 85.5%; height: 85.5%; border-radius: 50%; background: #e6dfcc; transform-origin: center; animation: projection-open 1.35s 1s var(--ease-out) both; }
.brass-ring { position: absolute; border-radius: 50%; pointer-events: none; }
.brass-ring.outer { inset: 1%; border: clamp(12px, 1.35vw, 21px) solid #8c672f; background: radial-gradient(circle, transparent 66%, #3f2a11 67%, #c59a50 71%, #5c3c17 76%, #b8863c 82%, #3c2810 88%, #90652b 100%); box-shadow: inset 0 0 0 2px #e0bd73, inset 0 0 18px #27190c, 0 0 0 1px #25190c; }
.brass-ring.outer::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; background: repeating-conic-gradient(from 2deg, rgba(255,255,255,.15) 0 .35deg, transparent .35deg 4.5deg); mix-blend-mode: overlay; }
.brass-ring.inner { inset: 5.9%; border: 2px solid #e1c47b; box-shadow: inset 0 0 18px 10px rgba(25,14,4,.58), 0 0 0 4px #5b3b18; }
.cardinal { position: absolute; z-index: 4; display: grid; place-items: center; width: 32px; height: 32px; color: #2b1a08; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #e7c980, #88602a 69%); box-shadow: 0 2px 5px #000; font-family: var(--display); font-size: 13px; }
.cardinal.north { top: 0; left: calc(50% - 16px); }.cardinal.south { bottom: 0; left: calc(50% - 16px); }.cardinal.east { top: calc(50% - 16px); right: 0; }.cardinal.west { top: calc(50% - 16px); left: 0; }
.projection-bloom, .lens-vignette, .aperture-veil, .manual-shutter { position: absolute; inset: 7.2%; border-radius: 50%; pointer-events: none; }
.projection-bloom { z-index: 2; background: radial-gradient(circle at 42% 38%, rgba(255,252,226,.16), transparent 29%), radial-gradient(circle at 50% 48%, rgba(255,252,226,.05), rgba(255,244,201,.1) 54%, transparent 68%); box-shadow: inset 0 0 24px 7px rgba(255,245,211,.12); mix-blend-mode: screen; animation: projection-breathe 7s ease-in-out infinite; }
.lens-vignette { z-index: 3; box-shadow: inset 0 0 clamp(30px, 6vw, 88px) clamp(11px, 2vw, 34px) rgba(15,12,8,.78); background: radial-gradient(circle, transparent 51%, rgba(49,37,25,.2) 69%, rgba(10,8,5,.52) 91%); }
.aperture-veil { z-index: 4; overflow: hidden; background: repeating-conic-gradient(from 14deg, rgba(9,8,6,.95) 0 58deg, rgba(67,48,26,.92) 59deg 60deg); transform-origin: center; animation: aperture-clear 1.25s .9s var(--ease-mechanical) both; }
.aperture-veil::after { content: ""; position: absolute; inset: 45%; border: 1px solid #8e682f; border-radius: 50%; box-shadow: 0 0 35px 12px rgba(225,192,119,.18); }
.aperture-veil i { position: absolute; inset: 50%; border-top: 1px solid rgba(225,192,119,.3); transform: rotate(calc(var(--blade, 0) * 60deg)); transform-origin: 0 0; }
.aperture-veil i:nth-child(1){--blade:0}.aperture-veil i:nth-child(2){--blade:1}.aperture-veil i:nth-child(3){--blade:2}.aperture-veil i:nth-child(4){--blade:3}.aperture-veil i:nth-child(5){--blade:4}.aperture-veil i:nth-child(6){--blade:5}
.pan-scale { position: absolute; z-index: 5; inset: 2.1%; border-radius: 50%; pointer-events: none; transform: rotate(var(--pan-angle)); transition: transform .1s linear; background: repeating-conic-gradient(from -42deg, rgba(245,210,137,.7) 0 .22deg, transparent .24deg 9.5deg); -webkit-mask: radial-gradient(circle, transparent 0 97%, #000 97.2%); mask: radial-gradient(circle, transparent 0 97%, #000 97.2%); }
.pan-scale i { display: none; }
.scene-telemetry { position: absolute; z-index: 6; right: 5%; bottom: 12%; display: flex; flex-direction: column; align-items: flex-end; max-width: 180px; color: rgba(245,232,198,.74); font-size: 9px; line-height: 1.4; letter-spacing: .16em; text-align: right; text-transform: uppercase; text-shadow: 0 1px 5px #1a1710; pointer-events: none; }
.scene-telemetry b { margin-top: 3px; color: rgba(238,209,145,.48); font-size: 7px; font-weight: 500; }
.manual-shutter { z-index: 6; display: grid; place-items: center; overflow: hidden; opacity: 0; background: repeating-conic-gradient(from 12deg, #100e0a 0 57deg, #59401f 58deg, #21170d 59deg 60deg), radial-gradient(circle, #1b160e, #080706); box-shadow: inset 0 0 65px #000, inset 0 0 0 1px #8e682f; transform: scale(.025) rotate(26deg); transform-origin: center; transition: transform .72s var(--ease-mechanical), opacity .22s ease-out; }
.manual-shutter::before { content: ""; position: absolute; inset: 31%; border: 1px solid #775222; border-radius: 50%; background: radial-gradient(circle, #18130c 0 48%, #59401e 50% 51%, #0b0a07 53%); box-shadow: 0 0 0 12px rgba(0,0,0,.18), inset 0 0 18px #000; }
.manual-shutter i { position: absolute; left: 50%; top: 50%; width: 50%; height: 1px; background: linear-gradient(90deg, rgba(222,185,109,.3), transparent 82%); transform: rotate(calc(var(--blade) * 60deg)); transform-origin: left; }
.manual-shutter i:nth-child(1){--blade:0}.manual-shutter i:nth-child(2){--blade:1}.manual-shutter i:nth-child(3){--blade:2}.manual-shutter i:nth-child(4){--blade:3}.manual-shutter i:nth-child(5){--blade:4}.manual-shutter i:nth-child(6){--blade:5}
.manual-shutter > span { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; max-width: 140px; color: #9b8050; font-size: 8px; letter-spacing: .16em; text-align: center; text-transform: uppercase; opacity: 0; transition: opacity .22s .42s ease-out; }
.manual-shutter b { margin-top: 8px; color: #dbc078; font-family: var(--display); font-size: 18px; font-weight: 400; letter-spacing: .01em; text-transform: none; }
.projection-rig.shuttered .manual-shutter { opacity: 1; transform: scale(1) rotate(0); }
.projection-rig.shuttered .manual-shutter > span { opacity: 1; }
.projection-rig.shuttered .scene-telemetry { opacity: 0; }
.pan-handle { position: absolute; z-index: 7; right: -28px; top: 44%; width: 116px; height: 74px; border: 0; background: none; transform: rotate(var(--handle-angle)); transform-origin: 18px 37px; cursor: grab; }
.handle-arm { position: absolute; left: 0; top: 32px; width: 75px; height: 12px; border: 1px solid #e0bd73; background: linear-gradient(#e1bf72, #8a5e25 48%, #4a3011 51%, #ba8637); box-shadow: 0 3px 6px #000; }
.handle-grip { position: absolute; right: 0; top: 18px; width: 43px; height: 40px; border: 2px solid #e3c47e; border-radius: 10px; background: repeating-linear-gradient(90deg, #9d7132 0 4px, #d1a757 4px 7px, #69461c 7px 9px); box-shadow: 0 5px 10px #000; }
.handle-word { position: absolute; right: 4px; top: 61px; color: #a98c54; font-size: 7px; letter-spacing: .2em; text-transform: uppercase; }
.pan-handle:hover .handle-grip, .pan-handle:focus-visible .handle-grip { border-color: #f4d993; background: repeating-linear-gradient(90deg, #b88841 0 4px, #e0ba69 4px 7px, #795424 7px 9px); }
.focus-control { position: absolute; z-index: 8; left: 6%; bottom: 1%; display: flex; flex-direction: column; align-items: center; width: 174px; padding: 11px 14px 9px; border: 1px solid #765323; background: linear-gradient(155deg, #1d1910, #0e0d09); box-shadow: 0 8px 16px #000, inset 0 0 0 1px rgba(229,192,116,.05); cursor: default; touch-action: auto; }
.focus-control label { display: flex; justify-content: space-between; width: 100%; color: #9c927e; font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.focus-control output { color: var(--brass-bright); }
#focus-wheel { width: 100%; height: 20px; margin: 3px 0 0; appearance: none; background: transparent; cursor: ew-resize; }
#focus-wheel::-webkit-slider-runnable-track { height: 3px; background: linear-gradient(90deg, #5b3d19, #e0bd73, #5b3d19); }
#focus-wheel::-webkit-slider-thumb { width: 18px; height: 18px; margin-top: -7px; appearance: none; border: 2px solid #d7b467; border-radius: 50%; background: radial-gradient(circle, #18140d 25%, #92682d 29%, #36230d 72%); }
#focus-wheel::-moz-range-track { height: 3px; background: #b98a3e; }
#focus-wheel::-moz-range-thumb { width: 16px; height: 16px; border: 2px solid #d7b467; border-radius: 50%; background: #36230d; }
.focus-control:focus-within { border-color: var(--brass-bright); box-shadow: 0 8px 18px #000, inset 0 0 16px rgba(229,192,116,.08); }
.focus-ticks { display: flex; justify-content: space-between; width: 92%; }
.focus-ticks i { width: 1px; height: 4px; background: #665336; }
.focus-legend { display: flex; justify-content: space-between; width: 100%; margin-top: 4px; color: #776e5f; font-size: 7px; line-height: 1; letter-spacing: .1em; text-transform: uppercase; }
.iris-control { position: absolute; z-index: 9; right: 8%; bottom: 1%; display: flex; align-items: center; justify-content: center; gap: 9px; min-width: 108px; min-height: 50px; padding: 7px 11px; color: #a89c84; border: 1px solid #765323; background: linear-gradient(155deg, #1d1910, #0e0d09); box-shadow: 0 8px 16px #000, inset 0 0 0 1px rgba(229,192,116,.05); cursor: pointer; transition: color .22s, border-color .22s, background-color .22s, transform .22s var(--ease-out); }
.iris-control:hover { color: var(--paper); border-color: var(--brass-bright); transform: translateY(-2px); }
.iris-control:active { transform: translateY(1px); }
.iris-control > span:last-child { display: flex; flex-direction: column; align-items: flex-start; line-height: 1; }
.iris-control b { color: var(--brass-bright); font-size: 9px; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; }
.iris-control small { margin-top: 5px; color: #756d5f; font-size: 7px; letter-spacing: .13em; text-transform: uppercase; }
.iris-icon { width: 25px; height: 25px; flex: 0 0 auto; border: 1px solid #8c652d; border-radius: 50%; background: repeating-conic-gradient(from 10deg, #c89a4d 0 5deg, #30200e 7deg 58deg, #8c642c 59deg 60deg); box-shadow: inset 0 0 0 5px #0f0d09; transition: transform .55s var(--ease-mechanical), box-shadow .25s; }
.iris-control[aria-pressed="true"] .iris-icon { transform: rotate(55deg); box-shadow: inset 0 0 0 9px #080706; }
.iris-control[aria-pressed="true"] b { color: #d7c8a9; }
.table-caption { display: flex; gap: 14px; max-width: 590px; margin: 10px auto 0; color: #a39a89; font-size: 13px; line-height: 1.5; }
.table-caption span { color: var(--brass-bright); }
.scroll-mark { position: absolute; bottom: 32px; left: clamp(24px, 4vw, 68px); display: flex; align-items: center; gap: 12px; color: #6e685c; font-size: 9px; letter-spacing: .16em; text-transform: uppercase; writing-mode: vertical-rl; }
.scroll-mark i { height: 42px; width: 1px; background: linear-gradient(var(--brass), transparent); }

.section-pad { padding: clamp(90px, 11vw, 170px) clamp(24px, 8vw, 130px); }
.light-plaque { position: relative; display: grid; grid-template-columns: minmax(540px, 1.2fr) minmax(260px, .8fr); gap: 8vw; align-items: center; min-height: 850px; background: radial-gradient(ellipse at 23% 0, rgba(226,193,123,.1), transparent 36%), radial-gradient(circle at 34% 48%, rgba(190,142,62,.08), transparent 35%), #11110e; }
.light-plaque::before, .light-plaque::after { content: ""; position: absolute; top: 8%; bottom: 8%; width: 1px; background: linear-gradient(transparent, var(--line), transparent); }
.light-plaque::before { left: 5%; }.light-plaque::after { right: 5%; }
.plaque { position: relative; max-width: 820px; padding: clamp(55px, 7vw, 100px); border: 1px solid #513817; background: linear-gradient(145deg, rgba(201,159,83,.05), transparent 52%), #15140f; box-shadow: inset 0 0 0 7px #0c0c09, inset 0 0 0 8px #6f4c20, 0 45px 80px rgba(0,0,0,.35); }
.plaque::before, .plaque::after { content: "✦"; position: absolute; top: 17px; color: #725020; font-size: 14px; }.plaque::before { left: 19px; }.plaque::after { right: 19px; }
.plaque-sun { position: absolute; top: 46px; right: 55px; width: 90px; fill: none; stroke: #5c401c; stroke-width: 1; }
.plaque h2 { font-size: clamp(60px, 7vw, 112px); }
.plaque > p:not(.eyebrow) { max-width: 630px; margin: 36px 0; color: #b9b09d; font-size: 20px; }
.plaque-stats { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.plaque-stats span { display: flex; flex-direction: column; padding: 25px 20px 0 0; color: #918979; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.plaque-stats b { color: var(--brass-bright); font-family: var(--display); font-size: 38px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.keeper-note { max-width: 340px; align-self: end; margin-bottom: 8%; }
.keeper-note p { color: #d3cab7; font-family: var(--display); font-size: 29px; font-style: italic; line-height: 1.35; }
.keeper-note span { color: var(--brass); font-size: 11px; letter-spacing: .11em; text-transform: uppercase; }

.optics { position: relative; isolation: isolate; display: grid; grid-template-columns: .76fr 1.24fr; column-gap: 7vw; overflow: hidden; background: radial-gradient(ellipse at 68% 38%, rgba(196,151,72,.055), transparent 34%), #0a0a08; }
.optics::before { content: ""; position: absolute; z-index: -1; left: 22%; top: -12%; width: 52%; height: 74%; opacity: .28; background: linear-gradient(115deg, transparent 6%, rgba(227,193,124,.12) 49%, transparent 53%); clip-path: polygon(48% 0, 56% 0, 100% 100%, 0 100%); }
.section-heading { padding-top: 40px; }
.section-heading h2, .mechanism h2, .book-heading h2, .hours h2 { font-size: clamp(60px, 7vw, 110px); }
.section-heading > p:last-child { max-width: 390px; margin-top: 34px; color: #9e9686; }
.ray-apparatus { position: relative; min-width: 0; border: 1px solid #302719; background: radial-gradient(circle at 50% 37%, rgba(191,144,63,.07), transparent 40%), #0d0d0a; transition: border-color .3s, box-shadow .3s; }
.ray-apparatus:hover, .ray-apparatus:focus-within { border-color: #705027; box-shadow: 0 28px 70px rgba(0,0,0,.35), inset 0 0 50px rgba(185,138,62,.025); }
#ray-diagram { display: block; width: 100%; height: auto; max-height: 710px; }
#ray-diagram:focus-visible { outline: 2px solid var(--brass-bright); outline-offset: 6px; }
.tower-lines { fill: none; stroke: #5d4a2f; stroke-width: 2; }.outside-scene { fill: none; stroke: #6b604e; stroke-width: 2; }.mirror { stroke: #efd28b; stroke-width: 7; }.lens { fill: rgba(216,186,121,.08); stroke: url(#brassStroke); stroke-width: 3; }.table-drawing { fill: #15120c; stroke: #8c6b32; stroke-width: 2; }.table-drawing ellipse:last-child { fill: rgba(239,227,196,.08); }.rays { fill: none; stroke: #e3bd69; stroke-width: 1.5; stroke-dasharray: 7 8; animation: rays 8s linear infinite; }.ray-labels { fill: #8f8169; font-family: var(--body); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.apparatus-readout { position: absolute; right: 22px; bottom: 20px; display: flex; flex-direction: column; align-items: flex-end; color: #a99c87; font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }.apparatus-readout b { color: var(--brass-bright); font-family: var(--display); font-size: 22px; font-weight: 400; letter-spacing: .02em; }.apparatus-readout small { margin-top: 6px; color: #8e8576; font-size: 8px; }
.optics-steps { grid-column: 1/-1; display: grid; grid-template-columns: repeat(4,1fr); margin: 70px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.optics-steps li { padding: 28px 35px 0 0; border-right: 1px solid var(--line); }.optics-steps li + li { padding-left: 35px; }.optics-steps li:last-child { border-right: 0; }.optics-steps b { display: block; margin-bottom: 10px; color: var(--paper); font-family: var(--display); font-size: 27px; font-weight: 400; }.optics-steps span { color: #9a9282; font-size: 14px; }

.mechanism { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: 10vw; align-items: center; min-height: 850px; overflow: hidden; background: radial-gradient(ellipse at 20% 45%, rgba(181,128,48,.07), transparent 30%), linear-gradient(90deg, #14130f, #0d0d0a); }
.mechanism::after { content: ""; position: absolute; left: -8%; bottom: -50%; width: 65vw; aspect-ratio: 1; border: 1px solid rgba(185,138,62,.08); border-radius: 50%; box-shadow: 0 0 0 70px rgba(185,138,62,.02), 0 0 0 140px rgba(185,138,62,.018); }
.mechanism-wheel { position: relative; z-index: 1; aspect-ratio: 1; max-width: 700px; border: 1px solid #3a2c18; border-radius: 50%; background: radial-gradient(circle, #211b11 0 14%, #0c0b08 15% 38%, #1b160e 39% 40%, #0c0b08 41% 65%, #4a3215 66% 67%, #0c0b08 68%); box-shadow: inset 0 0 60px #000, 0 40px 70px #000; }
.gear { position: absolute; border: 6px ridge #95703a; border-radius: 50%; box-shadow: inset 0 0 18px #000, 0 0 0 4px #2e1f0d; animation: turn 40s linear infinite; }.gear.large { inset: 14%; }.gear.small { width: 27%; aspect-ratio: 1; right: 0; bottom: 8%; animation-direction: reverse; animation-duration: 20s; }.gear i { position: absolute; left: calc(50% - 3px); top: -16px; width: 8px; height: 20px; background: #88612b; transform-origin: 4px calc(50% + var(--gear-radius, 155px)); }.gear.large i:nth-child(1) { transform: rotate(0deg); }.gear.large i:nth-child(2) { transform: rotate(45deg); }.gear.large i:nth-child(3) { transform: rotate(90deg); }.gear.large i:nth-child(4) { transform: rotate(135deg); }.gear.large i:nth-child(5) { transform: rotate(180deg); }.gear.large i:nth-child(6) { transform: rotate(225deg); }.gear.large i:nth-child(7) { transform: rotate(270deg); }.gear.large i:nth-child(8) { transform: rotate(315deg); }.gear.small i { transform-origin: 4px 58px; }.gear.small i:nth-child(1){transform:rotate(0)}.gear.small i:nth-child(2){transform:rotate(60deg)}.gear.small i:nth-child(3){transform:rotate(120deg)}.gear.small i:nth-child(4){transform:rotate(180deg)}.gear.small i:nth-child(5){transform:rotate(240deg)}.gear.small i:nth-child(6){transform:rotate(300deg)}
.engraving { position: absolute; inset: 35%; display: grid; place-items: center; color: #8f6a33; border: 1px solid #6b4a21; border-radius: 50%; text-align: center; font-size: 11px; line-height: 1.8; letter-spacing: .15em; text-transform: uppercase; }
.wheel-note { position: absolute; z-index: 2; color: #b09a72; font-size: 9px; line-height: 1.35; letter-spacing: .16em; text-transform: uppercase; }
.wheel-note::before { content: ""; position: absolute; top: 7px; height: 1px; background: #705127; }
.wheel-note small { color: #777062; font-size: 7px; letter-spacing: .13em; }
.note-ratio { top: 17%; right: -2%; padding-left: 64px; }.note-ratio::before { left: 0; width: 52px; }
.note-chain { left: -2%; bottom: 17%; padding-right: 72px; text-align: right; }.note-chain::before { right: 0; width: 58px; }
.note-stop { right: 8%; bottom: 4%; padding-left: 54px; }.note-stop::before { left: 0; width: 42px; }
.mechanism-copy { position: relative; z-index: 2; max-width: 600px; }.mechanism-copy > p:not(.eyebrow) { margin: 34px 0; color: #b0a692; font-size: 19px; }.mechanism-copy dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 1px solid var(--line); }.mechanism-copy dl div { padding: 20px 20px 20px 0; border-bottom: 1px solid var(--line); }.mechanism-copy dt { color: #999184; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }.mechanism-copy dd { margin: 6px 0 0; color: #ddd1bb; font-family: var(--display); font-size: 20px; font-variant-numeric: lining-nums tabular-nums; }

.visitor-book { background: #181611; color: #e9dfc9; }
.book-heading { display: grid; grid-template-columns: 1.1fr .9fr; align-items: end; gap: 8vw; margin-bottom: 75px; }.book-heading > p { max-width: 440px; color: #958b78; font-size: 17px; }
.ledger { position: relative; display: grid; grid-template-columns: 1fr 1fr; padding: 4vw; color: #342a1f; background: linear-gradient(90deg, #cfc1a2 0, #f1e7d0 3%, #e8dcc2 49.2%, #b9aa8a 50%, #eee2c9 50.8%, #f1e8d4 97%, #c9b996 100%); box-shadow: 0 45px 90px #050504; transform: rotate(-.45deg); }
.ledger::after { content: "TOWER\A ADMIT 6D"; white-space: pre; position: absolute; right: 4.2%; top: 13%; width: 74px; height: 74px; display: grid; place-items: center; color: rgba(119,61,45,.38); border: 2px double rgba(119,61,45,.3); border-radius: 50%; font-size: 8px; line-height: 1.35; letter-spacing: .12em; text-align: center; transform: rotate(12deg); }
.ledger::before { content: "BELLWEATHER CAMERA OBSCURA · VISITORS · MDCCCXCVII"; position: absolute; top: 21px; left: 6%; right: 6%; padding-bottom: 12px; border-bottom: 1px double rgba(70,49,29,.4); color: #75634c; text-align: center; font-size: 9px; letter-spacing: .23em; }.ledger-spine { position: absolute; z-index: 1; top: 0; bottom: 0; left: calc(50% - 15px); width: 30px; background: linear-gradient(90deg, transparent, rgba(58,41,23,.14), rgba(255,255,255,.3), rgba(58,41,23,.12), transparent); }.ledger article { position: relative; min-height: 330px; padding: 65px 7% 40px; border-bottom: 1px solid rgba(81,59,35,.25); }.ledger article:nth-of-type(odd) { border-right: 1px solid rgba(81,59,35,.18); }.ledger time { color: #816947; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }.ledger blockquote { margin: 25px 0; font-family: var(--display); font-size: clamp(24px, 2.15vw, 36px); font-style: italic; line-height: 1.28; }.signature { margin: 0; font-family: var(--display); font-size: 20px; font-style: italic; transform: rotate(-2deg); }.from { display: block; margin-top: 8px; color: #806e55; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }

.hours { position: relative; isolation: isolate; display: grid; grid-template-columns: .9fr 1.1fr; gap: 10vw; align-items: center; overflow: hidden; padding-top: clamp(90px, 8vw, 125px); padding-bottom: clamp(90px, 8vw, 125px); background: #0b0b09; }.hours::before { content: ""; position: absolute; z-index: -1; left: -14vw; top: 50%; width: 62vw; aspect-ratio: 1; border: 1px solid rgba(185,138,62,.07); border-radius: 50%; box-shadow: 0 0 0 72px rgba(185,138,62,.012), 0 0 0 144px rgba(185,138,62,.008); transform: translateY(-50%); }.weather-strip { position: absolute; top: 0; left: 0; right: 0; display: grid; grid-template-columns: repeat(7,1fr); height: 5px; background:#17130c; }.weather-strip i:nth-child(1){background:#3f2c15}.weather-strip i:nth-child(2){background:#775525}.weather-strip i:nth-child(3){background:#a27a39}.weather-strip i:nth-child(4){background:#d0ad64}.weather-strip i:nth-child(5){background:#a27a39}.weather-strip i:nth-child(6){background:#775525}.weather-strip i:nth-child(7){background:#3f2c15}
.hours-copy > p:last-child { max-width: 470px; margin-top: 35px; color: #9b9383; }.visit-card { padding: clamp(32px, 5vw, 70px); border: 1px solid #5f411c; background: linear-gradient(135deg, rgba(195,149,68,.08), transparent), #13120e; box-shadow: 25px 25px 0 #090907; }.today { display: grid; grid-template-columns: 1fr auto; padding-bottom: 30px; border-bottom: 1px solid var(--line); }.today span { grid-column: 1/-1; color: #756c5e; font-size: 10px; letter-spacing: .17em; text-transform: uppercase; }.today b { margin-top: 10px; font-family: var(--display); font-size: 26px; font-weight: 400; }.today i { align-self: center; margin-left: 20px; padding: 6px 10px; color: #d9b865; border: 1px solid #6a4b24; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }.times { display: grid; grid-template-columns: repeat(3,1fr); margin: 28px 0; }.times span { display: flex; flex-direction: column; color: #797266; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }.times b { margin-top: 5px; color: #ded3bd; font-family: var(--display); font-size: 22px; font-weight: 400; letter-spacing: 0; text-transform: none; }.visit-card > p { color: #7f7768; font-size: 13px; }.visit-card > a { display: flex; justify-content: space-between; margin-top: 35px; padding: 16px 0; color: var(--brass-bright); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); text-decoration: none; }
.today span, .times span { color: #918979; }
.visit-card > p { color: #938b7b; }
.times b, .plaque-stats b, .table-status, .apparatus-readout b { font-variant-numeric: lining-nums tabular-nums; }
.visit-card > a { transition: color .22s, padding-left .22s, padding-right .22s; }
.visit-card > a:hover { padding-left: 7px; padding-right: 7px; color: var(--chalk); }

.site-footer { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; min-height: 136px; padding: 32px clamp(24px, 5vw, 78px); color: #aaa293; border-top: 1px solid rgba(185,138,62,.18); background: #080807; font-size: 12px; }.site-footer p { text-align: center; }.footer-mark { justify-self: start; color: #d2c8b3; font-family: var(--display); font-size: 15px; }.footer-mark svg { width: 34px; }.site-footer nav { justify-self: end; gap: 24px; }.site-footer a { padding: 12px 0; color: #b9b0a0; text-decoration-color: #886534; text-underline-offset: 4px; transition: color .2s, text-decoration-color .2s; }.site-footer a:hover { color: var(--paper); text-decoration-color: var(--brass-bright); }

.reveal { opacity: 1; transform: none; }
.hero .hero-copy > .eyebrow { animation: hero-enter .68s .1s var(--ease-out) both; }
.hero .title-line { animation: title-enter .88s var(--ease-out) both; }
.hero .title-line:nth-child(1) { animation-delay: .18s; }
.hero .title-line:nth-child(2) { animation-delay: .28s; }
.hero .title-line:nth-child(3) { animation-delay: .38s; }
.hero .hero-intro { animation: hero-enter .74s .54s var(--ease-out) both; }
.hero .hero-instruction { animation: hero-enter .7s .66s var(--ease-out) both; }
.hero .table-status { animation: hero-enter .72s .52s var(--ease-out) both; }
.hero .projection-rig { animation: rig-enter 1.08s .6s var(--ease-out) both; }
.guide-hero > div:first-child { animation: hero-enter .82s .12s var(--ease-out) both; }
.guide-abstract { animation: hero-enter .82s .32s var(--ease-out) both; }
@keyframes breathe { 50% { opacity: .35; box-shadow: 0 0 3px #d1a64e; } }
@keyframes rays { to { stroke-dashoffset: -120; } }
@keyframes turn { to { transform: rotate(360deg); } }
@keyframes hero-enter { from { opacity: 0; transform: translateY(24px); } }
@keyframes title-enter { from { opacity: 0; transform: translateY(.38em); } }
@keyframes rig-enter { from { opacity: 0; transform: translateY(32px) scale(.965); } }
@keyframes projection-open { from { opacity: .18; transform: scale(.08); } 65% { opacity: .82; } }
@keyframes aperture-clear { 0%, 30% { opacity: 1; transform: scale(1) rotate(0); } 78% { opacity: .7; } 100% { opacity: 0; transform: scale(.02) rotate(24deg); } }
@keyframes projection-breathe { 50% { opacity: .7; transform: scale(.997); } }

/* Guide */
.guide-body { background: #0c0c09; }
.guide-main { overflow: hidden; }
.guide-hero { position: relative; min-height: 650px; display: grid; grid-template-columns: 1fr .8fr; gap: 10vw; align-items: end; padding: 180px clamp(24px, 9vw, 145px) 100px; background: radial-gradient(circle at 72% 45%, rgba(185,138,62,.1), transparent 28%); }.guide-hero::after { content:""; position:absolute; width:min(42vw,560px); aspect-ratio:1; right:-5%; top:90px; border:1px solid #503718; border-radius:50%; box-shadow:0 0 0 50px rgba(185,138,62,.018),0 0 0 100px rgba(185,138,62,.012); background:radial-gradient(circle,transparent 0 5%,rgba(185,138,62,.24) 5.2% 5.5%,transparent 5.7%),linear-gradient(90deg,transparent calc(50% - .5px),rgba(185,138,62,.16) 50%,transparent calc(50% + .5px)),linear-gradient(transparent calc(50% - .5px),rgba(185,138,62,.16) 50%,transparent calc(50% + .5px)); }.guide-hero::before { content:"FOCAL PLANE 03 / DAYLIGHT STUDY"; position:absolute; z-index:1; right:clamp(32px,8vw,124px); top:46%; color:#77613d; font-size:8px; letter-spacing:.2em; transform:rotate(90deg) translateX(50%); transform-origin:right; }.guide-hero h1 { max-width: 760px; font-size: clamp(70px, 9vw, 140px); }.guide-hero h1 i { color: var(--brass-bright); }.guide-lede { position:relative; z-index:1; max-width:460px; color:#b5ac99; font-size:21px; }.guide-layout { display:grid; grid-template-columns: 240px minmax(0,780px); justify-content:center; gap:9vw; padding:110px clamp(24px,7vw,110px) 95px; background:#13120e; }.guide-aside { position:sticky; top:30px; align-self:start; }.guide-aside p { color:var(--brass-bright); font-size:10px; letter-spacing:.18em; text-transform:uppercase; }.guide-aside nav { display:flex; flex-direction:column; border-top:1px solid var(--line); }.guide-aside a { padding:14px 0; color:#9d9586; border-bottom:1px solid var(--line); font-size:13px; text-decoration:none; }.guide-content { counter-reset: guide; }.guide-section { margin-bottom:95px; }.guide-section:last-child { margin-bottom:25px; }.guide-section h2 { margin-bottom:28px; font-size:clamp(43px,5vw,72px); }.guide-section > p { color:#aaa18e; }.guide-section code { padding:.1em .35em; color:#dec079; background:#252117; font-family:var(--body); font-size:.86em; }.tech-list { display:grid; gap:1px; margin-top:35px; background:var(--line); border:1px solid var(--line); }.tech-list article { padding:24px; background:#11100c; }.tech-list h3 { margin:0 0 9px; color:#dacbae; font-family:var(--display); font-size:25px; font-weight:400; }.tech-list p { margin:0; color:#9d9586; font-size:15px; }.swatches { display:grid; grid-template-columns:repeat(5,1fr); margin:34px 0; }.swatches span { aspect-ratio:1; display:flex; align-items:flex-end; padding:11px; color:rgba(255,255,255,.9); font-size:10px; font-weight:500; letter-spacing:.08em; text-shadow:0 1px 2px rgba(0,0,0,.45); }.swatches span:nth-child(1){background:#0b0b09}.swatches span:nth-child(2){background:#eee5cf;color:#332d25;text-shadow:none}.swatches span:nth-child(3){background:#b98a3e}.swatches span:nth-child(4){background:#9bb8bd;color:#223037;text-shadow:none}.swatches span:nth-child(5){background:#c98974}.type-specimen { padding:35px; border:1px solid var(--line); background:#0d0d0a; }.type-specimen b { display:block; font-family:var(--display); font-size:45px; font-weight:400; line-height:1; }.type-specimen span { display:block; margin-top:18px; color:#afa693; }.prompt-box { padding:30px; color:#bcb29f; border-left:3px solid var(--brass); background:#0c0c09; font-style:italic; }

.guide-hero { min-height: 760px; align-items: center; overflow: hidden; }
.guide-abstract { position: relative; z-index: 2; align-self: end; padding-bottom: 12px; }
.guide-abstract dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 38px 0 0; border-top: 1px solid var(--line); }
.guide-abstract dl div { min-width: 0; padding: 14px 12px 0 0; }
.guide-abstract dt { color: #938b7b; font-size: 8px; letter-spacing: .16em; text-transform: uppercase; }
.guide-abstract dd { margin: 4px 0 0; color: #c7bda9; font-size: 11px; font-variant-numeric: tabular-nums; }
.guide-aside a { transition: color .2s, padding-left .2s; }.guide-aside a:hover { padding-left: 7px; color: var(--paper); }
.guide-section { position: relative; }
.guide-section::before { content: ""; position: absolute; left: -42px; top: 7px; width: 20px; height: 1px; background: var(--brass); }
.tech-list { grid-template-columns: 1fr 1fr; }
.tech-list article { position: relative; min-height: 270px; padding: 58px 28px 30px; }
.tech-list article::before { content: attr(data-index); position: absolute; top: 18px; left: 28px; color: #8e672d; font-family: var(--display); font-size: 14px; }
.tech-list article::after { content: ""; position: absolute; top: 27px; left: 52px; right: 28px; height: 1px; background: var(--line); }
.source-route { display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto; align-items: center; margin-top: 28px; color: #9c927e; font-size: 9px; letter-spacing: .15em; text-transform: uppercase; }
.source-route i { height: 1px; margin: 0 12px; background: linear-gradient(90deg, #63441d, #dbb865); }.source-route i::after { content: "›"; float: right; margin-top: -10px; color: var(--brass-bright); }
.swatches span { flex-direction: column; align-items: flex-start; justify-content: flex-end; font-variant-numeric: tabular-nums; }
.swatches span b { margin-bottom: 2px; font-family: var(--display); font-size: 13px; font-weight: 400; letter-spacing: 0; }
.prompt-box { margin: 22px 0 0; padding: 30px; }

@media (max-width: 1100px) {
  .hero { grid-template-columns: .75fr 1.25fr; }
  .projection-rig { width: min(53vw, 620px); }
  .hero h1 { font-size: clamp(62px, 7.8vw, 88px); }
  .light-plaque { grid-template-columns: 1fr; }
  .keeper-note { justify-self: end; }
  .section-pad { padding-left: 6vw; padding-right: 6vw; }
  .site-footer { grid-template-columns: 1fr 1fr; }.site-footer p { order:3; grid-column:1/-1; margin:0; }.site-footer nav { flex-wrap:wrap; justify-content:flex-end; }
  .guide-hero { grid-template-columns: 1fr .85fr; gap: 6vw; min-height: 650px; padding-left: 8vw; padding-right: 8vw; }
  .guide-layout { grid-template-columns: 1fr; gap: 70px; padding: 90px 9vw; }
  .guide-aside { position: static; display: grid; grid-template-columns: 150px 1fr; gap: 25px; }
  .guide-aside p { margin: 16px 0 0; }
  .guide-aside nav { display: grid; grid-template-columns: repeat(4, 1fr); }
  .guide-aside a { display: flex; align-items: center; min-height: 58px; padding: 10px 12px; border-left: 1px solid var(--line); }
  .guide-content { width: min(100%, 780px); margin: 0 auto; }
}

@media (max-width: 760px) {
  body { font-size: 16px; }
  .site-header { position: absolute; padding: 16px 18px; }
  .wordmark b { font-size: 15px; }
  .menu-toggle { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
  .menu-toggle span { width: 20px; height: 1px; background: var(--brass-bright); transition: transform .3s, opacity .3s; }
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .site-header nav { position: absolute; top: 80px; left: 16px; right: 16px; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 12px 20px 20px; border: 1px solid #5b3f1c; background: rgba(12,12,9,.98); box-shadow: 0 20px 50px #000; }
  .site-header nav.open { display: flex; }.site-header nav a { display:flex; align-items:center; min-height:48px; border-bottom:1px solid var(--line); }.nav-ticket { justify-content:center; margin-top:10px; }
  .hero { display: flex; flex-direction: column; align-items: stretch; min-height: auto; padding: 112px 18px 76px; }
  .hero::after { display:none; }
  .hero-copy { display: contents; }
  .eyebrow { margin-bottom: 18px; font-size: 10px; }
  .hero-copy > .eyebrow { order: 1; }
  .hero h1 { order: 2; max-width: 355px; font-size: clamp(60px, 18vw, 72px); }
  .table-column { order: 3; margin-top: 22px; }
  .hero-intro { order: 4; margin-top: 34px; font-size: 17px; }
  .hero-instruction { order: 5; margin-top: 24px; }
  .table-status { grid-template-columns: 1fr auto auto; gap: 8px; width: calc(100% - 8px); font-size: 8px; }
  .table-status .status-scene { display: none; }
  .table-status b { font-size: 8px; }
  .projection-rig { width: min(calc(100vw - 46px), 410px); margin: 0 auto; }
  .pan-handle { right: -5px; width: 82px; transform: scale(.72) rotate(var(--handle-angle)); transform-origin: 0 37px; }
  .cardinal.east { right: -2px; }
  .focus-control { left: 4%; bottom: -5%; width: 148px; padding: 9px 11px 7px; }
  .focus-control label { font-size: 8px; }
  .focus-legend { font-size: 6px; }
  .iris-control { right: 3%; bottom: -5%; min-width: 96px; min-height: 46px; padding: 6px 8px; }
  .iris-icon { width: 22px; height: 22px; }
  .iris-control b { font-size: 8px; }
  .manual-shutter > span { max-width: 110px; font-size: 7px; }
  .manual-shutter b { font-size: 16px; }
  .scene-telemetry { right: 8%; bottom: 14%; font-size: 7px; }
  .table-caption { margin-top: 26px; padding: 0 10px; font-size: 12px; }
  .scroll-mark { display: none; }
  .section-pad { padding: 90px 20px; }
  .light-plaque { display:block; min-height:0; }
  .light-plaque::before,.light-plaque::after { display:none; }
  .plaque { padding: 55px 26px 40px; }
  .plaque-sun { top:24px; right:24px; width:55px; }
  .plaque h2 { font-size: 55px; }
  .plaque > p:not(.eyebrow) { margin: 28px 0; font-size:17px; }
  .plaque-stats { grid-template-columns:1fr; }.plaque-stats span { flex-direction:row; align-items:baseline; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); }.plaque-stats b { font-size:30px; }
  .keeper-note { margin: 55px 12px 0; }.keeper-note p { font-size:25px; }
  .optics { display:block; }.section-heading { padding:0; }.section-heading h2,.mechanism h2,.book-heading h2,.hours h2 { font-size:57px; }.section-heading > p:last-child { margin-bottom:45px; }
  .ray-apparatus { margin:0 -8px; }.ray-labels { font-size:10px; }.apparatus-readout { right:12px; bottom:11px; }
  .optics-steps { grid-template-columns:1fr 1fr; margin-top:45px; }.optics-steps li,.optics-steps li+li { padding:23px 18px 25px 0; border-bottom:1px solid var(--line); }.optics-steps li:nth-child(even) { padding-left:18px; border-right:0; }.optics-steps b { font-size:23px; }
  .mechanism { display:flex; flex-direction:column-reverse; min-height:0; gap:55px; }.mechanism-wheel { width:108%; margin-left:-4%; }.gear.large { --gear-radius: 110px; }.mechanism-copy dl { grid-template-columns:1fr; }.wheel-note { font-size:7px; }.wheel-note::before { display:none; }.note-ratio { right:1%; padding-left:0; }.note-chain { left:1%; padding-right:0; }.note-stop { right:5%; padding-left:0; }
  .book-heading { display:block; margin-bottom:45px; }.book-heading > p { margin-top:25px; }
  .ledger { display:block; margin:0 -8px; padding:24px 22px; background:linear-gradient(90deg,#cfc1a2,#f1e7d0 5%,#eee2c9 95%,#c9b996); transform:rotate(-.3deg); }.ledger::before { top:17px; white-space:nowrap; overflow:hidden; }.ledger-spine { display:none; }.ledger article { min-height:0; padding:55px 7px 35px; border-right:0!important; }.ledger blockquote { font-size:26px; }
  .hours { display:block; }.hours-copy { margin-bottom:50px; }.visit-card { padding:30px 24px; box-shadow:10px 10px 0 #060605; }.today { display:block; }.today b { display:block; margin-top:10px; line-height:1.22; }.today i { display:inline-block; margin:13px 0 0; }.times { gap:10px; }.times b { font-size:18px; }
  .site-footer { display:grid; grid-template-columns:1fr; gap:18px; min-height:0; padding:38px 24px; }.site-footer p { order:0; margin:0; text-align:left; }.site-footer nav { display:flex; align-items:flex-start; flex-flow:row wrap; justify-content:flex-start; gap:0 20px; }.site-footer nav a { min-height:44px; }
  .guide-hero { display:block; min-height:0; padding:140px 22px 62px; }.guide-hero::before { display:none; }.guide-hero h1 { font-size:68px; }.guide-abstract { margin-top:34px; }.guide-lede { margin-top:0; }.guide-abstract dl { margin-top:28px; }.guide-abstract dd { font-size:9px; }.guide-layout { display:block; padding:50px 22px 75px; }.guide-aside { display:block; position:static; margin-bottom:62px; }.guide-aside nav { display:flex; flex-direction:column; }.guide-aside a { min-height:48px; padding:12px 0; border-left:0; }.guide-section { margin-bottom:75px; }.guide-section::before { display:none; }.tech-list { grid-template-columns:1fr; }.tech-list article { min-height:0; padding:54px 24px 26px; }.source-route { font-size:7px; }.source-route i { margin:0 6px; }.swatches { grid-template-columns:repeat(3,1fr); }.type-specimen b { font-size:36px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.001ms !important; animation-delay:0ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; transition-delay:0ms !important; }
  .reveal { opacity:1; transform:none; }
}
