:root{color-scheme:dark;--ink:#171411;--paper:#eee3ce;--muted:#b8aa91;--gold:#ccad72;--line:#c8aa6c44;--lamp-w:112px;--wick-x:.5;--wick-y:.37;--lx:65vw;--ly:55vh;--radius:0px}
*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;background:#0b0a09}body{font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:var(--paper);font-size:16px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{border:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #ead19b;outline-offset:5px}button:disabled{cursor:default;opacity:.45}a{color:var(--gold);text-decoration:none}button{touch-action:manipulation}#experience{height:100%;height:100dvh;position:relative;overflow:hidden}#panorama,#darkness,#lightWash,#markers{position:absolute;inset:0}#panorama{background:#0b0a09;opacity:0;transition:opacity .5s}body[data-mode=unlit] #panorama,body[data-mode=igniting] #panorama,body[data-mode=exploring] #panorama,body[data-mode=panorama] #panorama{opacity:1}#darkness{z-index:2;pointer-events:none;background:radial-gradient(circle at var(--lx) var(--ly),rgba(4,3,2,0) 0,rgba(4,3,2,.04) calc(var(--radius)*.38),rgba(4,3,2,.35) calc(var(--radius)*.72),#090807 var(--radius));transition:opacity .8s}#lightWash{z-index:3;pointer-events:none;background:radial-gradient(circle at var(--lx) var(--ly),#edb64b0c,transparent calc(var(--radius)*.78));opacity:0}body[data-mode=exploring] #lightWash,body[data-mode=igniting] #lightWash{opacity:1}body[data-mode=panorama] #darkness{opacity:0}body[data-mode=panorama] #lightWash{opacity:0}#markers{z-index:4;pointer-events:none}.marker{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:7px;opacity:0;transition:opacity .25s;color:#fff2d1;filter:drop-shadow(0 2px 5px #000);white-space:nowrap}.marker i{display:block;width:9px;height:9px;transform:rotate(45deg);background:#d8b874;border:1px solid #fae5b4;box-shadow:0 0 0 7px #ccb07922}.marker span{font-size:14px;letter-spacing:.08em}.marker.seen i{background:#ece1c9;box-shadow:0 0 0 6px #e5dcc01b}.marker.near i{box-shadow:0 0 0 12px #f9d6952b}
#lampPosition{position:absolute;z-index:8;touch-action:none;will-change:left,top}#lamp{position:absolute;width:var(--lamp-w);height:calc(var(--lamp-w)*1.5);left:calc(var(--lamp-w)*var(--wick-x)*-1);top:calc(var(--lamp-w)*1.5*var(--wick-y)*-1);padding:0;background:none;touch-action:none;user-select:none;cursor:grab;filter:drop-shadow(0 8px 13px #0009)}#lamp:active{cursor:grabbing}#lampImage{width:100%;height:100%;pointer-events:none;user-select:none}#lamp:disabled{opacity:1}.lamp-ring{position:absolute;left:calc(var(--wick-x)*100% - 23px);top:calc(var(--wick-y)*100% - 23px);width:46px;height:46px;border:1px solid #e9d19c77;border-radius:50%;animation:beckon 2.6s ease-in-out infinite}body:not([data-mode=unlit]) .lamp-ring{display:none}#lampPrompt{position:absolute;top:126px;left:0;transform:translateX(-50%);white-space:nowrap;font-size:14px;letter-spacing:.12em;color:#dbc49d;text-shadow:0 2px 6px #000;pointer-events:none}body:not([data-mode=unlit]) #lampPrompt{display:none}#flame{position:absolute;bottom:-2px;left:-16px;width:32px;height:43px;overflow:hidden;pointer-events:none;opacity:0;filter:drop-shadow(0 0 8px #ffb144) drop-shadow(0 0 22px #f7982344);transform-origin:50% 100%}#flame img{position:absolute;height:43px;width:256px;max-width:none;animation:flameFrames .7s steps(8) infinite}body[data-mode=igniting] #flame,body[data-mode=exploring] #flame,body[data-mode=panorama] #flame{opacity:1;animation:flameLive 1.3s ease-in-out infinite alternate}@keyframes flameFrames{to{transform:translateX(-256px)}}@keyframes flameLive{from{transform:scale(.95,1)}to{transform:scale(1.04,.94)}}@keyframes beckon{50%{box-shadow:0 0 0 14px #ceb27800;border-color:#eeddbfcc}0%,100%{box-shadow:0 0 0 1px #ceb27844}}
.topbar{position:absolute;z-index:12;left:0;right:0;top:0;padding:28px 36px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#100e0bce,transparent);pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:16px;color:var(--paper)}.brand strong{font-family:"Noto Serif SC","Songti SC","SimSun",serif;font-size:25px;letter-spacing:.15em;font-weight:500}.brand small{display:block;font-size:12px;letter-spacing:.15em;color:#c5bba9;margin-top:8px}.seal{writing-mode:vertical-rl;background:#793831;color:#eed6bf;padding:8px 5px;border:1px solid #b36d55;font-family:serif;font-size:14px;letter-spacing:.13em}.topbar nav{display:flex;gap:10px}.icon-button{font-size:14px;background:#1c1810a1;border:1px solid #d2ba8240;border-radius:2px;padding:10px 13px;min-height:42px;backdrop-filter:blur(8px)}.icon-button:hover{background:#463822cf}.intro{position:absolute;left:9vw;top:30%;z-index:6;pointer-events:none;transition:opacity .5s,transform .5s}.eyebrow{font-size:13px;letter-spacing:.18em;color:var(--gold)}h1,h2,h3{font-family:"Noto Serif SC","Songti SC","SimSun",serif;font-weight:500}.intro h1{font-size:clamp(36px,4.4vw,66px);line-height:1.35;letter-spacing:.1em;margin:22px 0}.intro p{font-size:16px;line-height:2;color:#c4b9a5}.intro-rule{display:block;width:40px;height:1px;background:#977c52;margin:24px 0}.quiet{font-size:12px;color:#887f70;letter-spacing:.07em}body[data-mode=igniting] .intro,body[data-mode=exploring] .intro,body[data-mode=panorama] .intro{opacity:0;transform:translateY(-12px)}body[data-mode=loading] .intro{opacity:.4}
.bottom-bar{position:absolute;bottom:0;left:0;right:0;z-index:12;padding:30px 36px max(27px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;background:linear-gradient(transparent,#100e0bf2);gap:20px;pointer-events:none}.bottom-bar>*{pointer-events:auto}.step-label{display:flex;gap:17px;align-items:center}.step-number{font-family:Georgia,serif;color:var(--gold);font-size:34px;font-weight:400;border-right:1px solid #bfa6754a;padding-right:18px}.step-label strong{display:block;font-size:16px;letter-spacing:.07em;font-weight:400}.step-label small{display:block;color:#ac9f89;font-size:13px;margin-top:7px}.primary-button{padding:16px 25px;border:1px solid #bfa473;background:#c0a372;color:#17120b;font-size:16px;letter-spacing:.08em;display:flex;align-items:center;gap:38px;min-height:52px;transition:.2s}.primary-button:hover:not(:disabled){background:#e3c792}.primary-button:disabled{background:#332b20;color:#a99a80;border-color:#9d865a44;opacity:.6}.primary-button span:last-child{font-size:21px}.guide{position:absolute;z-index:10;left:36px;top:140px;width:278px;padding:18px 20px 12px;background:#17130fc7;backdrop-filter:blur(14px);border-left:2px solid #a48b59;box-shadow:0 8px 32px #0002}.guide-heading{display:flex;justify-content:space-between;align-items:center;gap:14px}.guide-heading>span:first-child{font-size:15px;letter-spacing:.08em}.guide-heading>span:last-child{font-size:12px;color:var(--muted)}.guide p{font-size:14px;line-height:1.8;margin:12px 0;color:var(--muted)}.progress-track{height:2px;background:#bba37122;margin:14px 0 5px}.progress-track i{display:block;height:100%;background:#c6ad73;width:0;transition:width .5s}.text-button{font-size:13px;background:transparent;color:var(--gold);padding:9px 0;min-height:38px}.text-button span{margin-left:15px}.discovery{position:absolute;z-index:9;pointer-events:none;display:none;transform:translate(-50%,-50%);text-align:center}.discovery svg{width:48px;height:48px;transform:rotate(-90deg);display:block;margin:auto}.discovery circle{fill:none;stroke:#ddbd7433;stroke-width:2}.discovery circle+circle{stroke:#eed49b;stroke-dasharray:132;stroke-dashoffset:132}.discovery span{display:block;font-size:12px;color:#ffe2ac;white-space:nowrap;text-shadow:0 1px 3px #000;margin-top:5px}
.story{position:absolute;z-index:15;right:36px;top:126px;width:360px;max-height:calc(100dvh - 260px);overflow:auto;background:#201b15ed;backdrop-filter:blur(20px);padding:28px 27px 20px;border:1px solid #c4aa723f;box-shadow:0 14px 70px #0006;animation:reveal .4s ease}.story h2{font-size:30px;letter-spacing:.06em;margin:15px 0}.story>p{font-size:15px;line-height:1.95;color:#d4c9b7;margin:0}.story-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:13px}.story-meta>span{font-size:12px;color:#998c77}.close{position:absolute;top:12px;right:13px;width:36px;height:36px;font-size:28px;background:none;color:#b5a58b;line-height:1;z-index:2}details{border-top:1px solid #c9ab6b2b;padding-top:10px;margin-top:5px}summary{cursor:pointer;font-size:12px;color:#b19b76;padding:3px 0}details p,details a{font-size:12px;line-height:1.8}details p{color:#ab9d87}details a{display:block;margin:6px 0}.hidden{display:none!important}#loading{position:absolute;z-index:20;left:50%;top:55%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;background:#171410dd;padding:18px 22px;color:#c9bda5;font-size:14px;max-width:85vw}#retry{padding:8px;color:var(--gold);background:#493b25}.spinner{width:17px;height:17px;border:1px solid #be9f5433;border-top-color:#e8cc8e;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}#toast{position:absolute;z-index:30;bottom:132px;left:50%;transform:translateX(-50%);max-width:85vw;text-align:center;background:#292216ec;color:#eed9af;border:1px solid #aa8d4d55;padding:12px 20px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}
dialog{color:var(--paper);background:#201c17;border:1px solid #766246;width:min(660px,90vw);max-height:83dvh;padding:38px 42px;box-shadow:0 30px 100px #000a}dialog::backdrop{background:#070605bd;backdrop-filter:blur(5px)}dialog h2{font-size:29px;line-height:1.5;margin:20px 0}dialog h3{font-size:19px;margin-top:28px}dialog p{font-size:14px;line-height:1.9;color:#bcae97}.howto{padding:0;list-style:none;counter-reset:step}.howto li{display:grid;grid-template-columns:55px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid #a486522b}.howto b{font-weight:400;color:#dfc596;letter-spacing:.13em}.howto span{font-size:14px;line-height:1.8;color:#c5b89f}.about-note{font-size:13px!important}#sourceList a{font-size:14px;display:block;line-height:1.6;margin:12px 0}#sourceList small{display:block;color:#a2937e;font-size:12px;margin-top:4px}.credit{font-size:12px!important;border-top:1px solid #aa91513b;padding-top:15px}.reset-button{background:none;border:1px solid #967e53;color:#cdb587;padding:12px 20px;font-size:14px;margin-top:12px}noscript{position:fixed;top:45%;left:10%;width:80%;z-index:100;padding:30px;background:#241a10}.pnlm-load-box,.pnlm-panorama-info{display:none!important}.pnlm-container{font-family:inherit}.pnlm-about-msg{display:none!important}.pnlm-grab{cursor:grab}.pnlm-dragfix{cursor:grab}
@media(min-width:1600px){:root{--lamp-w:130px}.guide{top:155px}.story{width:395px}.story>p{font-size:16px}}
@media(max-width:700px){:root{--lamp-w:104px}.topbar{padding:20px 19px}.brand{gap:9px}.brand strong{font-size:20px;letter-spacing:.08em}.brand small{display:none}.seal{font-size:12px;padding:5px 3px}.topbar nav{gap:6px}.icon-button{padding:8px;font-size:12px;min-height:37px}.intro{left:27px;top:19%}.intro h1{font-size:38px;margin:18px 0;line-height:1.35}.intro p{font-size:14px;line-height:1.9}.intro-rule,.intro .quiet{display:none}.bottom-bar{padding:25px 20px max(24px,env(safe-area-inset-bottom));align-items:center;gap:12px}.step-number{font-size:25px;padding-right:11px}.step-label{gap:10px}.step-label strong{font-size:14px}.step-label small{font-size:11px;line-height:1.6;max-width:142px}.primary-button{padding:12px 14px;gap:14px;font-size:14px;min-height:47px;white-space:nowrap}.guide{left:19px;top:91px;width:255px;padding:13px 16px 7px}.guide p{font-size:12px;line-height:1.7;margin:7px 0}.guide-heading>span:first-child{font-size:14px}.progress-track{margin-top:9px}.guide .text-button{font-size:12px}.story{left:14px;right:14px;top:auto;bottom:103px;width:auto;max-height:42dvh;padding:23px 22px 14px}.story h2{font-size:25px;margin:10px 0}.story>p{font-size:14px;line-height:1.85}.story .eyebrow{font-size:12px}.story details{margin-top:0}.story-meta{margin-top:7px}.marker span{font-size:12px}.marker{gap:6px}.marker i{width:7px;height:7px}#lampPrompt{top:117px;font-size:13px}dialog{padding:30px 23px;width:92vw}dialog h2{font-size:25px}.discovery span{font-size:11px}#toast{bottom:111px;font-size:13px;padding:11px 16px}.guide:has(~.story:not(.hidden)){opacity:.5}}
@media(max-height:520px) and (orientation:landscape){.topbar{padding:12px 22px}.brand strong{font-size:20px}.brand small{display:none}.intro{top:20%;left:8%}.intro h1{font-size:34px;margin:15px 0}.intro p{font-size:13px}.intro-rule,.intro .quiet{display:none}.bottom-bar{padding:18px 23px}.step-label small{display:none}.guide{top:77px;width:228px;left:22px;padding:11px 14px}.guide p{font-size:12px;line-height:1.6}.story{top:72px;bottom:85px;right:22px;left:auto;width:320px;max-height:calc(100dvh - 157px);padding:21px}.story>p{font-size:13px}.story h2{font-size:25px}.primary-button{padding:10px 17px;min-height:42px}:root{--lamp-w:88px}#lampPrompt{top:98px}.brand .seal{font-size:12px;padding:4px}.icon-button{padding:7px 10px;min-height:35px}}
html,body,#experience{overflow:clip}#markers{overflow:clip}body[data-mode=loading] #panorama,body[data-mode=unlit] #panorama{pointer-events:none}.story.on-left{left:36px;right:auto}.guide.story-open{visibility:hidden}
@media(max-width:700px){.story.on-left{left:14px;right:14px}.story.on-top{top:90px;bottom:auto;max-height:38dvh}.guide.story-open{visibility:hidden}}
@media(max-height:520px) and (orientation:landscape){.story.on-left{left:22px;right:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
