@font-face{font-family:LocalSerif;src:local("Iowan Old Style");font-display:swap}
:root{--paper:#efeee7;--ink:#293b34;--muted:#778077;--line:#d4d7cc;--accent:#a55532;--green:#284f41;--white:#faf9f3;--serif:LocalSerif,"Palatino Linotype",Palatino,Georgia,serif;--sans:"Avenir Next",Avenir,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{border:0;background:none}a{color:inherit}button:hover:not(:disabled){color:var(--accent)}[hidden]{display:none!important}.site-header{height:78px;margin:0 4.2%;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.wordmark{text-decoration:none;font-size:12px;font-weight:650;letter-spacing:2px;display:flex;align-items:center;gap:13px}.logo{width:27px;height:27px;border:1.5px solid var(--ink);border-radius:50%;position:relative;overflow:hidden;transform:rotate(-30deg)}.logo:before{content:"";position:absolute;inset:0 50% 0 0;background:var(--ink)}.logo:after{content:"";position:absolute;inset:5px;border:1px solid var(--paper);border-radius:50%}.edition{font-weight:400;font-size:9px;letter-spacing:1px;color:var(--muted);margin-left:13px}.site-header nav{display:flex;gap:26px}.site-header nav button{padding:8px 0;font-size:11px}.site-header nav button span{padding-left:7px;color:var(--muted)}main{max-width:1530px;margin:auto;padding:0 4.2%}.introduction{display:flex;align-items:center;justify-content:space-between;padding:37px 0 31px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600;margin:0 0 12px;line-height:1.7}.introduction h1{font-family:var(--serif);font-weight:400;font-size:clamp(42px,4.7vw,72px);line-height:1;margin:0;letter-spacing:-2.5px}.introduction h1 em{font-weight:400}.title-dot{color:var(--accent)}.intro-note{font-family:var(--serif);font-size:20px;line-height:1.5;margin:0;padding-left:30px}.intro-note span{color:#7a8075}.intro-note small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.2px;color:var(--muted);margin-top:12px}.rooms{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:23px}.room-tab{position:relative;text-align:left;padding:16px 12px 16px 0;font-size:10px;display:flex;gap:10px;align-items:center;white-space:nowrap}.room-tab .room-num{font-size:10px;color:#94988e;letter-spacing:1px}.room-tab.active:after{content:"";position:absolute;bottom:-1px;height:2px;background:var(--ink);left:0;right:20px}.room-tab.active{font-weight:600}.room-tab.active .room-num{color:var(--accent)}.room-tab.complete .room-num{color:var(--green)}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:29px;align-items:start}.exhibit{border-radius:3px;background:#182722;overflow:hidden;color:#dadcd0}.exhibit-top{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0;font-size:8px;letter-spacing:1.5px;position:relative;z-index:2}.stage-state{display:flex;gap:7px;align-items:center;color:#a8b8a8;font-size:7px}.stage-state i{width:4px;height:4px;background:#bbc4a9;border-radius:50%;box-shadow:0 0 5px #c3d1ae66}.stage{position:relative;height:370px;overflow:hidden}.stage canvas#shadow{width:100%;height:100%;display:block}.stage-title{position:absolute;left:24px;top:22px;display:flex;flex-direction:column;gap:5px;pointer-events:none}#view-tag{font-size:8px;letter-spacing:1px;color:#c2c8b8}#view-angle{font-size:7px;letter-spacing:.7px;color:#84968a}.stage-caption{position:absolute;bottom:23px;width:100%;text-align:center;font-family:var(--serif);font-style:italic;color:#b9c0b1;font-size:16px;pointer-events:none}.observation-strip{display:flex;align-items:center;border-top:1px solid #34413a;height:66px;padding:0 23px;gap:18px}.strip-label{font-size:8px;letter-spacing:1.1px;color:#aeb8a7}.observations{display:flex;gap:7px}.observation{border:1px solid #546255;width:44px;height:42px;position:relative;padding:0;border-radius:2px}.observation.active{border-color:#e2c193;background:#b9b99e22}.observation.empty{border-style:dashed;border-color:#465348}.observation.empty:after{content:"+";color:#617262;position:absolute;inset:0;display:grid;place-items:center;font-size:14px}.observation canvas{width:100%;height:100%;display:block}.observation .photo-number{position:absolute;top:2px;left:3px;font-size:6px;line-height:1;color:#e0d6bd}.remaining{margin-left:auto;font-size:10px;color:#adb7a5;font-family:var(--serif);font-style:italic}.section-label{display:flex;justify-content:space-between;align-items:center;margin:20px 0 13px}.section-label h2{font-size:9px;letter-spacing:1.5px;font-weight:600;margin:0}.segmented{display:flex;gap:1px;border:1px solid var(--line);border-radius:3px;padding:2px}.segmented button{font-size:8px;padding:5px 8px;border-radius:1px;color:#778074}.segmented .active{background:#dde1d5;color:var(--ink)}.candidate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.candidate{position:relative;border:1px solid #d4d8cc;border-radius:3px;padding:0;text-align:left;background:#e7e8df;transition:border-color .2s,background .2s;overflow:hidden}.candidate:hover{border-color:#969f89!important}.candidate.selected{border-color:var(--accent);background:#e8e5d7}.candidate.selected:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}.candidate-letter{position:absolute;top:11px;left:13px;font-size:9px;font-weight:600;color:#72816f}.candidate canvas{display:block;width:100%;height:126px}.candidate-body{padding:0 13px 13px}.candidate h3{font-size:12px;font-weight:500;margin:0 0 5px;color:var(--ink)}.candidate p{font-size:9px;line-height:1.5;margin:0;color:#7a8273}.candidate-status{position:absolute;right:10px;top:11px;font-size:7px;letter-spacing:.5px;color:#73866a}.candidate.contradicted{background:#e7e6de}.candidate.contradicted .candidate-status{color:#a08376}.candidate.contradicted canvas{opacity:.55}.candidate-tip{font-size:9px;color:#7c8275;line-height:1.7;margin:11px 0 0}.controls{border-left:1px solid var(--line);padding-left:28px}.room-story .eyebrow{color:var(--accent);font-size:8px;margin:0 0 11px}.room-story h2{font-family:var(--serif);font-weight:400;font-size:30px;letter-spacing:-.5px;line-height:1.12;margin:0 0 12px}.room-story>p:last-child{font-size:11px;line-height:1.8;color:#6d786b;margin:0 0 23px}.control-heading{display:flex;align-items:center;gap:8px}.step-number{border:1px solid #bac2af;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:8px}.control-heading h3{font-size:10px;font-weight:500;margin:0}.quiet{font-size:8px!important;margin-left:auto;padding:4px 0;color:#7d8778}.light-map-wrap{height:107px;position:relative;margin:3px 0 4px}.light-map-wrap canvas{width:100%;height:100%;display:block}.light-map-wrap>span{position:absolute;bottom:6px;left:0;right:0;text-align:center;font-size:6px;letter-spacing:1.8px;color:#8e9786}.range-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:9px;margin:9px 0 13px}.range-row label{font-size:9px;color:#64735f}.range-row output{font-family:var(--serif);font-size:14px}.range-row input{width:100%;grid-column:1/-1;height:2px;appearance:none;background:#ced4c5;margin:2px 0 5px;accent-color:var(--green);border-radius:4px;cursor:pointer}.range-row input::-webkit-slider-thumb{appearance:none;height:10px;width:10px;background:var(--green);border-radius:50%;border:2px solid var(--paper);box-shadow:0 0 0 1px var(--green)}.range-row input::-moz-range-thumb{height:8px;width:8px;background:var(--green);border:2px solid var(--paper);box-shadow:0 0 0 1px var(--green);border-radius:50%}.presets{display:flex;gap:5px;margin:2px 0 14px}.presets button{font-size:8px;border:1px solid #cbd1c1;border-radius:2px;padding:6px 9px;flex:1}.presets button.active{background:#dce3d4;border-color:#a1b296}.primary,.secondary{display:flex;align-items:center;justify-content:space-between;width:100%;padding:13px 16px;border-radius:2px;font-size:10px;letter-spacing:.2px;min-height:42px}.primary{background:var(--green);color:#f1f1df;border:1px solid var(--green)}.primary:hover:not(:disabled){background:#37634f;color:#fff}.primary span:last-child,.secondary span:last-child{font-size:16px;font-weight:300}.secondary{border:1px solid #b4bdab;background:transparent}.small-note{font-size:8px;line-height:1.7;color:#85907c;text-align:center;margin:8px 0 19px}.decision{padding-top:18px;border-top:1px solid var(--line)}.decision>p{font-size:9px;color:#74826a;margin:11px 0 13px;line-height:1.6}.compare-toggle{display:flex;align-items:start;gap:7px;font-size:8px;color:#78856e;line-height:1.6;margin-bottom:15px;cursor:pointer}.compare-toggle input{appearance:none;width:10px;height:10px;border:1px solid #acb89e;flex:none;margin:1px 0 0;border-radius:2px}.compare-toggle input:checked{background:var(--green);border-color:var(--green);box-shadow:inset 0 0 0 2px var(--paper)}.live-status{border-top:1px solid var(--line);font-size:9px;font-family:var(--serif);font-style:italic;line-height:1.7;color:#7c8870;margin-top:20px;padding-top:14px}.hint{background:#e1e5d8;border-left:2px solid #82956e;font-family:var(--serif);font-size:12px;line-height:1.6;padding:11px 13px}.unknown{border:1px solid #c8b596;width:100%;padding:11px 9px;display:flex;justify-content:space-between;align-items:center;font-family:var(--serif);font-size:13px;margin-bottom:10px;color:#8d683f;background:#e9e4d3}.unknown[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.unknown span{font-size:20px}.sculpture{position:absolute;inset:0}.sculpture canvas{display:block;width:100%;height:100%;touch-action:none}.reveal-controls{position:absolute;left:0;right:0;bottom:43px;display:flex;align-items:center;justify-content:center;gap:13px;color:#b7c5af}.reveal-controls span{font-size:8px;letter-spacing:1px}.reveal-controls button{font-size:18px;padding:5px 10px;color:#d4d8c8}.compare-key{position:absolute;right:22px;top:22px;display:flex;gap:5px;align-items:center;font-size:7px;color:#bec7b2}.compare-key i{width:6px;height:6px;background:#161e18;border:1px solid #bec7b2;border-radius:50%}.compare-key i:nth-of-type(2){background:#e9a56d;margin-left:7px;border:none}.result{padding-top:12px}.result-mark{font-family:var(--serif);font-size:48px;color:var(--accent);margin:0 0 12px}.result .eyebrow{font-size:8px;color:var(--accent)}.result h3{font-family:var(--serif);font-weight:400;font-size:27px;line-height:1.15;margin:0 0 13px}.result>p:not(.eyebrow){font-size:11px;line-height:1.9;color:#6c7863}.result-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;margin:20px 0;display:flex;gap:19px}.result-stats strong{font-family:var(--serif);font-size:24px;font-weight:400;display:block}.result-stats small{font-size:7px;letter-spacing:.7px;color:var(--muted)}.text-button{font-size:9px;display:block;margin:13px auto;padding:5px}.result .primary{margin-bottom:14px}footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:22px 0;margin-top:27px}footer>span{font-size:7px;letter-spacing:1.5px;color:#8b9480}footer p{font-family:var(--serif);font-style:italic;font-size:13px;color:#818d75;margin:0}footer button{font-size:8px;color:#7e8975}dialog{border:1px solid #bfc5b5;background:var(--paper);color:var(--ink);padding:45px;max-width:550px;width:calc(100% - 32px);max-height:88vh;border-radius:5px;box-shadow:0 30px 120px #0007}dialog::backdrop{background:#101b16bb;backdrop-filter:blur(6px)}dialog h2{font-family:var(--serif);font-size:38px;font-weight:400;line-height:1.1;margin:0 0 25px;letter-spacing:-1px}dialog p,dialog li{font-size:12px;line-height:1.9;color:#65705e}dialog strong{font-weight:500;color:var(--ink)}dialog ol{padding-left:18px}dialog li{padding:5px 0 6px 4px}dialog .primary{margin-top:22px}.close-dialog{position:absolute;right:15px;top:10px;font-size:25px;color:#8b9681}.source-note{border-top:1px solid var(--line);margin-top:20px;padding-top:17px}.source-note h3{font-size:11px;font-weight:500;margin:0}.source-note p{font-size:11px}.source-note a{color:#a05e3c;text-decoration-thickness:1px;text-underline-offset:3px}details{font-size:11px;padding:17px 0 25px;line-height:1.8}summary{cursor:pointer}.no-script{padding:30px}.flash{animation:exposure .6s ease-out}@keyframes exposure{0%{filter:brightness(1.5)}100%{filter:brightness(1)}}
@media(min-width:1500px){.game-layout{grid-template-columns:minmax(0,1fr) 335px;gap:36px}.stage{height:440px}.candidate canvas{height:149px}.controls{padding-left:34px}.room-story h2{font-size:35px}.room-story>p:last-child{font-size:12px}.light-map-wrap{height:135px}.range-row{margin-bottom:20px}.candidate h3{font-size:13px}}
@media(max-width:1050px){.game-layout{grid-template-columns:minmax(0,1fr) 275px;gap:20px}.controls{padding-left:20px}.room-tab{font-size:9px;gap:7px}.stage{height:340px}.candidate canvas{height:105px}.candidate h3{font-size:10px}.candidate p{font-size:8px}.candidate-status{font-size:6px}.strip-label{display:none}.room-story h2{font-size:27px}.candidate-body{padding:0 9px 10px}.intro-note{font-size:17px}}
@media(max-width:790px){.site-header{height:65px}.site-header nav{gap:17px}.site-header nav button{font-size:9px}.edition{display:none}.wordmark{font-size:9px;letter-spacing:1.3px;gap:9px}.logo{width:23px;height:23px}.introduction{padding:29px 0 25px;align-items:end}.introduction h1{font-size:47px}.intro-note{font-size:14px;padding-left:15px}.intro-note small{display:none}.eyebrow{font-size:7px;letter-spacing:1.5px}.rooms{margin-bottom:18px}.room-tab{justify-content:center;padding:13px 4px}.room-tab .room-name{display:none}.room-tab.active:after{right:8px;left:8px}.game-layout{grid-template-columns:1fr;gap:26px}.controls{border:1px solid var(--line);padding:23px;border-radius:3px}.stage{height:365px}.candidate canvas{height:125px}.candidate h3{font-size:11px}.candidate p{font-size:9px}.room-story h2{font-size:32px}.room-story>p:last-child{font-size:12px}.control-heading h3{font-size:12px}.quiet{font-size:10px!important}.light-map-wrap{height:135px}.range-row label{font-size:11px}.range-row{margin:12px 0 23px}.range-row input{height:3px}.range-row input::-webkit-slider-thumb{height:14px;width:14px}.range-row input::-moz-range-thumb{height:12px;width:12px}.primary,.secondary{font-size:12px;min-height:48px}.presets button{padding:10px;font-size:10px}.compare-toggle,.decision>p,.live-status{font-size:11px}.small-note{font-size:10px}.text-button{font-size:11px}.unknown{padding:13px;font-size:16px}footer p{display:none}.site-header nav button span{display:none}.section-label h2{font-size:8px}.candidate-status{font-size:7px}.exhibit-top{font-size:7px}.room-story .eyebrow{font-size:9px}}
@media(max-width:460px){.introduction h1{font-size:43px}.intro-note{display:none}.site-header nav{gap:12px}.site-header nav button{font-size:8px}.stage{height:320px}.exhibit-top{padding:17px 17px 0;font-size:6px}.stage-state{font-size:6px}.stage-title{left:17px}.stage-caption{font-size:14px}.observation-strip{padding:0 17px;gap:10px}.observation{width:40px;height:38px}.candidate-grid{gap:6px}.candidate canvas{height:95px}.candidate-letter{top:8px;left:8px;font-size:8px}.candidate-status{font-size:5px;top:9px;right:6px}.candidate-body{padding:0 8px 11px}.candidate h3{font-size:10px;line-height:1.5}.candidate p{font-size:8px;min-height:36px}.section-label h2{font-size:7px;letter-spacing:1px}.segmented button{font-size:7px;padding:6px}.candidate-tip{font-size:8px}.controls{padding:21px}.rooms{margin-bottom:15px}dialog{padding:32px 25px}dialog h2{font-size:32px}.compare-key{right:12px;top:52px;font-size:6px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Reading sizes: compact captions stay small; instructions remain readable. */
.room-story>p:last-child{font-size:12px}.control-heading h3{font-size:11px}.candidate h3{font-size:12px}.candidate p{font-size:10px}.candidate-tip{font-size:10px}.decision>p{font-size:10px}.compare-toggle{font-size:9px}.live-status{font-size:11px}.result>p:not(.eyebrow){font-size:12px}.small-note{font-size:9px}.range-row label{font-size:10px}.presets button{font-size:9px}#view-tag{font-size:9px}#view-angle{font-size:8px}.candidate-status{font-size:8px}
@media(max-width:460px){.candidate h3{font-size:10px}.candidate p{font-size:9px}.candidate-status{font-size:6px}.candidate-tip{font-size:9px}.compare-toggle{font-size:11px}.decision>p{font-size:11px}}
.mobile-wayfinding{display:none}
@media(max-width:790px){body{padding-bottom:57px}.mobile-wayfinding{position:fixed;bottom:0;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;background:#eeeee7f2;backdrop-filter:blur(10px);border-top:1px solid #cbd2c0;padding:8px 4.2%;padding-bottom:max(8px,env(safe-area-inset-bottom));height:54px}.mobile-wayfinding button{font-size:10px;padding:10px 0}.mobile-wayfinding span{font-size:9px;font-family:var(--serif);font-style:italic;color:#859176}.controls{scroll-margin-top:14px}.stage{scroll-margin-top:15px}}
#journal-text{display:block;width:100%;min-height:250px;resize:vertical;border:1px solid #bcc5b0;border-radius:2px;padding:14px;background:#e7e9df;color:#33482f;font:11px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}.journal-actions{display:flex;gap:10px;margin-top:17px}.journal-actions .primary{margin-top:0}.journal-actions button{font-size:11px}
.chapter-tabs{display:flex;gap:28px;border-top:1px solid var(--line);padding-top:15px;margin-bottom:13px}.chapter-tabs button{font-family:var(--serif);font-size:15px;padding:2px 0;color:#919780}.chapter-tabs button[aria-pressed=true]{color:var(--ink)}.chapter-tabs span{font-family:var(--sans);font-size:8px;margin-left:10px;letter-spacing:1px}.rooms{border-top:none}.candidate-filter{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#738168;margin:12px 0}.candidate-filter input{accent-color:var(--green);vertical-align:middle}.candidate-grid.many{grid-template-columns:repeat(4,minmax(0,1fr));max-height:490px;overflow-y:auto;scrollbar-width:thin;padding:2px 6px 4px 2px}.candidate-grid.many .candidate canvas{height:113px}.candidate-grid.many .candidate p{font-size:9px;min-height:32px}.scanner-controls{margin:13px 0 0;background:#e1e5d8;border:1px solid #c7d0bb;border-radius:3px;padding:12px}.scanner-controls .eyebrow{font-size:7px;margin-bottom:8px;color:#819173}.scanner-controls>label{font-size:10px}.scanner-controls select{display:block;width:100%;font:11px var(--sans);padding:8px 5px;margin:6px 0 10px;border:1px solid #b4c1a5;border-radius:2px;background:#f0f1e8;color:var(--ink)}.cover-control{display:flex;gap:5px;line-height:1.6;align-items:start;font-size:10px!important}.cover-control input{accent-color:var(--green);margin:2px 1px 0 0}.scanner-controls p:last-child{font-size:9px;line-height:1.7;color:#728268;margin:8px 0 0}.evidence-ledger{display:flex;gap:8px;padding:0 0 10px;border-bottom:1px solid var(--line)}.ledger-bay{flex:1;border:1px solid #cbd2c0;border-radius:3px;padding:9px 4px;display:flex;flex-direction:column;align-items:center;gap:4px}.ledger-bay strong{font-family:var(--serif);font-size:18px;font-weight:400}.ledger-bay span{font-size:8px}.ledger-bay small{font-size:7px;color:#89967c}.ledger-bay.resolved{background:#dce7d3;border-color:#a1b48f}.ledger-bay.active{box-shadow:inset 0 -2px #a66a3c}.controls select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:790px){.chapter-tabs{gap:17px}.chapter-tabs button{font-size:14px}.chapter-tabs span{display:block;margin:5px 0 0;font-size:8px}.candidate-grid.many{grid-template-columns:repeat(3,minmax(0,1fr))}.scanner-controls select{font-size:13px}.scanner-controls p:last-child{font-size:11px}.cover-control{font-size:12px!important}}
@media(max-width:460px){.candidate-grid.many{grid-template-columns:repeat(2,minmax(0,1fr));max-height:430px}.candidate-filter{font-size:9px}.observation-strip{gap:6px;padding:0 12px}.observations{gap:4px}.observation{width:35px;height:36px}.remaining{font-size:9px}.ledger-bay span{font-size:7px}.evidence-ledger{gap:5px}}

#cover-selection>label{font-size:10px}.candidate-tip{margin:10px 0 14px}.ledger-bay{min-width:0}
