:root{--cream:#fff6df;--ink:#24463a;--green:#285c45;--yellow:#efbd45;--paper:#fff9ea;--pink:#c97769}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#183f34;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
.grain{position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.scene{min-height:100svh;position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:84px 20px 64px}.scene .art{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.02);animation:breath 12s ease-in-out infinite alternate;filter:saturate(1.02) contrast(1.02)}.scene:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#143d2a0a 0%,#143d2a20 100%);pointer-events:none}
#scene01 .art{background-image:url("assets/scene-01.jpg")}#scene02 .art{background-image:url("assets/scene-02.jpg")}#scene03 .art{background-image:url("assets/scene-03.jpg")}#scene04 .art{background-image:url("assets/scene-04.jpg")}#scene05 .art{background-image:url("assets/scene-05.jpg")}#scene06 .art{background-image:url("assets/scene-06.jpg")}#scene07 .art{background-image:url("assets/scene-07.jpg")}#scene08 .art{background-image:url("assets/scene-08.jpg")}#scene09 .art{background-image:url("assets/scene-09.jpg")}#scene10 .art{background-image:url("assets/scene-10.jpg")}
.floating-tools{position:fixed;left:16px;top:16px;z-index:80;display:flex;gap:9px}.floating-tools button{width:46px;height:46px;border-radius:50%;border:1px solid #fff8;background:#fff9e9e8;color:#315b48;box-shadow:0 10px 30px #14362933;font-size:20px;backdrop-filter:blur(8px)}
#dotNav{position:fixed;right:13px;top:50%;transform:translateY(-50%);z-index:80;display:flex;flex-direction:column;gap:8px}#dotNav button{width:7px;height:7px;border:0;border-radius:9px;background:#fff9;transition:.3s;padding:0}#dotNav button.active{height:26px;background:#f3c24d}
.content{width:min(650px,100%);position:relative;z-index:4}.center{text-align:center}.eyebrow{font-size:10px;letter-spacing:3px;color:#8d6652;font-weight:700}.light{color:#ffe5a2}.content h2{font:700 39px/1.15 Georgia,"Songti SC",serif;margin:9px 0 10px;color:#294f40;text-shadow:0 1px #fff8}.light-title{color:#fff4c9!important}.intro{font-size:13px;margin:0 0 18px;color:#537263}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s,transform .75s}.reveal.show{opacity:1;transform:none}
.cover{padding:0}.cover-content{position:relative;z-index:5;text-align:center;width:min(430px,86%);padding:25px 20px 20px;background:#fff6dfd7;border:1px solid #fff9;border-radius:34px;box-shadow:0 24px 70px #143d2a55;backdrop-filter:blur(10px)}.baby-photo{width:190px;height:190px;border-radius:50%;padding:6px;border:4px solid #eac56d;background:#fff4c7;overflow:hidden;display:grid;place-items:center;margin:auto;position:relative}.baby-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}.baby-photo span{font-size:13px;color:#5c705d;line-height:1.7}.cover-copy small{letter-spacing:3px;color:#a76f5e;font-size:9px}.cover-copy h1{font:700 45px Georgia,"Songti SC",serif;letter-spacing:7px;margin:8px 0 0}.cover-copy h2{font-size:25px;letter-spacing:9px;margin:3px 0 13px;color:#b96d60}.cover-copy p{font-size:12px;margin:7px 0}.scroll-btn,.back-top{border:0;background:transparent;color:#476c58;margin-top:12px}.motion{position:absolute;z-index:2;pointer-events:none}.cloud{width:170px;height:55px;border-radius:60px;background:#fff6;filter:blur(9px)}.c1{top:12%;left:-120px;animation:cloud 20s linear infinite}.leaf{width:30px;height:30px;background:#e6b44d;border-radius:100% 0 100% 0;top:20%;right:14%;animation:float 5s ease-in-out infinite}
.story:before,.album:before,.wishes:before,.invitation:before,.venue:before,.map-page:before,.traffic:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff9dfb8 0%,#fff9df4d 62%,transparent);z-index:2}.story-text{margin-top:25px;background:#fff9e7d8;border:1px solid #fff;border-radius:22px;padding:25px 23px;box-shadow:0 20px 50px #204c3a20}.story-text p{line-height:2;font-size:15px;margin:0 0 14px}.sunray{position:absolute;inset:-40%;background:linear-gradient(105deg,transparent 44%,#fff7c533 48%,transparent 52%);animation:ray 8s ease-in-out infinite;z-index:2}
.album-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-height:54vh;overflow:auto;padding:5px}.album-actions{display:flex;gap:9px;margin:18px 0}.album-actions button,.primary,.wish-form button,.share{border:0;border-radius:18px;background:#2f6d50;color:#fff;padding:11px 15px;font-weight:700}.album-actions .secondary{background:#fff9e5;color:#416550}.album-empty{grid-column:1/-1;min-height:230px;background:#fff9e2b8;border:2px dashed #70927b;border-radius:20px;display:grid;place-items:center;text-align:center;color:#5c7668;line-height:1.8}.album-item{height:190px;padding:6px;background:#fff8e8;box-shadow:0 12px 25px #1d443324;position:relative;transform:rotate(-1deg)}.album-item:nth-child(even){transform:rotate(1deg)}.album-item img{width:100%;height:100%;object-fit:cover}.album-item button{position:absolute;right:9px;top:9px;border:0;border-radius:50%;width:27px;height:27px;background:#fff;color:#9b6259}
.letter:after{background:linear-gradient(180deg,#0c263b18,#071d37b0)}.fireflies{position:absolute;inset:0;z-index:3;background:radial-gradient(circle at 15% 38%,#ffd967 0 2px,transparent 4px),radial-gradient(circle at 80% 28%,#ffd967 0 2px,transparent 4px),radial-gradient(circle at 68% 62%,#ffe99a 0 2px,transparent 5px);animation:twinkle 3s ease-in-out infinite}.letter-paper{background:#fff3d7e8;padding:26px;border-radius:5px 22px 22px 5px;box-shadow:0 25px 60px #07182b66;transform:rotate(-.4deg);margin-top:20px}.letter-paper p{line-height:2;font-size:15px}
.wish-form{display:grid;gap:9px;margin-top:20px}.wish-form input,.wish-form textarea{font:inherit;border:1px solid #fff;background:#fff9e8e8;border-radius:14px;padding:13px;outline:0}.wish-form textarea{height:105px;resize:none}.wish-list{max-height:250px;overflow:auto;margin-top:12px}.wish{background:#fff8e5df;padding:13px 15px;border-left:4px solid #c66f5f;border-radius:3px 13px 13px 3px;margin:8px 0}.wish b{font-size:11px;color:#a6695c}.wish p{font-size:12px;line-height:1.7;margin:6px 0 0}.note{font-size:9px;color:#617468}.envelopes{position:absolute;inset:0;z-index:3;background:linear-gradient(135deg,transparent 49%,#fff6 50%,transparent 51%);opacity:.25;animation:drift 7s linear infinite}
.invite-paper{background:#fff9e8df;border:1px solid #fff;padding:27px 22px;border-radius:22px;box-shadow:0 25px 55px #294c3728;margin-top:24px}.invite-paper h3{font:700 24px/1.5 Georgia,"Songti SC",serif;text-align:center}.invite-paper p{border-top:1px solid #e5d9bb;padding:11px 0;margin:0;font-size:13px}.invite-paper b{font-size:9px;letter-spacing:2px;color:#b87a64;margin-right:8px}
.venue-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.venue-slot{height:150px;border:3px solid #fff;background:#fff8e4c9;border-radius:18px;position:relative;overflow:hidden;color:#55715f}.venue-slot.large{grid-column:1/-1;height:260px}.venue-slot img{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.venue-slot span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;font-size:12px;background:#fff9e6d9;padding:8px 11px;border-radius:14px}.venue-name{text-align:center;color:#305c49;font:700 19px Georgia,"Songti SC",serif}
.map-frame{height:360px;margin-top:20px;border:7px solid #fff;border-radius:23px;overflow:hidden;box-shadow:0 20px 50px #244a3729;position:relative}.map-frame #amap{position:absolute;inset:0}.map-frame #mapFallback{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:25px;background:#e5ecdf;color:#506d5c}.map-frame p{font-size:12px;line-height:1.8;max-width:280px}.place-card{background:#fff8e5e8;margin:14px 0;padding:13px 16px;border-radius:15px;display:grid;gap:5px}.place-card b{font-size:14px}.place-card span{font-size:11px;color:#6e8075}
.traffic-list{display:grid;gap:11px;margin-top:20px}.traffic-list article{display:flex;gap:15px;align-items:flex-start;background:#fff8e7df;border:1px solid #fff;border-radius:19px;padding:17px}.traffic-list h3{margin:0 0 5px}.traffic-list p{font-size:11px;line-height:1.7;margin:0;color:#61756b}.icon{display:inline-grid;place-items:center;width:36px;height:27px;border:2px solid #3e715b;border-radius:7px;flex:none}.car:after,.metro:after{content:"";width:7px;height:7px;background:#3e715b;border-radius:50%;box-shadow:16px 0 #3e715b}.metro{border-radius:14px}.park{font-weight:800;font-style:normal}
.thanks:after{background:linear-gradient(180deg,#3e274022,#3e1d2a55)}.final-copy{color:#fff3ca;font-size:13px}.music-card{margin:26px 0;display:flex;justify-content:space-between;gap:12px;align-items:center;background:#fff5d82b;border:1px solid #fff6;border-radius:19px;padding:15px;text-align:left}.music-card small,.music-card b{display:block}.music-card small{font-size:9px;color:#ffe4b4}.music-card b{font-size:11px;margin-top:5px;color:#fff8e4}.music-card button{border:0;border-radius:16px;padding:10px 12px;background:#f2bd4c;color:#3c4935}.final-info{color:#fff7d9;font-size:12px;line-height:1.9}.share{background:#e5a84a;margin:22px auto 5px}.back-top{color:#fff2bf}.sunset-glow{position:absolute;inset:0;background:radial-gradient(circle at 50% 67%,#ffd06b44,transparent 30%);z-index:2;animation:pulse 5s ease-in-out infinite}
.modal{display:none;position:fixed;inset:0;z-index:120;background:#102c24ee;align-items:center;justify-content:center}.modal.show{display:flex}.modal img{max-width:92%;max-height:88%;border-radius:12px}.modal>button{position:absolute;right:18px;top:18px;border:0;border-radius:50%;width:42px;height:42px;font-size:23px}.share-guide{text-align:center;color:#fff}.share-guide .arrow{font-size:70px;transform:rotate(-25deg)}.share-guide button{border:0;border-radius:17px;padding:10px 15px}.road-glow{position:absolute;inset:0;background:linear-gradient(90deg,transparent 40%,#fff5b322 50%,transparent 60%);z-index:2;animation:road 6s linear infinite}
@keyframes breath{to{transform:scale(1.07)}}@keyframes cloud{to{transform:translateX(120vw)}}@keyframes float{50%{transform:translate(-10px,35px) rotate(70deg)}}@keyframes ray{50%{transform:translateX(12%) rotate(3deg)}}@keyframes twinkle{50%{opacity:.45}}@keyframes drift{to{transform:translateY(40px)}}@keyframes pulse{50%{opacity:.55}}@keyframes road{to{transform:translateX(20%)}}
@media(min-width:760px){.scene{padding-left:14%;padding-right:14%}.album-grid{grid-template-columns:repeat(3,1fr)}.venue-upload-grid{grid-template-columns:2fr 1fr}.venue-slot.large{grid-column:auto;grid-row:span 2;height:310px}.venue-slot{height:150px}}

/* ===== 自定义背景工作室 ===== */
.bg-manager-btn{position:fixed;right:15px;bottom:18px;z-index:81;border:1px solid #fff9;border-radius:24px;background:#fff7e9e8;color:#315b48;padding:10px 14px;box-shadow:0 10px 30px #14362933;backdrop-filter:blur(10px);font-weight:700}
.bg-manager{display:none;position:fixed;inset:0;z-index:110;background:#163a30b8;backdrop-filter:blur(8px);padding:20px;align-items:flex-end;justify-content:center}
.bg-manager.show{display:flex}
.bg-manager-panel{width:min(680px,100%);max-height:88svh;overflow:auto;background:#fff8e9;border-radius:28px 28px 18px 18px;padding:22px;box-shadow:0 -15px 60px #102c2455}
.bg-manager-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #eadfca;padding-bottom:12px}
.bg-manager-head small{font-size:9px;letter-spacing:2px;color:#b37963}.bg-manager-head h3{margin:5px 0 0;font:700 25px Georgia,"Songti SC",serif;color:#315b48}
.close-bg{border:0;background:#e9d9bd;border-radius:50%;width:38px;height:38px;font-size:24px;color:#456653}
.bg-help{font-size:12px;line-height:1.7;color:#61756b;margin:14px 0}
.bg-scene-list{display:grid;gap:10px}
.bg-scene-row{display:grid;grid-template-columns:62px 1fr auto;gap:10px;align-items:center;background:#fffdf4;border:1px solid #eee0c8;border-radius:15px;padding:9px}
.bg-thumb{width:62px;height:74px;border-radius:10px;background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px #fff}
.bg-scene-info b{display:block;font-size:13px;color:#315b48}.bg-scene-info small{display:block;margin-top:5px;font-size:10px;color:#8a7869}
.bg-row-actions{display:flex;flex-direction:column;gap:6px}.bg-row-actions button{border:0;border-radius:11px;padding:7px 9px;font-size:10px;white-space:nowrap}
.bg-upload{background:#2f6d50;color:#fff}.bg-reset{background:#efe3cb;color:#5e715f}
.bg-manager-foot{padding-top:14px}.restore-all{width:100%;border:0;border-radius:15px;background:#b9685e;color:#fff;padding:12px;font-weight:700}
@media(min-width:760px){.bg-manager{align-items:center}.bg-manager-panel{border-radius:28px}.bg-scene-list{grid-template-columns:1fr 1fr}.bg-scene-row{grid-template-columns:52px 1fr}.bg-row-actions{grid-column:1/-1;flex-direction:row}.bg-row-actions button{flex:1}.bg-thumb{width:52px;height:62px}}
