.darkroom{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6rem 1.2rem 3rem;position:relative;overflow:hidden}.darkroom-lamp{position:absolute;top:-20vmin;left:50%;transform:translate(-50%);width:90vmin;height:90vmin;background:radial-gradient(circle,rgba(180,40,40,.16),transparent 60%);pointer-events:none;animation:lamp 5s ease-in-out infinite}@keyframes lamp{0%,to{opacity:.7}50%{opacity:1}}.locked-title{font-size:clamp(2.4rem,7vw,4rem);margin:.8rem 0 1rem}.locked-sub{color:var(--ink-dim);max-width:460px;font-size:.95rem}.locked-sub strong{color:var(--gold-hi);font-weight:500}.locked-count{margin-top:2.4rem;font-family:var(--font-display);font-size:1.3rem;font-style:italic;color:var(--ink-dim)}.locked-count b{color:var(--gold);font-weight:700}.bookmain{min-height:100svh;padding:7.5rem 1rem 4rem}.book-head{text-align:center;margin-bottom:2.6rem}.book-title{font-size:clamp(2.4rem,6vw,3.8rem);margin:.8rem 0 .6rem}.book-sub{color:var(--ink-dim);font-size:.9rem;letter-spacing:.06em}.mode-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:1.8rem}.mode-tab{padding:.6rem 1.3rem;background:var(--card);border:1px solid var(--line);border-radius:100px;color:var(--ink-dim);font-family:var(--font-body);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:all .3s}.mode-tab:hover{border-color:var(--gold);color:var(--gold-hi)}.mode-tab.active{background:var(--gold-foil);background-size:200% auto;color:var(--black);border-color:transparent;font-weight:500}.book-stage{display:flex;align-items:center;justify-content:center;gap:clamp(.4rem,2vw,1.6rem);perspective:2400px}.book{position:relative;width:min(880px,86vw);aspect-ratio:2 / 1.32;transform-style:preserve-3d}.page{position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(160deg,#f4ead6,#e6d9bd);color:#241f14;overflow:hidden;box-shadow:0 18px 60px #0000008c}.page-left{left:0;border-radius:10px 0 0 10px;background:linear-gradient(200deg,#f2e8d4,#e2d5b8)}.page-left:after,.page-right:after{content:"";position:absolute;top:0;bottom:0;width:42px;pointer-events:none}.page-left:after{right:0;background:linear-gradient(to left,rgba(80,60,20,.22),transparent)}.page-right{right:0;border-radius:0 10px 10px 0}.page-right:after{left:0;background:linear-gradient(to right,rgba(80,60,20,.22),transparent)}.page-turn{right:0;border-radius:0 10px 10px 0;transform-origin:left center;transform-style:preserve-3d;display:none;z-index:5;background:none;box-shadow:none}.page-turn.turning{display:block;animation:page-flip .9s cubic-bezier(.45,.05,.35,1) forwards}.page-turn.turning-back{display:block;transform:rotateY(-180deg);animation:page-flip-back .9s cubic-bezier(.45,.05,.35,1) forwards}@keyframes page-flip{to{transform:rotateY(-180deg)}}@keyframes page-flip-back{to{transform:rotateY(0)}}.turn-front,.turn-back{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;background:linear-gradient(160deg,#f4ead6,#e6d9bd)}.turn-front{border-radius:0 10px 10px 0}.turn-back{transform:rotateY(180deg);border-radius:10px 0 0 10px;background:linear-gradient(200deg,#f2e8d4,#e2d5b8)}.pg{position:absolute;top:0;right:0;bottom:0;left:0;padding:clamp(.9rem,2.6vw,2.2rem);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-family:var(--font-display)}.pg-cover{background:radial-gradient(ellipse at 50% 30%,rgba(var(--accent-rgb),.22),transparent 65%),linear-gradient(160deg,#141210,#060505);color:var(--ink)}.pg-cover .pg-eyebrow{color:var(--gold)}.pg-eyebrow{font-family:var(--font-body);font-size:clamp(.5rem,1.1vw,.66rem);font-weight:500;letter-spacing:.4em;text-transform:uppercase;color:#8a6d1f;margin-bottom:.7em}.pg-big{font-size:clamp(1.5rem,4.6vw,3.4rem);font-weight:700;line-height:1.05}.pg-cover .pg-big{background:var(--gold-foil);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent}.pg-small{font-family:var(--font-body);font-weight:300;font-size:clamp(.6rem,1.4vw,.85rem);margin-top:1em;color:inherit;opacity:.75;max-width:32ch}.pg-photo,.pg-collage{justify-content:flex-start}.pg-collage .ph-mission{font-family:var(--font-body);font-size:clamp(.48rem,1vw,.62rem);font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:#8a6d1f;margin-bottom:.6em}.collage{position:relative;width:100%;flex:1}.collage-item{position:absolute;background:#fffdf6;padding:2.4% 2.4% 5.5%;box-shadow:0 6px 20px #3c280059}.collage-item img{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block;background:#111}.collage-item span{position:absolute;left:0;right:0;bottom:.4%;text-align:center;font-family:var(--font-hand);font-size:clamp(.55rem,1.4vw,.95rem);color:#6b5b3a;line-height:1}.pg-photo .ph-mission{font-family:var(--font-body);font-size:clamp(.48rem,1vw,.62rem);font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:#8a6d1f;margin-bottom:.9em}.pg-photo img{width:100%;max-height:62%;object-fit:cover;border:clamp(4px,.9vw,9px) solid #fffdf6;border-bottom-width:clamp(14px,2.6vw,30px);box-shadow:0 8px 26px #3c28004d;transform:rotate(-.8deg)}.pg-photo .ph-caption{font-family:var(--font-hand);font-size:clamp(.85rem,2.2vw,1.5rem);color:#3a3020;margin-top:1em;line-height:1.25}.pg-photo .ph-credit{font-family:var(--font-body);font-size:clamp(.5rem,1vw,.66rem);letter-spacing:.22em;text-transform:uppercase;color:#857550;margin-top:.8em}.page-arrow{width:52px;height:52px;border-radius:50%;background:var(--card);border:1px solid var(--line);color:var(--gold);font-size:1.9rem;line-height:1;cursor:pointer;transition:all .3s;flex-shrink:0}.page-arrow:hover:not(:disabled){border-color:var(--gold);background:rgba(var(--accent-rgb),.08)}.page-arrow:disabled{opacity:.25;cursor:default}.book-hint{text-align:center;margin-top:1.6rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint)}.wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2.2rem 1.6rem;width:min(1200px,94vw);margin:0 auto;padding:1.5rem 0 3rem}.polaroid{position:relative;background:#fffdf6;padding:10px 10px 0;box-shadow:0 14px 34px #00000080;transition:transform .35s,box-shadow .35s;animation:develop 1.1s ease-out backwards}@keyframes develop{0%{opacity:0;filter:sepia(1) brightness(.35) blur(5px);transform:scale(.96) rotate(0)}to{opacity:1;filter:none}}.polaroid:hover{transform:scale(1.05) rotate(0)!important;box-shadow:0 24px 54px #000000a6;z-index:3}.polaroid:before{content:"";position:absolute;top:-11px;left:50%;transform:translate(-50%);width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f6e7b8,#8a6d1f);box-shadow:0 2px 5px #0009;z-index:2}.polaroid img{width:100%;aspect-ratio:1 / 1.02;object-fit:cover;display:block;background:#111}.polaroid .pol-strip{padding:.65rem .35rem .9rem;text-align:center}.polaroid .pol-caption{font-family:var(--font-hand);font-size:1.25rem;color:#33291a;line-height:1.2}.polaroid .pol-meta{font-family:var(--font-body);font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;color:#9a8a60;margin-top:.35rem}.room-wrap{position:relative;width:min(1200px,94vw);margin:0 auto;aspect-ratio:16 / 9;max-height:74vh;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#000}.room-wrap canvas{width:100%;height:100%;display:block;touch-action:none}.room-hint{position:absolute;bottom:.9rem;left:50%;transform:translate(-50%);padding:.45rem 1.1rem;background:#050506b3;border:1px solid var(--line);border-radius:100px;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);pointer-events:none;white-space:nowrap}.room-wrap.ride-full{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;max-height:none;aspect-ratio:auto;height:100vh;height:100dvh;margin:0;border:none;border-radius:0;z-index:600}.room-wrap.ride-full:fullscreen{width:100%;height:100%}.ride-exit{position:absolute;top:.9rem;left:1.1rem;z-index:2;padding:.5rem 1.1rem;background:#050506b3;border:1px solid var(--line);border-radius:100px;color:var(--ink-dim);font-family:var(--font-body);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:color .25s,border-color .25s}.ride-exit:hover{color:var(--gold-hi);border-color:var(--gold)}.room-counter{position:absolute;top:.9rem;right:1.1rem;padding:.4rem .9rem;background:#050506b3;border:1px solid var(--line);border-radius:4px;font-family:var(--font-display);font-size:.85rem;font-weight:700;letter-spacing:.2em;color:var(--gold-hi);pointer-events:none;font-variant-numeric:tabular-nums}.empty-roll{text-align:center;padding:4rem 1rem;color:var(--ink-dim);font-family:var(--font-display);font-style:italic;font-size:1.4rem}.print-book{display:none}@media print{body{background:#fff}body:after,.no-print{display:none!important}.bookmain{padding:0}.print-book{display:block}.print-cover{height:96vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;page-break-after:always;background:#0a0a0b!important;color:#e9e4d8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-cover .pc-eyebrow{font-family:Outfit,sans-serif;font-size:10pt;letter-spacing:.4em;text-transform:uppercase;color:#d4af37}.print-cover h1{font-family:Cormorant Garamond,serif;font-size:52pt;font-weight:700;color:#d4af37;margin:.3em 0}.print-cover p{font-family:Outfit,sans-serif;font-size:11pt;letter-spacing:.2em;text-transform:uppercase}.print-page{page-break-after:always;display:flex;flex-direction:column;align-items:center;justify-content:center;height:96vh;text-align:center;color:#241f14}.print-page .pp-mission{font-family:Outfit,sans-serif;font-size:9pt;letter-spacing:.34em;text-transform:uppercase;color:#8a6d1f;margin-bottom:14pt}.print-page img{max-width:82%;max-height:62vh;object-fit:contain;border:10pt solid #fffdf6;border-bottom-width:30pt;box-shadow:0 4pt 14pt #00000040}.print-page .pp-caption{font-family:Caveat,cursive;font-size:20pt;margin-top:16pt}.print-page .pp-credit{font-family:Outfit,sans-serif;font-size:9pt;letter-spacing:.24em;text-transform:uppercase;color:#857550;margin-top:8pt}}@media (max-width: 700px){.book{aspect-ratio:1 / 1.4}.page,.turn-front,.turn-back{width:100%}.page-left{display:none}.page-right,.page-turn{border-radius:8px}.page-right:after{display:none}}
