:root{color-scheme:dark;--cream:#f9f0dc;--ink:#1e292d;--gold:#f3c08a;--glass:rgba(18,28,34,.63)}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#1b2931;color:var(--cream);font-family:'DM Sans',sans-serif}button,a{font:inherit}button{cursor:pointer}#app,#scene,#poster{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}#scene canvas{width:100%;height:100%;display:block}#poster{background:linear-gradient(180deg,#526a80 0%,#cf8e82 33%,#f5b179 57%,#9f8d83 74%,#2e454c 100%);transition:opacity 1.1s}#poster.hide{opacity:0;pointer-events:none}.poster-sun{position:absolute;width:28vw;height:28vw;border-radius:50%;top:27%;left:58%;background:#ffd9a2;filter:blur(13px);box-shadow:0 0 160px 55px #ffb27e77}.poster-skyline{position:absolute;bottom:18%;width:100%;height:35%;clip-path:polygon(0 75%,5% 72%,5% 54%,11% 54%,11% 63%,17% 63%,17% 27%,22% 27%,22% 63%,28% 63%,28% 47%,33% 47%,33% 69%,39% 69%,39% 52%,44% 52%,44% 40%,51% 40%,51% 68%,56% 68%,56% 58%,60% 58%,60% 31%,65% 31%,65% 62%,71% 62%,71% 42%,77% 42%,77% 67%,83% 67%,83% 38%,89% 38%,89% 55%,95% 55%,95% 70%,100% 70%,100% 100%,0 100%)}.skyline-back{background:#617176;opacity:.65;transform:translateY(-25%)}.skyline-front{background:#30454c}.poster-river{position:absolute;bottom:0;height:20%;width:100%;background:repeating-linear-gradient(176deg,#546e73 0 8px,#8b8980 10px 11px,#425f68 16px 24px)}.hidden{display:none!important}.topbar{z-index:12;position:absolute;top:0;left:0;right:0;padding:32px 5%;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.topbar>*{pointer-events:auto}.brand{text-decoration:none;color:var(--cream);font-weight:700;letter-spacing:-.12em;font-size:32px;line-height:1}.brand span{color:#f0bc82}.brand small{display:block;font-size:8px;letter-spacing:.24em;font-weight:600;margin-top:9px;color:#f9e7d0}.topbar nav{display:flex;align-items:center;gap:36px}.topbar nav button{background:none;border:0;color:#fff4e3;font-size:10px;font-weight:700;letter-spacing:.14em;opacity:.9}.topbar nav button:hover{color:var(--gold)}.topbar nav .nav-contact{border:1px solid #ffffff7c;padding:14px 17px;border-radius:2px}.nav-contact span{font-size:17px;margin-left:8px}.intro{z-index:10;position:absolute;left:8.2%;top:50%;transform:translateY(-43%);width:min(730px,84vw);pointer-events:auto;text-shadow:0 2px 30px #21303a66}.eyebrow,.intro-sub{font-weight:700;letter-spacing:.21em;font-size:10px}.eyebrow{display:flex;align-items:center;gap:10px;color:#fbe5d0}.eyebrow-line{width:36px;height:1px;background:var(--gold)}.eyebrow span:nth-last-child(1){color:#ebbc89}.intro h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(64px,7.4vw,124px);font-weight:400;letter-spacing:-.068em;line-height:1.04;margin:32px 0 27px}.intro h1 em{font-weight:400;color:#ffe1ba}.intro p{font-size:15px;line-height:1.95;color:#fff0e1;letter-spacing:.012em}.primary-action{display:flex;align-items:center;justify-content:space-between;margin-top:34px;background:var(--cream);color:var(--ink);border:0;padding:9px 9px 9px 25px;gap:45px;font-weight:700;font-size:11px;letter-spacing:.11em;transition:transform .2s,background .2s}.primary-action:hover{transform:translateY(-3px);background:white}.action-circle{background:#e2a46c;color:#202b2d;display:grid;place-items:center;width:43px;height:43px;border-radius:50%;font-size:24px}.intro-sub{margin-top:44px;color:#f9dec2;font-size:9px}.footer{position:absolute;z-index:8;bottom:0;left:0;right:0;padding:24px 5%;display:flex;justify-content:space-between;color:#fbe7d3;font-size:9px;letter-spacing:.17em;font-weight:700;pointer-events:none}.hud{position:absolute;z-index:11;inset:auto 5% 65px;display:flex;align-items:end;justify-content:space-between;pointer-events:none}.location,.compass,.progress{font-size:11px;font-weight:700;letter-spacing:.16em;text-shadow:0 1px 6px #10242c}.location small,.compass small{display:block;color:#f1dfca;font-size:9px;letter-spacing:.12em;margin:9px 0 0 23px}.live-dot{display:inline-block;background:#f6c78a;box-shadow:0 0 14px #f6c78a;width:8px;height:8px;border-radius:50%;margin-right:11px}.progress{display:flex;gap:14px;align-items:center;font-size:9px}.progress-track{width:110px;background:#ffffff60;height:2px}.progress-track i{display:block;height:100%;background:#ffd29e;width:0;transition:width .3s}.compass{text-align:center;font-size:21px}.compass small{margin-left:0}.crosshair{z-index:7;position:absolute;left:50%;top:50%;width:10px;height:10px;transform:translate(-50%,-50%);pointer-events:none}.crosshair i{position:absolute;background:#ffffffb0}.crosshair i:first-child{width:10px;height:1px;top:5px}.crosshair i:last-child{height:10px;width:1px;left:5px}.instructions{position:absolute;z-index:12;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:22px;white-space:nowrap;align-items:center;color:#f8e5d5;font-size:9px;font-weight:700;letter-spacing:.08em}.instructions span{display:inline-flex;align-items:center;gap:5px}kbd,.keycap{border:1px solid #f9e8d38c;padding:4px 6px;border-radius:3px;font:700 11px 'DM Sans',sans-serif;background:#ffffff17;color:#fff4e0}.instructions kbd{font-size:9px;padding:2px 5px}.mouse-icon{font-size:16px}.proximity{position:absolute;z-index:11;bottom:17%;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:13px 23px;background:#15242be3;border:1px solid #f3cca069;box-shadow:0 10px 45px #07131a88;letter-spacing:.09em;font-size:12px;font-weight:700;animation:appear .25s}.keycap{padding:7px 11px}.menu-btn{z-index:11;position:absolute;right:5%;top:105px;padding:12px 18px;background:#182b2fc4;color:#f5e2d3;border:1px solid #f5dfbf5e;font-size:11px;letter-spacing:.12em}.walk-hint{position:absolute;z-index:10;top:107px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#1a3139ae;color:#f5e1cb;font-size:11px;border-radius:22px;pointer-events:none}.modal-layer,.gallery-layer{position:absolute;inset:0;z-index:30;display:grid;place-items:center}.modal-backdrop,.gallery-backdrop{position:absolute;inset:0;background:#0b171dda;backdrop-filter:blur(17px)}.story-modal{position:relative;z-index:1;display:grid;grid-template-columns:.86fr 1.14fr;width:min(1050px,90vw);height:min(650px,84vh);background:#f4eee1;color:#23303a;box-shadow:0 30px 90px #0008;overflow:hidden}.modal-close{position:absolute;z-index:5;right:24px;top:18px;font-size:29px;color:inherit;background:none;border:0;font-weight:300;line-height:1}.modal-visual{position:relative;overflow:hidden;background:#c7a88a;display:flex;align-items:center;justify-content:center}.visual-art{position:relative;width:71%;height:65%;border:17px solid #af804b;box-shadow:inset 0 0 0 7px #d7b17c,0 20px 48px #30251f48;background:radial-gradient(circle at 70% 20%,#fbe7b0,#d0a17f 48%,#587b85);display:flex;align-items:center;justify-content:center}.visual-art>span:first-child{position:absolute;top:12px;left:18px;font-family:'Playfair Display',serif;font-size:22px;color:#f8efe0}.visual-orbit{width:68%;aspect-ratio:1;border:4px solid #f0e8d0ac;border-radius:50%;box-shadow:0 0 0 28px #efe2bf30,0 0 0 65px #e8b78029}.visual-art>span:last-child{position:absolute;font-size:115px;color:#f7ede1;text-shadow:0 2px 30px #7b6763}.museum-tag{position:absolute;bottom:25px;left:25px;font-size:10px;font-weight:700;letter-spacing:.17em;color:#fff8eb}.modal-content{padding:76px 65px 40px;display:flex;flex-direction:column;overflow:auto}.modal-kicker{font-size:10px;letter-spacing:.19em;color:#a1724d;font-weight:700}.modal-content h2{font-family:'Playfair Display',serif;font-size:clamp(38px,4.1vw,62px);line-height:1.08;font-weight:400;letter-spacing:-.04em;margin:24px 0 15px}.modal-subtitle{font-size:13px;font-weight:700;color:#ad805c;letter-spacing:.07em;text-transform:uppercase}.modal-content p{font-size:15px;line-height:1.85;color:#465660;white-space:pre-line}.highlights{margin-top:10px;display:flex;flex-wrap:wrap;gap:9px}.highlights span{padding:10px 13px;background:#e7ddd0;color:#47535c;font-size:11px;font-weight:700}.modal-bottom{border-top:1px solid #d6c9b8;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:20px;font-size:9px;color:#7e817a;font-weight:700;letter-spacing:.13em}.modal-bottom button{border:0;background:none;color:#88603c;font-size:11px;font-weight:700;letter-spacing:.07em}.gallery-layer{place-items:stretch end}.gallery-panel{position:relative;z-index:1;width:min(520px,100vw);height:100%;overflow:auto;padding:62px 55px;background:#f4eee1;color:#24353a}.gallery-caption{font-size:10px;letter-spacing:.18em;color:#b48158;font-weight:700}.gallery-panel h2{font:400 66px/1.07 'Playfair Display',serif;letter-spacing:-.04em;margin:25px 0}.gallery-panel h2 em{color:#b98b64}.gallery-panel>p{font-size:14px;color:#6f7470;margin-bottom:28px}.gallery-row{width:100%;text-align:left;border:0;border-bottom:1px solid #ddd0c0;padding:18px 0;background:none;display:flex;gap:20px;align-items:baseline;color:#26353c}.gallery-row:hover{color:#ad7b55}.gallery-row .number{font-size:11px;color:#ba916e}.gallery-row .title{font:400 22px 'Playfair Display',serif}.gallery-row small{display:block;font:11px 'DM Sans',sans-serif;color:#88908b;margin-top:6px}.gallery-note{font-size:11px;color:#938879;margin-top:36px}.fatal{z-index:80;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:40px;background:#14252ded;border:1px solid #c5a47f;width:min(490px,90vw);text-align:center}.fatal h2{font:35px 'Playfair Display',serif}.fatal p{font-size:14px;line-height:1.7}.fatal button{background:#f4e2c8;color:#223238;border:0;padding:13px 20px;margin:12px}.mobile-controls{z-index:14;position:absolute;bottom:90px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:center;gap:9px}.mobile-controls button{border:1px solid #fff9;background:#1c333cba;color:white;width:52px;height:52px;font-size:24px;border-radius:12px;touch-action:none}.mobile-controls button:last-child{width:80px;font-size:10px;font-weight:700;letter-spacing:.06em}@keyframes appear{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}#loading{position:absolute;inset:0;z-index:99;background:#182a32;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .5s}.loading-mark{font:400 42px 'Playfair Display',serif;letter-spacing:.05em}.loading-mark span{color:#d5a26f}.loading-line{height:2px;width:150px;background:#ffffff22;margin-top:26px;overflow:hidden}.loading-line i{display:block;height:100%;width:40%;background:#e4b886;animation:loading 1.5s ease-in-out infinite alternate}#loading p{color:#c2b5a5;font-size:11px;margin-top:20px;letter-spacing:.12em}@keyframes loading{from{transform:translateX(-100%)}to{transform:translateX(300%)}}@media(max-width:800px){.topbar{padding:22px 6%}.topbar nav{gap:14px}.topbar nav button:not(.nav-contact){display:none}.brand{font-size:25px}.brand small{font-size:7px}.intro{left:7%;width:88%;top:49%}.intro h1{font-size:clamp(53px,13vw,85px)}.intro p{font-size:13px}.eyebrow{font-size:8px}.intro-sub{font-size:8px}.footer span:first-child,.footer span:last-child{display:none}.footer{justify-content:center}.hud{left:5%;right:5%;bottom:54px}.hud .progress{display:none}.instructions{display:none!important}.story-modal{grid-template-columns:1fr;grid-template-rows:33% auto;height:min(740px,88vh);width:92vw}.modal-content{padding:30px 28px 25px}.modal-content h2{margin:13px 0}.modal-content p{font-size:12px}.visual-art{width:48%;height:80%;border-width:10px}.visual-art>span:last-child{font-size:55px}.museum-tag{bottom:10px;font-size:8px}.modal-bottom{margin-top:20px}.gallery-panel{padding:45px 28px}.walk-hint{font-size:9px;top:100px;width:80%;text-align:center}.menu-btn{top:96px;right:5%}.proximity{bottom:25%;font-size:10px;white-space:nowrap}.intro-sub{max-width:85%}}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
