:root{--night:#250f1c;--wine:#561b35;--rose:#b24863;--gold:#d4b080;--paper:#f4e9df;--muted:#c2a7ad;--line:#b7917a38;--serif:"Songti SC","STSong","Noto Serif CJK SC",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--night);color:var(--paper);font-family:var(--sans);font-weight:300}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.grain{position:fixed;inset:0;pointer-events:none;z-index:10;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.7' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}header{height:100px;display:flex;justify-content:space-between;align-items:center;padding:0 6vw;border-bottom:1px solid var(--line)}.monogram{font-family:var(--serif);font-size:24px;letter-spacing:4px}.monogram span{font-size:12px;color:var(--gold)}.edition,.eyebrow{font-size:11px;letter-spacing:4px;color:var(--gold)}.cover{position:relative;min-height:calc(100svh - 100px);display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:60px 10vw 100px;gap:6vw;overflow:hidden;background:radial-gradient(ellipse at 22% 45%,#6a213443,transparent 55%)}.cover-copy{order:2}.cover h1{font:400 clamp(42px,4.5vw,76px)/1.45 var(--serif);letter-spacing:2px;margin:28px 0}.cover h1 span,h2 span{color:var(--gold)}.intro{font-size:14px;line-height:2.2;color:var(--muted)}.primary{border:1px solid #dbc09b;background:var(--gold);color:#311323;min-height:54px;padding:16px 28px;letter-spacing:2px;display:inline-flex;gap:40px;align-items:center;justify-content:center;transition:background .25s,transform .25s}.primary:hover{background:#ead0ac;transform:translateY(-2px)}.cover .primary{margin-top:24px}.date{margin-top:24px;color:var(--muted);font-size:10px;letter-spacing:2px}.date span{margin:0 12px;color:var(--rose)}.cover-bottom{position:absolute;bottom:28px;left:6vw;right:6vw;display:flex;justify-content:space-between;font-size:10px;letter-spacing:3px;color:var(--muted)}.orbit{width:100%;aspect-ratio:1;max-width:460px;border:1px solid var(--line);border-radius:50%;position:relative;display:grid;place-items:center}.orbit:before,.orbit:after{content:"";position:absolute;border:1px solid var(--line);border-radius:50%;inset:7%}.orbit:after{inset:16%;border-style:dashed;opacity:.55}.orbit-caption{position:absolute;bottom:7%;font:12px var(--serif);letter-spacing:4px;color:var(--gold)}.rose{position:relative;width:65%;aspect-ratio:1;filter:drop-shadow(0 18px 32px #10000c80);animation:breathe 7s ease-in-out infinite}.rose i{position:absolute;left:26%;top:9%;width:48%;height:66%;border-radius:75% 25% 62% 38%/65% 32% 68% 35%;background:linear-gradient(135deg,#cc7981,#8b2b49 35%,#451029 85%);border-top:1px solid #dfa3a175;transform-origin:50% 65%;transform:rotate(calc(var(--i)*32.7deg)) scale(var(--s,1));box-shadow:inset 8px 3px 15px #e5a4a215,3px 5px 12px #18071850}.rose b{position:absolute;inset:36%;border-radius:50%;background:conic-gradient(from 30deg,#491129,#b45a6a,#5c1936,#be6b78,#491129);box-shadow:0 0 20px #230c20}.opening{text-align:center;padding:130px 24px 75px}.start-date{font:italic 34px Georgia,serif;letter-spacing:5px;color:var(--gold);margin:35px 0}.start-date span{font-size:20px;color:var(--rose)}h2{font:400 clamp(29px,3.1vw,48px)/1.65 var(--serif);letter-spacing:1px;margin:20px 0}.opening>p:last-of-type{font-size:14px;line-height:2.3;color:var(--muted)}.line{height:75px;width:1px;background:var(--gold);opacity:.5;margin:45px auto 0}.memories{max-width:1020px;margin:auto;padding:0 40px}.memory{display:grid;grid-template-columns:145px 1fr 100px;gap:35px;padding:65px 0;border-bottom:1px solid var(--line);position:relative}.memory-label{font-size:11px;letter-spacing:3px;color:var(--gold);padding-top:20px}.memory p{font-size:14px;line-height:2.2;color:var(--muted);max-width:490px}.memory blockquote{font:20px/1.9 var(--serif);margin:28px 0 10px;color:var(--paper)}.memory p.aside{font-size:12px;color:var(--gold)}.memory-art{font:80px var(--serif);color:var(--gold);opacity:.5;align-self:center;text-align:center}.promise{max-width:800px;margin:auto;padding:125px 40px}.dear{font:23px var(--serif);margin-top:50px}.promise-copy{padding-top:16px}.promise-copy p{line-height:2.4;color:var(--muted);font-size:15px;margin:0 0 30px}.signature{font:28px var(--serif);text-align:right;margin-top:55px}.signature span{display:block;color:var(--gold);font:10px var(--sans);letter-spacing:4px;margin-top:13px}.question{text-align:center;padding:95px 24px 100px;background:radial-gradient(ellipse at 50% 65%,#73284166,transparent 65%);border-top:1px solid var(--line)}.small-rose{font-size:50px;color:var(--rose);margin-bottom:30px}.question>p:not(.eyebrow):not(.private-note){color:var(--muted);font:17px var(--serif);margin:25px 0 35px}.answers{display:flex;flex-direction:column;align-items:center;gap:24px}.quiet{background:none;border:0;border-bottom:1px solid var(--line);color:var(--muted);padding:8px 0;font-size:12px;letter-spacing:1px}.private-note{font-size:10px;color:var(--muted);opacity:.75;line-height:1.8;margin-top:35px}.reply{margin:30px auto 0;max-width:440px;padding:24px;border:1px solid var(--line);font:20px/1.9 var(--serif);color:var(--gold)}footer{display:flex;justify-content:space-between;gap:20px;padding:30px 6vw;border-top:1px solid var(--line);font-size:10px;letter-spacing:2px;color:var(--muted)}.reveal{transition:opacity .8s,transform .8s}.js-reveal{opacity:0;transform:translateY(24px)}.js-reveal.visible{opacity:1;transform:none}.petal{position:fixed;top:-30px;width:13px;height:20px;border-radius:80% 10% 70% 30%;background:#b95f73;pointer-events:none;z-index:11;animation:fall 4s ease-in forwards}@keyframes breathe{50%{transform:translateY(-9px) rotate(3deg)}}@keyframes fall{to{transform:translate(70px,105vh) rotate(280deg);opacity:0}}[hidden]{display:none!important}@media(min-width:1200px){.cover{padding-left:12vw;padding-right:12vw}}@media(max-width:700px){header{height:74px;padding:0 24px}.monogram{font-size:20px}.edition{font-size:9px;letter-spacing:2px}.cover{min-height:calc(100svh - 74px);grid-template-columns:1fr;padding:25px 28px 75px;gap:8px;text-align:center}.orbit{width:205px;margin:0 auto}.orbit-caption{font-size:8px;letter-spacing:2px}.cover-copy{order:0}.cover h1{font-size:38px;line-height:1.4;margin:18px 0}.eyebrow{font-size:9px;letter-spacing:3px}.intro{font-size:12px}.cover .primary{margin-top:15px;min-height:50px}.date{font-size:9px;margin:18px 0}.cover-bottom{font-size:8px;letter-spacing:2px;bottom:20px}.opening{padding:90px 25px 35px}.opening>p:last-of-type{font-size:13px}.desktop{display:none}.memories{padding:0 28px}.memory{grid-template-columns:1fr;gap:8px;padding:45px 0}.memory-label{padding:0}.memory h2{margin:12px 0 20px;font-size:30px}.memory p{font-size:13px}.memory-art{position:absolute;right:0;top:45px;font-size:42px;opacity:.2}.memory blockquote{font-size:18px}.promise{padding:80px 28px}.promise h2{font-size:32px}.promise-copy p{font-size:14px}.question{padding:70px 24px}.question h2{font-size:34px}.question .eyebrow{letter-spacing:2px}footer{flex-wrap:wrap;font-size:9px;line-height:1.7;padding:25px 24px}footer a{margin-left:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-reveal{opacity:1;transform:none}}
