@font-face{font-family:"Bugtian Play Emoji";src:url('/assets/play-emoji-v3.woff2') format('woff2');font-display:swap;font-style:normal;font-weight:400}
:root{--paper:#f7f0e7;--ink:#513c40;--muted:#978285;--rose:#8e5062;--line:#ddd0c6}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'PingFang SC','Microsoft YaHei','Noto Sans CJK SC',Arial,'Bugtian Play Emoji',sans-serif}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #ac788f;outline-offset:5px}button{touch-action:manipulation}button:disabled{cursor:default}img{max-width:100%;height:auto}p{line-height:1.9}h1,h2,h3,p{margin-top:0}.skip-link{position:fixed;top:-60px;left:15px;background:var(--ink);color:white;padding:13px;z-index:500}.skip-link:focus{top:10px}.love-wrap{width:min(1230px,calc(100% - 100px));margin-inline:auto}.love-header{height:90px;width:min(1340px,calc(100% - 80px));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line)}.love-brand{font:600 19px Georgia,serif;letter-spacing:1px;white-space:nowrap}.love-brand>span{font:10px sans-serif;letter-spacing:1px;color:var(--muted);border-left:1px solid #c5b4b6;margin-left:15px;padding-left:15px}.love-header nav{display:flex;gap:30px;font-size:12px;color:#8a7077}.share-button{background:transparent;border:1px solid #c2a6ae;border-radius:7px;color:#875266;padding:11px 14px;font-size:11px}.eyebrow{font:9px monospace;letter-spacing:2px;color:var(--muted);line-height:1.6}.love-hero{display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:20px;padding:68px 0 60px;min-height:670px}.love-hero .eyebrow{display:flex;align-items:center;gap:8px;font-size:8px}.eyebrow i{width:5px;height:5px;background:#b86c81;border-radius:50%;display:inline-block}.love-hero h1{font-family:Georgia,'Songti SC','Noto Serif CJK SC',serif;font-size:clamp(55px,5.2vw,78px);font-weight:500;line-height:1.35;letter-spacing:-4px;margin:25px 0 23px}.recipient{color:#a5697c}.love-title-last{color:var(--rose);position:relative;white-space:nowrap}.love-title-last svg{position:absolute;left:0;bottom:-8px;width:100%;height:16px;stroke:#be8c99;stroke-width:2;fill:none}.hero-note{font-size:12px;color:#8d757c;line-height:2.1}.hero-love-actions{display:flex;gap:26px;align-items:center;margin-top:26px}.rose-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:8px;background:var(--rose);color:#fff8ef;padding:16px 22px;font-size:12px;transition:background .2s,transform .2s}.rose-button:hover{background:#784252;transform:translateY(-2px)}.quiet-link{border:0;background:transparent;color:#9a6b7c;font-size:11px;padding:12px 0;text-decoration:underline;text-decoration-color:#d4b4bc;text-underline-offset:6px}.love-hero-foot{display:flex;gap:35px;border-top:1px solid var(--line);margin-top:37px;padding-top:20px;font-size:9px;color:#a18d90}.love-hero-foot strong{font-size:11px;font-weight:500;color:#74585f;margin-left:12px}.rose-composition{position:relative;display:grid;place-items:center;min-height:490px;isolation:isolate}.rose-composition::before{content:"";position:absolute;inset:7% 4% 8%;border-radius:50%;background:radial-gradient(circle at 45% 35%,#ecd4d4,#eadfd499 60%,#eddfd400 75%);z-index:-2}.rose-composition img{width:100%;filter:drop-shadow(4px 14px 13px #71405113);transform:rotate(-6deg)}.rose-orbit{position:absolute;border:1px solid #d6bfc2;border-radius:50%;inset:35px 12px;transform:rotate(-22deg);z-index:-1}.orbit-two{inset:55px -10px;transform:rotate(29deg);border-style:dashed;border-color:#dbcac6}.rose-corner-text{position:absolute;left:40px;top:0;font:8px monospace;line-height:1.8;color:#b89ca3;letter-spacing:1px}.rose-seal{position:absolute;right:10px;top:54px;width:83px;height:100px;border:1px solid #b68a97;transform:rotate(12deg);display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f4e8dfcc;color:#9b6073}.rose-seal span{font:7px monospace;letter-spacing:2px}.rose-seal strong{font:500 24px Georgia,serif;margin:6px 0}.rose-tiny-star{position:absolute;color:#b3808e;font-size:28px}.star-one{right:35px;bottom:120px}.star-two{left:5px;top:90px;font-size:21px}.rose-handwriting{position:absolute;bottom:12px;left:35px;font:italic 17px Georgia,'Songti SC',serif;line-height:1.9;color:#9b6d79;transform:rotate(-8deg)}.love-ribbon{padding:17px 0;border-block:1px solid #ded0c9;white-space:nowrap;overflow:hidden;text-align:center;font:9px monospace;letter-spacing:3px;color:#a0868e;background:#f2e8de}.love-ribbon span{font-size:18px;margin:0 40px;vertical-align:middle;color:#b98193}.letter-section{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:70px;padding-block:94px 80px}.love-section-head h2{font:500 38px/1.6 Georgia,'Songti SC','Noto Serif CJK SC',serif;letter-spacing:-1.5px;margin:22px 0}.love-section-head h2 em{font-style:normal;color:#a1697b}.love-section-head>p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:2}.envelope-area{text-align:center;padding:20px 0}.envelope-note{font:italic 12px Georgia,'Songti SC',serif;color:#a58991;display:block;text-align:right;margin-right:15px;margin-bottom:24px}.love-envelope{position:relative;width:min(430px,100%);height:260px;background:none;border:0;padding:0;isolation:isolate;transform:rotate(-4deg);transition:transform .3s}.love-envelope:hover{transform:rotate(0deg) translateY(-8px)}.envelope-back{position:absolute;inset:0;border:1px solid #d0b4ad;background:#e7c7bf;border-radius:7px;box-shadow:0 15px 35px #7449541c;z-index:-2}.envelope-sheet{position:absolute;left:25px;right:25px;top:-22px;bottom:18px;background:#fff9ee;border:1px solid #d7c5b9;border-radius:3px;text-align:left;padding:24px;z-index:-1}.envelope-sheet small{font:8px monospace;color:#b98a96;letter-spacing:1px}.envelope-sheet>span{display:block;color:#a67383;font:17px/2 Georgia,'Songti SC',serif;margin-top:18px}.envelope-front{position:absolute;inset:0;background:linear-gradient(35deg,#edd4c9,#ead0c7);clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);border-radius:6px}.envelope-front::before{content:"";position:absolute;inset:0;background:#efdbd0;clip-path:polygon(0 100%,50% 44%,100% 100%)}.envelope-flap{position:absolute;inset:0;background:linear-gradient(#e7c7bd,#e6c3b8);clip-path:polygon(0 0,50% 57%,100% 0)}.envelope-seal{position:absolute;left:calc(50% - 25px);top:115px;width:50px;height:50px;border-radius:50%;background:#9c5a6c;color:#f9e2dc;font:31px Georgia,serif;display:grid;place-items:center;box-shadow:inset 0 0 0 4px #9c5a6c,inset 0 0 0 5px #d4a5b2;z-index:2}.envelope-to{position:absolute;left:28px;bottom:25px;font:10px monospace;letter-spacing:2px;color:#a16c78}.envelope-bottom{font:7px monospace;color:#b9a0a4;letter-spacing:1.5px;margin-top:36px}.love-reasons{padding-bottom:92px}.reasons-header{border-top:1px solid var(--line);padding-top:40px;display:flex;align-items:center;justify-content:space-between;gap:20px}.reasons-header .eyebrow{font-size:8px}.reasons-header h2{font:500 26px Georgia,'Songti SC',serif;letter-spacing:-.7px;margin-bottom:0}.reasons-header h2>span{color:#a16b7e}.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}.reason-grid article{border:1px solid var(--line);border-radius:13px;background:#f6ebe2;padding:27px;position:relative}.reason-number{font:8px monospace;letter-spacing:1px;color:#b08d97}.reason-icon{position:absolute;right:25px;top:22px;color:#ad8190;font-size:26px}.reason-grid h3{font:500 19px Georgia,'Songti SC',serif;margin:33px 0 12px}.reason-grid p{font-size:11px;line-height:2;color:#a28b8e;margin-bottom:0}
.sky-section{background:#252b39;color:#f0e7de;position:relative;overflow:hidden}.sky-section::before{content:"";position:absolute;width:1000px;height:800px;left:calc(50% - 500px);top:30px;background:radial-gradient(ellipse,#79637d26,transparent 60%);pointer-events:none}.sky-inner{padding-block:70px 55px;position:relative}.sky-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.sky-heading .eyebrow{color:#b1a0af}.sky-heading h2{font:500 34px/1.7 Georgia,'Songti SC',serif;margin:16px 0 0;letter-spacing:-1px}.sky-heading h2 span{color:#deb4c5}.sky-instructions{font-size:11px;color:#ac9fa9;text-align:right}.sky-instructions output{display:block;font:9px monospace;color:#d3afc1;margin-top:15px}.constellation{position:relative;height:440px;max-width:920px;margin:35px auto 10px}.constellation-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.sky-guide{fill:none;stroke:#d3afc12a;stroke-width:1;stroke-dasharray:3 8}.sky-heart{fill:#bd87a005;stroke:#e8adc6;stroke-width:2;stroke-dasharray:2400;stroke-dashoffset:2400;transition:stroke-dashoffset 2.2s,fill 2s;filter:drop-shadow(0 0 4px #e7a4c090)}.constellation.is-complete .sky-heart{stroke-dashoffset:0;fill:#bd87a00c}.sky-dust{position:absolute;inset:0;background:radial-gradient(circle at 16% 50%,#c5c1d455 1px,transparent 1.5px),radial-gradient(circle at 82% 48%,#c5c1d455 1px,transparent 1.5px),radial-gradient(circle at 38% 46%,#c5c1d455 1px,transparent 1.5px),radial-gradient(circle at 64% 60%,#c5c1d455 1px,transparent 1.5px),radial-gradient(circle at 68% 18%,#c5c1d455 1px,transparent 1.5px),radial-gradient(circle at 42% 87%,#c5c1d455 1px,transparent 1.5px);pointer-events:none}.sky-star{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:48px;height:48px;border:1px solid transparent;background:transparent;border-radius:50%;display:grid;place-items:center;color:#bdb3c8}.sky-star::before{content:"";position:absolute;inset:4px;border:1px solid #b398b42c;border-radius:50%;transition:border-color .4s,transform .4s}.sky-star>span{font:28px Georgia,serif;transition:color .3s,filter .3s}.sky-star:hover::before{border-color:#e6b7c4;transform:scale(1.2)}.sky-star.lit{color:#f4c6d6}.sky-star.lit>span{filter:drop-shadow(0 0 8px #efb3ce)}.sky-star.lit::before{border-color:#dcaec280}.sky-star small{position:absolute;white-space:nowrap;font:8px monospace;letter-spacing:2px;bottom:-14px;color:#ac91a3}.sky-label{position:absolute;font:7px monospace;letter-spacing:2px;color:#8c8296;pointer-events:none}.label-top{left:39%;top:1%}.label-bottom{left:0;bottom:4%;width:100%;text-align:center}.sky-message{font:19px/2 Georgia,'Songti SC',serif;color:#ddbdca;text-align:center;min-height:40px;margin:8px auto 22px;max-width:90%}.sky-actions{display:flex;justify-content:center;gap:18px}.sky-button{border:1px solid #685363;background:#ffffff03;color:#c9acbe;border-radius:7px;padding:12px 17px;font-size:10px}.sky-button:hover{background:#ffffff09}.dates-section{padding-block:92px;display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center}.dates-section .rose-button{margin-top:15px}.date-ticket{background:#f0e1d2;border:1px solid #dbc1b4;padding:27px 34px;border-radius:12px;position:relative;box-shadow:0 13px 30px #69434e0a;transform:rotate(2deg)}.ticket-top{display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px dashed #cba69f;padding-bottom:18px}.ticket-top>span:first-child{font:8px monospace;letter-spacing:1px;color:#af878b}.ticket-top>span:last-child{font-size:28px;color:#a36576}.ticket-number{display:block;font:9px monospace;letter-spacing:2px;color:#b28995;margin-top:28px}.date-ticket h3{font:500 30px Georgia,'Songti SC',serif;color:#815460;margin:18px 0}.date-ticket>p{font-size:12px;line-height:2.1;color:#a28081;min-height:65px;max-width:95%}.ticket-meta{display:flex;justify-content:space-between;gap:15px;font-size:9px;color:#ab8589;padding:12px 0 22px}.ticket-bottom{border-top:1px dashed #cba69f;display:flex;justify-content:space-between;align-items:center;gap:15px;padding-top:22px}.ticket-bottom>span{font:7px/1.8 monospace;letter-spacing:1px;color:#aa868c;text-align:right}.ticket-barcode{width:95px;height:30px;background:repeating-linear-gradient(90deg,#a78589 0 2px,transparent 2px 4px,#a78589 4px 5px,transparent 5px 8px,#a78589 8px 12px,transparent 12px 16px)}.love-postscript{text-align:center;padding:55px 0 75px;border-top:1px solid var(--line)}.love-postscript .eyebrow{font-size:8px;letter-spacing:2px}.love-postscript h2{font:500 37px/1.8 Georgia,'Songti SC',serif;letter-spacing:-1.5px;margin:22px 0 15px}.love-postscript h2 span{color:#a56a7e}.postscript-name{font:500 62px/1.6 Georgia,'Songti SC',serif;letter-spacing:15px;color:#a26a7b;margin-bottom:20px}.postscript-name>span{font-size:50px;letter-spacing:0}.love-postscript>p:not(.eyebrow):not(.postscript-name){font-size:12px;color:#9b838b;line-height:2.2}.ending-actions{display:flex;justify-content:center;gap:24px;margin-top:26px}.love-footer{border-top:1px solid var(--line);padding:25px 0;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:10px;color:#a28b93}.love-footer>span:nth-child(2){font:7px monospace;letter-spacing:1px}.love-footer>a{color:#9b6a7e}.letter-dialog{padding:0;border:1px solid #d8c7be;border-radius:13px;background:#fff9ed;color:#6a5157;width:min(690px,calc(100% - 24px));max-height:calc(100dvh - 40px);box-shadow:0 30px 150px #28232d44;overscroll-behavior:contain}.letter-dialog::backdrop{background:#302431aa;backdrop-filter:blur(7px)}.letter-paper{padding:55px 60px 38px;background:repeating-linear-gradient(transparent 0 35px,#bda39608 35px 36px)}.letter-paper>.eyebrow{font-size:8px;color:#b58a97;letter-spacing:2px;margin-bottom:28px}.letter-paper h2{font:500 27px Georgia,'Songti SC',serif;margin-bottom:24px;color:#965b70}.letter-paper>p:not(.eyebrow){font:14px/2.2 Georgia,'Songti SC',serif;margin-bottom:20px;letter-spacing:.4px}.letter-paper .letter-emphasis{color:#a05e74;border-left:2px solid #d7afb9;padding:4px 0 4px 18px;margin-block:30px}.letter-close{position:sticky;top:15px;left:calc(100% - 50px);border:1px solid #d9c5bc;background:#fff8ed;color:#a57986;border-radius:50%;width:32px;height:32px;font-size:23px;line-height:1;margin-top:15px;z-index:2}.letter-signature{text-align:right;margin:32px 0;color:#ad6c7e}.letter-signature>span{display:block;font:italic 24px Georgia,'Songti SC',serif;margin-bottom:13px}.letter-signature small{font-size:10px;color:#c19ba4}.letter-done{display:block;margin:35px auto 0;border:1px solid #ccabb2;color:#986477;background:#f1e5dc;border-radius:7px;padding:13px 20px;font-size:11px}#love-fireworks{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:200}#love-toast{position:fixed;left:50%;bottom:35px;transform:translate(-50%,20px);background:#6c4657;color:#fff5e9;box-shadow:0 10px 30px #3c24332a;padding:13px 20px;border-radius:9px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:400;max-width:90vw;text-align:center;width:max-content}#love-toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1050px){.love-wrap{width:calc(100% - 70px)}.love-header{width:calc(100% - 60px)}.love-header nav{gap:18px;font-size:11px}.love-brand span{display:none}.love-hero{min-height:590px;padding-top:55px}.love-hero h1{font-size:57px;letter-spacing:-3px}.rose-composition{min-height:400px}.rose-corner-text{left:25px;font-size:6px}.rose-handwriting{font-size:15px;bottom:0;left:15px}.rose-seal{right:0;top:35px;transform:rotate(10deg) scale(.8)}.hero-love-actions{gap:16px;flex-wrap:wrap}.letter-section,.dates-section{gap:40px}.love-section-head h2{font-size:32px}.love-envelope{height:230px}.envelope-seal{top:96px}.reason-grid article{padding:22px}.reason-grid h3{font-size:17px}.reason-grid p{font-size:10px}.constellation{height:380px}.sky-heading h2{font-size:30px}.date-ticket{padding:24px}.date-ticket h3{font-size:25px}.love-footer>span:nth-child(2){display:none}}
@media(max-width:700px){html{scroll-padding-top:35px}.love-wrap{width:calc(100% - 42px)}.love-header{width:calc(100% - 36px);height:70px;gap:10px}.love-brand{font-size:17px}.love-header nav{display:none}.share-button{font-size:10px;padding:9px 11px}.love-hero{grid-template-columns:1fr;gap:5px;padding-top:40px;padding-bottom:30px}.love-hero .eyebrow{font-size:6px;letter-spacing:1.2px}.love-hero h1{font-size:clamp(43px,10.8vw,67px);line-height:1.45;letter-spacing:-3px;margin:21px 0 24px}.love-title-last svg{height:13px;bottom:-6px}.hero-note{font-size:11px;line-height:2.2}.rose-button{font-size:11px;padding:14px 18px}.hero-love-actions{gap:19px;margin-top:24px}.quiet-link{font-size:10px}.love-hero-foot{gap:24px;margin-top:30px;padding-top:16px;font-size:8px}.love-hero-foot strong{display:block;margin:8px 0 0;font-size:10px}.rose-composition{min-height:330px;width:min(440px,100%);margin:20px auto 0}.rose-composition img{width:100%}.rose-composition::before{inset:0 5%}.rose-orbit{inset:20px 10px}.orbit-two{inset:40px 0}.rose-corner-text{top:5px;left:20px;font-size:5px}.rose-seal{right:0;top:20px;transform:rotate(12deg) scale(.67);transform-origin:top right}.rose-handwriting{font-size:13px;left:22px;bottom:-3px;line-height:1.8}.star-one{font-size:23px;right:22px;bottom:70px}.star-two{top:65px;left:3px;font-size:17px}.love-ribbon{font-size:7px;letter-spacing:2px;padding-block:13px}.love-ribbon span{margin:0 20px;font-size:14px}.letter-section{grid-template-columns:1fr;padding:52px 0 30px;gap:25px}.love-section-head .eyebrow{font-size:7px;letter-spacing:1.3px}.love-section-head h2{font-size:30px;margin:18px 0 15px}.love-section-head>p:not(.eyebrow){font-size:11px}.envelope-area{padding-top:5px}.envelope-note{font-size:10px;margin-bottom:32px;margin-right:10px}.love-envelope{height:220px;width:min(390px,calc(100% - 12px))}.envelope-sheet{padding:19px;left:18px;right:18px}.envelope-sheet>span{font-size:15px}.envelope-seal{top:94px;width:44px;height:44px;left:calc(50% - 22px);font-size:28px}.envelope-to{font-size:9px;bottom:21px;left:22px}.envelope-bottom{font-size:5px;margin-top:29px;letter-spacing:1px}.love-reasons{padding-bottom:45px}.reasons-header{display:block;padding-top:28px}.reasons-header h2{font-size:21px;line-height:1.6;margin-top:15px}.reason-grid{grid-template-columns:1fr;gap:13px;margin-top:20px}.reason-grid article{padding:21px 23px}.reason-grid h3{font-size:18px;margin-top:21px}.reason-grid p{font-size:11px}.reason-number{font-size:7px}.reason-icon{top:18px;right:23px;font-size:24px}.sky-inner{padding:43px 0 34px}.sky-heading{display:block}.sky-heading .eyebrow{font-size:7px;letter-spacing:1.2px}.sky-heading h2{font-size:28px;margin-top:17px;line-height:1.65}.sky-instructions{margin-top:18px;text-align:left;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:9px}.sky-instructions p{margin-bottom:0}.sky-instructions output{font-size:8px;margin-top:0}.constellation{height:300px;margin:25px -4px 12px}.sky-star{width:43px;height:43px}.sky-star>span{font-size:24px}.sky-star small{font-size:6px;letter-spacing:1px;bottom:-8px}.sky-label{font-size:5px;letter-spacing:1px}.label-top{left:34%;top:-3px}.sky-message{font-size:15px;min-height:65px;line-height:1.9;margin-bottom:17px}.sky-actions{gap:12px}.sky-button{font-size:9px;padding:11px 13px}.dates-section{grid-template-columns:1fr;padding:48px 0 45px;gap:30px}.dates-section .rose-button{margin-top:10px}.date-ticket{width:calc(100% - 10px);margin:auto;padding:22px 25px;transform:rotate(1.5deg)}.ticket-top>span:first-child{font-size:6px;letter-spacing:.5px}.ticket-top>span:last-child{font-size:23px}.ticket-number{font-size:8px;margin-top:22px}.date-ticket h3{font-size:27px}.date-ticket>p{font-size:11px;min-height:70px;line-height:2}.ticket-meta{font-size:8px;padding-bottom:18px}.ticket-bottom>span{font-size:6px;letter-spacing:.3px}.ticket-barcode{width:80px;height:25px}.love-postscript{padding:40px 0 45px}.love-postscript .eyebrow{font-size:6px;letter-spacing:1px}.love-postscript h2{font-size:27px;letter-spacing:-1px;margin-top:22px}.postscript-name{font-size:52px;letter-spacing:9px;margin-block:12px 20px}.postscript-name>span{font-size:41px}.love-postscript>p:not(.eyebrow):not(.postscript-name){font-size:10px}.ending-actions{flex-direction:column;align-items:center;gap:8px;margin-top:22px}.love-footer{padding-block:21px;font-size:8px;gap:12px;flex-wrap:wrap}.letter-dialog{width:calc(100% - 18px);max-height:calc(100dvh - 22px);border-radius:10px}.letter-paper{padding:15px 25px 27px}.letter-paper>.eyebrow{font-size:6px;letter-spacing:1px;margin-top:15px;margin-bottom:22px}.letter-paper h2{font-size:24px;margin-bottom:22px}.letter-paper>p:not(.eyebrow){font-size:13px;line-height:2.2;margin-bottom:19px;letter-spacing:.3px}.letter-paper .letter-emphasis{padding-left:13px;margin-block:25px}.letter-signature>span{font-size:23px}.letter-signature small{font-size:9px}.letter-close{top:12px;left:calc(100% - 43px);width:29px;height:29px;font-size:21px}.letter-done{font-size:10px}#love-toast{font-size:11px;padding:12px 16px;bottom:22px}}
@media(max-width:360px){.love-wrap{width:calc(100% - 34px)}.love-hero h1{font-size:40px}.hero-love-actions{gap:12px}.rose-button{font-size:10px;padding:13px 14px}.hero-love-actions .quiet-link{font-size:9px}.love-hero-foot{gap:18px}.rose-composition{min-height:290px}.love-envelope{height:190px}.envelope-seal{top:78px}.sky-heading h2{font-size:25px}.constellation{height:270px}.sky-star{width:40px;height:40px}.date-ticket{padding:20px}.sky-instructions output{font-size:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.sky-heart{stroke-dashoffset:2400}.constellation.is-complete .sky-heart{stroke-dashoffset:0}}

/* Native vector stars stay visible on platforms without symbol fonts. */
.rose-tiny-star{font-size:0;width:28px;height:28px;background:url('/assets/yiqian-spark.svg') center/contain no-repeat}.rose-tiny-star.star-two{font-size:0;width:21px;height:21px}.sky-star>span{font-size:0;width:22px;height:22px;background:url('/assets/yiqian-spark.svg') center/contain no-repeat;opacity:.65}.sky-star.lit>span{opacity:1}.reason-grid article:nth-child(2) .reason-icon{font-size:0;width:26px;height:26px;background:url('/assets/yiqian-spark.svg') center/contain no-repeat}
@media(max-width:700px){.rose-tiny-star{width:23px;height:23px}.rose-tiny-star.star-two{width:18px;height:18px}.sky-star>span{width:19px;height:19px}}

/* Keep decorative orbits inside the artwork without widening the mobile viewport. */
.rose-composition{overflow:clip;overflow-clip-margin:10px}.skip-link{opacity:0;pointer-events:none}.skip-link:focus{opacity:1;pointer-events:auto}
