:root{--ink:#f3ece2;--muted:rgba(243,236,226,.72);--line:rgba(243,236,226,.28);--gold:#e9c99a;--bg:#0b0e14;--core:#fff;--serif:'Cormorant','Noto Serif SC',Georgia,serif;--sans:'Geologica','Noto Sans SC',system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%}body{margin:0;font:300 17px/1.6 var(--sans);background:radial-gradient(120% 80% at 50% 0%,#2b3242 0%,#0b0e14 60%);min-height:100vh}a{color:inherit}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}svg .gloss{pointer-events:none}.brand svg,.final-card>svg{color:var(--ink)}.top{position:relative;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px clamp(16px,4vw,40px)}.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font:500 22px/1 var(--serif);letter-spacing:.02em}.brand svg{width:34px;height:34px}.langs{display:flex;gap:4px;font:400 13px/1 var(--sans)}.langs a{text-decoration:none;padding:7px 9px;border-radius:999px;color:var(--muted)}.langs a[aria-current]{color:var(--bg);background:var(--ink)}.intro{text-align:center;padding:12vh 16px 8vh}.intro-line{font:italic 400 clamp(22px,3.2vw,34px)/1.35 var(--serif);margin:0 auto 14px;max-width:900px;color:var(--muted)}.intro-title h1{font:500 clamp(64px,13vw,190px)/.9 var(--serif);margin:6vh 0 12px;letter-spacing:-.01em}.intro-title .t2{font-style:italic;font-weight:400}.intro-sub{font:400 clamp(18px,2.2vw,26px)/1.3 var(--serif);color:var(--gold);margin:0}.enter,.skip,.titles,.spots,.dots,.panel,.hint,.controls,.track{display:none}.story-text{max-width:980px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}.chap{padding:9vh 0 4vh;border-top:1px solid var(--line)}.chap-num{font:italic 400 20px/1 var(--serif);color:var(--gold);margin:0 0 8px}.chap h2,.final h2{font:500 clamp(40px,6vw,76px)/1 var(--serif);margin:0 0 14px}.chap .lead,.final .lead{font:400 clamp(19px,2vw,24px)/1.4 var(--serif);color:var(--muted);margin:0 0 30px;max-width:720px}.chap ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.spot-data{border:1px solid var(--line);border-radius:18px;padding:22px;background:rgba(255,255,255,.03)}.spot-data h3,.panel-body h3{font:500 28px/1.1 var(--serif);margin:0 0 10px;color:var(--c,var(--ink))}.spot-data p,.panel-body p{margin:0 0 12px}.where{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;margin:14px 0 0}.facts dt{font:500 34px/1 var(--serif);color:var(--gold)}.facts dd{margin:4px 0 0;font-size:14px;color:var(--muted)}.go{display:inline-block;margin-top:6px;text-decoration:none;border-bottom:1px solid var(--gold);color:var(--gold);padding-bottom:2px}.final{padding:10vh 16px 14vh}.final-card{max-width:640px;margin:0 auto;text-align:center}.final-card>svg{width:64px;height:64px;margin-bottom:12px}.final dl{display:grid;gap:10px;margin:0 auto 30px;max-width:420px;text-align:left}.final dl div{display:flex;gap:14px;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:10px}.final dt{color:var(--gold);width:20px;text-align:center}.final dd{margin:0;font:400 20px/1.3 var(--serif)}.final dd a{text-decoration:none}.final-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 26px;border-radius:999px;border:1px solid var(--line);text-decoration:none;font:400 16px/1 var(--sans);backdrop-filter:blur(6px);background:rgba(10,12,18,.35)}.btn--solid{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:500}.is3d body{background:#000}.is3d .story3d{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0}.is3d .track{display:block}.is3d .top{position:fixed;inset:0 0 auto}.is3d .grain{position:fixed;inset:-50%;z-index:20;pointer-events:none;opacity:.09;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.is3d .vignette{position:fixed;inset:0;z-index:19;pointer-events:none;background:radial-gradient(130% 95% at 50% 45%,transparent 55%,rgba(0,0,0,.55) 100%)}.is3d .story-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.is3d .intro{position:fixed;inset:0;z-index:25;display:grid;place-items:center;padding:0 20px;background:linear-gradient(180deg,rgba(8,10,16,.35),rgba(8,10,16,.1) 50%,rgba(8,10,16,.5));transition:opacity 1.6s ease,visibility 1.6s}.is3d .intro.gone{opacity:0;visibility:hidden;pointer-events:none}.is3d .intro-lines,.is3d .intro-title{grid-area:1 / 1}.is3d .intro-line{position:absolute;left:50%;top:50%;width:min(1000px,92vw);transform:translate(-50%,-40%);margin:0;color:var(--ink);font-size:clamp(26px,3.6vw,52px);opacity:0;filter:blur(8px);transition:opacity 1.4s ease,filter 1.4s ease,transform 1.8s ease;text-shadow:0 2px 30px rgba(0,0,0,.45)}.is3d .intro-line.on{opacity:1;filter:none;transform:translate(-50%,-50%)}.is3d .intro-title{opacity:0;transform:scale(1.04);transition:opacity 2s ease,transform 2.6s ease;pointer-events:none}.is3d .intro-title.on{opacity:1;transform:none;pointer-events:auto}.is3d .intro-title h1{margin-top:0;text-shadow:0 4px 60px rgba(0,0,0,.4)}.is3d .enter{display:grid;place-items:center;width:120px;height:120px;margin:5vh auto 0;position:relative;font:400 22px/1 var(--serif);letter-spacing:.08em;text-transform:uppercase}.enter svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--gold);stroke-width:1;transition:transform 1.2s ease}.enter svg circle:first-child{stroke-opacity:.4}.enter:hover svg{transform:scale(1.08) rotate(20deg)}.is3d .skip{display:block;position:fixed;right:clamp(16px,4vw,40px);bottom:28px;font:400 14px/1 var(--sans);color:var(--muted);letter-spacing:.06em;padding:10px 4px;border-bottom:1px solid var(--line)}.is3d .intro-title.on ~ .skip{opacity:0;pointer-events:none}.is3d:not(.entered) .dots,.is3d:not(.entered) .hint,.is3d:not(.entered) .spots,.is3d:not(.entered) .titles{opacity:0!important;pointer-events:none}.is3d:not(.entered) body{overflow:hidden}.is3d .titles{display:block;position:fixed;inset:0;z-index:10;pointer-events:none}.ch-title{position:absolute;left:50%;top:50%;width:min(1100px,92vw);text-align:center;transform:translate(-50%,-50%);opacity:0;text-shadow:0 2px 40px rgba(0,0,0,.55);will-change:opacity,transform}.ch-title .num{display:block;font:italic 400 22px/1 var(--serif);color:var(--gold);margin-bottom:8px}.ch-title h2{font:italic 400 clamp(56px,10vw,150px)/.95 var(--serif);margin:0}.ch-title p{font:400 clamp(19px,2vw,26px)/1.35 var(--serif);max-width:720px;margin:14px auto 0;color:var(--ink)}.ch-title small{display:block;margin-top:18px;font:400 13px/1 var(--sans);letter-spacing:.08em;color:var(--muted)}.is3d .spots{display:block;position:fixed;inset:0;z-index:12;pointer-events:none}.spot{position:absolute;left:0;top:0;width:64px;height:64px;margin:-32px 0 0 -32px;display:grid;place-items:center;pointer-events:auto;opacity:0;transition:opacity .6s ease;will-change:transform,opacity}.spot svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--sc,var(--gold));stroke-width:1.2;transition:transform .8s ease}.spot .n{font:500 22px/1 var(--serif);color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.6)}.spot::before{content:'';position:absolute;inset:12px;border-radius:50%;background:rgba(15,12,10,.38);backdrop-filter:blur(3px)}.spot .lbl{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:6px;white-space:nowrap;font:400 15px/1.2 var(--serif);color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.8);opacity:.9}.spot:hover svg,.spot.active svg{transform:rotate(30deg) scale(1.08)}.spot.hidden{pointer-events:none}.is3d .panel{display:block;position:fixed;z-index:28;right:clamp(12px,3vw,32px);top:50%;transform:translate(30px,-50%);opacity:0;width:min(420px,calc(100vw - 24px));max-height:78vh;overflow:auto;padding:30px 28px 26px;border-radius:22px;background:rgba(14,12,12,.72);backdrop-filter:blur(18px) saturate(1.1);border:1px solid rgba(233,201,154,.25);transition:opacity .5s ease,transform .6s ease}.is3d .panel.on{opacity:1;transform:translate(0,-50%)}.panel[hidden]{display:none!important}.panel-close{position:absolute;right:14px;top:14px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center}.panel-close svg{width:16px;height:16px;stroke:var(--ink);stroke-width:1.6}.panel-kicker{font:400 13px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}.panel-body h3{font-size:36px}.is3d .dots{display:flex;flex-direction:column;gap:18px;position:fixed;z-index:15;right:clamp(14px,2.4vw,30px);top:50%;transform:translateY(-50%);transition:opacity .6s}.dots button{width:14px;height:14px;border-radius:50%;position:relative;display:grid;place-items:center}.dots button::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--ink);opacity:.55;transition:all .5s}.dots button.on::before{width:12px;height:12px;opacity:1;background:transparent;border:1.5px solid var(--gold);box-shadow:inset 0 0 0 2.5px rgba(0,0,0,.2),0 0 0 0 transparent}.dots span{position:absolute;right:24px;white-space:nowrap;font:400 16px/1 var(--serif);opacity:0;transform:translateX(6px);transition:all .4s;pointer-events:none;text-shadow:0 1px 10px rgba(0,0,0,.7)}.dots button:hover span,.dots button:focus-visible span{opacity:1;transform:none}.is3d .hint{display:flex;flex-direction:column;align-items:center;gap:8px;position:fixed;z-index:15;left:50%;bottom:26px;transform:translateX(-50%);font:400 13px/1 var(--sans);letter-spacing:.06em;color:var(--muted);transition:opacity .8s}.hint svg{width:22px;height:22px;fill:none;stroke:var(--gold);stroke-width:1.4}.hint.off{opacity:0}.is3d .controls{display:flex;position:fixed;z-index:26;left:clamp(16px,4vw,40px);bottom:22px}.sound{width:48px;height:48px;border-radius:50%;border:1px solid rgba(233,201,154,.5);display:grid;place-items:center;backdrop-filter:blur(6px);background:rgba(10,12,18,.25)}.sound svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.sound .wave{display:none}.sound[aria-pressed='true'] .wave{display:block}.sound[aria-pressed='true'] .mute{display:none}.is3d .final{position:fixed;inset:0;z-index:14;display:grid;place-items:center start;padding:80px 16px 80px clamp(16px,6vw,90px);opacity:0;visibility:hidden;transition:opacity .8s,visibility .8s}.is3d .final.on{opacity:1;visibility:visible}.is3d .final-card{max-width:520px;margin:0;padding:34px clamp(20px,4vw,44px);border-radius:26px;background:rgba(10,12,18,.55);backdrop-filter:blur(14px);border:1px solid rgba(233,201,154,.22)}.lang-zh .intro-line,.lang-zh .ch-title h2,.lang-zh .intro-title h1{font-style:normal}.lang-zh .ch-title h2{font-family:'Noto Serif SC',var(--serif);font-weight:600;font-size:clamp(44px,7vw,100px)}.lang-zh .intro-line{font-family:'Noto Serif SC',var(--serif)}.is3d .final h2{font-size:clamp(36px,4.2vw,58px)}.is3d .final-card>svg{width:48px;height:48px}.is3d .final .lead{margin-bottom:22px}@media (max-width:760px){.is3d .final{place-items:end center;padding:80px 12px 90px}.is3d .final-card{max-width:none}.langs a{padding:6px 7px;font-size:12px}.brand span{display:none}.ch-title h2{font-size:clamp(46px,14vw,80px)}.is3d .panel{top:auto;bottom:12px;right:12px;left:12px;width:auto;transform:translateY(30px);max-height:62vh}.is3d .panel.on{transform:none}.is3d .dots{right:8px;gap:14px}.spot{width:52px;height:52px;margin:-26px 0 0 -26px}.spot .lbl{font-size:13px}.is3d .skip{bottom:22px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}