@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=Lora:ital,wght@0,400;0,500;1,400&family=Manrope:wght@400;500;600&display=swap";@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lora-latin-500-normal-Dh16O2IA.woff2) format("woff2"),url(/assets/lora-latin-500-normal-Dbc_1yrl.woff) format("woff")}@font-face{font-family:Lora;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/lora-vietnamese-500-normal-LA4e_tum.woff2) format("woff2"),url(/assets/lora-vietnamese-500-normal-vya0n-2r.woff) format("woff")}:root{font-family:Manrope,sans-serif;color:#f5edf1;background:#08070b;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-width:280px}button{font:inherit}button:focus-visible{outline:2px solid #ffd7e8;outline-offset:6px}.experience{min-height:100svh;background:#08070b}.invitation{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;padding:max(32px,env(safe-area-inset-top)) max(38px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(38px,env(safe-area-inset-left));display:flex;flex-direction:column;align-items:center;opacity:1;transition:opacity 1s ease;background:radial-gradient(ellipse at 50% 46%,#20111d66,transparent 58%)}.invitation:before{content:"";position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;opacity:.35;background-image:radial-gradient(circle at 16% 26%,#c6a7b8 0 1px,transparent 1.5px),radial-gradient(circle at 79% 32%,#c6a7b8 0 1px,transparent 1.5px),radial-gradient(circle at 25% 72%,#c6a7b8 0 1px,transparent 1.5px),radial-gradient(circle at 85% 77%,#c6a7b8 0 1px,transparent 1.5px)}.is-leaving{opacity:0;pointer-events:none}.masthead{display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:.25em;color:#c9b7c4}.brand-star{color:#e8b0c9;font-size:24px}.invitation-content{text-align:center;margin:auto 0;padding:36px 0 56px}.eyebrow{color:#b991a5;font-size:9px;letter-spacing:.25em;line-height:1.8}.eyebrow span{margin:0 10px}.celestial-mark{position:relative;width:110px;height:100px;margin:28px auto 22px;display:grid;place-items:center}.celestial-mark>span{color:#f6cddd;font-size:52px;text-shadow:0 0 40px #d995b84a}.orbit{position:absolute;width:95px;height:62px;border:1px solid #b4829b55;border-radius:50%;transform:rotate(-34deg)}.celestial-mark i{position:absolute;top:9px;right:10px;color:#dbaac0;font-size:18px;font-style:normal}h1{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(58px,7.8vw,100px);line-height:.98;font-weight:400;letter-spacing:-.045em;margin:0}h1 em{color:#efb8d1;font-weight:400}.intro{font-size:12px;line-height:1.9;color:#a99ba6;margin:26px 0 30px}.choices{position:relative;display:flex;justify-content:center;gap:14px}.button{height:48px;border-radius:30px;padding:0 26px;cursor:pointer;font-size:11px;border:1px solid #493642;white-space:nowrap;touch-action:manipulation}.button-yes{background:#edc4d6;color:#392332;border-color:#edc4d6;min-width:176px;display:inline-flex;align-items:center;justify-content:space-between;gap:25px;transition:background .2s,box-shadow .2s}.button-yes:hover{background:#f9dce8;box-shadow:0 0 30px #d895b322}.no-slot{display:block;width:126px;height:48px}.button-no{position:absolute;left:calc(50% + 32px);top:calc(50% + 168px);width:126px;color:#b9a8b4;background:#100c12}.button-no.has-escaped{left:max(18px,env(safe-area-inset-left));top:max(18px,env(safe-area-inset-top));transition:transform .18s ease-out}.escape-area{position:absolute;pointer-events:none;inset:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.playful-note{color:#786672;font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-size:15px;margin:18px 0 0}.invitation-footer{width:100%;display:flex;justify-content:space-between;color:#776773;letter-spacing:.18em;font-size:8px;gap:18px}.invitation-footer span span{margin-left:8px;color:#c29ab0;font-size:16px}.foundation-preview{min-height:100svh;padding:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:24px}.foundation-preview h1{font-size:clamp(48px,7vw,82px)}.foundation-preview>p:not(.eyebrow){max-width:340px;font-size:12px;color:#a99ba6;line-height:1.8}.preview-star{font-size:46px;color:#efb8d1}@media(max-width:600px){.invitation{padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}.invitation-content{padding:32px 0 48px}.eyebrow{font-size:8px;letter-spacing:.18em}.intro{max-width:295px;margin:24px auto 28px}.desktop-break{display:none}.button-yes{min-width:156px;padding:0 22px}.no-slot,.button-no{width:110px}.button-no{left:calc(50% + 30px);top:calc(50% + 154px);padding:0 15px}.invitation-footer{font-size:7px;letter-spacing:.1em}}@media(max-height:650px){.celestial-mark{height:66px;margin:16px auto}.invitation-content{padding:24px 0}h1{font-size:58px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.choices .button-no{position:relative;left:auto;top:auto}.choices .button-no.has-escaped{position:fixed;left:max(18px,env(safe-area-inset-left));top:max(18px,env(safe-area-inset-top))}.choices:has(.has-escaped):after{content:"";width:126px;height:48px}@media(max-width:600px){.choices:has(.has-escaped):after{width:110px}}.invitation-stitch{display:block;width:clamp(170px,25vw,250px);max-width:75vw;height:auto;margin:20px auto 24px}@media(max-width:600px){.invitation-stitch{width:185px;margin:18px auto 22px}}@media(max-height:650px){.invitation-stitch{width:140px;margin:14px auto 18px}}.choices .button-no.has-escaped{left:0;top:0;z-index:10;transition:none}.universe-page{height:100svh;min-height:500px;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 55%,#28122366,transparent 65%)}.universe-heading{text-align:center;padding:max(24px,env(safe-area-inset-top)) 20px 0}.universe-heading h1{font-size:clamp(38px,5vw,64px);line-height:1.1}.universe-heading>p:last-child,.universe-controls>p{font-size:11px;color:#ab91a1;line-height:1.8}.sphere-canvas{flex:1;min-height:280px;position:relative}.sphere-canvas canvas{touch-action:none;cursor:grab}.sphere-canvas canvas:active{cursor:grabbing}.universe-controls{text-align:center;padding:0 18px max(24px,env(safe-area-inset-bottom))}.universe-controls>div{display:flex;justify-content:center;gap:12px}.universe-controls .button:not(.button-yes){background:#1a1019;color:#d4b8c8}.wish-modal{color:#f5edf1;background:#170f18;border:1px solid #654357;border-radius:24px;padding:42px 28px 32px;width:min(420px,calc(100vw - 36px));max-height:80svh;text-align:center;box-shadow:0 20px 100px #0009}.wish-modal::backdrop{background:#050307c9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.wish-modal h2{font-family:Cormorant Garamond,Georgia,serif;font-size:34px;font-weight:400;color:#edc4d6;margin:18px 0}.wish-modal>p:not(.eyebrow){font-size:14px;color:#bda8b6;line-height:1.9;margin-bottom:28px}.modal-close{position:absolute;top:8px;right:8px;width:44px;height:44px;font-size:26px;border:0;background:transparent;color:#d4b8c8;cursor:pointer}.modal-star{font-size:40px;color:#edc4d6}.wish-list>div{display:grid;gap:8px}.wish-list>div>button{display:flex;justify-content:space-between;padding:14px;color:#edc4d6;background:#251925;border:1px solid #493642;border-radius:12px;cursor:pointer}.webgl-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;padding:32px;color:#c4aabb;font-size:14px}.universe-page{padding-bottom:env(safe-area-inset-bottom)}.universe-heading{transition:opacity 1s ease}.is-cinematic .universe-heading{opacity:0;pointer-events:none}.universe-page{position:relative}.universe-heading{position:absolute;top:0;left:0;right:0;z-index:1;pointer-events:none}.prelude{min-height:100svh;display:grid;place-items:center;background:#08070b;padding:max(28px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left))}.prelude-sentence{margin:0;max-width:760px;text-align:center;color:#f8ecf2;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(27px,4.5vw,46px);line-height:1.55;text-wrap:pretty}.prelude{position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 55%,#28122366,transparent 65%),#08070b}.prelude-stars{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none}.prelude-sentence{width:100%;max-width:820px;font-family:Lora,Georgia,serif;font-size:clamp(23px,3.5vw,42px);font-weight:400;line-height:1.8;letter-spacing:-.025em;text-shadow:0 2px 24px #08070b}.prelude-sentence>span{display:block}.prelude-accent{color:#efb8d1;font-style:italic}@media(max-width:480px){.prelude{padding-left:22px;padding-right:22px}.prelude-sentence{font-size:clamp(20px,5.4vw,26px);line-height:1.95}}.prelude-stars-fallback{height:100%;background-image:radial-gradient(circle at 20% 25%,#eacddb 0 1px,transparent 1.5px),radial-gradient(circle at 75% 70%,#eacddb 0 1px,transparent 1.5px);background-size:103px 137px,163px 187px;opacity:.4}.sphere-canvas>.prelude{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;min-height:0;background:transparent;pointer-events:none}.invitation-footer{justify-content:flex-end}.invitation-content{--choice-width: 160px}.invitation-content .intro{margin:0 auto 24px;max-width:360px}.intro-highlight{color:#f5a9cc;font-weight:600}.invitation-content .choices{margin-top:30px}.invitation-content .choices .button{width:var(--choice-width);min-width:var(--choice-width);height:48px;padding:0 20px}.invitation-content .choices .button-yes{gap:12px}.invitation-content .choices:has(.has-escaped):after{width:var(--choice-width);flex-shrink:0}.playful-note{min-height:19px}@media(max-width:600px){.invitation-content{--choice-width: clamp(110px, 36vw, 144px)}}.button-yes{justify-content:center}.experience{position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 55%,#28122366,transparent 65%),#08070b}.shared-star-background{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,#28122366,transparent 65%),#08070b}.invitation,.universe-page{background:transparent}.invitation:before{display:none}html:has(.invitation),body:has(.invitation){scrollbar-width:none}html:has(.invitation)::-webkit-scrollbar,body:has(.invitation)::-webkit-scrollbar{display:none;width:0;height:0}.invitation{height:100svh;min-height:0;overflow-y:auto;scrollbar-width:none}.invitation::-webkit-scrollbar{display:none;width:0;height:0}@media(max-height:740px){.invitation{padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}.invitation-content{padding-top:12px;padding-bottom:16px}.invitation-stitch{width:clamp(95px,20svh,140px);margin:10px auto 12px}.invitation-content .intro{margin-bottom:16px}.invitation-content h1{font-size:clamp(42px,9svh,64px)}.invitation-content .choices{margin-top:20px}.invitation-content .eyebrow{margin-top:0;margin-bottom:10px}.playful-note{margin-top:12px}}.wish-modal h2{overflow-wrap:anywhere;font-size:clamp(25px,6vw,34px);line-height:1.5}.wish-modal h2{font-family:Lora,Georgia,Malgun Gothic,serif;font-size:clamp(28px,6.6vw,38px)}.behind-letter{opacity:0;pointer-events:none}.letter-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;background:#08070be8;animation:letter-arrive .7s ease both}.letter-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:max(18px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) 14px max(22px,env(safe-area-inset-left));background:#08070bd9}.letter-toolbar button{cursor:pointer;color:#eed3df;background:#1d131d;border:1px solid #664657;border-radius:28px;min-height:44px;padding:10px 20px;font-size:12px}.letter-scroll{flex:1;min-height:0;overflow:auto;touch-action:pan-x pan-y;padding:12px 24px max(40px,env(safe-area-inset-bottom))}.letter-composition{width:min(100%,760px);margin:0 auto}.letter-dedication{text-align:center;padding:8px 0 22px}.letter-dedication>span{font-size:10px;letter-spacing:.3em;color:#aa8197}.letter-dedication p{font-family:Lora,Georgia,serif;font-style:italic;font-size:clamp(28px,5vw,40px);color:#edc4d6;margin:16px 0 0}.letter-frame{position:relative;padding:clamp(14px,3vw,28px);background:linear-gradient(135deg,#f2dfce,#fff6e8 42%,#d8b5a8);border:1px solid #f0d6ba;border-radius:4px;box-shadow:0 0 0 5px #33232b,0 0 0 6px #9c738455,0 28px 70px #0008,0 0 70px #d786a915}.letter-frame:before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid #ab827b77;pointer-events:none}.letter-frame img{display:block;width:100%;height:auto;background:#f8f2eb;box-shadow:0 2px 12px #5d3d4020}.frame-corner{position:absolute;width:22px;height:22px;border-color:#815466;border-style:solid;pointer-events:none;z-index:1}.corner-tl{top:5px;left:5px;border-width:2px 0 0 2px}.corner-tr{top:5px;right:5px;border-width:2px 2px 0 0}.corner-bl{bottom:5px;left:5px;border-width:0 0 2px 2px}.corner-br{bottom:5px;right:5px;border-width:0 2px 2px 0}.letter-signature{text-align:right;font-family:Lora,Georgia,serif;font-style:italic;color:#b994a8;font-size:15px;margin-top:26px}.letter-error{color:#533f4a;line-height:1.8;padding:48px 16px;text-align:center}@keyframes letter-arrive{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.letter-page{animation:none}}.letter-image-crop{overflow:hidden}.letter-image-crop img{width:110.29%;max-width:none;margin-left:-10.29%}.all-messages-trigger{position:absolute;z-index:3;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);border:1px solid #77546866;background:#160e18b3;color:#dfc0d1;border-radius:24px;min-height:44px;padding:8px 20px;font-size:11px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.all-messages{width:min(620px,calc(100vw - 32px));text-align:left;padding:36px 24px 24px}.all-messages h2{text-align:center;font-size:26px;margin-top:8px}.all-messages ol{padding-left:30px;margin-bottom:0}.all-messages li{font-family:Lora,Georgia,serif;font-size:15px;line-height:1.85;padding:13px 4px;border-bottom:1px solid #69455955;color:#f2dfea;overflow-wrap:anywhere}.all-messages li:nth-child(2n){color:#f5a9cc}.all-messages li::marker{color:#a97c94;font-size:11px}html,body,#root{width:100%;max-width:100%}body{overflow-x:clip}.experience,.invitation,.universe-page{min-width:0}.universe-page{height:100dvh;min-height:0;overflow:hidden;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.sphere-canvas{min-width:0;min-height:0}.invitation{height:100dvh}.invitation-content{max-width:100%;flex-shrink:0}.masthead{max-width:100%;text-align:center;line-height:1.7}.invitation-content .choices .button{flex-shrink:0;touch-action:manipulation}.wish-modal{max-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}.letter-page{height:100dvh}.letter-scroll{overscroll-behavior:contain}.letter-toolbar{flex-shrink:0}.letter-toolbar button{touch-action:manipulation}@media(max-width:430px){.letter-toolbar{gap:8px;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.letter-toolbar button{padding:10px 13px;font-size:11px}.letter-scroll{padding-left:16px;padding-right:16px}.prelude-sentence{font-size:clamp(20px,5.3vw,24px)}}@media(orientation:landscape)and (max-height:600px){.invitation{padding-top:max(10px,env(safe-area-inset-top));padding-bottom:max(10px,env(safe-area-inset-bottom))}.invitation-content{padding:8px 0}.invitation-stitch{width:84px;margin:5px auto}.invitation-content h1{font-size:clamp(30px,8dvh,45px)}.invitation-content .intro{margin-bottom:10px}.invitation-content .choices{margin-top:12px}.prelude-sentence{font-size:clamp(19px,5dvh,28px);line-height:1.55}.letter-dedication{padding-bottom:16px}}.modal-close{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:0;border-radius:0;background:transparent;box-shadow:none;outline:none;-webkit-tap-highlight-color:transparent}.modal-close:focus-visible{outline:none;color:#fff0f7;text-decoration:none}.wish-modal>.wish-note-caption{color:#b88ca4;font-family:Lora,Georgia,serif;font-style:italic;font-size:12px;letter-spacing:.06em;margin:8px 0 14px;line-height:1.6}.wish-modal .modal-close,.wish-modal .modal-close:hover,.wish-modal .modal-close:active,.wish-modal .modal-close:focus,.wish-modal .modal-close:focus-visible{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none!important;outline:none!important;box-shadow:none!important;background:transparent!important;-webkit-tap-highlight-color:transparent}.wish-note{padding:42px 28px 38px;border-radius:28px;border:1px solid #a46c875c;background:radial-gradient(ellipse at 50% 0%,#46253c66,transparent 65%),#160f19;box-shadow:0 24px 100px #0009,inset 0 0 0 6px #d6a0bc05}.wish-note:before{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border:1px solid #c993af1a;border-radius:21px;pointer-events:none}.wish-note-emblem{display:flex;align-items:center;justify-content:center;gap:15px;margin:6px 0 18px;color:#efb8d1}.wish-note-emblem:before,.wish-note-emblem:after{content:"";width:36px;height:1px;background:linear-gradient(90deg,transparent,#b47c9877)}.wish-note-emblem:after{transform:rotate(180deg)}.wish-note-emblem span{font-family:Georgia,serif;font-size:38px;line-height:1;text-shadow:0 0 25px #e7a0c03b}.wish-note>.wish-note-caption{margin:0 0 20px;color:#bd93aa;font-size:12px;letter-spacing:.08em}.wish-note h2{margin:0;font-size:clamp(26px,6.5vw,34px);line-height:1.6;color:#f8e9f1;text-wrap:pretty}.wish-note .modal-close{top:10px;right:10px;color:#b990a7;font-size:24px}@media(max-width:430px){.wish-note{padding:40px 25px 34px;width:calc(100vw - 36px)}}
