@import url('');
:root{--ink:#0b1715;--paper:#efe4c9;--gold:#d3b575;--dim:#a6aaa0;--line:#d3b57540;--serif:'STZhongsong','Songti SC','SimSun',serif}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper);font-family:'Microsoft YaHei',sans-serif;font-size:14px}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #f4d995;outline-offset:5px}button{border:0}button[hidden],[hidden]{display:none!important}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400}.grain{position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.masthead{position:absolute;z-index:30;top:0;width:100%;height:100px;padding:26px 4%;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(#06120dbb,transparent)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;font:22px var(--serif);letter-spacing:.14em}.brand small{display:block;font:8px sans-serif;letter-spacing:.22em;margin-top:8px;color:var(--gold)}.seal{background:#883d2f;border:1px solid #ce997577;padding:8px;font:25px var(--serif);outline:1px solid #883d2f;outline-offset:3px}.header-actions{display:flex;gap:12px}.header-actions button,.quiet{background:#10201b66;border:1px solid var(--line);padding:10px 15px;border-radius:2px;color:#ddd4be;font-size:11px;letter-spacing:.12em}.eyebrow{font-size:10px;letter-spacing:.27em;color:var(--gold);text-transform:uppercase;line-height:1.8}.hero,.scene,.map{min-height:100svh;position:relative;overflow:hidden}.hero{display:grid;grid-template-columns:1.35fr 1fr;align-items:center;padding:140px 9% 90px;background:linear-gradient(90deg,#07171430,#071714b0 55%,#071714ed),url('assets/xiangxi-map.png') center/cover}.hero-copy{max-width:600px}.hero h1{font-size:clamp(50px,6.7vw,94px);line-height:1.3;letter-spacing:.1em;margin:28px 0}.hero h1 em{font-style:normal;color:var(--gold)}.hero-copy>p{color:#d9d8c7;line-height:2.2;font-family:var(--serif);letter-spacing:.12em}.login-card{width:100%;max-width:370px;justify-self:end;padding:40px 0 30px 40px;border-left:1px solid var(--line)}.login-card h2{font-size:30px;letter-spacing:.2em;margin:20px 0 12px}.subtle{color:var(--dim);font-size:12px;line-height:1.9}.field{display:block;margin:24px 0;color:#d1c9b6;font-size:11px;letter-spacing:.15em}.field input{display:block;width:100%;background:#06161266;border:0;border-bottom:1px solid #d3b57555;padding:13px 3px;color:var(--paper);margin-top:6px;outline-offset:2px}.primary{padding:17px 23px;background:var(--gold);color:#13231c;letter-spacing:.14em;border:1px solid var(--gold);transition:.2s}.primary:hover{background:#f0d69d;box-shadow:0 4px 30px #d3b57522;transform:translateY(-2px)}.login-card .primary{width:100%;margin:10px 0 20px}.footer-note{position:absolute;bottom:24px;left:4%;right:4%;display:flex;justify-content:space-between;font-size:9px;color:#a9b5a1;letter-spacing:.18em}.scene{display:flex;flex-direction:column;justify-content:flex-end;padding:120px 7% 38px;background:#101b17}.scene-bg{position:absolute;inset:0;background-size:cover;background-position:center;animation:breathe-scene 22s ease-out both}.scene-bg.atlas{background-size:200% 200%;animation:none}.scene:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#06120e50 0%,transparent 30%,#08161060 48%,#091410ed 83%,#091410)}.scene-title{position:absolute;z-index:2;top:145px;left:7%;text-shadow:0 3px 22px #000}.scene-title h1{font-size:clamp(38px,4.8vw,68px);letter-spacing:.13em;margin:10px 0}.scene-title p{font-family:var(--serif);color:#e8dcc2;letter-spacing:.2em}.scene-content{z-index:3;width:min(720px,100%);position:relative;margin-top:260px}.speaker{font-family:var(--serif);font-size:15px;color:var(--gold);display:flex;align-items:center;gap:14px;margin-bottom:14px}.speaker:before{content:'';width:28px;height:1px;background:var(--gold)}.dialogue{font:clamp(17px,1.5vw,22px)/1.9 var(--serif);letter-spacing:.055em;min-height:80px;margin-bottom:22px;white-space:pre-line}.choices{display:grid;gap:10px;max-width:620px}.choice{display:flex;align-items:center;justify-content:space-between;text-align:left;gap:15px;padding:16px 22px;background:#152a22b8;border:1px solid #d7c49655;backdrop-filter:blur(12px);font-family:var(--serif);font-size:16px;transition:.25s}.choice:hover{border-color:var(--gold);background:#38503be0;transform:translateX(5px)}.choice span:first-child{color:var(--gold);font:10px sans-serif;margin-right:6px}.choice b{font-weight:400;flex:1}.choice small{color:var(--gold)}.scene-bottom{position:relative;z-index:3;display:flex;justify-content:space-between;gap:20px;margin-top:28px;font-size:10px;color:#d3c6a5;letter-spacing:.15em}.steps{display:flex;gap:7px}.steps i{width:28px;height:2px;background:#b5aa9250}.steps i.active{background:var(--gold)}.scene-side{position:absolute;z-index:3;right:6%;top:44%;writing-mode:vertical-rl;font:14px var(--serif);letter-spacing:.35em;color:#e7d7b6a0}.motes{position:absolute;inset:0;pointer-events:none;z-index:2}.motes i{position:absolute;width:3px;height:3px;border-radius:50%;background:#ffdb87;box-shadow:0 0 15px 3px #e5bd6840;animation:float 7s infinite alternate;opacity:.6}.awakening .scene-bg{animation:wake-focus 5.2s both}.awakening .scene-title{animation:wake-text 5.2s both}.awakening .scene-content{animation:appear 1s 4.1s both}#eyelids{position:fixed;inset:0;pointer-events:none;z-index:80;display:none}#eyelids.play{display:block}#eyelids i{position:absolute;left:-10%;width:120%;height:56%;background:#020504;border-radius:0 0 50% 50%;top:-60%}#eyelids i+ i{top:auto;bottom:-60%;border-radius:50% 50% 0 0}#eyelids.play i:first-child{animation:blink-top 5s both}#eyelids.play i:last-child{animation:blink-bottom 5s both}.interaction{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}.object{background:#243a2ba8;border:1px solid var(--gold);border-radius:50%;width:80px;height:80px;font:28px var(--serif);box-shadow:0 0 40px #d3b5751c;transition:.3s}.object:hover{transform:scale(1.08);box-shadow:0 0 30px #d3b57560}.object.found{background:var(--gold);color:var(--ink)}.object-wrap{text-align:center;font-size:10px;color:#d8c9a6}.object-wrap small{display:block;margin-top:8px}.memory-reveal{border-left:2px solid var(--gold);padding:12px 20px;background:#142b2077;margin:0 0 20px;color:#e6d3a8;line-height:1.9;animation:appear .7s both}.map{height:100svh;min-height:720px;background:#102922 url('assets/xiangxi-map.png') center/cover}.map:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#061a17e6 0%,#071b1770 28%,#07191505 55%,#07191545),linear-gradient(0deg,#061a17c0,transparent 32%,transparent 70%,#07171588);pointer-events:none}.map-intro{position:absolute;top:145px;left:4%;width:250px;z-index:2}.map-intro h1{font-size:42px;line-height:1.4;letter-spacing:.12em}.map-intro p{line-height:2;color:#d4d8c1;font-size:12px}.map-intro .eyebrow{font-size:9px}.map-pin{position:absolute;z-index:5;transform:translate(-50%,-50%);background:transparent;text-align:center;padding:10px;color:#fff0cc;white-space:nowrap;text-shadow:0 2px 8px #000}.map-pin .pin{display:block;margin:0 auto 13px;width:21px;height:21px;background:#b88848;border:4px solid #f4d58f;transform:rotate(45deg);box-shadow:0 0 0 9px #dbbc6330,0 0 30px #ebc76b88}.map-pin:hover .pin{background:#fff;box-shadow:0 0 0 15px #dbbc6330,0 0 40px #ebc76b}.map-pin strong{font:21px var(--serif);letter-spacing:.08em;background:#142c2490;padding:4px 9px;border-radius:2px}.map-pin small{display:block;margin-top:8px;color:#efd99d;font-size:10px;letter-spacing:.16em}.map-pin.done .pin{background:#83c2a7;border-color:#d6eed3}.map-pin.selected .pin{box-shadow:0 0 0 12px #e7d89e50,0 0 50px #f1d178}.map-bottom{position:absolute;bottom:26px;left:4%;right:4%;display:flex;align-items:end;justify-content:space-between;gap:25px;z-index:6}.map-bottom p{font-size:11px;line-height:1.9;color:#c9d0b9;margin:0}.map-card{position:absolute;right:4%;top:125px;width:275px;padding:24px;background:#0b201cde;border:1px solid var(--line);backdrop-filter:blur(20px);z-index:10;box-shadow:0 20px 70px #0004}.map-card h2{font-size:29px;letter-spacing:.1em;margin:10px 0 14px}.map-card p{font-size:12px;line-height:2;color:#d2d4bf}.map-card .primary{width:100%;font-size:12px}.map-card .quiet{margin-top:10px;width:100%}.map-routes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.route-line{fill:none;stroke:#edc76d;stroke-width:2;filter:drop-shadow(0 0 5px #ffd26b);opacity:.75}.route-line.current{stroke-width:3;opacity:1}.traveler{position:absolute;width:46px;height:85px;z-index:7;pointer-events:none;transform:translate(-50%,-100%);background:url('assets/drama/characters-cutout.png') left center/300% 100%;filter:drop-shadow(0 8px 5px #0009)}.traveler.walking{animation:walk .32s infinite alternate}.travel-status{position:absolute;bottom:125px;left:50%;transform:translateX(-50%);z-index:9;padding:13px 25px;background:#0a211be8;border:1px solid var(--line);color:var(--gold);font-size:13px;white-space:nowrap}.plan-list{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.plan-list span{padding:7px;border:1px solid var(--line);font-size:11px}.plan-list button{background:transparent;color:var(--gold)}#curtains{position:fixed;inset:0;z-index:100;pointer-events:none;visibility:hidden}#curtains.active{visibility:visible}#curtains>i{position:absolute;top:0;bottom:0;width:51%;background:repeating-linear-gradient(90deg,#2d0d10 0%,#6d2727 6%,#3e1117 12%,#8a3531 18%,#330d12 24%);transition:transform .85s cubic-bezier(.7,0,.2,1);box-shadow:inset 0 0 90px #0008;transform:translateX(-100%)}#curtains>i+ i{right:0;transform:translateX(100%)}#curtains.closed>i{transform:translateX(0)}#curtains>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;opacity:0;transition:opacity .4s;color:#efd393}#curtains.closed>div{opacity:1}#curtains strong{font:45px var(--serif);letter-spacing:.25em}#curtains small{letter-spacing:.3em;font-size:11px}dialog{color:var(--paper);width:min(760px,92vw);max-height:85svh;background:#13251f;border:1px solid var(--line);padding:45px;border-radius:3px;box-shadow:0 35px 100px #0009}dialog::backdrop{background:#020e0cbd;backdrop-filter:blur(8px)}.dialog-close{position:absolute;top:10px;right:15px;background:transparent;font-size:28px;color:var(--gold)}dialog h2{font-size:32px;letter-spacing:.12em}.journal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:25px 0}.journal-item{padding:20px;border:1px solid var(--line);background:#21382b}.journal-item.locked{opacity:.45}.journal-item h3{font-size:19px;margin:10px 0}.journal-item p{font-size:12px;line-height:1.9;color:#c9cfbd}.journal-item small{color:var(--gold);font-size:10px}.detail{padding:130px 8% 60px;background:linear-gradient(#091b14c0,#091812),var(--detail-bg) center top/100% auto no-repeat;min-height:100svh}.detail h1{font-size:58px;margin:15px 0 25px;letter-spacing:.16em}.detail .lead{font:20px/2 var(--serif);max-width:750px;color:#e6d4ae}.detail-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:45px;margin:35px 0}.detail-layout img{width:100%;height:310px;object-fit:cover;border:1px solid var(--line)}.detail-layout p{font-size:14px;line-height:2.2;color:#bec8b6}.facts{display:flex;gap:35px;margin:25px 0}.facts small{display:block;color:#899c89;font-size:10px;margin-bottom:8px}.facts b{font-weight:400;color:var(--gold)}.detail-actions{display:flex;gap:12px;flex-wrap:wrap}.ending{text-align:center;align-items:center;justify-content:center;background:linear-gradient(#10251b80,#07170ee8),url('assets/xiangxi-map.png') center/cover;padding:150px 10% 80px}.ending h1{font-size:clamp(40px,6vw,80px);letter-spacing:.15em}.ending .dialogue{max-width:760px}.ending-line{color:var(--gold);font:20px/2 var(--serif)}#notice{position:fixed;z-index:130;bottom:35px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#e9d8b1;color:#14271b;padding:14px 24px;max-width:90vw;font-size:12px;transition:.3s}#notice.show{opacity:1;transform:translate(-50%,0)}.login-error{color:#efb6a0;min-height:15px;font-size:11px}.badge{display:inline-block;border:1px solid var(--line);padding:6px 12px;color:var(--gold);font-size:10px;letter-spacing:.12em}.skip{position:absolute;bottom:30px;right:5%;z-index:85;background:#10231a90;color:var(--gold);border:1px solid var(--line);padding:9px 16px}.page-enter{animation:appear .8s both}.puzzle-line{display:flex;gap:10px;align-items:center;margin:0 0 18px}.puzzle-line button{background:#294330;padding:14px;color:var(--gold);border:1px solid var(--line);font-family:var(--serif)}.puzzle-line button.active{background:var(--gold);color:#0b2117}.puzzle-line output{font-size:12px;color:var(--gold)}@keyframes appear{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes breathe-scene{from{transform:scale(1.02)}to{transform:scale(1.09)}}@keyframes float{to{transform:translate(25px,-100px);opacity:.15}}@keyframes walk{to{margin-top:-5px}}@keyframes wake-focus{0%{filter:blur(20px);transform:scale(1.15)}40%{filter:blur(7px)}60%{filter:blur(12px)}100%{filter:blur(0);transform:scale(1)}}@keyframes wake-text{0%,25%{filter:blur(15px);opacity:.1}55%{filter:blur(6px);opacity:.8}70%{filter:blur(9px)}100%{filter:blur(0);opacity:1}}@keyframes blink-top{0%,17%{top:0}28%{top:-37%}39%{top:0}53%{top:-47%}64%{top:-1%}83%,100%{top:-60%}}@keyframes blink-bottom{0%,17%{bottom:0}28%{bottom:-37%}39%{bottom:0}53%{bottom:-47%}64%{bottom:-1%}83%,100%{bottom:-60%}}.reduced *, .reduced *:before,.reduced *:after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important;scroll-behavior:auto!important}@media(max-width:900px){.masthead{height:80px;padding:20px 5%}.brand{font-size:17px}.brand small{font-size:6px}.header-actions{gap:5px}.header-actions button{padding:8px;font-size:9px}.hero{grid-template-columns:1fr;padding:120px 8% 75px}.hero h1{font-size:48px;margin:10px 0 20px}.hero-copy>p{font-size:12px}.login-card{justify-self:start;border-left:0;border-top:1px solid var(--line);padding:20px 0 0;max-width:420px}.login-card h2{font-size:23px;margin:10px 0}.field{margin:13px 0}.hero-copy .eyebrow{margin-bottom:5px}.scene{padding:110px 6% 25px}.scene-title{top:110px;left:6%}.scene-title h1{font-size:42px}.scene-content{margin-top:220px}.scene-side{display:none}.dialogue{font-size:18px;min-height:70px}.map-intro{top:100px;left:5%;width:230px}.map-intro h1{font-size:30px}.map-intro>p:not(.eyebrow){display:none}.map-card{top:auto;bottom:100px;right:4%;width:255px;padding:18px}.map-pin strong{font-size:16px}.map-pin small{font-size:9px}.map-bottom{bottom:22px}.map-bottom>p{max-width:140px}.detail{padding:110px 6% 40px}.detail h1{font-size:40px}.detail-layout{grid-template-columns:1fr;gap:20px}.detail-layout img{height:240px}.facts{gap:20px;flex-wrap:wrap}dialog{padding:35px 24px}.journal-grid{grid-template-columns:1fr}.map{background-position:55% center;min-height:780px}.map-pin .pin{width:16px;height:16px;border-width:3px}.footer-note{font-size:8px}.footer-note span:last-child{display:none}}@media(max-width:500px){.brand small{display:none}.header-actions button{letter-spacing:0}.scene-title h1{font-size:34px}.scene-title p{font-size:12px}.scene-content{margin-top:230px}.choice{font-size:14px;padding:14px}.scene-bottom{font-size:8px}.map-intro h1{font-size:28px}.map-card{bottom:90px;left:5%;right:5%;width:auto}.map-card p{margin-bottom:12px}.map-card h2{font-size:23px;margin:5px 0}.map-card .eyebrow{display:none}.map-card .primary{padding:12px}.map-pin strong{font-size:14px}.map-pin small{font-size:8px;letter-spacing:0}.detail-actions .primary{font-size:12px}.ending h1{font-size:38px}.dialogue{font-size:16px}.hero h1{font-size:40px}}

/* Stage 9 · immersive game pass */
.awakening:before{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(ellipse at center,transparent 20%,#02070528 52%,#010302d8 100%);animation:wake-vignette 3.6s both}.awakening .scene-bg{animation:wake-focus-v2 3.6s cubic-bezier(.2,.7,.2,1) both}.awakening .scene-title{animation:wake-text-v2 3.2s .15s both}.awakening .scene-content{animation:wake-choice-v2 1.1s 1.35s both}.awakening .choice{border-radius:999px;background:#102820c4;padding-left:26px}.wake-memory{display:flex;align-items:center;gap:18px;margin-bottom:16px;padding:12px 18px;border-left:2px solid var(--gold);background:#0a1d18aa}.wake-memory span{color:var(--gold);font:16px var(--serif);white-space:nowrap}.wake-memory small{color:#c7c8b8;line-height:1.7}#eyelids.play i:first-child{animation:blink-top-v2 3.5s both}#eyelids.play i:last-child{animation:blink-bottom-v2 3.5s both}#eyelids i{height:58%;box-shadow:0 18px 45px #000}#eyelids i+i{box-shadow:0 -18px 45px #000}.skip{position:fixed;border-radius:999px;backdrop-filter:blur(10px)}
.interaction-instruction{padding-left:14px;border-left:1px solid #d3b57588}.prop-stage{width:min(620px,100%);padding:18px 20px;margin-bottom:14px;border:1px solid #d3b57540;background:linear-gradient(135deg,#102a20d9,#071712d9);backdrop-filter:blur(12px);box-shadow:inset 0 0 60px #e9c66c08}.prop-stage>small{display:block;margin-top:12px;color:#d8c9a6;letter-spacing:.08em;line-height:1.7}.story-prop{display:block;position:relative;margin:auto;color:#ead59d;transition:.45s cubic-bezier(.2,.8,.2,1)}.ticket{width:230px;height:92px;border:1px dashed #d9b96e;background:linear-gradient(100deg,#c4a56e,#f0dfb3 45%,#b7955c);color:#173025;transform:rotate(-2deg);box-shadow:0 14px 35px #0008;transform-style:preserve-3d}.ticket:before,.ticket:after{content:'';position:absolute;top:39px;width:18px;height:18px;border-radius:50%;background:#10261d}.ticket:before{left:-10px}.ticket:after{right:-10px}.ticket span{display:block;font-size:10px;letter-spacing:.2em}.ticket b{display:block;margin-top:11px;font:18px/1.5 var(--serif)}.ticket.is-complete{transform:rotateY(180deg) rotate(2deg)}.ticket.is-complete>*{transform:rotateY(180deg)}.loom{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:10px;background:repeating-linear-gradient(0deg,#e4c77e16 0 2px,transparent 2px 10px)}.loom button{position:relative;overflow:hidden;padding:18px 10px;background:#122b37;border:1px solid #85a9b066;color:#d9ca9b;font:17px var(--serif)}.loom button i{position:absolute;inset:auto 0 0;height:3px;background:var(--gold);transform:scaleX(0);transition:.5s}.loom button.woven{background:#31536a;color:#fff}.loom button.woven i{transform:scaleX(1)}.ferry-stage{display:grid;grid-template-columns:100px 1fr;align-items:center;column-gap:25px}.ferry-stage>small{grid-column:1/-1}.rope{width:76px;height:76px;border-radius:50%;background:#18362b;border:2px solid #bd9860;box-shadow:0 0 0 8px #bd986018}.rope i{position:absolute;left:36px;top:-20px;width:4px;height:115px;background:repeating-linear-gradient(#cfa96e 0 7px,#6f4b2c 7px 12px);z-index:-1}.rope:active{transform:translateY(12px)}.ferry-meter{height:7px;background:#07120f;border:1px solid #d3b57544}.ferry-meter i{display:block;height:100%;background:linear-gradient(90deg,#94713a,#f0d07d);box-shadow:0 0 15px #eecb72;transition:.4s}.seed{width:150px;height:90px;border-radius:50% 50% 42% 42%;background:radial-gradient(ellipse at 50% 80%,#5d3e25 0 52%,#18352a 53%);border:1px solid #97784e}.seed i{position:absolute;left:50%;bottom:20px;width:12px;height:16px;border-radius:70% 30%;background:#d4b274;transition:.5s}.seed.phase-1 i{bottom:27px;background:#759f5a}.seed.phase-2 i,.seed.phase-3 i{bottom:32px;width:24px;height:32px;background:#7ca962;box-shadow:0 0 25px #dd9f4b}.seed.phase-2:after,.seed.phase-3:after{content:'✦';position:absolute;left:50%;top:8px;color:#f2b660;animation:fire-pulse .7s infinite alternate}.sentence-pieces{display:flex;gap:9px;flex-wrap:wrap}.sentence-pieces button{padding:11px 15px;background:#192f27;border:1px solid #d3b57555;color:#e2d2a9;font-family:var(--serif)}.sentence-pieces button.placed{background:var(--gold);color:#11241c;transform:translateY(-4px)}.letter-stage p{padding:16px;margin:14px 0 0;border-bottom:1px solid #d3b57555;font:17px var(--serif);color:#c9c8b5}.route-line{stroke-linecap:round}.route-line.current{animation:route-breathe 1.1s infinite alternate}.traveler.walking:after{content:'';position:absolute;left:50%;bottom:-8px;width:36px;height:10px;transform:translateX(-50%);border-radius:50%;background:#f0cd7250;filter:blur(4px)}.travel-status{border-radius:999px;box-shadow:0 8px 40px #0008,0 0 20px #edc76d20;letter-spacing:.1em}.map-pin.done strong:after{content:'  ✦';color:#aee0bb}.scene-bg.atlas{transition:background-position .8s ease}.memory-reveal{box-shadow:inset 25px 0 50px #d3b57508}
@keyframes wake-focus-v2{0%{filter:blur(28px) brightness(.25);transform:scale(1.2)}24%{filter:blur(11px) brightness(.65)}42%{filter:blur(20px) brightness(.35)}66%{filter:blur(6px) brightness(.82)}100%{filter:blur(0) brightness(1);transform:scale(1.04)}}@keyframes wake-text-v2{0%,22%{filter:blur(18px);opacity:0;letter-spacing:.35em}48%{filter:blur(8px);opacity:.65}70%{filter:blur(3px);opacity:.9}100%{filter:blur(0);opacity:1;letter-spacing:normal}}@keyframes wake-choice-v2{from{opacity:0;filter:blur(10px);transform:translateY(18px)}to{opacity:1;filter:blur(0);transform:none}}@keyframes wake-vignette{0%,32%{opacity:1}55%{opacity:.75}100%{opacity:.25}}@keyframes blink-top-v2{0%,10%{top:0}20%{top:-37%}30%{top:0}43%{top:-48%}52%{top:-4%}66%{top:-55%}75%{top:-10%}100%{top:-61%}}@keyframes blink-bottom-v2{0%,10%{bottom:0}20%{bottom:-37%}30%{bottom:0}43%{bottom:-48%}52%{bottom:-4%}66%{bottom:-55%}75%{bottom:-10%}100%{bottom:-61%}}@keyframes route-breathe{to{filter:drop-shadow(0 0 10px #ffe49a)}}@keyframes fire-pulse{to{transform:translateY(-5px);text-shadow:0 0 16px #ffb640}}
@media(max-width:600px){.prop-stage{padding:14px}.wake-memory{align-items:flex-start;flex-direction:column;gap:5px}.ferry-stage{grid-template-columns:85px 1fr}.loom button{padding:14px 6px}.sentence-pieces button{flex:1}.ticket{width:210px}.travel-status{white-space:normal;width:82%;text-align:center;bottom:128px}}

/* Stage 10 · cinematic wake, destination spectacles and in-site guide */
#eyelids{position:fixed;inset:0;z-index:80;display:none;pointer-events:none;background:transparent}
#eyelids.play{display:block}
#eyelids svg{display:block;width:100%;height:100%}
#eyelids .eye-opening{transform-box:fill-box;transform-origin:center;animation:almond-eye-open 3.55s cubic-bezier(.3,.7,.2,1) both}
.wake-shake #screen{animation:waking-camera 3.4s ease-out both}
.awakening .scene-bg{animation:wake-after-wipe 3.7s cubic-bezier(.2,.7,.2,1) both!important}
.awakening .scene-title{animation:wake-copy-after-wipe 3.5s both!important}.awakening .scene-content{animation:wake-controls-after-wipe 1s 2.7s both!important}
.scene-bg.atlas{background-size:auto 200%;background-repeat:no-repeat;background-color:#07120f;animation:none}
.spectacle{position:absolute;inset:0;z-index:8;overflow:hidden;pointer-events:none;isolation:isolate}.spectacle .effect-haze{position:absolute;inset:0;background:radial-gradient(circle at 50% 52%,#f4cb6955,transparent 25%),radial-gradient(circle at 50% 52%,transparent 15%,#06130f88 80%);animation:effect-flash 1.8s both}.spectacle>i{position:absolute;left:var(--x);bottom:-12%;font:18px var(--serif);color:#f2ce77;text-shadow:0 0 12px currentColor;animation:effect-rise 1.8s var(--delay) cubic-bezier(.2,.7,.3,1) both}.spectacle>b{position:absolute;left:50%;top:52%;width:12vmin;height:12vmin;border:1px solid #f3d17b;border-radius:50%;transform:translate(-50%,-50%);animation:arrival-ring 1.75s both}.spectacle>b:nth-of-type(2){animation-delay:.22s}.spectacle>b:nth-of-type(3){animation-delay:.44s}.arrival-shock .traveler{filter:drop-shadow(0 0 18px #ffe09c) drop-shadow(0 8px 5px #0009)}.arrival-shock{animation:arrival-camera .55s ease-out}
.spectacle-fenghuang>i{color:#e85f43;background:#7e1915aa;border-radius:50% 50% 42% 42%;padding:8px 6px;font-size:9px}.spectacle-fenghuang>b{border-color:#e8bc6b;transform:translate(-50%,-50%) scaleX(2.8) scaleY(.45)}
.spectacle-qianzhou>i{width:55px;height:36px;padding:8px;background:#ead9aa;color:#315348;box-shadow:0 4px 12px #0005;text-shadow:none;transform:rotate(calc((var(--i) - 8)*4deg))}.spectacle-qianzhou .effect-haze{background:radial-gradient(circle,#e8d8a777,transparent 42%)}
.spectacle-furong>i{width:2px;height:24vh;font-size:0;background:linear-gradient(transparent,#aeeaff,transparent);box-shadow:0 0 12px #8ee8ff;animation-name:water-fall}.spectacle-furong>b{border-color:#9ee9ff;transform:translate(-50%,-50%) scaleX(3) scaleY(.35)}
.spectacle-biancheng>i{color:#f4c66b;font-size:10px;background:#a76229;padding:9px;border-radius:50% 50% 45% 45%}.spectacle-biancheng>b{border-color:#8ed7d5;transform:translate(-50%,-50%) scaleX(3.4) scaleY(.28)}
.spectacle-shibadong>i{font-size:12px;color:#ff9c47;animation-name:ember-rise}.spectacle-shibadong .effect-haze{background:radial-gradient(circle at 50% 65%,#ff8b3644,transparent 40%)}
.spectacle-aizhai>i{font-size:13px;color:#e7f1df;animation-name:wind-cross}.spectacle-aizhai>b{border-color:#dcebdd;transform:translate(-50%,-50%) scaleX(4) scaleY(.35)}
.clue-burst{position:fixed;z-index:12}.clue-awakened .memory-reveal{animation:clue-card-awaken 1.55s both}.clue-awakened .scene-bg{animation:clue-scene-pulse 2.2s ease-out}.clue-furong .scene-bg{filter:saturate(1.25) brightness(1.08)}.clue-shibadong .scene-bg{filter:saturate(1.35) sepia(.1)}
.detail{padding:0 8% 70px;background:linear-gradient(180deg,#07171122 0,#071711dd min(55vw,720px),#071711 900px),var(--detail-bg) center top/min(100%,1600px) auto no-repeat;min-height:100svh}.detail-hero{min-height:min(68vw,720px);display:flex;flex-direction:column;justify-content:flex-end;padding:150px 0 65px;max-width:850px}.detail h1{font-size:clamp(48px,7vw,92px);text-shadow:0 8px 35px #000;margin:18px 0}.detail .facts{padding:23px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.detail-layout{align-items:start;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:6vw}.culture-copy h2{font-size:clamp(28px,3vw,45px);margin:12px 0 25px}.culture-copy h3{font-size:24px;margin-top:36px}.culture-copy p{font-size:14px;line-height:2.25;color:#c7cdbd}.culture-copy blockquote{margin:32px 0;padding:20px 25px;border-left:2px solid var(--gold);background:#d3b5750d;color:#e5cf9e;font:18px/2 var(--serif)}.culture-copy ol{list-style:none;padding:0;display:grid;gap:10px}.culture-copy li{display:grid;grid-template-columns:145px 1fr;gap:18px;padding:16px;border-bottom:1px solid var(--line)}.culture-copy li b{color:var(--gold);font-family:var(--serif)}.culture-copy li span{color:#adb8a8;font-size:12px;line-height:1.8}.detail-gallery{display:grid;gap:24px;position:sticky;top:30px}.detail-gallery figure{margin:0;border:1px solid var(--line);background:#081913;padding:9px}.detail-gallery img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain;background:#07110e}.detail-gallery figcaption{padding:11px 5px 3px;color:#9da99a;font-size:10px;line-height:1.7}.after-story{margin:85px -3% 45px;padding:45px 3%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(110deg,#183427,#0a1b17)}.after-story h2{font-size:clamp(28px,3vw,44px);margin:12px 0}.after-story>p:not(.eyebrow){color:#b8c1b2;line-height:2}.service-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:28px}.service-cards>button{display:flex;align-items:center;gap:16px;text-align:left;padding:22px 17px;background:#0b211bcc;border:1px solid #d3b57545;color:#eee2c8;transition:.3s}.service-cards>button:hover{border-color:var(--gold);transform:translateY(-5px);box-shadow:0 15px 30px #0005}.service-cards i{display:grid;place-items:center;flex:0 0 45px;height:45px;border:1px solid var(--gold);border-radius:50%;font:19px var(--serif);color:var(--gold)}.service-cards span{min-width:0}.service-cards small,.service-cards em{display:block;font-size:9px;color:#96a79a;line-height:1.6;font-style:normal}.service-cards b{display:block;margin:5px 0;font:18px var(--serif)}.detail-note{margin-top:30px;color:#778b7e;font-size:10px}.header-actions #cartBadge{display:inline-grid;place-items:center;min-width:17px;height:17px;border-radius:20px;background:var(--gold);color:#12251e;margin-left:4px;font-size:9px}.purchase-burst{position:fixed;inset:0;z-index:200;pointer-events:none;overflow:hidden}.purchase-burst i{position:absolute;left:var(--x);top:-5%;color:#b89045;font-style:normal;animation:purchase-rain 2.5s calc((var(--i)%7)*-.08s) ease-out both}
@keyframes almond-eye-open{0%,10%{transform:scaleY(.015)}20%{transform:scaleY(.48)}30%{transform:scaleY(.05)}43%{transform:scaleY(.7)}52%{transform:scaleY(.1)}68%{transform:scaleY(.88)}76%{transform:scaleY(.2)}100%{transform:scaleY(1)}}
@keyframes waking-camera{0%,12%{transform:translate(0)}16%{transform:translate(-2px,1px)}20%{transform:translate(2px,-1px)}29%{transform:translate(0)}48%{transform:translate(-1px,2px)}53%{transform:translate(2px,0)}60%,100%{transform:none}}
@keyframes wake-after-wipe{0%{filter:blur(30px) brightness(.22);transform:scale(1.18)}36%{filter:blur(18px) brightness(.38)}68%{filter:blur(8px) brightness(.7)}86%{filter:blur(3px) brightness(.9)}100%{filter:none;transform:scale(1.025)}}
@keyframes wake-copy-after-wipe{0%,45%{opacity:0;filter:blur(16px);transform:translateY(8px)}72%{opacity:.65;filter:blur(6px)}100%{opacity:1;filter:none;transform:none}}
@keyframes wake-controls-after-wipe{from{opacity:0;filter:blur(9px);transform:translateY(13px)}to{opacity:1;filter:none;transform:none}}
@keyframes effect-flash{0%{opacity:0}22%{opacity:1}75%{opacity:.8}100%{opacity:0}}@keyframes effect-rise{0%{opacity:0;transform:translateY(0) rotate(-8deg) scale(.5)}22%{opacity:1}100%{opacity:0;transform:translate(calc((var(--i) - 8)*3px),-112vh) rotate(25deg) scale(1.3)}}@keyframes arrival-ring{0%{opacity:0;transform:translate(-50%,-50%) scale(.1)}25%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(9)}}@keyframes water-fall{0%{opacity:0;transform:translateY(-60vh)}35%{opacity:1}100%{opacity:0;transform:translateY(125vh)}}@keyframes ember-rise{0%{opacity:0;transform:translateY(20vh) scale(.3)}30%{opacity:1}100%{opacity:0;transform:translateY(-95vh) translateX(calc((var(--i) - 8)*7px)) scale(1.4)}}@keyframes wind-cross{0%{opacity:0;transform:translate(-45vw,40vh) rotate(-15deg)}35%{opacity:1}100%{opacity:0;transform:translate(75vw,-35vh) rotate(25deg)}}@keyframes arrival-camera{0%{filter:brightness(1)}28%{filter:brightness(1.22)}45%{transform:translateX(-2px)}60%{transform:translateX(2px)}100%{filter:none;transform:none}}@keyframes clue-card-awaken{0%{opacity:0;filter:blur(10px);transform:scale(.94) translateY(18px)}45%{opacity:1;box-shadow:0 0 65px #d3b57565;transform:scale(1.025)}100%{filter:none;transform:none}}@keyframes clue-scene-pulse{0%{transform:scale(1.02);filter:brightness(1)}35%{transform:scale(1.07);filter:brightness(1.2) saturate(1.2)}100%{transform:scale(1.04);filter:none}}@keyframes purchase-rain{0%{opacity:0;transform:translateY(-5vh) rotate(0) scale(.7)}20%{opacity:1}100%{opacity:0;transform:translateY(110vh) rotate(380deg) scale(1.2)}}
@media(min-aspect-ratio:16/9){.scene-bg.atlas{background-size:200% auto}}
@media(max-width:900px){.detail{padding:0 6% 50px}.detail-hero{min-height:72svh}.detail-layout{grid-template-columns:1fr}.detail-gallery{position:static;grid-template-columns:1fr 1fr}.service-cards{grid-template-columns:1fr 1fr}.header-actions button[data-action="commerce-cart"]{display:none}}
@media(max-width:560px){.detail-gallery{grid-template-columns:1fr}.culture-copy li{grid-template-columns:1fr;gap:6px}.service-cards{grid-template-columns:1fr}.detail-hero{min-height:68svh}.after-story{margin-top:50px}.service-cards>button{padding:17px}.detail .facts{display:grid;grid-template-columns:1fr 1fr}.scene-bg.atlas{opacity:.82}}

.place-ambience{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}.place-ambience i,.place-ambience b{position:absolute;display:block}.ambience-fenghuang i{left:var(--x);top:15%;width:12px;height:17px;border-radius:50% 50% 45% 45%;background:#a92f24;box-shadow:0 0 18px #f06c38;animation:lantern-sway 3s calc(var(--i)*-.2s) ease-in-out infinite alternate}.ambience-fenghuang b{left:15%;right:15%;bottom:25%;height:1px;background:#efc66b55;box-shadow:0 12px 30px #eab94b;animation:water-glint 4s infinite}.ambience-qianzhou i{left:var(--x);top:-10%;width:25px;height:16px;background:#decda0aa;animation:paper-drift 9s calc(var(--i)*-.65s) linear infinite}.ambience-qianzhou b{right:8%;top:17%;width:26%;height:50%;background:linear-gradient(90deg,transparent,#d9c89512,transparent);transform:skewX(-18deg)}.ambience-furong i{left:var(--x);top:-20%;width:1px;height:45%;background:linear-gradient(transparent,#b8f0ff88,transparent);animation:ambient-rain 2.6s calc(var(--i)*-.24s) linear infinite}.ambience-furong b{left:0;right:0;bottom:18%;height:20%;background:linear-gradient(transparent,#85d8e018);filter:blur(8px);animation:mist-breathe 5s infinite alternate}.ambience-biancheng i{left:var(--x);bottom:18%;width:9px;height:12px;border-radius:50%;background:#d28a35;box-shadow:0 0 16px #ffbf55;animation:river-lantern 6s calc(var(--i)*-.5s) linear infinite}.ambience-biancheng b{left:10%;right:10%;bottom:20%;height:1px;background:#b8e2d966;box-shadow:0 16px 35px #7cc4ba;animation:water-glint 3.4s infinite}.ambience-shibadong i{left:var(--x);bottom:14%;width:4px;height:4px;border-radius:50%;background:#ff9b43;box-shadow:0 0 12px #ff6b28;animation:ambient-ember 4s calc(var(--i)*-.3s) linear infinite}.ambience-shibadong b{left:40%;bottom:6%;width:22%;height:28%;background:radial-gradient(ellipse at bottom,#f58b3438,transparent 65%);filter:blur(10px);animation:mist-breathe 1.2s infinite alternate}.ambience-aizhai i{left:-15%;top:calc(15% + var(--i)*7%);width:30%;height:1px;background:linear-gradient(90deg,transparent,#eef4df77,transparent);animation:cloud-wind 5s calc(var(--i)*-.36s) linear infinite}.ambience-aizhai b{width:40%;height:18%;border-radius:50%;background:#e9f0df13;filter:blur(18px);animation:cloud-float 12s linear infinite}.ambience-aizhai b+ b{top:45%;animation-delay:-6s}
@keyframes lantern-sway{to{transform:translateY(8px) rotate(5deg);filter:brightness(1.3)}}@keyframes water-glint{50%{opacity:.25;transform:scaleX(.75)}}@keyframes paper-drift{to{transform:translate(14vw,120vh) rotate(260deg)}}@keyframes ambient-rain{to{transform:translateY(145vh);opacity:.1}}@keyframes mist-breathe{to{opacity:.45;transform:translateY(-12px)}}@keyframes river-lantern{to{transform:translate(25vw,-8vh);opacity:0}}@keyframes ambient-ember{to{transform:translate(calc((var(--i) - 4)*8px),-48vh);opacity:0}}@keyframes cloud-wind{to{transform:translateX(145vw);opacity:0}}@keyframes cloud-float{from{transform:translateX(-60%)}to{transform:translateX(260%)}}

.ticket,.rope,.seed,.loom button,.rubbing-board button{touch-action:none;user-select:none}.story-prop.gesturing{transform:translate(var(--gesture-x),var(--gesture-y)) scale(1.04);filter:drop-shadow(0 18px 20px #0008)}.loom button:active,.rubbing-board button:active{cursor:grabbing;filter:brightness(1.3)}.loom,.rubbing-board{cursor:grab}

/* Stage 11 · 1925—2025 nested escape narrative */
.grand-prologue,.thread-overture,.chapter-opening{position:relative;min-height:100svh;overflow:hidden;background:#07110f}.grand-prologue{background:radial-gradient(circle at 50% 55%,#463221 0,#101714 30%,#030605 74%);display:grid;place-items:center}.film-burn{position:absolute;inset:-20%;background:radial-gradient(circle at 20% 40%,#f6be5d55,transparent 10%),radial-gradient(circle at 70% 60%,#9f2e2038,transparent 17%);mix-blend-mode:screen;animation:film-burn 4.2s steps(8) both}.red-thread{position:absolute;left:-5%;top:52%;width:110%;height:2px;background:#8c302b;box-shadow:0 0 14px #e25b43;transform:scaleX(0);transform-origin:left}.playing .red-thread{animation:thread-across 3.6s .25s both}.red-thread:after{content:'';position:absolute;right:9%;top:-6px;width:13px;height:13px;border:2px solid #c9674d;border-radius:50%}.shoeprints{position:absolute;inset:0;transform:rotate(-9deg)}.shoeprints i{position:absolute;left:calc(10% + var(--i)*10%);top:calc(72% - var(--i)*5%);width:23px;height:42px;border:1px solid #b49b7188;border-radius:55% 45% 60% 40%;opacity:0;transform:rotate(calc(var(--i)*18deg))}.shoeprints i:nth-child(even){margin-top:38px;transform:rotate(calc(var(--i)*18deg + 180deg))}.playing .shoeprints i{animation:footprint-in .35s calc(.3s + var(--i)*.28s) both}.time-fold{position:absolute;width:260px;color:#d7c8a8;opacity:0}.time-fold strong{display:block;font:70px var(--serif);color:#e4c27c;letter-spacing:.08em}.time-fold small{color:#b66850;letter-spacing:.18em}.time-fold p{font:13px/2 var(--serif)}.time-1925{left:6%;top:17%}.time-2025{right:6%;bottom:13%;text-align:right}.playing .time-1925{animation:time-fold-left 1.5s .7s both}.playing .time-2025{animation:time-fold-right 1.5s 2s both}.prologue-center{position:relative;z-index:3;text-align:center;width:min(680px,88vw)}.prologue-center h1{font-size:clamp(70px,11vw,150px);letter-spacing:.35em;margin:12px -.35em 18px 0;color:#eee0bd;text-shadow:0 0 45px #d9a55d33}.prologue-center>p:not(.eyebrow){font:clamp(15px,1.5vw,20px)/2.1 var(--serif);color:#c9bea5}.prologue-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px;opacity:0;transform:translateY(15px);pointer-events:none}.grand-prologue.ready .prologue-choices{opacity:1;transform:none;pointer-events:auto;transition:.8s}.grand-prologue.playing .prologue-center{animation:prologue-pulse 4s both}.thread-overture{display:grid;place-items:center;padding:130px 8% 70px;background:linear-gradient(90deg,#061511f2,#07171199),url('assets/xiangxi-map.png') center/cover}.overture-map{position:absolute;inset:0;background:linear-gradient(120deg,transparent 25%,#d2b66f18 50%,transparent 75%);animation:map-scan 6s linear infinite}.overture-copy{position:relative;width:min(1050px,100%)}.overture-copy h1{font-size:clamp(45px,7vw,88px);line-height:1.35;letter-spacing:.13em;margin:15px 0}.overture-copy>p{font:16px/2.1 var(--serif);max-width:780px;color:#d0cbb7}.thread-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:30px 0}.thread-preview article,.thread-triptych article{padding:20px;border:1px solid var(--line);background:#10271fb8;backdrop-filter:blur(12px)}.thread-preview small,.thread-triptych small{display:block;color:var(--gold);font-size:9px;letter-spacing:.15em}.thread-preview b{display:block;margin:10px 0;font:19px var(--serif)}.thread-preview span{font-size:11px;line-height:1.8;color:#aeb9aa}.chapter-opening{display:flex;align-items:flex-end;padding:130px 7% 55px;background:#050a08}.opening-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(.46);transform:scale(1.04)}.opening-bg.atlas{background-size:auto 200%;background-position:0 0;background-repeat:no-repeat}.opening-vignette{position:absolute;inset:0;background:linear-gradient(180deg,#02050466,transparent 34%,#030907e8 88%),radial-gradient(circle at 50% 45%,transparent 15%,#020504bb 100%)}.opening-effect{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}.opening-effect i,.opening-effect b,.opening-effect span{position:absolute;display:block}.opening-copy{position:relative;z-index:4;width:min(720px,100%)}.opening-copy h1{font-size:clamp(40px,6vw,78px);letter-spacing:.12em;margin:12px 0}.opening-copy>p{font:clamp(16px,1.5vw,21px)/2 var(--serif);color:#ded4bb}.opening-copy>small{display:block;color:var(--gold);letter-spacing:.17em;font-size:9px}.opening-enter{margin-top:25px;opacity:0;transform:translateY(12px);pointer-events:none}.chapter-opening.ready .opening-enter{opacity:1;transform:none;pointer-events:auto;transition:.75s}.opening-threads{position:absolute;right:5%;bottom:55px;z-index:4;display:flex;gap:18px;writing-mode:vertical-rl;color:#c4b895;font:10px var(--serif);letter-spacing:.14em}.opening-qianzhou .opening-effect i{left:var(--x);top:-20%;width:85px;height:52px;background:#d6c398;color:#2d332b;box-shadow:0 10px 25px #0008;transform:rotate(calc((var(--i) - 8)*3deg))}.opening-qianzhou.play .opening-effect i{animation:opening-paper-fall 3.2s calc(var(--i)*-.11s) linear both}.opening-qianzhou .opening-effect i:after{content:'寻 人\A 沈砚 · 阿月';white-space:pre;position:absolute;inset:8px;font:9px/1.5 var(--serif);border:1px solid #6d4637;text-align:center}.opening-qianzhou .opening-effect b{bottom:0;width:17%;height:68%;background:linear-gradient(transparent,#030504);clip-path:polygon(35% 0,65% 0,75% 15%,72% 100%,25% 100%,29% 15%);opacity:0}.opening-qianzhou .opening-effect b:nth-of-type(1){left:16%}.opening-qianzhou .opening-effect b:nth-of-type(2){right:18%;transform:scale(.82)}.opening-qianzhou.play .opening-effect b{animation:street-shadow 2.5s 1s both}.opening-fenghuang.awakening .opening-bg{animation:wake-after-wipe 3.7s both!important}.opening-fenghuang .opening-effect i{left:var(--x);top:20%;width:11px;height:16px;border-radius:50%;background:#a93427;box-shadow:0 0 17px #ec7747;opacity:.35;animation:lantern-sway 3s infinite alternate}.opening-furong .opening-effect i{left:var(--x);top:-15%;width:3px;height:65%;background:linear-gradient(transparent,#b7efffaa,#d1f7ff22);filter:blur(1px)}.opening-furong.play .opening-effect i{animation:reverse-water 3s calc(var(--i)*-.09s) both}.opening-furong .opening-effect b{left:15%;right:15%;top:48%;height:2px;background:#9ceaff;box-shadow:0 0 35px #6ddff7}.opening-furong.play .opening-effect b{animation:weave-screen 2.7s .3s both}.opening-biancheng .opening-vignette{background:linear-gradient(90deg,#051312e6 0 48%,#c9aa6444 49% 51%,#061a18e6 52%),linear-gradient(#0003,#0009)}.opening-biancheng .opening-effect span{left:-10%;right:-10%;top:48%;height:7px;background:repeating-linear-gradient(90deg,#624528 0 9px,#c9a96b 9px 16px);box-shadow:0 0 16px #000;transform:translateX(-55%)}.opening-biancheng.play .opening-effect span{animation:rope-pull-screen 2.6s both}.opening-biancheng .opening-effect i{left:var(--x);bottom:12%;width:9px;height:12px;border-radius:50%;background:#dd9139;box-shadow:0 0 16px #ffc35f;opacity:0}.opening-biancheng.play .opening-effect i{animation:river-lantern-in 2.8s calc(var(--i)*.07s) both}.opening-shibadong .opening-bg{filter:brightness(.2) saturate(.8)}.opening-shibadong .opening-effect i{left:var(--x);bottom:12%;width:5px;height:5px;border-radius:50%;background:#ff9a3e;box-shadow:0 0 14px #ff7029;opacity:0}.opening-shibadong.play .opening-effect i{animation:opening-embers 3s calc(var(--i)*-.11s) both}.opening-shibadong .opening-effect b{left:42%;bottom:5%;width:18%;height:38%;background:radial-gradient(ellipse at bottom,#ff943d77,transparent 65%);filter:blur(10px);transform:scale(.2)}.opening-shibadong.play .opening-effect b{animation:fire-light 2.7s both}.opening-aizhai .opening-effect i{left:-35%;top:calc(12% + var(--i)*5%);width:35%;height:1px;background:linear-gradient(90deg,transparent,#e7f2e0c7,transparent)}.opening-aizhai.play .opening-effect i{animation:opening-wind 2.5s calc(var(--i)*-.08s) both}.opening-aizhai .opening-effect span{left:17%;right:17%;top:48%;height:4px;background:#d0bd8d;transform:scaleX(0);box-shadow:0 -30px 70px #e8dfc1}.opening-aizhai.play .opening-effect span{animation:bridge-grow 2.6s .45s both}.opening-aizhai .opening-effect span:before,.opening-aizhai .opening-effect span:after{content:'';position:absolute;bottom:0;width:5px;height:130px;background:#d0bd8d}.opening-aizhai .opening-effect span:before{left:10%}.opening-aizhai .opening-effect span:after{right:10%}.thread-triptych{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:13px}.thread-triptych article{padding:13px}.thread-triptych p{font-size:10px;line-height:1.7;margin:8px 0 0;color:#c4c8b9}.map-pin.recommended .pin{animation:recommended-pin 1.4s infinite alternate}.recommended-label{display:block;margin:-8px 0 12px;color:#f2ca71;font-size:9px;letter-spacing:.12em}.show-conversion{display:flex;align-items:center;justify-content:space-between;gap:35px;margin:0 -3% 45px;padding:35px 3%;border:1px solid #c4a35d66;background:linear-gradient(115deg,#48251de6,#102c24 65%,#0a1a16)}.show-conversion h2{font-size:clamp(28px,3vw,44px);margin:8px 0}.show-conversion p{color:#d4c7af;line-height:1.9}.show-conversion span{font-size:10px;color:#c9aa69;letter-spacing:.1em}.show-conversion .primary{flex-shrink:0}.service-cards.five{grid-template-columns:repeat(4,1fr)}.service-cards .show-service{grid-column:span 2;background:linear-gradient(120deg,#6e3025,#1d3328);border-color:#d6b66d}.service-cards .show-service i{background:#a84533;color:#f5dfad}.three-line-journal .journal-item b{color:#d2b36d;font-weight:400}.escape-ending{background:linear-gradient(#07160f55,#07160fee),url('assets/xiangxi-map.png') center/cover}
@keyframes film-burn{0%{opacity:0;transform:translate(-4%,-2%) scale(1)}30%{opacity:.7}55%{transform:translate(5%,3%) scale(1.12)}100%{opacity:.12;transform:translate(-2%,0) scale(1.03)}}@keyframes thread-across{to{transform:scaleX(1)}}@keyframes footprint-in{from{opacity:0;filter:blur(4px);transform:translateY(15px)}to{opacity:.55;filter:none}}@keyframes time-fold-left{from{opacity:0;transform:translateX(-45px);filter:blur(8px)}to{opacity:.7;transform:none;filter:none}}@keyframes time-fold-right{from{opacity:0;transform:translateX(45px);filter:blur(8px)}to{opacity:.7;transform:none;filter:none}}@keyframes prologue-pulse{0%{filter:blur(14px);opacity:0;transform:scale(.94)}30%{filter:blur(4px);opacity:.75}100%{filter:none;opacity:1;transform:none}}@keyframes map-scan{to{transform:translateX(70%)}}@keyframes opening-paper-fall{0%{opacity:0;transform:translateY(-20vh) rotate(-15deg)}25%{opacity:.9}100%{opacity:0;transform:translateY(125vh) rotate(260deg)}}@keyframes street-shadow{from{opacity:0;transform:translateY(20px)}to{opacity:.72;transform:none}}@keyframes reverse-water{0%{opacity:0;transform:translateY(110vh)}30%{opacity:1}100%{opacity:.15;transform:translateY(-45vh)}}@keyframes weave-screen{0%{transform:scaleX(0);opacity:0}45%{opacity:1}100%{transform:scaleX(1);opacity:.25}}@keyframes rope-pull-screen{0%{transform:translateX(-65%)}45%{transform:translateX(7%)}65%{transform:translateX(-3%)}100%{transform:none}}@keyframes river-lantern-in{from{opacity:0;transform:translateY(30px)}to{opacity:.8;transform:translateY(calc((var(--i) - 7)*-2px))}}@keyframes opening-embers{0%{opacity:0;transform:translateY(15vh)}30%{opacity:1}100%{opacity:0;transform:translate(calc((var(--i) - 8)*7px),-90vh) scale(1.6)}}@keyframes fire-light{to{transform:scale(1.4);opacity:.7}}@keyframes opening-wind{0%{opacity:0;transform:translateX(0)}35%{opacity:1}100%{opacity:0;transform:translateX(170vw)}}@keyframes bridge-grow{to{transform:scaleX(1)}}@keyframes recommended-pin{to{filter:brightness(1.35);transform:rotate(45deg) scale(1.16)}}
@media(min-aspect-ratio:16/9){.opening-bg.atlas{background-size:200% auto}}
@media(max-width:900px){.time-fold{width:190px}.time-fold strong{font-size:45px}.thread-preview{grid-template-columns:1fr}.opening-threads{display:none}.show-conversion{align-items:flex-start;flex-direction:column}.service-cards.five{grid-template-columns:1fr 1fr}.service-cards .show-service{grid-column:span 2}.thread-triptych{grid-template-columns:1fr}.grand-prologue{padding:80px 5%}.prologue-choices{grid-template-columns:1fr}.time-1925{top:10%}.time-2025{bottom:8%}}
@media(max-width:560px){.time-fold{opacity:.25!important}.time-fold p{display:none}.prologue-center h1{font-size:65px}.thread-overture{padding:100px 6% 45px}.chapter-opening{padding:105px 6% 35px}.opening-copy h1{font-size:36px}.service-cards.five{grid-template-columns:1fr}.service-cards .show-service{grid-column:auto}.show-conversion{margin-top:0}.thread-triptych{max-height:180px;overflow:auto}}


.grand-prologue.ready .red-thread{transform:scaleX(1)}.grand-prologue.ready .time-fold{opacity:.7}.grand-prologue.ready .shoeprints i{opacity:.5}

/* Stage 12 · slower Phoenix wake and overlapping curtain transition */
#eyelids.preclosed{display:block}
#eyelids .eye-opening{animation:none!important;transform:scaleY(.008)}
#eyelids.preclosed .eye-opening{animation:none!important;transform:scaleY(.008)}
#eyelids.play .eye-opening{animation:phoenix-slow-wake 6.8s cubic-bezier(.45,.02,.18,1) both!important}
.opening-fenghuang.awakening .opening-bg{animation:phoenix-sober-focus 6.8s cubic-bezier(.42,.04,.18,1) both!important}
.opening-fenghuang.awakening .opening-copy{animation:phoenix-copy-focus 6.5s both}
.wake-shake #screen{animation:phoenix-gentle-shake 6.1s ease-out both}
#curtains>i{transition:transform 1.4s cubic-bezier(.65,0,.22,1)}
#curtains>div{transition:opacity .65s ease}
.spectacle{contain:layout paint;transform:translateZ(0);will-change:opacity}
.spectacle>i,.spectacle>b,.traveler,.route-line{will-change:transform,opacity}
.arrival-shock{animation:arrival-camera-smooth .9s cubic-bezier(.22,.7,.25,1)}
@keyframes phoenix-slow-wake{0%,10%{transform:scaleY(.008)}32%{transform:scaleY(.34)}43%{transform:scaleY(.055)}66%{transform:scaleY(.58)}76%{transform:scaleY(.14)}100%{transform:scaleY(1)}}
@keyframes phoenix-sober-focus{0%,9%{filter:blur(32px) brightness(.16);transform:scale(1.16)}32%{filter:blur(22px) brightness(.32)}43%{filter:blur(25px) brightness(.24)}66%{filter:blur(11px) brightness(.62)}76%{filter:blur(14px) brightness(.48)}100%{filter:blur(0) brightness(.88);transform:scale(1.025)}}
@keyframes phoenix-copy-focus{0%,64%{opacity:0;filter:blur(14px);transform:translateY(10px)}82%{opacity:.58;filter:blur(6px)}100%{opacity:1;filter:none;transform:none}}
@keyframes phoenix-gentle-shake{0%,12%,44%,77%,100%{transform:none}18%{transform:translate(-1px,1px)}23%{transform:translate(1px,-1px)}50%{transform:translate(-1px,0)}56%{transform:translate(1px,1px)}84%{transform:translate(0,-1px)}}
@keyframes arrival-camera-smooth{0%{filter:brightness(1);transform:none}32%{filter:brightness(1.13);transform:scale(1.002)}70%{filter:brightness(1.05)}100%{filter:none;transform:none}}

/* Stage 13 · staged first-map reveal */
.map-opening:after{content:'';position:absolute;inset:0;z-index:18;pointer-events:none;background:#020504;animation:first-map-blackout 2.35s .15s cubic-bezier(.35,.05,.18,1) both}
.map-opening .map-intro{animation:first-map-copy .9s 1.65s both}
.map-opening .map-pin{animation:first-map-pin .7s calc(1.95s + var(--map-delay,0s)) both}
.map-opening .map-pin:nth-of-type(1){--map-delay:.05s}.map-opening .map-pin:nth-of-type(2){--map-delay:.12s}.map-opening .map-pin:nth-of-type(3){--map-delay:.19s}.map-opening .map-pin:nth-of-type(4){--map-delay:.26s}.map-opening .map-pin:nth-of-type(5){--map-delay:.33s}.map-opening .map-pin:nth-of-type(6){--map-delay:.4s}
.map-opening .traveler,.map-opening .map-bottom{animation:first-map-controls .65s 2.25s both}
@keyframes first-map-blackout{0%,16%{opacity:1}100%{opacity:0}}
@keyframes first-map-copy{from{opacity:0;filter:blur(8px);transform:translateY(18px)}to{opacity:1;filter:none;transform:none}}
@keyframes first-map-pin{from{opacity:0;filter:blur(6px);transform:translate(-50%,-50%) scale(.72)}to{opacity:1;filter:none;transform:translate(-50%,-50%) scale(1)}}
@keyframes first-map-controls{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* Stage 14 · recommendation focus */
.map.destination-focus:after{content:'';position:absolute;inset:0;z-index:8;pointer-events:none;background:radial-gradient(circle at 78% 35%,#020504b8,#020504e8 72%);backdrop-filter:blur(4px) saturate(.65);animation:recommendation-blackout 1.15s cubic-bezier(.3,.05,.16,1) both}
.map.destination-focus .map-card{z-index:10;animation:recommendation-card-in .85s .28s both;box-shadow:0 28px 90px #000c,0 0 0 1px #d3b57522}
.map.destination-focus .recommended-label{padding:7px 9px;background:#d3b57512;border-left:2px solid var(--gold);text-shadow:0 2px 10px #000}
@keyframes recommendation-blackout{from{opacity:0}to{opacity:1}}
@keyframes recommendation-card-in{from{opacity:0;filter:blur(7px);transform:translateX(24px)}to{opacity:1;filter:none;transform:none}}

/* Stage 15 · free origin, cinematic blackout and premium guide */
.map-start{position:absolute;z-index:6;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none;color:#e9d59f;text-shadow:0 2px 12px #000}.map-start i{width:30px;height:30px;border:1px solid #e3c372;border-radius:50%;background:radial-gradient(circle,#f4d98e 0 10%,#17352a 12% 44%,#e3c372 46% 50%,transparent 52%);box-shadow:0 0 0 8px #d3b57518,0 0 26px #ebc96d66;animation:start-beacon 1.8s infinite alternate}.map-start span{margin-top:7px;padding:4px 9px;background:#071914c9;border:1px solid #d3b57544;font:13px var(--serif);letter-spacing:.12em;white-space:nowrap}.map-start small{margin-top:4px;color:#c7c7b5;font-size:8px;white-space:nowrap}.map-opening .map-start{animation:first-map-controls .65s 2.2s both}
#curtains:before{content:'';position:absolute;inset:0;z-index:0;background:#010302;opacity:0;backdrop-filter:blur(0);transition:opacity .75s ease,backdrop-filter .9s ease}
#curtains.active:before{opacity:.58;backdrop-filter:blur(5px) brightness(.48)}
#curtains.closed:before{opacity:.96;backdrop-filter:blur(9px) brightness(.2)}
#curtains>i{z-index:1}#curtains>div{z-index:2;text-shadow:0 5px 24px #000}
.map.destination-focus:after{background:radial-gradient(circle at 78% 34%,#07100dc4 0,#010302ed 68%);backdrop-filter:blur(5px) saturate(.55) brightness(.48)}
.map.destination-focus .map-card{background:linear-gradient(145deg,#10251ff7,#071411f2);border-color:#ddc07b75;padding:29px;box-shadow:0 32px 110px #000e,0 0 0 1px #d3b57518}.map.destination-focus .map-card:before{content:'DESTINATION / 时空入口';display:block;margin-bottom:14px;color:#d2b36c;font-size:8px;letter-spacing:.2em}.map.destination-focus .map-card h2{font-size:31px}
.detail{position:relative;isolation:isolate;overflow:hidden}.detail:before{content:'';position:absolute;z-index:-1;left:-10%;right:-10%;top:min(51vw,670px);height:420px;background:radial-gradient(ellipse at 25% 30%,#c89f4b16,transparent 40%),linear-gradient(115deg,transparent,#18342955,transparent);pointer-events:none}.detail-hero{position:relative;border-left:1px solid #d3b57566;padding-left:32px}.detail-hero:before{content:'';position:absolute;left:-5px;top:58%;width:9px;height:9px;background:var(--gold);transform:rotate(45deg);box-shadow:0 0 18px #edcb78}.detail-hero:after{content:'FIELD NOTES · XIANGXI';position:absolute;right:-4vw;bottom:80px;writing-mode:vertical-rl;color:#d5c38b77;font-size:9px;letter-spacing:.28em}.detail .facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:1px;background:#d3b57530;border:1px solid #d3b57530}.detail .facts>div{position:relative;padding:20px 22px;background:#091a15e8;overflow:hidden}.detail .facts>div:after{content:'';position:absolute;right:-18px;bottom:-25px;width:58px;height:58px;border:1px solid #d3b57518;border-radius:50%}.detail .facts b{font:17px var(--serif);letter-spacing:.06em}.detail-layout{position:relative;padding:45px 0}.culture-copy{padding:36px;background:linear-gradient(145deg,#10261fb3,#09181388);border:1px solid #d3b57522;box-shadow:inset 35px 0 80px #d3b57507}.culture-copy>.eyebrow{display:flex;align-items:center;gap:14px}.culture-copy>.eyebrow:after{content:'';height:1px;flex:1;background:linear-gradient(90deg,#d3b57555,transparent)}.detail-gallery figure{position:relative;padding:10px;background:#0b1b16;border-color:#d3b57545;box-shadow:0 20px 50px #0007;transition:transform .45s,box-shadow .45s}.detail-gallery figure:nth-child(2){margin-left:8%;margin-top:-4px}.detail-gallery figure:hover{transform:translateY(-6px);box-shadow:0 30px 70px #0009}.detail-gallery figcaption:before{content:'✦';margin-right:8px;color:var(--gold)}.show-conversion{position:relative;overflow:hidden;border:1px solid #d9ba725f;background:linear-gradient(115deg,#5a291fe8 0,#17362bdc 58%,#091b16 100%);box-shadow:0 28px 80px #0008}.show-conversion:before,.show-conversion:after{content:'';position:absolute;right:255px;width:28px;height:28px;border-radius:50%;background:#071711}.show-conversion:before{top:-15px}.show-conversion:after{bottom:-15px}.show-conversion>div{position:relative}.show-conversion>div:after{content:'';position:absolute;right:-38px;top:-30px;bottom:-30px;border-right:1px dashed #d3b57555}.show-conversion .primary{box-shadow:0 13px 35px #0005}.after-story{position:relative;overflow:hidden;box-shadow:0 26px 80px #0006}.after-story:after{content:'ESCAPE · 1925—2025';position:absolute;right:-35px;top:28px;color:#d4be8050;font:42px var(--serif);letter-spacing:.14em;pointer-events:none}.service-cards>button{position:relative;overflow:hidden}.service-cards>button:after{content:'↗';position:absolute;right:13px;top:11px;color:#d3b57555;font-size:15px}.detail-actions{padding-top:26px;border-top:1px solid #d3b5752e}
@keyframes start-beacon{to{box-shadow:0 0 0 13px #d3b57508,0 0 38px #f1cf7199;filter:brightness(1.25)}}
@media(max-width:900px){.detail .facts{grid-template-columns:1fr 1fr}.show-conversion>div:after,.show-conversion:before,.show-conversion:after{display:none}.detail-hero{padding-left:22px}.detail-gallery figure:nth-child(2){margin-left:0}.map-start small{display:none}}
@media(max-width:560px){.map-start{left:11%!important}.map-start span{font-size:10px}.detail .facts{grid-template-columns:1fr 1fr!important}.detail .facts>div{padding:15px}.culture-copy{padding:22px}.after-story:after{font-size:25px}.map.destination-focus .map-card{padding:21px}}
