:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{max-width:1280px;margin:0 auto;text-align:center}html,body,#root{height:100%;margin:0}.app-root{min-height:100vh;display:block}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.intro-scene{width:100vw;height:100vh;background:#0d0d0d;color:#f5f0e6;display:flex;align-items:center;justify-content:center}.intro-inner{text-align:center;max-width:820px;padding:24px}.intro-line{margin:0;line-height:1.2;font-family:Playfair Display,serif;color:#f5f0e6;-webkit-font-smoothing:antialiased}.intro-line-1{font-size:2.2rem;opacity:.95}.intro-line-2{font-size:1.25rem;margin-top:18px;font-weight:300;opacity:.95}.intro-cta{margin-top:40px}.open-door-btn{background:transparent;color:#f5f0e6;border:1px solid rgba(245,240,230,.06);padding:12px 20px;border-radius:8px;cursor:pointer;font-family:Playfair Display,serif;transition:opacity .2s ease-in-out}.open-door-btn:hover{opacity:.9}@media(min-width:640px){.intro-line-1{font-size:3rem}.intro-line-2{font-size:1.5rem}}.door-scene{width:100vw;height:100vh;background:#0d0d0d;color:#f5f0e6;display:flex;align-items:center;justify-content:center}.door-scene-inner{perspective:1400px;width:100%;max-width:900px;display:flex;flex-direction:column;align-items:center}.door-viewport{position:relative;width:520px;height:740px;transform-style:preserve-3d;display:flex;align-items:center;justify-content:center}.door{width:480px;height:700px;position:relative;transform-style:preserve-3d;transform-origin:left center;cursor:pointer}.door-panel{position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(180deg,#ffffff05,#0000000f);box-shadow:0 10px 30px #0009 inset;border-radius:6px}.door-left{left:0;transform-origin:left center;border-right:1px solid rgba(245,240,230,.02)}.door-right{right:0;transform-origin:right center;border-left:1px solid rgba(245,240,230,.02)}.door-panel{transform:rotateY(0)}.door.open .door-left{transition:transform 2s ease-in-out;transform:rotateY(-100deg)}.door.open .door-right{transition:transform 2s ease-in-out;transform:rotateY(100deg)}.door-panel:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 80% at 10% 20%,rgba(255,211,138,.02),transparent 20%),radial-gradient(80% 60% at 90% 80%,rgba(255,211,138,.02),transparent 20%)}.door-glow{position:absolute;width:820px;height:820px;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;filter:blur(36px);mix-blend-mode:screen;transition:opacity 2s ease-in-out,transform 2s ease-in-out}.glow-low{background:radial-gradient(circle at 50% 50%,rgba(255,211,138,.06) 0%,rgba(255,211,138,.02) 30%,transparent 50%);opacity:.25;transform:translate(-50%,-55%) scale(.9)}.glow-high{background:radial-gradient(circle at 50% 50%,rgba(255,211,138,.22) 0%,rgba(255,211,138,.06) 35%,transparent 60%);opacity:1;transform:translate(-50%,-50%) scale(1.05)}.door-caption{margin-top:28px}.open-door-btn.subtle{background:transparent;color:#f5f0e6;border:1px solid rgba(245,240,230,.06);padding:10px 18px;border-radius:8px;font-family:Playfair Display,serif}@media(max-width:480px){.door-viewport{width:320px;height:460px}.door{width:300px;height:420px}}.bouquet-scene{width:100vw;height:100vh;background:linear-gradient(180deg,#0d0d0d,#120c0a);color:#f5f0e6;display:flex;align-items:center;justify-content:center}.bouquet-inner{width:100%;max-width:960px;display:flex;align-items:center;justify-content:center;padding:32px}.bouquet-inner:before{content:"";position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:720px;height:540px;background:radial-gradient(circle at 50% 40%,rgba(255,211,138,.26) 0%,rgba(255,211,138,.08) 30%,transparent 60%);filter:blur(64px);pointer-events:none;z-index:10}.bouquet-card{width:420px;text-align:center;transform:perspective(900px) scale(.8);opacity:0;transition:transform 2s ease-in-out,opacity 2s ease-in-out;will-change:transform,opacity;position:relative;z-index:20}.bouquet-card{animation:reveal 2s ease-in-out forwards}@keyframes reveal{to{transform:perspective(900px) scale(1);opacity:1}}.bouquet-art{display:flex;align-items:center;justify-content:center;margin:0 auto 18px;pointer-events:none}.bouquet-caption{margin-top:6px;z-index:30}.bouquet-img{display:block;width:auto;height:auto;max-width:92vw;max-height:80vh;object-fit:contain}.highlight{position:absolute;top:12%;left:50%;width:260px;height:220px;transform:translate(-50%,-10%);background:radial-gradient(closest-side,rgba(255,211,138,.12),transparent 40%);filter:blur(18px);mix-blend-mode:screen;transition:transform .16s ease-out;border-radius:50%}.bouquet-title{margin:8px 0 6px;font-family:Playfair Display,serif;font-size:1.2rem}.bouquet-sub{margin:0;font-size:.95rem;opacity:.9}.bouquet-card{animation-name:reveal,floaty;animation-duration:2s,6s;animation-timing-function:ease-in-out,ease-in-out;animation-iteration-count:1,infinite}@keyframes floaty{0%{transform:translateY(0)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}.bouquet-inner{position:relative}.petals{pointer-events:none;position:fixed;left:50%;top:0;transform:translate(-50%);width:min(720px,92vw);height:100vh;overflow:hidden;z-index:40}.petal{position:absolute;width:22px;height:10px;background:#9969b5;border-radius:10px;opacity:.95;transform:translate(0) translateY(-120px) rotate(0);z-index:50;box-shadow:0 4px 10px #0000002e;--dx: 0px}.petal.p0{left:10%;--dx: -40px;animation:fall 6.2s linear infinite;animation-delay:0s}.petal.p1{left:22%;--dx: 30px;animation:fall 7.1s linear infinite;animation-delay:.6s}.petal.p2{left:34%;--dx: -20px;animation:fall 5.5s linear infinite;animation-delay:.3s}.petal.p3{left:46%;--dx: 18px;animation:fall 6.8s linear infinite;animation-delay:1.1s}.petal.p4{left:58%;--dx: -28px;animation:fall 7.6s linear infinite;animation-delay:.2s}.petal.p5{left:70%;--dx: 22px;animation:fall 6s linear infinite;animation-delay:.9s}.petal.p6{left:82%;--dx: -16px;animation:fall 5.9s linear infinite;animation-delay:.4s}.petal.p7{left:18%;--dx: 12px;animation:fall 6.5s linear infinite;animation-delay:.8s}.petal.p8{left:30%;--dx: -10px;animation:fall 6.9s linear infinite;animation-delay:.15s}.petal.p9{left:42%;--dx: 26px;animation:fall 7.2s linear infinite;animation-delay:.55s}.petal.p10{left:54%;--dx: -22px;animation:fall 6.3s linear infinite;animation-delay:.05s}.petal.p11{left:66%;--dx: 16px;animation:fall 5.8s linear infinite;animation-delay:.7s}.petal.p12{left:78%;--dx: -30px;animation:fall 6.6s linear infinite;animation-delay:.95s}.petal.p13{left:88%;--dx: 20px;animation:fall 7s linear infinite;animation-delay:.35s}@keyframes fall{0%{transform:translate(0) translateY(-120px) rotate(0);opacity:0}10%{opacity:.85}80%{transform:translate(var(--dx)) translateY(calc(100vh - 60px)) rotate(45deg);opacity:.24}to{transform:translate(calc(var(--dx) * 1.1)) translateY(calc(100vh - 30px)) rotate(60deg);opacity:.14}}.bouquet-card{transition:transform .22s cubic-bezier(.2,.8,.2,1)}@media(max-width:640px){.bouquet-card{width:280px}.bouquet-art{width:200px;height:220px;margin-bottom:24px}.bouquet-caption{margin-top:12px}.bouquet-img{max-height:56vh}}.open-letter-btn{background:transparent;color:#f5f0e6;border:1px solid rgba(245,240,230,.06);padding:10px 16px;border-radius:8px;font-family:Playfair Display,serif;cursor:pointer}.letter-overlay{position:fixed;inset:0;background:#0d0d0d99;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:2000}.letter-card{width:92%;max-width:640px;background:#f5f0e6;color:#0d0d0d;border-radius:12px;padding:28px;box-shadow:0 10px 40px #00000059;position:relative;font-family:Caveat,cursive}.letter-close{position:absolute;right:12px;top:8px;background:transparent;border:none;font-size:28px;cursor:pointer;color:#0d0d0dd9;padding:6px 8px}.letter-title{margin:0 0 8px;font-size:32px;font-weight:700}.letter-instruction{margin:0 0 16px;color:#0d0d0d99}.letter-body p{margin:12px 0 0;color:#0d0d0df2;line-height:1.6;font-size:20px}@media(max-width:480px){.letter-card{width:94%;max-width:94%;padding:18px;border-radius:10px;max-height:calc(100vh - 48px);overflow:auto}.letter-title{font-size:22px}.letter-body p{font-size:16px;line-height:1.5}.letter-close{top:6px;right:8px;font-size:26px;padding:6px}}.letter-signature{margin-top:18px;text-align:right}.signature-greeting{color:#0d0d0db3;margin-bottom:6px;font-size:20px}.signature-name{font-family:Great Vibes,cursive;font-size:40px;color:#0d0d0d;line-height:1}
