:root{color-scheme:dark;--background:#242424;--ink:#e7e5df;--muted:#a9a79f}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--background);color:var(--ink);font:14px/1.5 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #e4dac4;outline-offset:7px}header{padding:38px 5vw;display:flex;justify-content:space-between;align-items:center}.wordmark{font-family:Georgia,serif;font-size:32px;letter-spacing:-1.5px}.wordmark span{font:10px Arial;vertical-align:top;margin-left:5px;line-height:25px}.edition{text-transform:uppercase;font-size:10px;letter-spacing:2px;color:var(--muted)}.intro{padding:80px 9vw 45px}h1{font:normal clamp(38px,5vw,68px)/1.15 Georgia,serif;letter-spacing:-1.5px;margin:0 0 21px}.intro p{font-size:12px;color:var(--muted);letter-spacing:.3px}.explore{display:inline-flex;gap:45px;font-size:10px;text-transform:uppercase;letter-spacing:1.5px;margin-top:29px}.explore span{font-size:17px;line-height:14px}#field{position:relative;margin:0 auto;width:calc(100% - 36px);max-width:1080px}.photo{position:absolute;display:block;padding:0;border:0;background:transparent;transition:filter .3s;will-change:transform}.photo img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}.photo:hover{filter:brightness(1.09)}.photo .number{position:absolute;bottom:-25px;left:0;color:var(--muted);font-size:9px;letter-spacing:1.3px;opacity:0;transition:opacity .2s}.photo:hover .number,.photo:focus-visible .number{opacity:1}footer{margin:80px 5vw 0;padding:30px 0 35px;border-top:1px solid #464542;display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;color:var(--muted)}dialog{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;margin:0;padding:22px 3vw;background:transparent;color:var(--ink);overflow:auto}dialog::backdrop{background:rgb(27 27 27 / 80%)}body:has(dialog[open]){overflow:hidden}.viewer-bar{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:1px}.viewer-bar button,.viewer-stage button{border:0;background:none;padding:12px}.viewer-bar button span{font-size:23px;margin-left:16px}.viewer-stage{min-height:calc(100dvh - 145px);display:flex;align-items:center;justify-content:center;gap:16px}.viewer-stage figure{margin:15px 0;text-align:center;min-width:0}.viewer-stage img{display:block;max-width:min(960px,calc(100vw - 160px));max-height:calc(100dvh - 190px);width:auto;height:auto;margin:auto;object-fit:contain}.viewer-stage button{font-size:24px}figcaption{margin-top:16px;color:var(--muted);font-size:10px;letter-spacing:1px;overflow-wrap:anywhere}.viewer-hint{text-align:center;font-size:10px;color:var(--muted);letter-spacing:1px}.viewer-hint span{margin-left:24px}@media(min-width:1500px){.intro{padding-top:100px}}@media(max-width:600px){header{padding:25px 6vw}.wordmark{font-size:27px}.edition{font-size:8px;letter-spacing:1px}.intro{padding:65px 8vw 40px}.intro p{max-width:210px}#field{width:calc(100% - 36px)}footer{gap:20px;flex-wrap:wrap;margin-top:45px}.viewer-stage{gap:3px}.viewer-stage button{padding:5px}.viewer-stage img{max-width:calc(100vw - 78px);max-height:calc(100dvh - 190px)}.viewer-hint{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.photo{will-change:auto;transition:none}}

dialog[open]{cursor:zoom-out}
/* Concealed photographs: reveal only in the lightbox. */
.photo{background:#000;aspect-ratio:1}
.photo img{visibility:hidden}
.photo:hover{filter:none}
.photo .number{display:none}

.photo.viewed{background:var(--background)}

/* The grid continues beneath the introductory text. */
main{position:relative;isolation:isolate;padding-top:24px;min-height:460px}
main>header{position:fixed;inset:0 0 auto;z-index:2;pointer-events:none}
.intro{position:fixed;top:100px;left:0;right:0;z-index:2;pointer-events:none}
main>header a,.intro a{pointer-events:auto}
.intro h1,.intro p{ text-shadow:0 1px 12px #242424 }
@media(max-width:600px){.intro{top:75px}}

/* Keep page scrolling available without displaying its scrollbar. */
html,body{scrollbar-width:none}
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0;height:0}

/* Admission notice sits above the concealed grid. */
.awaiting-entry header,.awaiting-entry .intro{visibility:hidden}
#entry-gate{padding:24px;align-items:center;justify-content:center;background:transparent;cursor:default}
#entry-gate[open]{display:flex}
#entry-gate::backdrop{background:rgb(36 36 36 / 70%)}
.entry-panel{width:min(100%,490px);padding:42px 36px;background:#242424;box-shadow:0 16px 70px #0004;text-align:left}
.entry-brand{font:24px Georgia,serif;letter-spacing:-1px;margin:0 0 45px}
.entry-panel h2{font:normal clamp(30px,5vw,42px)/1.2 Georgia,serif;letter-spacing:-.8px;margin:0 0 24px}
#entry-description{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 32px}
.entry-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}
#enter-site{border:1px solid #b9b5a9;background:transparent;padding:13px 16px;font-size:12px}
#enter-site:hover{background:#343434}
.leave-site{color:var(--muted);font-size:12px;padding:10px 0}
@media(max-width:600px){.entry-panel{padding:32px 24px}.entry-brand{margin-bottom:32px}}

.awaiting-introduction header,.awaiting-introduction .intro{visibility:hidden}
#introduction{background:transparent;cursor:default;padding:55px 24px;overflow-y:auto;scrollbar-width:none}
#introduction::-webkit-scrollbar{display:none}
#introduction::backdrop{background:rgb(36 36 36 / 70%)}
.introduction-panel{width:min(100%,620px);margin:0 auto;padding:45px clamp(24px,6vw,70px);background:rgb(36 36 36 / 92%)}
#introduction-title{font:normal clamp(38px,7vw,60px)/1.15 Georgia,serif;letter-spacing:-1px;margin:0 0 55px}
.opening-text{font:normal clamp(17px,2.2vw,21px)/1.5 Georgia,serif;color:#cbc7bd}
.opening-text p{margin:0 0 25px}
#begin-photographs{margin-top:24px;background:transparent;border:1px solid #b9b5a9;padding:14px 18px;font-size:12px}
#begin-photographs span{margin-left:20px}
@media(max-width:600px){#introduction{padding:24px 18px}.introduction-panel{padding:32px 24px}}

[hidden]{display:none!important}
.info-page{width:calc(100% - 48px);max-width:720px;margin:clamp(48px,9vw,110px) auto 90px;min-height:55vh}
.info-page h1{margin-bottom:42px;font-size:clamp(36px,6vw,54px)}
.prose{font:18px/1.85 Georgia,serif;color:#cbc7bd}
.prose p{margin:0 0 27px}.prose .book-heading{font-size:25px}
.return-link{display:inline-block;margin-top:35px;font-size:11px;letter-spacing:1px;color:var(--muted)}
.footer-navigation{position:relative}
#menu-toggle{width:32px;height:28px;padding:5px 3px;display:flex;flex-direction:column;justify-content:space-between;border:0;background:transparent}
#menu-toggle span{display:block;width:24px;height:1px;background:var(--muted)}
#footer-menu{position:absolute;bottom:calc(100% + 20px);left:0;z-index:5;background:#242424;border:1px solid #4c4b47;min-width:205px;padding:12px;box-shadow:0 12px 35px #0004}
#footer-menu a{display:block;padding:12px;font-size:12px;letter-spacing:.4px}#footer-menu a:hover{background:#303030}#footer-menu a[aria-current=page]{color:#fff}
footer{align-items:center}
#contact-form{max-width:600px}#contact-form label{display:block;font-size:12px;color:var(--muted);margin:23px 0 8px}
#contact-form input:not([type=hidden]),#contact-form textarea{width:100%;border:1px solid #55534f;border-radius:0;background:transparent;color:var(--ink);font:16px/1.5 Arial,sans-serif;padding:12px;resize:vertical}
#contact-form input:focus-visible,#contact-form textarea:focus-visible{outline:1px solid #e4dac4;outline-offset:2px}
#contact-form button{background:transparent;border:1px solid #b9b5a9;padding:13px 23px;margin-top:15px;font-size:12px}
.form-note,.contact-alternative{font-size:12px;line-height:1.7;color:var(--muted)}.form-note a,.contact-alternative a{text-decoration:underline;text-underline-offset:3px}
.form-trap{display:none}
@media(max-width:600px){.prose{font-size:17px}.info-page{margin-top:40px}footer>span{font-size:9px;max-width:55%;text-align:center}}

#contact-form button:disabled{opacity:.45;cursor:not-allowed}

/* Discourage image dragging and mobile image-save callouts. */
.photo,.photo img,#enlarged,.viewer-stage{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.photo img,#enlarged{-webkit-user-drag:none}
