/* 《新生》第二版：六个情绪视觉细节。无外部图片依赖。 */
.memory-scene{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;opacity:0;transition:opacity 1.5s}.memory-scene.active{opacity:1}.memory-scene .halo{position:absolute;width:70vw;height:70vw;right:-25vw;top:-20vw;border-radius:50%;background:radial-gradient(circle,#d8a66e4a,transparent 67%);filter:blur(22px);transition:all 2s}.memory-scene .window-lines{position:absolute;inset:0;background:linear-gradient(111deg,transparent 0 30%,#0c141b18 31% 33%,transparent 34% 63%,#0c141b24 64% 66%,transparent 67%);opacity:.65}
.leaf{position:absolute;top:-12%;width:11px;height:18px;border-radius:90% 0 90% 0;background:#bb8a4a;opacity:0;animation:leafFall 13s linear infinite;transform:rotate(25deg)}.leaf:nth-child(3){left:12%;animation-delay:0s}.leaf:nth-child(4){left:36%;animation-delay:-6s;width:8px}.leaf:nth-child(5){left:74%;animation-delay:-10s;width:13px}.leaf:nth-child(6){left:91%;animation-delay:-3s;width:6px}.season-autumn .leaf{opacity:.65}.season-night #atmosphere{background:radial-gradient(ellipse at 55% 85%,#65554650,transparent 45%),linear-gradient(#1a212b,#111820)}.season-night .memory-scene .halo{opacity:.15}.season-lamp #atmosphere{background:radial-gradient(ellipse at 48% 75%,#82654e66,transparent 44%),linear-gradient(#1a1d22,#171519)}.season-dawn #atmosphere{background:linear-gradient(#46515d,#b48f75 62%,#e7c7a2)}.season-dawn .memory-scene .halo{right:8vw;top:5vh;opacity:.8}@keyframes leafFall{0%{transform:translate3d(-25px,-30px,0) rotate(0)}100%{transform:translate3d(80px,115vh,0) rotate(510deg)}}
.time-rail{position:fixed;right:19px;top:50%;z-index:9;transform:translateY(-50%);display:none;flex-direction:column;align-items:flex-end;gap:11px;pointer-events:none}.time-rail.show{display:flex}.time-rail span{font-size:10px;color:#d8bea0;opacity:.43;letter-spacing:.08em;transition:opacity .45s,transform .45s}.time-rail span.active{opacity:1;transform:translateX(-5px)}.time-rail span:after{content:' ·';color:#d5aa75}
.intro:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 47%,#ad805c33,transparent 42%);pointer-events:none}.envelope-stage{transform-style:preserve-3d;transition:transform 1.1s}.envelope-stage.open{transform:translateY(17px) scale(1.07)}.env-card{box-shadow:0 0 0 1px #bd9f7c55,0 2px 10px #533e3530}.env-card:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 48%,#aa967f42 50%,transparent 52%);pointer-events:none}.env-flap{backface-visibility:hidden}.envelope-stage.open .env-card{transform:translateY(-123px)}.envelope-stage.open .env-flap{transform:rotateX(180deg)}.seal{transition:opacity .4s,transform .45s}.envelope-stage.open .seal{transform:translate(-50%,-50%) scale(.7)}
.date-memory{display:flex;align-items:center;justify-content:center;flex-direction:column;margin:42px auto 44px;min-height:140px;color:#856b52;text-align:center;position:relative}.date-memory:before,.date-memory:after{content:'';display:block;width:1px;height:25px;background:#a78b693f;margin:10px}.date-memory .date-num{font:italic 30px Georgia,serif;letter-spacing:.12em}.date-memory .date-note{font-size:11px;letter-spacing:.16em;margin-top:13px;color:#9a8065}
.lamp-interlude{margin:45px auto 55px;max-width:480px;text-align:center;padding:38px 18px 34px;background:linear-gradient(#211f21,#2f2928);color:#ddcbb9;position:relative;overflow:hidden;border-radius:3px;box-shadow:0 14px 28px #44372b30}.lamp-title{font-size:11px;letter-spacing:.2em;color:#a89786}.window-scene{width:160px;height:145px;margin:28px auto 20px;position:relative;background:linear-gradient(#161b23,#333441);border:10px solid #665448;box-shadow:0 0 0 3px #332b28,14px 12px 0 #0002}.window-scene:before,.window-scene:after{content:'';position:absolute;background:#665448}.window-scene:before{width:8px;height:100%;left:50%;transform:translateX(-50%)}.window-scene:after{height:8px;width:100%;top:48%;left:0}.window-glow{position:absolute;inset:8px;background:radial-gradient(ellipse at 46% 67%,#e9b979c9,#cc98524d 40%,transparent 78%);opacity:.9;transition:opacity .8s,filter .8s}.window-scene.dim .window-glow{opacity:.15;filter:blur(10px)}.lamp-toggle{border:1px solid #8c725a;color:#e4cfb4;background:#55433366;padding:9px 20px;border-radius:30px;font-size:11px;letter-spacing:.12em}.lamp-interlude .lamp-caption{font-size:12px;line-height:2;color:#b8a591;margin:15px auto 0}
.finale .sun{position:absolute;z-index:0;width:min(42vw,240px);height:min(42vw,240px);border-radius:50%;left:50%;bottom:14%;transform:translate(-50%,90%);background:#ffe6b6;box-shadow:0 0 55px 24px #f7c78b9c,0 0 160px 75px #f4c58b66;opacity:.25;transition:transform 2.3s ease,opacity 2s}.finale.sunrise .sun{transform:translate(-50%,-10%);opacity:.95}.finale .mountain-far{position:absolute;bottom:-1%;left:-5%;width:110%;height:31%;background:#646a72a0;clip-path:polygon(0 88%,15% 42%,27% 67%,43% 20%,61% 68%,76% 37%,100% 71%,100% 100%,0 100%);z-index:0}.finale:before,.finale:after{z-index:1}.finale .tiny,.finale h2,.finale p{position:relative;z-index:2}.finale .farewell{font-size:11px;letter-spacing:.18em;color:#fae8d2a8;margin-top:24px}
.close-letter{display:block;width:100%;max-width:260px;margin:24px auto 0;padding:14px 20px;border:1px solid #bea082;background:transparent;border-radius:50px;color:#e3cdb0;letter-spacing:.13em;font-size:13px}.close-letter:hover{background:#785b4159}.fold-overlay{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(ellipse at center,#4d3930,#1d1919);opacity:0;transition:opacity .55s}.fold-overlay.active{display:flex;opacity:1}.fold-sheet{width:min(320px,72vw);height:390px;background:linear-gradient(95deg,#e6d5bd,#f7eddd,#e8d6bd);box-shadow:0 30px 55px #0009;transform-origin:center;position:relative;transition:transform 1.15s,opacity 1.15s}.fold-sheet:after{content:'新生';position:absolute;inset:0;display:grid;place-items:center;color:#76624d;letter-spacing:.42em;font-size:27px}.fold-overlay.folding .fold-sheet{transform:scale(.48,.34) rotate(-5deg);opacity:.92}.fold-caption{margin-top:32px;color:#e2c9ac;letter-spacing:.21em;font-size:13px}
@media(max-width:600px){.time-rail{right:8px}.time-rail span{font-size:8px}.lamp-interlude{margin-left:-9px;margin-right:-9px}}
@media(prefers-reduced-motion:reduce){.leaf{display:none}.memory-scene,.fold-overlay,.fold-sheet,.envelope-stage{transition:none!important}.finale .sun{transform:translate(-50%,-10%);opacity:.75}}
