*{box-sizing:border-box}html,body{margin:0;height:100%;width:100%;background:#233332;color:#f8f3e4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button{font:inherit;color:inherit;font-size:.875rem;cursor:pointer;border:1px solid #ffffff44;background:#203131de;min-height:43px;padding:0 16px;border-radius:7px;transition:background .17s,border-color .17s;touch-action:manipulation}button:hover{background:#39504b;border-color:#e7cb8f}button:focus-visible,#stage:focus-visible{outline:3px solid #efd190;outline-offset:3px}button:disabled{opacity:.45;cursor:default}button[aria-pressed=true],.primary{background:#e6c68b!important;color:#263331!important;border-color:#e6c68b!important}.primary:hover{background:#f4d9a4!important}.square{width:43px;padding:0;font-size:1.1rem}.eyebrow{font-size:.75rem;letter-spacing:.14em;color:#e3c78f;font-weight:600}[hidden]{display:none!important}#app{width:100%;height:100dvh;min-height:450px;position:relative;overflow:hidden}#stage{position:absolute;inset:0;touch-action:none;outline:none}#stage canvas{display:block;width:100%;height:100%}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#132326b5,transparent 27%,transparent 73%,#152725ad);box-shadow:inset 0 0 120px #1727282a}header{position:absolute;top:0;left:0;right:0;padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:10px;background:none!important;border:0;text-align:left;padding:0;font-size:.8125rem;letter-spacing:.15em;font-weight:600}.brand-icon{font-size:2.2rem;color:#edce91;font-weight:400}.brand small{display:block;font-size:.75rem;font-weight:400;letter-spacing:.13em;color:#d7e0d8;margin-top:6px}nav{display:flex;gap:8px}nav button{backdrop-filter:blur(14px)}.place{position:absolute;left:31px;top:114px;pointer-events:none;text-shadow:0 2px 12px #17242055;max-width:530px}.place>span{font-size:.75rem;letter-spacing:.18em;font-weight:600;color:#fff2d0}.place h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,3.4vw,3.5rem);line-height:1.08;letter-spacing:-.025em;font-weight:400;margin:10px 0}.place p{margin:0;max-width:480px;font-size:1rem;line-height:1.55;color:#f2f1df;opacity:.9}.playing .place p{display:none}.playing .place{top:103px}.playing .place h1{font-size:1.65rem;margin:5px 0}.playing .place>span{display:none}#crosshair{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;border-radius:50%;background:#fff7da;box-shadow:0 0 0 2px #1b302b55;pointer-events:none;opacity:.7}#crosshair i{position:absolute;inset:-4px;border:1px solid #fff6cb44;border-radius:50%}#welcome{position:absolute;left:50%;bottom:132px;transform:translateX(-50%);padding:22px 25px;max-width:calc(100vw - 36px);width:460px;background:#1d3130ed;border:1px solid #e6d5af66;border-radius:13px;box-shadow:0 12px 50px #17262533;backdrop-filter:blur(12px)}#welcome h2{font:400 2rem/1.2 Georgia,serif;margin:10px 0}#welcome p{font-size:1rem;line-height:1.55;color:#dfe5d7;margin:7px 0 17px}.welcome-actions{display:flex;gap:9px}.welcome-actions button{flex:1;padding:0 13px}#start-button{display:flex;justify-content:space-between;align-items:center}#welcome small{font-size:.75rem;color:#c2cebe;line-height:1.6;margin-top:13px;display:block}.playing #welcome{display:none}#interaction{position:absolute;top:calc(50% + 33px);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;background:#1a2b2bec;padding:9px 12px;border-radius:9px;border:1px solid #dfc58a77;max-width:90vw;z-index:2}.keycap{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border:1px solid #e6d2a3;background:#e5d2ab;color:#24352d;border-radius:4px;font-size:.875rem}#interact-button{padding:0;min-height:30px;border:0;background:none;white-space:nowrap;font-size:.9375rem}#movement-hint{position:absolute;left:50%;bottom:80px;transform:translateX(-50%);font-size:.75rem;color:#f1edda;white-space:nowrap;pointer-events:none;text-shadow:0 2px 8px #15271b}#movement-hint b{font-weight:600}#movement-hint span>span{color:#c2d0bb;margin:0 8px}.bottom-tools{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:flex;gap:8px;padding:5px;background:#192b2988;border:1px solid #ffffff25;border-radius:10px;backdrop-filter:blur(10px);white-space:nowrap}.bottom-tools button{background:#21342dd9}.bottom-tools button:last-child{font-size:1.4rem}#map-card{position:absolute;bottom:22px;right:25px;width:164px;height:190px;padding:7px;background:#203430e8;border:1px solid #d6d5ac6e;border-radius:11px;backdrop-filter:blur(14px)}#minimap{display:block;width:148px;height:148px;border-radius:6px}#map-caption{display:block;font-size:.75rem;letter-spacing:.1em;text-align:center;margin:9px 0 0;color:#d4dac4}#joystick{display:none;position:absolute;bottom:34px;left:27px;width:108px;height:108px;border:1px solid #efe5c45e;border-radius:50%;background:#233c325c;touch-action:none}#joystick-knob{position:absolute;left:33px;top:33px;width:40px;height:40px;border:1px solid #e8dfbc;background:#e1ce9c80;border-radius:50%;pointer-events:none}#look-label{position:absolute;right:33px;bottom:68px;font-size:.75rem;letter-spacing:.12em;color:#f5eed8;pointer-events:none}#loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1b3030ed;z-index:15}#loading p{font-size:1rem;color:#e8dfc1}.spinner{width:35px;height:35px;border:2px solid #b8c5a938;border-top-color:#e6c68b;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#transition{position:absolute;inset:0;background:#1c302a;z-index:12;opacity:0;pointer-events:none;transition:opacity .28s}#transition.cover{opacity:1}#toast{position:absolute;top:86px;left:50%;transform:translateX(-50%);padding:10px 16px;font-size:.875rem;background:#213830ed;border:1px solid #e0cea44f;border-radius:7px;max-width:90vw;text-align:center;opacity:0;transition:opacity .2s;pointer-events:none;z-index:20}#toast.show{opacity:1}dialog{background:#20332f;border:1px solid #aab39677;color:#f6efdc;padding:0;border-radius:14px;width:min(1060px,94vw);max-width:94vw;max-height:91dvh;box-shadow:0 20px 100px #091b15aa}dialog::backdrop{background:#091b18c2;backdrop-filter:blur(9px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:22px 25px;border-bottom:1px solid #d2d7bd25;position:sticky;top:0;background:#20332ff5;z-index:2}.dialog-head h2{font:400 1.8rem/1.2 Georgia,serif;margin:6px 0 0}.dialog-head .close{width:42px;padding:0;flex-shrink:0}.dialog-intro{margin:20px 25px 12px;font-size:1rem;line-height:1.5;color:#d4ddc9}.footnote{font-size:.8125rem;color:#bccbb8;line-height:1.6;margin:17px 25px 23px}#world-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:12px 25px}.world-card{display:flex;flex-direction:column;text-align:left;padding:0;overflow:hidden;border:1px solid #adbb994a;background:#2e4037;border-radius:9px}.world-card img{width:100%;height:157px;object-fit:cover;display:block}.world-card>div{padding:13px 15px}.world-card .eyebrow{font-size:.75rem;letter-spacing:.07em}.world-card h3{font:400 1.45rem Georgia,serif;margin:6px 0}.world-card p{font-size:.875rem;line-height:1.5;color:#d4ddc9;margin:5px 0 9px}.world-card .go{font-size:.875rem;color:#efd49b}.world-card.current{border-color:#e6c68b}#painting-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:13px 25px 26px}.painting-card{padding:0;border:1px solid #8da28b44;background:#263d32;border-radius:7px;overflow:hidden;text-align:left}.painting-card img{width:100%;height:125px;object-fit:cover;display:block}.painting-card span{display:block;padding:10px 9px;font-size:.875rem;line-height:1.4}#original-dialog{width:min(1120px,95vw)}.original-wrap{padding:16px;background:#162a24;text-align:center;height:65dvh;display:flex;align-items:center;justify-content:center}.original-wrap img{max-width:100%;max-height:100%;object-fit:contain}.original-bottom{padding:15px 24px;display:flex;gap:20px;align-items:center;justify-content:space-between}.original-bottom p{font-size:.875rem;line-height:1.5;color:#cbd9c2;max-width:670px;margin:0}.original-bottom button{flex-shrink:0}#help-dialog{max-width:650px}.help-body{padding:5px 24px 20px;color:#d4dfcc;line-height:1.65;font-size:1rem}.help-body dl>div{display:grid;grid-template-columns:140px 1fr;gap:18px;padding:13px 0;border-bottom:1px solid #cdd6bd1e}.help-body dt{color:#e5c992;font-size:.875rem}.help-body dd{margin:0;font-size:.875rem}.help-body h3{font-size:1.1rem;color:#e8d19c;font-weight:500;margin-bottom:0}.mobile-copy{display:none!important}#error-panel,.noscript{position:absolute;top:30%;left:50%;transform:translateX(-50%);width:460px;max-width:90vw;z-index:18;padding:25px;background:#233d31;border:1px solid #e6c68b88;border-radius:12px;line-height:1.6}#error-panel h2{margin-top:0;font-size:1.3rem}#error-panel button{margin-right:6px}
@media(pointer:coarse){.mobile-copy{display:block!important}.desktop-copy{display:none!important}#joystick{display:block}#map-card{bottom:156px;width:119px;height:144px;right:18px}#minimap{width:103px;height:103px}.keycap{display:none}#movement-hint{bottom:81px}#welcome{bottom:172px}}
@media(max-width:1000px){#map-card{width:126px;height:152px;right:18px}#minimap{width:110px;height:110px}.bottom-tools{left:22px;transform:none}#movement-hint{left:27px;transform:none}.place{max-width:65vw}.place p{max-width:420px}#world-grid{grid-template-columns:repeat(2,1fr)}#painting-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:650px){header{padding:15px;align-items:flex-start}.brand{font-size:.75rem;letter-spacing:.04em;gap:5px}.brand-icon{font-size:1.7rem}.brand small{font-size:.75rem;letter-spacing:0}.brand>span:last-child{max-width:90px}nav{gap:5px}nav button{padding:0 9px;min-height:39px;font-size:.875rem}nav .square{width:34px}#collection-button{display:none}#source-button{font-size:0}#source-button:after{content:'Original';font-size:.875rem}.place{left:20px;top:101px;max-width:87vw}.place h1{font-size:2rem}.place>span{font-size:.75rem}.place p{font-size:1rem;max-width:320px}.playing .place{top:95px}.playing .place h1{font-size:1.3rem}#welcome{width:370px;bottom:175px;padding:20px}#welcome h2{font-size:1.7rem}#welcome p{font-size:1rem}#welcome small{font-size:.75rem}.welcome-actions button{font-size:.875rem}.bottom-tools{left:15px;right:15px;bottom:17px;gap:5px;justify-content:center;padding:5px}.bottom-tools button{min-height:38px;padding:0 9px;font-size:.875rem}.bottom-tools .square{width:35px}#reset-button{display:none}#garden-button{flex:1}#guide-button{flex:1}#joystick{width:96px;height:96px;left:25px;bottom:96px}#joystick-knob{left:28px;top:28px}#movement-hint{bottom:75px;left:50%;transform:translateX(-50%);font-size:.75rem;width:100%;text-align:center}#look-label{right:26px;bottom:125px;font-size:.75rem}#map-card{bottom:208px;right:17px;width:98px;height:120px;padding:5px;background:#21352ebd}#minimap{width:86px;height:86px}#map-caption{font-size:.75rem;letter-spacing:0;margin-top:5px}.playing #map-card{opacity:.9}#interaction{top:calc(50% + 25px);padding:8px 12px}#interact-button{white-space:normal;font-size:.875rem;min-width:145px;line-height:1.4}.dialog-head{padding:16px}.dialog-head h2{font-size:1.5rem}.dialog-intro{margin:16px}#world-grid{gap:10px;padding:7px 16px;grid-template-columns:1fr 1fr}.world-card img{height:116px}.world-card>div{padding:11px}.world-card h3{font-size:1.2rem}.world-card p{display:none}.world-card .eyebrow{font-size:.75rem}.world-card .go{font-size:.875rem}#painting-grid{padding:7px 16px 18px;gap:10px;grid-template-columns:repeat(3,1fr)}.painting-card img{height:96px}.painting-card span{font-size:.875rem;padding:8px}.footnote{font-size:.8125rem;margin:16px}.original-wrap{padding:8px;height:57dvh}.original-bottom{display:block;padding:13px 17px}.original-bottom button{margin-top:12px;width:100%}.help-body{padding:4px 18px 18px}.help-body dl>div{grid-template-columns:90px 1fr;gap:13px}#toast{top:150px;font-size:.875rem;width:max-content}}
@media(max-height:600px) and (min-width:651px){.place{top:91px}.place h1{font-size:1.8rem}.place p{display:none}#welcome{bottom:100px;padding:16px;width:430px}#welcome h2{font-size:1.5rem;margin:7px 0}#welcome p{margin:7px 0 12px}#welcome small{margin-top:8px}.bottom-tools{bottom:14px}#movement-hint{bottom:73px}#map-card{bottom:14px}header{padding-top:15px}}
#app:not(.playing) #map-card,#app:not(.playing) #joystick,#app:not(.playing) #look-label,#app:not(.playing) #movement-hint{display:none!important}
@media(max-width:650px) and (max-height:650px){.place p{display:none}#welcome{bottom:110px;padding:16px}#welcome h2{font-size:1.4rem;margin:7px 0}#welcome p{font-size:.875rem;margin:7px 0 12px}#welcome .eyebrow{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* The canvas keeps its own aspect ratio and unaltered color, without a vignette. */
.in-painting{background:#15201f}.in-painting #stage{top:104px;bottom:99px}.in-painting .vignette{display:none}.in-painting .place{top:72px;left:29px;max-width:70vw}.in-painting .place h1{font-size:1.1rem;margin:0}.in-painting .place p,.in-painting .place>span{display:none}.in-painting #crosshair{display:none}.in-painting #map-card{width:104px;height:129px;right:17px;bottom:112px;opacity:.82}.in-painting #minimap{width:88px;height:88px}.in-painting #map-caption{font-size:.75rem;letter-spacing:0}.in-painting #movement-hint{bottom:77px}.in-painting #interaction{top:auto;bottom:113px}#compare-overlay{position:absolute;padding:0;border:0;min-height:0;border-radius:0;background:none;z-index:3;display:block;overflow:hidden}#compare-image{display:block;width:100%;height:100%;object-fit:fill}#canvas-caption{display:none;position:absolute;top:79px;right:29px;font-size:.75rem;letter-spacing:.12em;color:#c9d3ca;pointer-events:none}.in-painting #canvas-caption{display:block}.comparing #map-card,.comparing #joystick,.comparing #look-label,.comparing #interaction{display:none!important}.in-painting #reset-button{display:block}.in-painting .bottom-tools{left:50%;transform:translateX(-50%)}
@media(max-width:650px){.in-painting #stage{top:115px;bottom:155px}.in-painting .place{top:86px;left:17px}.in-painting .place h1{font-size:1rem}.in-painting #canvas-caption{top:auto;bottom:138px;left:0;right:0;text-align:center}.in-painting #map-card{display:none}.in-painting #joystick{bottom:72px;width:68px;height:68px;left:20px}.in-painting #joystick-knob{left:17px;top:17px;width:32px;height:32px}.in-painting #look-label{bottom:101px}.in-painting .bottom-tools{left:8px;right:8px;transform:none;gap:4px}.in-painting .bottom-tools button{padding:0 7px;font-size:.875rem}.in-painting #movement-hint{display:none}.in-painting #garden-button{font-size:0}.in-painting #garden-button:after{content:'Garden';font-size:.875rem}.in-painting #guide-button{font-size:0}.in-painting #guide-button:after{content:'Guided walk';font-size:.875rem}.in-painting #source-button{font-size:0}.in-painting #source-button:after{content:'Original';font-size:.875rem}.in-painting.comparing #source-button:after{content:'Back to 3D'}.in-painting #interaction{bottom:155px}.in-painting #toast{top:118px}}

.in-painting:not(.away-from-canvas) #map-card{display:none}
/* Finished exploration controls and accessible original-art browsing. */
input,select{font:inherit;font-size:1rem;color:#f4f0e4;background:#152823;border:1px solid #a5b7a080;border-radius:7px;min-height:44px;padding:9px 12px;width:100%}input:focus-visible,select:focus-visible{outline:3px solid #efd190;outline-offset:2px}input::placeholder{color:#aebfad}label{font-size:.875rem;color:#e1e7d9;line-height:1.5}select{cursor:pointer}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;padding:22px 0;border-bottom:1px solid #cdd6bd33}.settings-grid label,.collection-tools label{display:flex;flex-direction:column;gap:6px}.settings-grid .check-setting{display:flex;flex-direction:row;align-items:center;gap:10px}.check-setting input{width:20px;height:20px;min-height:0;accent-color:#e6c68b}.collection-tools{display:flex;align-items:end;gap:14px;margin:20px 25px}.collection-tools label:first-child{flex:1}.collection-tools label:nth-child(2){width:205px}#painting-count{font-size:.875rem;color:#c6d1c0;padding-bottom:13px;white-space:nowrap}.collection-notice{margin:20px 25px;padding:14px 17px;border:1px solid #dfca9566;background:#d0b77412;border-radius:9px;font-size:.9375rem;line-height:1.6}.collection-notice button{display:block;margin-top:10px}.painting-card img{object-fit:contain;background:#162923;padding:8px;height:145px}.world-card img{object-fit:contain;background:#162923;padding:6px}.painting-card:hover,.world-card:hover{box-shadow:0 0 0 1px #e6c68b}.original-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:#1c2f2a;border-bottom:1px solid #ffffff1a}.original-nav span{font-size:.875rem;color:#ccd6c3}.original-wrap{height:57dvh}.original-wrap img{min-height:0}.original-bottom p{font-size:.9375rem}.original-bottom button{max-width:310px;white-space:normal;line-height:1.4;padding:10px 16px}#tour-status{position:absolute;left:50%;bottom:99px;transform:translateX(-50%);width:260px;max-width:70vw;padding:7px 12px;border:1px solid #d6c39e77;border-radius:8px;background:#1b302ce8;pointer-events:none;font-size:.8125rem;text-align:center}#tour-progress{display:block;width:100%;height:5px;margin-top:6px;accent-color:#e6c68b}#tour-progress::-webkit-progress-bar{background:#506153;border-radius:4px}#tour-progress::-webkit-progress-value{background:#e6c68b;border-radius:4px}.art-only #stage{background:linear-gradient(#10231aaa,#10231acc),url('/assets/reference/3177.webp') center/cover}.art-only .bottom-tools,.art-only #crosshair,.art-only #map-card,.art-only #movement-hint,.art-only #joystick,.art-only #look-label{display:none!important}.art-only .place p{display:block}.art-only .place:after{content:'Explore all 61 original paintings from the collection.';font-size:1rem;line-height:1.5;display:block;margin-top:15px;color:#e1e7d9}.noscript a{color:#f3d9a4}
@media(max-width:1000px){#tour-status{left:28px;transform:none}}
@media(max-width:650px){header{align-items:center;padding:12px;gap:8px}.brand>span:last-child{display:none}.brand-icon{font-size:2rem}.brand{width:31px;min-width:31px}nav{flex:1;gap:5px}nav button{padding:0 8px;min-height:44px;flex:1}nav .square{flex:0 0 38px;width:38px}#collection-button{display:block}.in-painting .place{top:77px}.in-painting #stage{top:106px;bottom:139px}.in-painting #canvas-caption{bottom:122px;font-size:.75rem;letter-spacing:.08em}.in-painting #interaction{bottom:150px}.in-painting #guide-button{font-size:.875rem!important}.in-painting #guide-button:after{content:none}.in-painting #reset-button{font-size:0}.in-painting #reset-button:after{content:'Reset';font-size:.875rem}.in-painting.comparing #source-button:after{content:'Back to walk'}.in-painting .bottom-tools{bottom:max(12px,env(safe-area-inset-bottom));padding:5px}.in-painting .bottom-tools button{min-height:44px}#tour-status{left:auto;right:14px;bottom:74px;transform:none;width:190px;max-width:54vw;font-size:.8125rem}#look-label{display:none!important}.collection-tools{flex-wrap:wrap;margin:16px;gap:10px}.collection-tools label:first-child{flex:1 1 100%}.collection-tools label:nth-child(2){width:auto;flex:1}#painting-count{font-size:.8125rem;padding-bottom:12px}.collection-notice{margin:16px}.painting-card img{height:115px;padding:5px}#painting-grid{grid-template-columns:repeat(2,1fr)}.original-nav{padding:9px 14px}.original-nav button{font-size:.875rem;padding:0 12px}.original-wrap{height:48dvh}.original-bottom button{max-width:none}.settings-grid{grid-template-columns:1fr}.in-painting #joystick{bottom:75px}#help-dialog{width:94vw}.art-only .place{top:102px}}
@media(max-height:500px){#app{min-height:320px}.in-painting #stage{top:72px;bottom:66px}.in-painting .place{top:58px;left:15px}.in-painting #canvas-caption{display:none}.in-painting .place h1{font-size:.875rem}.in-painting #joystick{bottom:74px;width:68px;height:68px}.in-painting #joystick-knob{left:17px;top:17px;width:32px;height:32px}.in-painting #movement-hint{display:none}.in-painting #map-card{display:none}#tour-status{bottom:75px;left:auto;right:16px;transform:none}header{padding:8px 14px}nav button{min-height:40px}.original-wrap{height:52dvh}}
