.scene{position:absolute;inset:0;padding:80px 30px 95px;opacity:0;visibility:hidden;transform:translateY(20px) scale(.99);transition:opacity .8s,transform 1s,visibility .8s}.scene.active{opacity:1;visibility:visible;transform:none}
.envelope{position:absolute;left:12%;right:12%;top:24%;min-height:310px;padding:38px;border:1px solid #ffffff29;background:linear-gradient(145deg,#ffffff0c,#d8c7e807);box-shadow:0 24px 90px #0008;overflow:hidden}.envelope:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 49.8%,#ffffff17 50%,transparent 50.4%)}.envelope p,.scene-title span{font:9px Arial;letter-spacing:.25em;color:var(--lav)}.envelope h1{margin:60px 0 0;font-size:24px;font-weight:400;line-height:1.7}.envelope h1 strong{font-size:43px;font-weight:400;letter-spacing:.15em}.envelope small{position:absolute;bottom:25px;color:var(--muted);font-size:10px;letter-spacing:.1em}.scan{position:absolute;left:-30%;top:0;width:30%;height:100%;background:linear-gradient(90deg,transparent,#ffffff22,transparent);animation:scan 4s infinite}
.scene-title{position:relative;z-index:3;margin-top:4vh}.scene-title h2{margin:12px 0 8px;font-weight:400;font-size:32px;letter-spacing:.08em}.scene-title p{margin:0;max-width:320px;color:var(--muted);font-size:11px;line-height:1.8}.scene-title.compact{margin-top:0}
.nodes{position:relative;margin-top:75px;height:120px;display:flex;justify-content:space-between;align-items:center}.nodes svg{position:absolute;inset:38px 0 auto;width:100%;height:44px;overflow:visible}.nodes path{fill:none;stroke:#d8c7e850;stroke-width:.35;stroke-dasharray:100;stroke-dashoffset:100}.active .nodes path{animation:draw 3s .5s forwards}.node{z-index:2;text-align:center;font-size:11px;letter-spacing:.1em}.node i{display:block;width:14px;height:14px;margin:0 auto 12px;border:1px solid var(--lav);border-radius:50%;background:#d8c7e826;box-shadow:0 0 25px var(--lav)}.bridge i{width:21px;height:21px}.origin-chat{display:flex;flex-direction:column;gap:8px;margin-top:20px}
.chat-stream{display:flex;flex-direction:column;justify-content:flex-end;gap:10px;height:calc(100% - 165px);padding:20px 0 5px;overflow:hidden;mask-image:linear-gradient(transparent,#000 14%,#000)}.bubble{max-width:88%;padding:13px 15px;border:1px solid var(--line);border-radius:3px 18px 18px;background:#d8c7e811;animation:pop .55s forwards;opacity:0;transform:translateY(10px)}.bubble.me{align-self:flex-end;border-radius:18px 3px 18px 18px;background:#bcd4c814}.bubble small{display:block;margin-bottom:6px;color:var(--lav);font-size:9px;letter-spacing:.12em}.bubble.me small{color:var(--green)}.bubble p{margin:0;font-size:14px;line-height:1.7}.bubble.focus{max-width:100%;padding:23px 18px;background:#d8c7e81c;box-shadow:0 0 55px #a98fc31b}.bubble.focus p{font-size:20px;line-height:1.8}.scene-chat.dim:after{content:"";position:absolute;inset:0;background:#02030a55;pointer-events:none;z-index:-1}.counter{position:absolute;right:30px;top:135px;font:9px Arial;letter-spacing:.15em;color:#ffffff40}
.scene-flower{padding:76px 0 85px}.flower-title{position:absolute;left:30px;top:35px}.flower-title p{transition:.3s}#flower-canvas{position:absolute;inset:0;width:100%;height:100%}
.filmstrip{position:absolute;left:0;right:0;top:29%;height:250px;display:flex;gap:16px;padding:15px 50px;overflow:hidden;transform:rotate(-2deg)}.photo-slot{flex:0 0 175px;height:220px;padding:10px 10px 38px;background:#e8e4dc;color:#28303a;box-shadow:0 18px 45px #0007;transform:translateY(12px);animation:pop .7s forwards}.photo-slot div{height:100%;display:grid;place-items:center;border:1px solid #1d24301f;background:linear-gradient(145deg,#b9afc5,#6d7180);font:10px Arial;letter-spacing:.14em;color:#fff9}.character-card{position:absolute;right:28px;bottom:105px;width:150px;padding:12px;border:1px solid #d8c7e848;background:#111622c7;box-shadow:0 20px 60px #0008}.character-card>span,.character-card>b{font:8px Arial;letter-spacing:.16em;color:var(--lav)}.character-card div{display:grid;place-items:center;height:90px;margin:9px 0;border:1px solid #ffffff17;color:#999eb0;font-size:12px;text-align:center}.character-card small{font-size:9px}
.scene-ending{justify-content:center;display:flex;flex-direction:column}.scene-ending>p:first-of-type{font:10px Arial;letter-spacing:.25em;color:var(--lav)}.scene-ending h2{font-size:32px;line-height:1.65;font-weight:400;letter-spacing:.08em}.scene-ending .birthday{margin-top:28px;color:var(--lav);letter-spacing:.15em}.scene-ending small{margin-top:16px;color:var(--muted)}.ending-flower{position:absolute;right:10%;top:16%;font-size:150px;color:#d8c7e81c;text-shadow:0 0 35px #d8c7e840;animation:breathe 5s infinite}
@keyframes scan{50%,100%{left:110%}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes pop{to{opacity:1;transform:none}}@keyframes breathe{50%{transform:scale(1.06) rotate(4deg)}} 

/* Visual skin matched to the supplied code-flower film */
.film{background:#17181d;box-shadow:0 0 0 1px #ffffff09;isolation:isolate}
.film:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,transparent 8%,#ffffff0b 8%,#ffffff0b calc(8% + 1px),transparent calc(8% + 1px),transparent 92%,#ffffff08 92%,#ffffff08 calc(92% + 1px),transparent calc(92% + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 47px,#ffffff05 48px);pointer-events:none}
.film:after{content:"// memory.render\A // source: real_chat\A // target: lisianthus\A // age: 23";white-space:pre;position:absolute;z-index:-1;left:17px;bottom:80px;color:#bdb8c21a;font:7px/1.8 "Courier New",monospace;letter-spacing:.08em;pointer-events:none}
.scene{background:transparent;transition:opacity .72s linear,transform .9s cubic-bezier(.18,.72,.2,1),visibility .72s;transform:translateY(7px)}
.scene-title span,.envelope p{font-family:"Courier New",monospace;letter-spacing:.22em;color:#c8a9bc}
.scene-title h2{font-family:"Songti SC","Noto Serif SC",serif;font-size:34px;letter-spacing:.04em}
.scene-title p{font-family:"Courier New","Microsoft YaHei",monospace;color:#77757e;letter-spacing:.03em}
.envelope{border-radius:0;border-color:#ffffff26;background:#1b1c22;box-shadow:18px 18px 0 #0e0f12,0 0 0 1px #000}.envelope:after{content:"23 / CHARIH";position:absolute;right:20px;bottom:18px;color:#b8a2b159;font:8px "Courier New",monospace;letter-spacing:.16em}.envelope h1 strong{color:#f0e7ec}.scan{background:linear-gradient(90deg,transparent,#e6bdcf18,transparent)}
.nodes path{stroke:#d2b3c5;stroke-width:.22}.node i{border-color:#bfa8b7;background:#d1b8c71c;box-shadow:none}.node span{font-family:"Courier New","Microsoft YaHei",monospace;color:#a9a6ad}
.bubble{border-radius:2px 20px 20px 20px;border-color:#ffffff21;background:#1d1e24e8;backdrop-filter:none;box-shadow:8px 8px 0 #0d0e1238}.bubble.me{border-radius:20px 2px 20px 20px;background:#1b2021e8}.bubble small{font-family:"Courier New","Microsoft YaHei",monospace;color:#c6a9bb}.bubble.me small{color:#9fb3aa}.bubble p{white-space:pre-line;color:#ece8eb;font-size:15px;letter-spacing:.015em}.bubble.focus{border-color:#d1afc44a;background:#221d23;box-shadow:12px 12px 0 #0d0e12}.bubble.focus p{color:#f2dce7}
.counter{font-family:"Courier New",monospace;color:#a58b9b66}.timeline{background:#ffffff14}.timeline i{background:#d8bacb;box-shadow:none}.controls button{font-family:"Courier New","Microsoft YaHei",monospace;color:#c9c5cb}.controls button b{border-radius:2px;border-color:#ffffff26}.hud button i{background:#a98fa0}
.scene-flower{background:#17181d}.flower-title h2{font-family:"Courier New",monospace;font-size:24px;text-transform:uppercase;letter-spacing:.08em}.flower-title p{font-family:"Courier New","Microsoft YaHei",monospace}.scene-flower:after{content:"GENERATIVE BOTANY / 05";position:absolute;right:18px;top:75px;color:#d2b2c336;font:8px "Courier New",monospace;letter-spacing:.14em}
.photo-slot{border-radius:0;background:#d8d4d0;padding:9px 9px 35px;box-shadow:14px 18px 0 #090a0d80}.photo-slot div{border:0;background:#5e5961}.character-card{border-radius:0;background:#1a1b20;border-color:#ffffff24;box-shadow:10px 12px 0 #090a0d}.character-card>span,.character-card>b{font-family:"Courier New",monospace;color:#c5a6b8}
.scene-ending .number{font-family:"Courier New",monospace}.scene-ending h2{font-weight:400}.ending-flower{color:#c7a9ba14;text-shadow:none}
@media(max-width:420px){.film:before{background:linear-gradient(90deg,transparent 5%,#ffffff09 5%,#ffffff09 calc(5% + 1px),transparent calc(5% + 1px),transparent 95%,#ffffff08 95%,#ffffff08 calc(95% + 1px),transparent calc(95% + 1px)),repeating-linear-gradient(0deg,transparent 0,transparent 43px,#ffffff04 44px)}.bubble{max-width:92%;box-shadow:5px 5px 0 #0d0e123d}.scene-title h2{font-size:30px}}
