:root{font-family:PingFang SC,Noto Sans SC,Microsoft YaHei,sans-serif;color:#eee5d3;background:#090614;font-weight:400;-webkit-font-smoothing:antialiased;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,canvas:focus-visible{outline:2px solid #e9d39e;outline-offset:5px}button{touch-action:manipulation}button:disabled{opacity:.4;cursor:default}button svg{pointer-events:none}#app{height:100svh;min-height:540px;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 68% 47%,#19102b44,transparent 62%)}.stars{position:absolute;inset:0;pointer-events:none;z-index:-1}.stars i{position:absolute;border-radius:100%;background:#ded2ff;box-shadow:0 0 6px #bb8cfc}.stars i:nth-child(13n){box-shadow:0 0 9px 1px #b893db}.night #app{background:radial-gradient(ellipse at 70% 50%,#15102b,transparent 72%)}header{position:absolute;top:32px;left:42px;right:42px;display:flex;align-items:center;justify-content:space-between;z-index:3}.brand{display:flex;align-items:center;gap:24px;font-size:18px;letter-spacing:5px}.brand svg{width:43px;height:43px;stroke-width:.8}nav{display:flex;align-items:center;gap:30px}.text-button,.icon-button{border:0;background:none;padding:8px}.text-button{font-size:16px;letter-spacing:2px;color:#c5bba8}.text-button:hover{color:#fff3db}.icon-button{display:inline-flex;align-items:center;justify-content:center}.icon-button svg{width:28px;height:28px}.intro{position:absolute;left:7.25%;top:29%;z-index:2;pointer-events:none}h1{font-size:clamp(40px,4.25vw,66px);margin:0 0 10px;letter-spacing:8px;font-weight:600;color:#f5f2ef;line-height:1.35}.english{font-size:clamp(14px,1.55vw,23px);letter-spacing:2px;margin:0;color:#9990a5}.description{font-size:clamp(16px,1.5vw,22px);line-height:1.9;color:#a8a1b4;margin:30px 0 36px;letter-spacing:.5px}.facts{border-top:1px solid #746779;display:flex;align-items:center;gap:20px;padding-top:24px;color:#b9adad;font-size:15px;white-space:nowrap}.facts>span{display:flex;align-items:center;gap:7px}.facts svg{width:22px;height:22px}.facts b{font-size:20px;font-weight:400;color:#e9dfca}.facts small{font-size:14px}.facts i{height:21px;width:1px;background:#65576f}#scene{position:absolute;left:31%;top:8%;width:65%;height:79%;z-index:1}canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}canvas:active{cursor:grabbing}.toolbar{position:absolute;bottom:40px;left:50%;transform:translate(-50%);z-index:3;display:flex;align-items:center;padding:5px;border:1px solid #82768e;border-radius:23px;background:#0b0717bb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 12px 36px #0002;gap:3px}.tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;border:0;background:transparent;border-radius:17px;min-width:105px;height:78px;padding:9px 16px;color:#d4c8b8;font-size:15px;letter-spacing:1px;transition:background .2s,color .2s}.tool svg{width:27px;height:27px}.tool.active{background:#eee3cd;color:#251e1d;box-shadow:inset 0 0 0 1px #fff5e4}.tool:not(.active):hover{background:#ffffff0d;color:#fff5e4}.separator{width:1px;height:48px;background:#64566e;margin:0 3px}footer{position:absolute;bottom:39px;left:42px;right:42px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;color:#93899e;letter-spacing:1px;font-size:14px}.gesture{display:flex;align-items:center;gap:13px}.gesture svg{width:25px;height:33px;stroke-width:1}.index em{font-style:normal;margin:0 9px}.mobile-hint{display:none}#loading,.error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;color:#c4b5d4;font-size:14px}.loading-orbit{width:40px;height:40px;border:1px solid #65566f;border-top-color:#e1ce9d;border-radius:50%;animation:spin 1.4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{padding:40px;text-align:center}.error p{max-width:350px;line-height:1.8}.error button{border:1px solid #82768e;border-radius:12px;padding:12px 24px;background:#191222}.error h2{font-size:22px}dialog{color:#d4cadb;border:1px solid #594661;border-radius:22px;background:#1c1526;padding:45px;max-width:560px;width:calc(100% - 36px);box-shadow:0 35px 140px #0008}dialog::backdrop{background:#060411b8;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}dialog .icon-button{position:absolute;right:18px;top:18px}dialog h2{font-size:26px;color:#f1e5ce;font-weight:500;margin:24px 0}dialog h3{font-size:18px;font-weight:500;color:#ece0c8}dialog p{font-size:15px;line-height:1.9;color:#b0a3ba}dialog strong{color:#e4d6b9;font-weight:500}.journal-number{font-size:12px;letter-spacing:3px;color:#b89fc8}.journal-rule{height:1px;background:#45364e;margin:25px 0}.key-hint{font-size:12px!important}.credit{font-size:11px!important;margin:28px 0 0;letter-spacing:1px;color:#7d6e8b!important}.announcement{position:absolute;right:25px;bottom:130px;font-size:13px;color:#ebd6b2;z-index:4}.announcement:empty{display:none}@media(min-width:1700px){#scene{left:30%;width:65%;height:82%;top:5%}.intro{top:31%}.toolbar{bottom:55px}.tool{min-width:125px;height:88px}footer{bottom:55px}}@media(max-width:1100px){header{left:28px;right:28px;top:22px}.brand{font-size:15px;gap:16px}.intro{left:6%;top:29%}h1{letter-spacing:5px}.facts{gap:12px;font-size:12px}.facts b{font-size:17px}.facts svg{width:17px}.description{margin:24px 0 28px}.toolbar{bottom:34px}.tool{min-width:85px;height:72px;font-size:13px}footer{left:28px;right:28px;bottom:31px;font-size:11px}.gesture{gap:8px}.index em{margin:0 4px}#scene{left:30%;width:69%}}@media(max-width:700px){#app{min-height:580px}header{left:22px;right:20px;top:20px}.brand{font-size:13px;gap:12px;letter-spacing:3px}.brand svg{width:31px;height:31px}nav{gap:12px}.text-button{font-size:12px;letter-spacing:1px}.icon-button svg{width:21px;height:21px}.intro{left:25px;top:100px}h1{font-size:38px;letter-spacing:5px;margin-bottom:4px}.english{font-size:12px;letter-spacing:1.8px}.description{font-size:12px;line-height:1.7;margin:15px 0 0}.facts{display:none}#scene{left:0;top:25%;width:100%;height:59%}.toolbar{bottom:49px;border-radius:18px;padding:4px;gap:1px;max-width:calc(100% - 32px)}.tool{min-width:70px;padding:8px 12px;height:65px;font-size:12px;gap:7px;border-radius:13px}.tool svg{width:23px;height:23px}.separator{height:35px;margin:0 1px}footer{bottom:17px;left:24px;right:24px;font-size:10px}.desktop-hint{display:none}.mobile-hint{display:inline}.gesture svg{width:15px;height:20px}.index{font-size:9px}.gesture{gap:7px}dialog{padding:32px 26px}dialog h2{font-size:21px}dialog p{font-size:14px}.announcement{bottom:125px;left:20px;right:20px;text-align:center}}@media(max-height:620px)and (min-width:701px){header{top:15px}.intro{top:25%}h1{font-size:38px}.description{font-size:15px;margin:17px 0}.facts{padding-top:15px}.toolbar{bottom:20px}.tool{height:61px}.tool svg{width:23px;height:23px}#scene{height:76%;top:9%}footer{bottom:25px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}:root{background:#bd23a6;color:#fff3ce}#app{background:#d436b0 url(/heaven-sky.jpg) center center / cover no-repeat}#app:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(64,4,67,.24),transparent 47%);z-index:0}.stars{display:none}.night #app{background-color:#281e4d;background-blend-mode:multiply}.night .stars{display:block;z-index:0}.brand,.text-button{color:#fff0d3}.intro{text-shadow:0 2px 18px #58145333}h1{color:#fff9dc}.english{color:#f5c7ea}.description{color:#ffe3ee}.facts{color:#ffe2e9;border-color:#f6c6dd66}.facts b{color:#fff8de}.facts i{background:#f5c9dc80}.toolbar{background:#411b52cc;border-color:#f4d7e899}.tool{white-space:nowrap;flex-shrink:0}.tool svg{flex-shrink:0}.tool.active{background:#fff0c9;color:#4d2944}.separator{background:#ecd2df66}footer{color:#694539;text-shadow:0 1px 4px #fff6c155}.night footer{color:#d9c7d8;text-shadow:none}@media(min-width:701px)and (max-width:900px){.intro{left:5%;top:28%}.facts{flex-wrap:wrap;max-width:235px;gap:9px}.facts>span{gap:5px}.facts svg{display:none}.facts b{font-size:16px}#scene{left:34%;width:65%}.tool{min-width:80px}.description,.brand{font-size:14px}}@media(max-width:700px){#app{background-position:55% center}.intro{text-shadow:0 2px 12px #7b176944}.description{color:#ffe3ee}.toolbar{max-width:none;width:max-content}.tool{min-width:70px;padding:8px 10px}}#scene{inset:0;width:100%;height:100%}.intro{transition:opacity .25s ease,transform .25s ease}.close-view .intro{opacity:0;transform:translateY(-8px)}@media(max-width:700px){#scene{inset:0;width:100%;height:100%}}.enter-house{position:absolute;right:42px;top:105px;z-index:3;display:flex;align-items:center;gap:10px;padding:12px 19px;background:#fff0c9eb;border:1px solid #fff6d4;border-radius:24px;color:#593b42;font-size:14px;box-shadow:0 5px 24px #70286822}.enter-house svg{width:20px;height:20px}.enter-house:hover{background:#fff8df}.interior-ui{display:none}.inside .interior-ui{display:block}.inside header,.inside .intro,.inside .toolbar,.inside footer,.inside .enter-house{display:none}.interior-ui #leave-house{position:absolute;left:28px;top:28px;z-index:5;display:flex;align-items:center;gap:9px;border:0;border-radius:30px;padding:14px 22px;background:#f7e7b9ed;color:#564023;font-size:17px}.interior-ui #leave-house svg{width:23px;height:23px}.interior-title{position:absolute;right:35px;top:39px;z-index:5;color:#fff0bc;font-size:22px;letter-spacing:2px;text-shadow:0 2px 8px #47362488}.interior-hint{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:5;margin:0;color:#fff0c9;letter-spacing:2px;font-size:15px;white-space:nowrap;text-shadow:0 1px 7px #32170c}.walk-controls{display:none}@media(max-width:700px){.enter-house{top:104px;right:22px;padding:10px 13px;font-size:12px;gap:6px}.enter-house svg{width:17px;height:17px}.interior-ui #leave-house{top:20px;left:18px;padding:11px 14px;font-size:13px}.interior-title{right:20px;top:30px;font-size:16px}.interior-hint{font-size:11px;bottom:22px;letter-spacing:1px}.walk-controls{position:absolute;bottom:58px;right:20px;z-index:5;display:flex;gap:10px}.walk-controls button{display:flex;align-items:center;justify-content:center;width:49px;height:49px;border:1px solid #fff0bb9c;border-radius:50%;color:#ffefc9;background:#775231aa;touch-action:none}.walk-controls svg{width:23px;height:23px}.walk-controls #walk-forward svg{transform:rotate(90deg)}.walk-controls #walk-backward svg{transform:rotate(-90deg)}}
