:root{color-scheme:light;--paper:#f5f1e9;--white:#fffdf8;--ink:#152b35;--secondary:#38525d;--dark:#172c39;--teal:#135954;--mint:#d9e9e2;--plum:#593c5b;--lavender:#e8e0ea;--coral:#c47e64;--pale:#f0e3d9;--line:#abbbb7;--focus:#125b8b;--max:1200px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:1.75rem}
body{margin:0;color:var(--ink);background:var(--paper);font:1.09rem/1.68 system-ui,-apple-system,"Segoe UI",sans-serif;overflow-wrap:break-word}
a{color:var(--teal);text-decoration-thickness:.11em;text-underline-offset:.2em}
a:hover{text-decoration-thickness:.19em}
button,textarea{font:inherit}
button{cursor:pointer}
:focus-visible{outline:4px solid var(--focus);outline-offset:4px;box-shadow:0 0 0 7px #fffdf8}
.container{max-width:var(--max);margin-inline:auto;padding-inline:clamp(1.15rem,4vw,3.2rem)}
.skip-link{position:absolute;top:-10rem;left:1rem;z-index:99;padding:.8rem 1rem;background:var(--white);color:var(--ink);font-weight:800;border:3px solid var(--ink)}
.skip-link:focus{top:1rem}
.topbar{position:relative;z-index:2;background:var(--dark);color:var(--white);border-bottom:1px solid #698488}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1.05rem}
.wordmark{color:#fffdf8;text-decoration:none;font-family:Georgia,serif;font-size:1.2rem;font-weight:700}
.wordmark-symbol{font-size:1.7rem;margin-right:.25rem;color:#b7d9ce}
.navlist{display:flex;gap:.45rem 1.5rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.navlist a{color:#f6f4ee;text-decoration:none;font-weight:650;font-size:.89rem}
.navlist a:hover,.navlist a:focus-visible{text-decoration:underline}
.kicker{font:800 .78rem/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:uppercase;letter-spacing:.12em;margin:0 0 1.15rem}
h1,h2,h3,h4{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.035em;line-height:1.12}
h1{font-size:clamp(4.4rem,10vw,9rem);margin:.1rem 0 1.3rem;letter-spacing:-.065em}
h1 em{color:#367d76;font-weight:400}
.entry h1 em{color:#55a89e} /* on the navy entry only: #367d76 measured 2.99:1 there; 5.1:1 now. The light-background h1s keep the darker teal. Claude, 2026-10-30, see CHANGELOG. */
h2{font-size:clamp(2.7rem,5.8vw,5.4rem);margin:.3rem 0 1.4rem}
h3{font-size:clamp(1.5rem,2.5vw,2.2rem);margin:0 0 .8rem}
p{margin-top:0} strong{font-weight:800}
.entry{background:var(--dark);color:var(--white);position:relative;padding-top:clamp(3.2rem,8vw,7rem)}
.entry-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(285px,.82fr);gap:clamp(2rem,5vw,5.5rem);align-items:center;padding-bottom:clamp(3.5rem,8vw,7rem)}
.entry-copy{max-width:700px}.entry-copy .kicker{color:#b1ded3}.tiny-dot{display:inline-block;border-radius:100%;width:.65rem;height:.65rem;background:#b1ded3;margin-right:.3rem}
.entry .lede{font:1.35rem/1.48 Georgia,serif;max-width:42rem}.entry-copy>p:not(.kicker):not(.lede):not(.entry-emphasis){color:#e0ece8;max-width:38rem}.entry-emphasis{font-size:1.25rem;font-weight:750}
.entry-actions,.form-actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:2rem}
.action{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.15rem;padding:.76rem 1.15rem;border:2px solid currentColor;border-radius:5px;text-decoration:none;font-weight:800;font-size:.96rem;line-height:1.3;text-align:center}
.action.primary{background:#e0efe8;color:#173f43;border-color:#e0efe8}
.action.primary:hover{background:#fffdf8;border-color:#fffdf8}
.action.secondary{background:transparent;color:inherit;border-color:currentColor}
.action.secondary:hover{background:rgba(255,255,255,.1)}
.admission-ticket{background:var(--white);color:var(--ink);border-radius:8px;padding:1.35rem 1.65rem 1.65rem;box-shadow:13px 13px 0 #38535a;transform:rotate(2deg);border:2px solid #0f3539}
.ticket-number{font:850 .78rem ui-monospace,Consolas,monospace;letter-spacing:.09em}
.ticket-drawing{height:200px;background:#d9ebe2;position:relative;overflow:hidden;margin:1rem 0 1.1rem;border-bottom:7px solid #203b43;border-radius:180px 180px 0 0}
.ticket-drawing::before{content:"";background:#b8d3c7;width:180%;height:70px;position:absolute;bottom:-48px;left:-20%;border-radius:50%}
.ticket-house{position:absolute;bottom:13px;width:75px;height:88px;background:#637f89;border:4px solid #1d424b;border-bottom:0}.ticket-house::before{content:"";position:absolute;border-left:45px solid transparent;border-right:45px solid transparent;border-bottom:36px solid #274a54;left:-11px;top:-38px}.ticket-house>span{position:absolute;width:19px;height:31px;background:#e7eee7;border:3px solid #1d424b;left:23px;bottom:0}
.house-one{left:12%;background:#e9bcad}.house-two{left:40%;height:112px;background:#697f83}.house-three{left:68%;height:73px;background:#aab8b2}
.ticket-star{position:absolute;font:3rem Georgia,serif;color:#25534f}.star-one{top:5px;left:17%}.star-two{top:19px;right:13%}
.admission-ticket h2{font-size:2.05rem;margin:0 0 1.25rem}
.ticket-details{margin:0;display:grid;gap:.6rem}.ticket-details div{display:flex;justify-content:space-between;gap:.6rem;border-top:1px solid #aabcb6;padding-top:.6rem}.ticket-details dt{font-weight:750}.ticket-details dd{margin:0;text-align:right}.ticket-foot{font:650 .83rem/1.4 Georgia,serif;margin:1.35rem 0 0}
.margin-note{padding-block:1.15rem 1.3rem;border-top:1px solid #48616b;font:650 .88rem/1.5 ui-monospace,Consolas,monospace;color:#d3eae4}.margin-note span{color:#a5d8c7}
.curator-note{background:#dfece6;padding-block:clamp(4rem,8vw,7rem)}
.note-grid,.threads-grid,.collaborators-grid,.guestbook-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,6rem)}
.curator-note h2{max-width:9ch}.note-text{max-width:39rem;font-size:1.15rem}.note-text p{margin-bottom:1.3rem}.signature{font:italic 1.8rem Georgia,serif;color:var(--teal)}
.gallery{padding-block:clamp(4.5rem,8vw,8rem);background:var(--paper)}
.section-heading{max-width:820px;margin-bottom:2.4rem}.section-heading>p:last-child{font-size:1.2rem}
.exhibit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem}
.exhibit{border:1px solid #aabcb7;background:var(--white);overflow:hidden;display:grid;grid-template-rows:auto 1fr}
.exhibit-wide{grid-column:1/-1;grid-template-columns:minmax(250px,.86fr) minmax(0,1.14fr);grid-template-rows:auto}
.artifact{min-height:250px;display:grid;place-items:center;position:relative;overflow:hidden}
.exhibit-wide .artifact{min-height:350px}
.exhibit-body{padding:clamp(1.5rem,3vw,2.5rem)}
.catalogue,.provenance,.wing-no{font:750 .76rem/1.5 ui-monospace,Consolas,monospace;letter-spacing:.04em;text-transform:uppercase}
.catalogue{color:var(--teal);margin-bottom:.8rem}.provenance{font-size:.77rem;letter-spacing:0;text-transform:none;color:var(--secondary);border-top:1px solid #bdcbc6;padding-top:1rem;margin-top:1.2rem}
.text-link{font-weight:780}
.visual-portrait{background:#dde9e1}.portrait-frame{width:55%;max-width:240px;min-height:260px;background:#b7cbc4;border:9px solid #213d47;display:flex;flex-direction:column;align-items:center;justify-content:space-between;box-shadow:15px 15px 0 #7f9c97;transform:rotate(-5deg)}
.portrait-frame span{font:11rem/1 Georgia,serif;color:#24454c}.portrait-frame small{display:block;background:#203e48;color:#fff;padding:1rem .45rem;width:100%;text-align:center;font:750 .72rem/1.2 ui-monospace,monospace}
.frame-label{position:absolute;right:.4rem;bottom:1.4rem;transform:rotate(-6deg);font:800 .74rem ui-monospace,monospace;color:#25444a}
.sketch{background:#e8e2e9}.sketch-frame{width:195px;height:195px;transform:rotate(5deg);background:#fffdf8;border:10px solid #62536a;box-shadow:9px 9px 0 #c5b7c8;display:flex;flex-direction:column;align-items:center;justify-content:center}.sketch-head{font:8rem/1 Georgia,serif;color:#6d6174}.sketch-caption{font:800 .8rem ui-monospace,monospace;color:#3a2d46}
.tiny-neighborhood{background:#c9ddd5;display:flex;align-items:end;justify-content:center;gap:.7rem;padding-bottom:3rem}.mini-home{position:relative;display:block;width:75px;height:100px;background:#597d81;border:4px solid #274850;border-bottom:0}.mini-home::before{content:"";position:absolute;top:-33px;left:-10px;border-left:43px solid transparent;border-right:43px solid transparent;border-bottom:33px solid #284e54}.mini-home::after{content:"";position:absolute;bottom:0;left:25px;width:18px;height:45px;background:#d9ebe7}.mini-a{height:76px;background:#d7a994}.mini-b{height:125px;background:#72898d}.mini-c{height:91px;background:#869488}.mini-moon{position:absolute;top:8px;right:12%;font:3.2rem Georgia,serif;color:#37655f}
.museum-error{background:#1a3641;color:#eff6f0;display:flex;flex-direction:column;align-items:stretch;justify-content:space-around;text-align:center;gap:1rem;padding:1.5rem}.error-top,.error-bottom{font:800 .72rem/1.3 ui-monospace,monospace;letter-spacing:.06em}.error-center{font:800 clamp(1.2rem,2.1vw,1.8rem)/1.22 Georgia,serif;border:2px dashed #abcac2;padding:2rem .5rem}
.salem-art{background:#1d3033;color:#eff4ed}.cat-face{width:160px;height:146px;background:#121f24;border:5px solid #5a7674;border-radius:43%;position:relative;display:flex;gap:30px;align-items:center;justify-content:center}.ear{position:absolute;width:74px;height:95px;background:#121f24;top:35px;clip-path:polygon(0 0,100% 24%,70% 100%)}.ear.left{left:calc(50% - 84px)}.ear.right{right:calc(50% - 84px);transform:scaleX(-1)}.cat-eye{display:block;background:#b4cfbd;width:15px;height:30px;border-radius:50%;position:relative;z-index:2}.cat-nose{position:absolute;bottom:14px;font:2rem Georgia,serif}.cat-stamp{position:absolute;bottom:1rem;transform:rotate(-4deg);font:800 .81rem ui-monospace,monospace;background:#d7e7dc;color:#183331;padding:.35rem}
.threads{background:#1a343e;color:#fffdf8;padding-block:clamp(5rem,10vw,9rem)}
.threads .kicker{color:#b6e1d3}.threads-intro>p{max-width:34rem}.fallback-explain{font-size:.89rem;color:#c7e0da}
.thread-console{background:#f8f5ef;color:var(--ink);padding:clamp(1.5rem,3vw,2.8rem);border:2px solid #78a59a;box-shadow:10px 10px 0 #0d2429}
.thread-console h3{font-size:clamp(1.85rem,3.2vw,2.6rem)}.console-intro{margin-bottom:1.3rem}
.thread-options{display:flex;flex-direction:column;gap:.65rem}.thread-btn{display:block;text-align:left;border:2px solid #1c5656;background:transparent;color:#204d50;border-radius:4px;font-weight:800;padding:.75rem 1rem;min-height:3rem}.thread-btn:hover{background:#e1ece5}.thread-btn[aria-pressed="true"]{background:#194d4b;color:#fff;border-color:#194d4b}
.thread-response{padding:1.3rem 0 .3rem;margin-top:1.3rem;border-top:1px solid #a9bcb4}.thread-response h4{font-size:1.6rem;margin:0 0 .7rem}.thread-response p{margin-bottom:.8rem}.response-link a{font-weight:850}.thread-response[hidden]{display:none}
.thread-foot{font-size:.82rem;color:var(--secondary);border-top:1px solid #c2d0c9;padding-top:1rem;margin:1rem 0 0}
.neighborhood{padding-block:clamp(4.5rem,8vw,8rem);background:#e7eee9}
.street{height:280px;position:relative;overflow:hidden;border:2px solid #6f918e;border-radius:150px 150px 8px 8px;background:linear-gradient(#bed9d1 0%,#e2ece6 65%,#8bb1a2 65%,#8bb1a2 100%);display:flex;justify-content:center;align-items:end;gap:clamp(.4rem,4vw,3.4rem);padding:0 3% 45px}
.street-sky{position:absolute;inset:0;pointer-events:none}.street-star{position:absolute;font:2.5rem Georgia,serif;color:#397c78}.s1{top:3%;left:13%}.s2{top:18%;right:15%}.s3{top:4%;left:53%}
.building{position:relative;flex:0 1 175px;max-width:175px;height:145px;border:5px solid #244650;border-bottom:0;background:#dfa996;z-index:1}.building .roof{position:absolute;top:-48px;left:-13px;width:calc(100% + 26px);height:52px;background:#254952;clip-path:polygon(50% 0,100% 100%,0 100%)}.building .door{position:absolute;bottom:0;left:calc(50% - 16px);width:32px;height:50px;border:4px solid #244650;border-bottom:0;background:#eff5ed}.building .window{position:absolute;top:27px;left:12%;height:26px;width:25px;background:#e8f6ed;border:4px solid #244650}.building .sign{position:absolute;top:22px;right:12%;font:800 1.7rem Georgia,serif;color:#223f4c}.building-os{height:165px;background:#729d96}.building-museum{height:155px;background:#9c90a4}.building-salem{height:185px;background:#3f5458}.building-salem .sign{color:#e3e4d5}.street-road{height:35px;position:absolute;bottom:0;left:0;right:0;background:#203c43;border-top:6px solid #e9eee5}
.wing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1.3rem;margin-top:2rem}.wing-grid article{border-top:3px solid var(--ink);padding-top:1.1rem}.wing-grid h3{font-size:1.65rem}.wing-grid p{font-size:.96rem}.wing-grid a{font-size:.95rem;font-weight:800}
.collaborators{padding-block:clamp(5rem,9vw,8.5rem);background:#e6dfeb}.collaborators h2{max-width:10ch}.collaborators .action.secondary{color:#2f3a4b;border-color:#2f3a4b;margin-top:1rem}.collaborators .action.secondary:hover{background:#faf5fb}
.empty-frame{min-height:420px;border:14px solid #59485f;box-shadow:15px 15px 0 #b1a2b9;background:#f4f0f4;padding:1.1rem;display:grid;place-items:center;text-align:center}.frame-interior{width:100%;min-height:100%;border:2px dashed #9c8aa4;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:2rem}.frame-interior p{font:800 .8rem ui-monospace,monospace;letter-spacing:.09em}.frame-star{font-size:5rem;color:#62536a;line-height:1.2}.frame-interior strong{font:700 clamp(1.75rem,3vw,2.7rem)/1.2 Georgia,serif;margin:.7rem 0}.frame-interior>span:last-child{font-size:.94rem}
.guestbook{padding-block:clamp(4.5rem,8vw,8rem);background:#f7f3eb}.guestbook-form{background:#e0ebe5;border:2px solid #829c97;padding:clamp(1.3rem,3vw,2.4rem)}.guestbook-form label{display:block;font-weight:850;margin-bottom:.65rem}.guestbook-form textarea{display:block;width:100%;max-width:100%;color:var(--ink);background:#fffefb;border:2px solid #4d6b6e;border-radius:3px;min-height:150px;padding:1rem;line-height:1.5}.guestbook-form textarea::placeholder{color:#596b6c}.guestbook-form .action.primary{background:#174b49;color:#fffdf8;border-color:#174b49}.guestbook-form .action.primary:hover{background:#0c3434}.clear-btn{border:0;background:transparent;text-decoration:underline;color:var(--teal);padding:.8rem}.guestbook-form #guestbook-status{font-size:.85rem;margin:1rem 0 0;color:var(--secondary)}
.closing{background:#1c353f;color:#fffdf8;text-align:center;padding-block:clamp(5rem,10vw,9rem)}.closing h2{max-width:17ch;margin:0 auto 1.5rem}.closing p{max-width:39rem;margin:0 auto 1.25rem;font-size:1.18rem}.closing .kicker{color:#badbd0;font-size:.8rem}.closing .closing-last{font:italic 2.3rem Georgia,serif;margin:1rem auto 2rem;color:#c3e3d6}.back-link{color:#f4f5e9;font-weight:800}
.site-footer{background:#101f28;color:#e7f0eb;padding-block:1.3rem}.footer-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem;font-size:.79rem}.privacy-footer{color:#bbd5d0;font-size:.78rem;margin:1rem auto 0}
@media(max-width:880px){.entry-grid,.note-grid,.threads-grid,.collaborators-grid,.guestbook-grid{grid-template-columns:1fr}.entry-grid{gap:3rem}.admission-ticket{max-width:430px;justify-self:center;transform:rotate(0)}.exhibit-wide{grid-template-columns:1fr;grid-template-rows:auto 1fr}.wing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:570px){body{font-size:1rem}.navlist{gap:.3rem 1rem}.navlist a{font-size:.82rem}.exhibit-grid,.wing-grid{grid-template-columns:1fr}.street{height:200px;gap:4px;padding:0 4% 39px}.building{height:70px;border-width:3px}.building-os{height:85px}.building-museum{height:78px}.building-salem{height:94px}.building .roof{height:28px;top:-26px;left:-8px;width:calc(100% + 16px)}.building .door{width:18px;height:30px;left:calc(50% - 9px);border-width:2px}.building .window{height:15px;width:13px;top:13px;border-width:2px}.building .sign{font-size:1rem;top:12px}.ticket-drawing{height:150px}.ticket-house{transform:scale(.75);transform-origin:bottom left}.house-three{left:65%}.entry{padding-top:3rem}.exhibit-wide .artifact{min-height:290px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(forced-colors:active){.action,.thread-btn,.guestbook-form textarea,.exhibit,.admission-ticket{forced-color-adjust:auto;border:2px solid CanvasText}.thread-btn[aria-pressed="true"]{outline:3px solid Highlight}.building,.building .roof,.cat-face,.ear{forced-color-adjust:none}}

.archive-note{font-size:.84rem;margin-top:1rem;color:var(--secondary)}

/* Invitation-only label on links to gated rooms. Claude, 2026-10-29, see CHANGELOG. */
.invite{display:inline-block;margin-left:.4em;padding:.1em .5em;border:1px solid currentColor;border-radius:999px;font:700 .68rem/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;vertical-align:middle;white-space:nowrap}

/* Tuesday, 2026-10-29: progressive enhancement must respect hidden. */
#surprise-me button[hidden]{display:none}
