:root{--font-sans:"Be Vietnam Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif:"Playfair Display", Georgia, serif;--font-handwriting:"Dancing Script", "Alex Brush", cursive;--font-script:"Alex Brush", cursive;--bg-midnight:#070b1e;--bg-card:#121934bf;--bg-card-hover:#1a244ad9;--border-gold:#ffd7004d;--border-gold-glow:#ffd70099;--gold-50:#fffdf0;--gold-100:#fff9c4;--gold-200:#fff176;--gold-400:#ffd54f;--gold-500:#ffc107;--gold-600:#ffa000;--gold-700:#ff8f00;--crimson-500:#c2185b;--crimson-600:#ad1457;--crimson-700:#880e4f;--pink-accent:#ff4081;--pink-glow:#ff408159;--lantern-glow:#ffa00073;--moon-glow:#ffeb9659;--ease-spring:cubic-bezier(.175, .885, .32, 1.275);--ease-smooth:cubic-bezier(.25, .1, .25, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-midnight);color:#f8f9fa;width:100%;height:100%;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}#root{width:100%;min-height:100%}button{cursor:pointer;background:0 0;border:none;outline:none;font-family:inherit}input,textarea{outline:none;font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0a0f2399}::-webkit-scrollbar-thumb{background:#ffd70059;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#ffd700a6}.mid-autumn-app{background-color:var(--bg-midnight);width:100vw;min-height:100vh;position:relative;overflow-x:hidden}.app-foreground{z-index:10;pointer-events:none;flex-direction:column;min-height:100vh;padding:1rem 1.5rem 2rem;display:flex;position:relative}.app-foreground *{pointer-events:auto}.mid-autumn-header{-webkit-backdrop-filter:blur(16px);width:100%;max-width:1200px;transition:all .3s var(--ease-smooth);background:#0e152ea6;border:1px solid #ffd70038;border-radius:999px;justify-content:space-between;align-items:center;margin:0 auto 1.5rem;padding:.85rem 1.4rem;display:flex;box-shadow:0 8px 32px #0006,0 0 15px #ffd7001a}.header-brand{align-items:center;gap:.85rem;display:flex}.moon-crest{background:radial-gradient(circle,#ffe082 20%,#ffb300 70%,#e65100 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:relative;box-shadow:0 0 18px #ffd70099}.crest-moon-icon{color:#fffdf0;fill:#fffdf0;filter:drop-shadow(0 0 4px #fffc)}.crest-sparkle-icon{color:#fff9c4;animation:2s ease-in-out infinite pulse-twinkle;position:absolute;top:2px;right:2px}.header-text-block{flex-direction:column;display:flex}.header-title{font-family:var(--font-serif);color:#fff;letter-spacing:.5px;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;display:flex}.accent-gold{background:linear-gradient(135deg,#fff9c4 0%,#ffd54f 50%,#ffb300 100%);-webkit-text-fill-color:transparent;text-shadow:0 0 20px #ffd70059;-webkit-background-clip:text}.header-tag{font-family:var(--font-sans);text-transform:uppercase;color:#ff80ab;letter-spacing:.6px;background:#ff408133;border:1px solid #ff408166;border-radius:999px;padding:.15rem .5rem;font-size:.68rem;font-weight:600}.header-subtitle{color:#ffffffc7;font-size:.82rem}.header-subtitle strong{color:#ffe082;font-weight:600}.music-player-bar{align-items:center;gap:.6rem;display:flex;position:relative}.music-toggle-btn{color:#fff9e6;transition:all .25s var(--ease-smooth);background:#ffffff14;border:1px solid #ffd70040;border-radius:999px;align-items:center;gap:.6rem;padding:.4rem .9rem;font-size:.82rem;display:flex}.music-toggle-btn:hover{background:#ffd7002e;border-color:#ffd70099;transform:translateY(-1px)}.music-toggle-btn.playing{background:#ffd70038;border-color:#ffd54f;box-shadow:0 0 14px #ffd70059}.music-icon-wrapper{color:#ffd54f;justify-content:center;align-items:center;display:flex}.music-info-pill{text-align:left;flex-direction:column;display:flex}.track-title{color:#fff;font-size:.76rem;font-weight:600}.track-subtitle{color:#fff9;font-size:.65rem}.equalizer-waves{align-items:flex-end;gap:2.5px;height:14px;display:flex}.eq-bar{background:#ffd54f;border-radius:2px;width:2.5px;animation:1.2s ease-in-out infinite eq-bounce}.eq-bar.b1{height:60%;animation-delay:.1s}.eq-bar.b2{height:100%;animation-delay:.3s}.eq-bar.b3{height:40%;animation-delay:.2s}.eq-bar.b4{height:80%;animation-delay:.4s}@keyframes eq-bounce{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.volume-control-pop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0e152ed9;border:1px solid #ffd70040;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .6rem;display:flex}.mute-btn{color:#ffe082;align-items:center;display:flex}.volume-slider{accent-color:#ffd54f;cursor:pointer;width:60px}.main-content-hero{text-align:center;z-index:5;flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;max-width:900px;margin:0 auto;display:flex;position:relative}.hero-intro-text{margin-bottom:2rem;animation:1s ease-out fade-slide-down}.hero-pill-badge{letter-spacing:2px;color:#ffe082;background:#ffd7001f;border:1px solid #ffd70059;border-radius:999px;margin-bottom:1rem;padding:.35rem 1.2rem;font-size:.78rem;font-weight:600;display:inline-block;box-shadow:0 0 15px #ffd70033}.hero-poetic-quote{font-family:var(--font-serif);color:#fffdf0;text-shadow:0 2px 20px #000c,0 0 30px #ffd70040;font-size:1.85rem;font-style:italic;font-weight:600;line-height:1.5}.love-letter-wrapper{justify-content:center;align-items:center;margin:1rem 0;display:flex;position:relative}.envelope-closed-container{cursor:pointer;perspective:1200px;transition:transform .4s var(--ease-spring);position:relative}.envelope-closed-container:hover{transform:translateY(-8px)scale(1.02)}.envelope-glow-aura{filter:blur(28px);z-index:0;background:radial-gradient(circle,#ffd70061 0%,#ff408138 45%,#0000 72%);border-radius:32px;animation:3.5s ease-in-out infinite alternate aura-pulse;position:absolute;inset:-22px}@keyframes aura-pulse{0%{opacity:.65;transform:scale(.96)}to{opacity:1;transform:scale(1.05)}}.envelope-card{z-index:1;background:linear-gradient(155deg,#851430 0%,#560a1e 50%,#320412 100%);border:1.5px solid #ffd7008c;border-radius:16px;width:440px;max-width:92vw;height:280px;position:relative;overflow:hidden;box-shadow:0 25px 60px #000000bf,inset 0 0 30px #ffd7001f,0 0 25px #ff408133}.envelope-foil-pattern{pointer-events:none;z-index:1;background-image:radial-gradient(circle,#ffd70014 1.5px,#0000 1.5px),radial-gradient(circle at 0 0,#ffd7000d 1px,#0000 1px);background-size:24px 24px,12px 12px;position:absolute;inset:0}.envelope-border-outer{pointer-events:none;z-index:2;border:1px solid #ffd70059;border-radius:10px;position:absolute;inset:8px}.envelope-border-inner{border:1px dashed #ffd70040;border-radius:8px;position:absolute;inset:3px}.filigree-corner{color:#ffd54f;text-shadow:0 0 6px #ffd70099;z-index:3;pointer-events:none;font-size:.85rem;position:absolute}.filigree-corner.tl{top:12px;left:14px}.filigree-corner.tr{top:12px;right:14px}.filigree-corner.bl{bottom:12px;left:14px}.filigree-corner.br{bottom:12px;right:14px}.envelope-ribbon-band{z-index:2;background:linear-gradient(#a71c3d 0%,#780e26 50%,#520516 100%);height:24px;position:absolute;top:96px;left:0;right:0;box-shadow:0 4px 12px #00000080}.ribbon-gold-line{background:linear-gradient(90deg,#0000,#ffd54f,#fff59d,#ffd54f,#0000);height:1.5px;position:absolute;left:0;right:0}.ribbon-gold-line.top{top:0}.ribbon-gold-line.bottom{bottom:0}.envelope-flap-wrapper{z-index:3;filter:drop-shadow(0 6px 12px #0000008c);height:105px;position:absolute;top:0;left:0;right:0;overflow:hidden}.envelope-flap-triangle{border-top:105px solid #9a1a3a;border-left:220px solid #0000;border-right:220px solid #0000;width:0;height:0;position:absolute;top:0;left:50%;transform:translate(-50%)}.envelope-flap-trim{pointer-events:none;border-top:105px solid #0000;border-left:220px solid #0000;border-right:220px solid #0000;width:0;height:0;position:absolute;top:0;left:50%;transform:translate(-50%)}.wax-seal-button{z-index:6;cursor:pointer;width:66px;height:66px;transition:transform .25s var(--ease-spring), filter .25s;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:72px;left:50%;transform:translate(-50%)}.wax-seal-button:hover{filter:brightness(1.1);transform:translate(-50%)scale(1.12)}.wax-seal-outer-melt{background:radial-gradient(circle at 35% 35%,#ffe082 0%,#d89f22 55%,#8a5b05 100%);border:1.5px solid #fff59d;border-radius:46% 54% 52% 48%/50% 48% 52% 50%;justify-content:center;align-items:center;width:66px;height:66px;animation:3s ease-in-out infinite seal-pulse-glow;display:flex;box-shadow:0 8px 20px #000000a6,inset 0 2px 4px #fff9,inset 0 -3px 6px #00000080,0 0 18px #ffd700a6}@keyframes seal-pulse-glow{0%,to{box-shadow:0 8px 20px #000000a6,0 0 15px #ffd70080}50%{box-shadow:0 8px 22px #000000b3,0 0 28px #ffd700f2}}.wax-seal-inner-stamp{background:radial-gradient(circle at 40% 40%,#ffd54f 0%,#b88210 100%);border:1.5px dashed #64410073;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:48px;height:48px;display:flex;box-shadow:inset 0 2px 5px #00000059}.wax-seal-symbol{filter:drop-shadow(0 1px 2px #0006);font-size:1.1rem;line-height:1}.wax-seal-caption{letter-spacing:1.2px;color:#3e2400;text-shadow:0 1px #fff6;margin-top:1px;font-size:.5rem;font-weight:800}.envelope-plaque{text-align:center;z-index:4;background:linear-gradient(135deg,#260710d9 0%,#140308eb 100%);border:1px solid #ffd70061;border-radius:12px;width:86%;padding:.75rem 1rem .65rem;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #00000073,inset 0 0 15px #ffd70014}.plaque-header{justify-content:center;align-items:center;gap:.4rem;margin-bottom:.15rem;display:flex}.plaque-dot{color:#ffd54f;font-size:.55rem}.plaque-tag{letter-spacing:1.5px;color:#ffe082;text-transform:uppercase;font-size:.68rem;font-weight:700}.plaque-recipient{font-family:var(--font-handwriting);color:#fffdf0;text-shadow:0 0 14px #ffd700b3,0 2px 4px #0009;letter-spacing:.5px;margin:.1rem 0;font-size:2.15rem;font-weight:700;line-height:1.2}.plaque-hint{color:#ffebb4e0;justify-content:center;align-items:center;gap:.35rem;margin-top:.2rem;font-size:.72rem;font-weight:500;display:flex}.plaque-sparkle{color:#ffd54f;animation:2s ease-in-out infinite pulse-twinkle}.letter-backdrop{-webkit-backdrop-filter:blur(14px);z-index:1000;background:#040816d9;justify-content:center;align-items:center;padding:1.5rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.parchment-sheet{background-color:#fffdf5;background-image:radial-gradient(#f5eedb 1px,#0000 1px),linear-gradient(135deg,#fffdf8 0%,#fdf6e2 50%,#f7eacb 100%);background-position:0 0;background-repeat:repeat;background-size:20px 20px,100% 100%;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border:1px solid #d4af3799;border-radius:14px;width:100%;max-width:680px;max-height:88vh;margin:auto;padding:1.8rem 1.6rem;position:relative;overflow-y:auto;box-shadow:0 25px 60px #000000d9,0 0 40px #ffd7004d}.animate-unfold{animation:letter-unfold .5s var(--ease-spring)}@keyframes letter-unfold{0%{opacity:0;transform:scale(.85)translateY(30px)}to{opacity:1;transform:scale(1)translateY(0)}}.parchment-top-actions{justify-content:flex-end;align-items:center;gap:.6rem;margin-bottom:.75rem;display:flex}.action-pill-btn{color:#795548;background:#7955481a;border:1px solid #79554840;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .75rem;font-size:.78rem;font-weight:600;transition:all .2s;display:flex}.action-pill-btn:hover{color:#4e342e;background:#79554833}.close-letter-circle-btn{color:#5d4037;background:#efebe9;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.close-letter-circle-btn:hover{background:#d7ccc8;transform:rotate(90deg)}.name-edit-bar{background:#ffecb366;border:1px dashed #d4af37;border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1rem;padding:.85rem 1rem;display:flex}.edit-input-group{flex-direction:column;flex:1;gap:.25rem;min-width:140px;display:flex}.edit-input-group label{color:#5d4037;font-size:.75rem;font-weight:600}.edit-input-group input{color:#3e2723;background:#fffdf9;border:1px solid #d4af37;border-radius:6px;padding:.4rem .7rem;font-size:.85rem}.save-name-btn{color:#fff;background:#d4af37;border-radius:6px;align-items:center;gap:.35rem;padding:.45rem 1rem;font-size:.82rem;font-weight:600;transition:background .2s;display:flex}.save-name-btn:hover{background:#b89626}.parchment-frame{border:2px double #d4af37;border-radius:8px;padding:2.2rem 2rem 1.8rem;position:relative;overflow:hidden}.corner-gold{border:2.5px solid #c5a038;width:22px;height:22px;position:absolute}.corner-gold.top-left{border-bottom:none;border-right:none;top:6px;left:6px}.corner-gold.top-right{border-bottom:none;border-left:none;top:6px;right:6px}.corner-gold.bottom-left{border-top:none;border-right:none;bottom:6px;left:6px}.corner-gold.bottom-right{border-top:none;border-left:none;bottom:6px;right:6px}.parchment-watermark{pointer-events:none;background:radial-gradient(circle,#ffd70014 0%,#0000 70%);border-radius:50%;width:280px;height:280px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.letter-header{align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.letter-moon-icon{filter:drop-shadow(0 0 10px #ffd70080);font-size:2.2rem}.letter-header-text{text-align:left}.letter-subtitle{letter-spacing:2px;color:#8d6e63;margin-bottom:.15rem;font-size:.68rem;font-weight:700}.letter-title{font-family:var(--font-serif);color:#3e2723;font-size:1.45rem;font-weight:700}.letter-divider{align-items:center;gap:.75rem;margin:1rem 0 1.5rem;display:flex}.divider-line{background:linear-gradient(90deg,#0000,#d4af37,#0000);flex:1;height:1px}.divider-lotus{font-size:1.2rem}.letter-body-content{text-align:justify;font-family:var(--font-handwriting);color:#2d1b18;margin-bottom:1.8rem;font-size:1.45rem;font-weight:500;line-height:1.8}.letter-paragraph{text-indent:1.5rem;margin-bottom:1.1rem}.typewriter-cursor{color:#c2185b;font-weight:700;animation:.7s infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.letter-signature-block{flex-direction:column;align-items:flex-end;margin-top:1.5rem;padding-right:1.5rem;display:flex;position:relative}.signature-date{font-family:var(--font-serif);color:#6d4c41;font-size:.85rem;font-style:italic}.signature-name{font-family:var(--font-handwriting);color:#b71c1c;margin-top:.2rem;font-size:1.85rem;font-weight:700}.seal-imprint{opacity:.75;position:absolute;bottom:-.6rem;right:-.5rem;transform:rotate(-12deg)}.seal-circle{color:#c2185b;letter-spacing:.5px;border:2px dashed #c2185b;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:.55rem;font-weight:800;display:flex}.letter-footer-interactive{justify-content:center;margin-top:1.8rem;display:flex}.heart-burst-btn{color:#fff;transition:all .25s var(--ease-spring);background:linear-gradient(135deg,#ff4081 0%,#d81b60 100%);border-radius:999px;align-items:center;gap:.6rem;padding:.75rem 1.6rem;font-size:.92rem;font-weight:600;display:flex;box-shadow:0 6px 20px #e91e6373}.heart-burst-btn:hover{transform:scale(1.05);box-shadow:0 8px 25px #e91e63a6}.heart-icon-beat{animation:1.3s ease-in-out infinite heart-pulse}@keyframes heart-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}.modal-backdrop{-webkit-backdrop-filter:blur(14px);z-index:1000;background:#030612d9;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.animate-scale-up{animation:modal-scale .35s var(--ease-spring)}@keyframes modal-scale{0%{opacity:0;transform:scale(.9)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.close-btn{color:#fff;background:#ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.close-btn:hover{background:#ffffff40;transform:rotate(90deg)}.lantern-modal-card{background:linear-gradient(145deg,#1a1835 0%,#101227 100%);border:1px solid #ffd70066;border-radius:20px;width:100%;max-width:520px;padding:1.8rem;position:relative;overflow:hidden;box-shadow:0 20px 50px #000c,0 0 30px #ffa00040}.lantern-modal-glow{filter:blur(30px);pointer-events:none;background:radial-gradient(circle,#ffaa004d 0%,#0000 70%);width:160px;height:160px;position:absolute;top:-40px;right:-40px}.lantern-modal-header{justify-content:space-between;align-items:center;margin-bottom:.8rem;display:flex}.lantern-badge{color:#ffe082;font-size:1.15rem;font-weight:700;font-family:var(--font-serif);align-items:center;gap:.5rem;display:flex}.flame-icon-flicker{color:#ff9100;animation:1.5s ease-in-out infinite flame-flicker}@keyframes flame-flicker{0%,to{filter:drop-shadow(0 0 6px #ff9100);transform:scale(1)rotate(-3deg)}50%{filter:drop-shadow(0 0 14px #ff6d00);transform:scale(1.15)rotate(3deg)}}.lantern-modal-desc{color:#ffffffc7;margin-bottom:1.2rem;font-size:.85rem;line-height:1.5}.presets-container{margin-bottom:1.2rem}.presets-label{color:#ffd54f;margin-bottom:.5rem;font-size:.75rem;font-weight:600;display:block}.preset-chips{flex-direction:column;gap:.4rem;max-height:110px;padding-right:.3rem;display:flex;overflow-y:auto}.preset-chip{text-align:left;color:#ffffffe0;background:#ffffff0f;border:1px solid #ffd70026;border-radius:8px;padding:.4rem .75rem;font-size:.78rem;transition:all .2s}.preset-chip:hover{color:#fff;background:#ffd70026;border-color:#ffd70066}.lantern-form{flex-direction:column;gap:1rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex;position:relative}.form-group label{color:#ffe082;font-size:.78rem;font-weight:600}.form-group textarea,.form-group input{color:#fff;background:#0a0e1ebf;border:1px solid #ffd70040;border-radius:10px;padding:.65rem .9rem;font-size:.88rem;transition:border-color .2s}.form-group textarea:focus,.form-group input:focus{border-color:#ffd54f;box-shadow:0 0 10px #ffd7004d}.char-count{color:#fff6;font-size:.68rem;position:absolute;bottom:8px;right:8px}.lantern-preview-box{background:#00000040;border-radius:12px;justify-content:center;align-items:center;padding:.75rem;display:flex}.preview-lantern{background:linear-gradient(135deg,#ffa000 0%,#ff6f00 100%);border-radius:8px;justify-content:center;align-items:center;width:140px;height:55px;padding:.4rem;display:flex;position:relative;box-shadow:0 0 20px #ffa00099}.preview-lantern-text{color:#fffdf0;text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.72rem;font-weight:600;display:-webkit-box;overflow:hidden}.form-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.btn-secondary{color:#ffffffb3;background:#ffffff14;border-radius:999px;padding:.6rem 1.2rem;font-size:.85rem;font-weight:600;transition:all .2s}.btn-secondary:hover{color:#fff;background:#ffffff29}.btn-primary-lantern{color:#fff;transition:all .25s var(--ease-spring);background:linear-gradient(135deg,#ffb300 0%,#ff6f00 100%);border-radius:999px;align-items:center;gap:.5rem;padding:.65rem 1.4rem;font-size:.88rem;font-weight:700;display:flex;box-shadow:0 6px 20px #ff6f0073}.btn-primary-lantern:hover{transform:translateY(-2px);box-shadow:0 8px 25px #ff6f00a6}.mooncake-modal{text-align:center;background:linear-gradient(145deg,#201726 0%,#120e1e 100%);border:1px solid #ffd70066;border-radius:20px;width:100%;max-width:520px;padding:1.8rem;position:relative;box-shadow:0 20px 50px #000c,0 0 30px #ffd70033}.mooncake-modal-header{justify-content:space-between;align-items:center;margin-bottom:.8rem;display:flex}.mooncake-modal-title{font-family:var(--font-serif);color:#ffe082;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700;display:flex}.mooncake-modal-hint{color:#ffffffc7;margin-bottom:1.5rem;font-size:.85rem}.mooncake-stage{justify-content:center;align-items:center;gap:2.5rem;margin-bottom:1.5rem;padding:1rem 0;display:flex}.mooncake-item{cursor:pointer;width:140px;height:140px;transition:transform .3s var(--ease-spring);display:flex;position:relative}.mooncake-item:not(.is-split):hover{transform:scale(1.08)rotate(3deg)}.mooncake-half{width:70px;height:140px;transition:transform .5s var(--ease-spring);background:radial-gradient(circle at 40% 40%,#ffca28 0%,#e65100 85%,#bf360c 100%);position:relative;overflow:hidden;box-shadow:0 10px 25px #0009,inset 0 0 15px #ffeb3b4d}.left-half{border-right:1px dashed #ffd70066;border-radius:70px 0 0 70px}.right-half{border-left:1px dashed #ffd70066;border-radius:0 70px 70px 0}.is-split .left-half{transform:translate(-18px)rotate(-8deg)}.is-split .right-half{transform:translate(18px)rotate(8deg)}.mooncake-pattern{opacity:.65;filter:drop-shadow(0 0 4px #0006);font-size:1.8rem;position:absolute;top:50%;left:100%;transform:translate(-50%,-50%)}.left-half .mooncake-pattern{left:100%}.right-half .mooncake-pattern{left:0%}.yolk-core{background:radial-gradient(circle,#fff59d 20%,#ff9800 70%,#e65100 100%);border-radius:50%;width:32px;height:32px;position:absolute;top:50%;box-shadow:0 0 12px #ffb300}.yolk-left{right:-16px;transform:translateY(-50%)}.yolk-right{left:-16px;transform:translateY(-50%)}.knife-hint{white-space:nowrap;color:#ffd54f;background:#00000080;border:1px solid #ffd7004d;border-radius:999px;padding:.2rem .6rem;font-size:.72rem;font-weight:600;position:absolute;bottom:-28px;left:50%;transform:translate(-50%)}.tea-cup-container{flex-direction:column;align-items:center;display:flex}.tea-steam{gap:4px;height:25px;display:flex}.steam-line{background:#ffffff80;border-radius:2px;width:2px;height:18px;animation:2s ease-out infinite steam-rise}.s1{animation-delay:.2s}.s2{animation-delay:.6s}.s3{animation-delay:.9s}@keyframes steam-rise{0%{opacity:0;transform:translateY(0)scaleX(1)}50%{opacity:.6}to{opacity:0;transform:translateY(-16px)scaleX(2.5)}}.tea-cup{background:linear-gradient(135deg,#e0f2f1 0%,#80cbc4 100%);border:2px solid #fff;border-radius:0 0 25px 25px;width:55px;height:40px;position:relative;overflow:hidden;box-shadow:0 6px 15px #0006}.tea-liquid{background:#c8e6c9;border-radius:50%;height:14px;position:absolute;top:4px;left:4px;right:4px}.tea-label{color:#ffffffb3;margin-top:.5rem;font-size:.72rem}.revealed-coupon{margin-top:1rem}.coupon-card{text-align:left;background:#ffffff12;border:2px dashed #ffd54f;border-radius:14px;align-items:center;gap:1rem;padding:1.2rem;display:flex}.coupon-stamp{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.6rem;display:flex;box-shadow:0 4px 15px #0006}.coupon-badge{letter-spacing:1px;font-size:.68rem;font-weight:800}.coupon-title{font-family:var(--font-serif);color:#fff;margin:.2rem 0 .4rem;font-size:1.15rem;font-weight:700}.coupon-desc{color:#ffffffd9;font-size:.85rem;line-height:1.4}.coupon-footer{margin-top:.6rem}.coupon-validity{color:#ffd700b3;font-size:.7rem}.coupon-actions{justify-content:center;margin-top:1rem;display:flex}.another-coupon-btn{color:#ffe082;background:#ffd7001f;border:1px solid #ffd70059;border-radius:999px;align-items:center;gap:.4rem;padding:.45rem 1.1rem;font-size:.82rem;font-weight:600;transition:all .2s;display:flex}.another-coupon-btn:hover{background:#ffd70040}.lantern-viewer-card{text-align:center;background:linear-gradient(145deg,#1c152b 0%,#0e0d1d 100%);border:1px solid #ffd70080;border-radius:18px;width:100%;max-width:440px;padding:2rem 1.6rem;position:relative;box-shadow:0 20px 50px #000c,0 0 30px #ffaa004d}.viewer-lantern-icon{margin-bottom:.5rem;font-size:3rem;animation:3s ease-in-out infinite float-gentle}@keyframes float-gentle{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.viewer-tag{letter-spacing:2px;color:#ffb300;margin-bottom:.2rem;font-size:.68rem;font-weight:700;display:block}.viewer-title{font-family:var(--font-serif);color:#fffdf0;margin-bottom:1.2rem;font-size:1.35rem}.viewer-scroll{background:#ffffff0f;border:1px dashed #ffd70066;border-radius:12px;margin-bottom:1rem;padding:1.2rem}.viewer-wish{font-family:var(--font-handwriting);color:#ffe082;margin-bottom:.8rem;font-size:1.45rem;line-height:1.6}.viewer-author{color:#fffc;justify-content:center;align-items:center;gap:.4rem;font-size:.82rem;display:flex}.viewer-author strong{color:#fff}.viewer-hint{color:#ffffff8c;font-size:.75rem}.control-dock{-webkit-backdrop-filter:blur(20px);z-index:50;transition:all .3s var(--ease-smooth);background:#0e152ed1;border:1px solid #ffd70059;border-radius:999px;align-items:center;gap:.75rem;padding:.5rem .9rem;display:flex;position:fixed;bottom:1.4rem;left:50%;transform:translate(-50%);box-shadow:0 10px 40px #0009,0 0 25px #ffd70033}.dock-btn{transition:all .25s var(--ease-spring);border-radius:16px;flex-direction:column;align-items:center;gap:.2rem;padding:.4rem .85rem;display:flex}.dock-btn:hover{background:#ffd70026;transform:translateY(-4px)}.dock-btn.active{background:#ffd70038}.dock-icon-box{color:#fff9e6;background:#ffffff14;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:all .2s;display:flex;position:relative}.dock-badge-dot{background:#ff4081;border-radius:50%;width:8px;height:8px;position:absolute;top:1px;right:1px;box-shadow:0 0 6px #ff4081}.highlight-lantern .dock-icon-box{color:#ffb300;background:linear-gradient(135deg,#ffa00066,#ff640033)}.love-btn .dock-icon-box{background:linear-gradient(135deg,#ff408159,#e91e6326)}.mooncake-emoji{font-size:1.25rem}.dock-label{color:#ffffffd9;white-space:nowrap;font-size:.72rem;font-weight:600}@media (width<=768px){.app-foreground{padding:.5rem .75rem 1.5rem}.mid-autumn-header{border-radius:999px;flex-direction:row;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.35rem .75rem}.header-brand{text-align:left;flex-direction:row;flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.moon-crest{width:32px;min-width:32px;height:32px;box-shadow:0 0 10px #ffd70073}.crest-moon-icon{width:16px;height:16px}.crest-sparkle-icon{width:9px;height:9px;top:1px;right:1px}.header-text-block{min-width:0}.header-title{white-space:nowrap;justify-content:flex-start;font-size:.95rem}.header-subtitle{white-space:nowrap;text-overflow:ellipsis;max-width:175px;font-size:.65rem;line-height:1.2;overflow:hidden}.header-actions{flex-shrink:0}.music-player-bar{gap:.3rem}.music-toggle-btn{gap:.35rem;padding:.35rem .6rem}.music-info-pill,.volume-control-pop{display:none}.hero-intro-text{margin-bottom:.75rem}.hero-poetic-quote{padding:0 .5rem;font-size:1.15rem;line-height:1.45}.love-letter-wrapper{margin:.4rem 0}.envelope-card{border-radius:14px;width:330px;max-width:90vw;height:220px}.envelope-border-outer{inset:6px}.filigree-corner.tl{font-size:.7rem;top:8px;left:10px}.filigree-corner.tr{font-size:.7rem;top:8px;right:10px}.filigree-corner.bl{font-size:.7rem;bottom:8px;left:10px}.filigree-corner.br{font-size:.7rem;bottom:8px;right:10px}.envelope-flap-wrapper{height:78px}.envelope-flap-triangle{border-top:74px solid #9a1a3a;border-left:165px solid #0000;border-right:165px solid #0000}.envelope-flap-trim{border-top:74px solid #0000;border-left:165px solid #0000;border-right:165px solid #0000}.envelope-ribbon-band{height:16px;top:66px}.wax-seal-button{width:48px;height:48px;top:48px}.wax-seal-outer-melt{width:48px;height:48px}.wax-seal-inner-stamp{width:34px;height:34px}.wax-seal-symbol{font-size:.85rem}.wax-seal-caption{letter-spacing:.8px;margin-top:0;font-size:.36rem}.envelope-plaque{border-radius:10px;width:88%;padding:.42rem .6rem;bottom:12px}.plaque-header{gap:.25rem;margin-bottom:.05rem}.plaque-dot{font-size:.45rem}.plaque-tag{letter-spacing:1px;font-size:.58rem}.plaque-recipient{white-space:nowrap;text-overflow:ellipsis;margin:.05rem 0;font-size:1.38rem;line-height:1.15;overflow:hidden}.plaque-hint{gap:.25rem;margin-top:.15rem;font-size:.62rem}.letter-backdrop{padding:.75rem .5rem}.parchment-sheet{border-radius:12px;max-height:88vh;padding:.35rem}.parchment-frame{border-radius:10px;padding:1.2rem .8rem 1rem}.parchment-gold-inner{padding:.8rem .65rem}.letter-salutation{margin-bottom:.6rem;font-size:1.35rem}.letter-body-content{font-size:1.05rem;line-height:1.6}.letter-sign-off{margin-top:1rem}.letter-sender{font-size:1.3rem}.close-letter-circle-btn{width:32px;height:32px}}@media (width<=380px){.envelope-card{width:295px;height:205px}.envelope-flap-triangle,.envelope-flap-trim{border-top-width:68px;border-left-width:148px;border-right-width:148px}.envelope-ribbon-band{top:60px}.wax-seal-button{width:44px;height:44px;top:42px}.wax-seal-outer-melt{width:44px;height:44px}.wax-seal-inner-stamp{width:30px;height:30px}.wax-seal-symbol{font-size:.75rem}.wax-seal-caption{display:none}.plaque-recipient{font-size:1.25rem}.header-subtitle{max-width:125px}}
