@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(./manrope-latin-400-normal-PaqtzbVb.woff2) format("woff2"),url(./manrope-latin-400-normal-8tf8FM3T.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(./manrope-latin-500-normal-BYYD-dBL.woff2) format("woff2"),url(./manrope-latin-500-normal-DMZssgOp.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(./manrope-latin-600-normal-4f0koTD-.woff2) format("woff2"),url(./manrope-latin-600-normal-BqgrALkZ.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(./cormorant-garamond-latin-400-normal-B-1hWBU7.woff2) format("woff2"),url(./cormorant-garamond-latin-400-normal-B7YtguxJ.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(./cormorant-garamond-latin-400-italic-Dc_OZ8oc.woff2) format("woff2"),url(./cormorant-garamond-latin-400-italic-BLh7T8o8.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(./cormorant-garamond-latin-500-normal-BsRWmXhO.woff2) format("woff2"),url(./cormorant-garamond-latin-500-normal-zIXX3Q-H.woff) format("woff")}:root{font-family:Manrope,sans-serif;color:#f0eddc;background:#182c3d;font-synthesis:none;--bg: #182c3d;--text: #f0eddc;--muted: #b6bfc2;--accent: #ead38e;--line: #b3c0c32e;--icon-filter: invert(93%) sepia(13%) saturate(368%) hue-rotate(358deg) brightness(103%) contrast(88%);--star: #e9dda9;--wish: 0;color-scheme:dark}:root[data-theme=day]{color:#243c4b;background:#edf0e9;--bg: #edf0e9;--text: #243c4b;--muted: #566974;--accent: #314c5d;--line: #344e5d30;--icon-filter: invert(24%) sepia(17%) saturate(1034%) hue-rotate(155deg) brightness(92%) contrast(88%);--star: #455e6a;color-scheme:light}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow:hidden}button,input,textarea{font:inherit}button{color:inherit;cursor:pointer;border:0;background:none;-webkit-tap-highlight-color:transparent}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:5px}[hidden]{display:none!important}.icon{width:20px;height:20px;display:inline-block;vertical-align:middle;filter:var(--icon-filter);flex-shrink:0}.experience{height:100dvh;min-height:480px;max-width:900px;margin:auto;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:max(16px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));position:relative;isolation:isolate}.controls{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:3;gap:16px}.dedication{display:flex;align-items:center;gap:9px;font-size:9px;letter-spacing:2.7px;text-transform:uppercase;color:var(--muted)}.dedication .icon{width:15px;height:15px}.controls-right{display:flex;gap:8px}.icon-button{display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%}.icon-button:hover{background:var(--line)}.icon-button .icon{width:18px;height:18px}.edit-button,.about-button{border-color:transparent;opacity:.65}.edit-button{display:none}.editing .edit-button{display:inline-grid}.world{position:relative;min-height:0;isolation:isolate}.opening-caption{position:absolute;top:6%;left:0;width:100%;text-align:center;z-index:2;pointer-events:none}.opening-caption p,.game-caption p,.orbit-caption p,.wish-caption p,.finale>p{font-family:Cormorant Garamond,serif;font-size:20px;font-style:italic;color:var(--muted);margin:0 0 9px}.opening-caption h1{font-family:Cormorant Garamond,serif;font-size:clamp(25px,6.5vw,36px);font-weight:400;margin:0;letter-spacing:-.5px}#scene{position:fixed;inset:0;z-index:1;pointer-events:none;transition:opacity .7s}#scene canvas{display:block;width:100%;height:100%}.orbit{pointer-events:none;position:absolute;border:1px solid var(--line);border-radius:50%;width:110%;height:54%;left:-5%;top:24%;transform:rotate(-30deg)}.orbit-two{width:74%;height:82%;left:13%;top:10%;transform:rotate(30deg);opacity:.4}.envelope-hit{position:absolute;z-index:2;inset:25% 0 20%;touch-action:manipulation}.seal-hint{position:absolute;bottom:0;left:0;width:100%;font-family:Cormorant Garamond,serif;font-size:23px;font-style:italic;color:var(--muted);transform:rotate(-5deg)}.interaction-bar{text-align:center;position:relative;z-index:3;min-height:88px;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;gap:14px;padding:8px 0 4px}.hint{font-size:11px;color:var(--muted);margin:0;min-height:16px;line-height:1.5}.hint:empty{display:none}.journey{display:flex;gap:8px;justify-content:center;padding:8px 0 3px}.journey span{width:4px;height:4px;border-radius:50%;background:var(--muted);opacity:.25}.journey span.active{background:var(--accent);opacity:1}.continue-button,.replay-button{display:inline-flex;align-items:center;justify-content:center;gap:15px;min-height:44px;font-size:12px;letter-spacing:.1px;padding:8px 18px}.continue-button .icon,.replay-button .icon{width:17px;height:17px}.continue-button{border-bottom:1px solid var(--line);border-radius:0}.continue-button:hover{color:var(--accent)}.replay-button{opacity:.8;font-size:11px}.letter{position:absolute;left:50%;top:50%;width:min(100%,430px);max-height:calc(100% - 20px);overflow:auto;overscroll-behavior:contain;background:#f5efdc;color:#2d4350;box-shadow:8px 20px 65px #0003;transform:translate(-50%,-50%) rotate(-1.5deg);padding:13px;border-radius:2px;z-index:2;scrollbar-width:thin;--icon-filter: invert(25%) sepia(12%) saturate(1418%) hue-rotate(155deg) brightness(88%) contrast(87%)}.letter:focus{outline:none}.letter-border{border:1px solid #b3b29c80;padding:22px 22px 18px;text-align:center}.letter-sun{width:32px;height:32px}.letter-eyebrow{font-size:6.5px;letter-spacing:1.5px;margin:13px 0 23px}.letter-greeting{font-family:Cormorant Garamond,serif;text-align:left;font-size:28px;font-weight:500;margin:0 0 16px}.letter-body{text-align:left;font-size:11.5px;line-height:1.9;overflow-wrap:anywhere;white-space:pre-line}.letter-body p{margin:0 0 15px}.letter-signature{text-align:left;font-family:Cormorant Garamond,serif;font-size:25px;font-style:italic;margin:22px 0 15px;overflow-wrap:anywhere}.letter-heart{width:15px;height:15px}.letter-ps{text-align:left;font-family:Cormorant Garamond,serif;font-size:15px;font-style:italic;line-height:1.45;margin:-6px 0 10px;opacity:.78}.experience:not([data-phase=envelope]) .opening-caption,.experience:not([data-phase=envelope]) .envelope-hit{display:none}.experience[data-phase=letter] #scene{opacity:.14}.experience[data-phase=stars] #scene{opacity:.45}.experience[data-phase=letter] .orbit{opacity:.5}.experience.opening .seal-hint{opacity:0}.experience.opening .opening-caption{opacity:0;transition:opacity .4s}.stardust{position:absolute;inset:0;z-index:2}.game-caption,.orbit-caption,.wish-caption{position:absolute;left:0;top:5%;width:100%;text-align:center;z-index:2;pointer-events:none}.game-caption h2,.orbit-caption h2,.wish-caption h2{font-family:Cormorant Garamond,serif;font-size:clamp(35px,10vw,48px);font-weight:400;margin:0;letter-spacing:-1px}.star-field{position:absolute;inset:22% 3% 10%}.constellation{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.catch-star{position:absolute;width:76px;height:76px;display:grid;place-items:center;transform:translate(-50%,-50%);touch-action:manipulation;border-radius:50%;transition:opacity .3s}.catch-star .icon{width:40px;height:40px;filter:invert(88%) sepia(43%) saturate(462%) hue-rotate(345deg) brightness(100%) contrast(88%) drop-shadow(0 0 16px #ead38e8c)}.catch-star:before{content:"";position:absolute;inset:10px;border:1px solid #ead38e20;border-radius:50%}.catch-star.caught{opacity:.6}.catch-star.caught .icon{width:10px;height:10px}.catch-star.caught:before{display:none}.star-score{position:absolute;bottom:1%;width:100%;display:flex;justify-content:center;gap:15px}.star-score .icon{width:16px;height:16px;opacity:.2}.star-score .lit .icon{opacity:1;filter:invert(88%) sepia(43%) saturate(462%) hue-rotate(345deg) brightness(100%) contrast(88%)}.wish-caption{top:4%}.flame-hit{position:absolute;z-index:2;width:104px;height:110px;left:50%;top:28%;transform:translate(-50%,-50%);border-radius:50%;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.flame-ring{position:absolute;inset:4px;border:1px solid #ead38e55;border-radius:50%;transform:scale(calc(1 - var(--wish) * .3));opacity:calc(.5 + var(--wish) * .5);box-shadow:0 0 calc(var(--wish) * 40px) #ead38e55}.hold-button{position:relative;border:1px solid var(--line);border-radius:50px;min-height:50px;padding:13px 30px;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;font-size:12px}.hold-button>span:first-child{position:relative;z-index:1}.hold-fill{position:absolute;inset:0;background:#ead38e38;transform:scaleX(var(--wish));transform-origin:left;pointer-events:none}.finale{position:absolute;left:0;top:3%;width:100%;text-align:center;z-index:2;pointer-events:none;outline:none}.finale>p{font-size:18px}.finale h2{font-family:Cormorant Garamond,serif;font-size:clamp(39px,11.5vw,62px);font-weight:400;letter-spacing:-1.5px;line-height:1.05;margin:0 0 12px}.finale h2 em{color:var(--accent);line-height:1.13;overflow-wrap:anywhere}.finale>span{font-size:11px;color:var(--muted)}.sky{position:fixed;inset:0;pointer-events:none;overflow:hidden}.sky span{position:absolute;width:var(--size);height:var(--size);background:var(--star);border-radius:50%}.grain{position:fixed;inset:0;z-index:3;opacity:.035;pointer-events:none;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='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.65' filter='url(%23n)'/%3E%3C/svg%3E")}.burst-layer{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}.particle{position:absolute;width:12px;height:12px;animation:burst .8s ease-out forwards}.particle .icon{width:100%;height:100%;filter:invert(88%) sepia(43%) saturate(462%) hue-rotate(345deg) brightness(100%) contrast(88%)}@keyframes burst{0%{transform:translate(-50%,-50%) scale(.3);opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--turn)) scale(.4);opacity:0}}.fallback-envelope{position:absolute;background:#e8cc83;width:92%;aspect-ratio:1.53;left:4%;top:35%;transform:rotate(-11deg);border-radius:3px;box-shadow:12px 30px 50px #0004;z-index:1;color:#304757;padding:28px;font-family:Cormorant Garamond,serif;font-size:26px}.fallback-flap{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 60%);background:#edd794}.fallback-envelope>span{position:relative}.fallback-envelope .fallback-seal{position:absolute;width:50px;height:50px;border-radius:50%;background:#ac713f;right:30%;bottom:20%;display:grid;place-items:center}.fallback-seal .icon{width:34px;height:34px}.booting .fallback-envelope,.booting .envelope-hit,.has-webgl .fallback-envelope,.experience:not([data-phase=envelope]) .fallback-envelope,.has-webgl .fallback-cake{display:none}.fallback-cake{display:none;position:absolute;width:210px;height:130px;background:#e7d5a2;border-radius:50%/15%;left:50%;top:53%;transform:translate(-50%,-50%);box-shadow:0 12px #c7d1c9}.experience[data-phase=wish] .fallback-cake,.experience[data-phase=finale] .fallback-cake{display:block}.has-webgl .fallback-cake{display:none!important}.cake-icing{position:absolute;inset:0 0 auto;height:38px;border-radius:50%;background:#f3e8c9}.fallback-candle{position:absolute;width:10px;height:70px;left:calc(50% - 5px);bottom:calc(100% - 14px);background:repeating-linear-gradient(0deg,#7f9caa 0 8px,#f3e8c9 8px 11px)}.fallback-fire{position:absolute;bottom:calc(100% + 3px);left:-3px;width:16px;height:27px;border-radius:70% 30% 65% 35%;background:#ffda87;box-shadow:0 0 25px #ffda8755}.experience[data-phase=finale] .fallback-fire{display:none}.dialog{border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text);width:min(520px,calc(100% - 28px));padding:35px 26px;max-height:90dvh;box-shadow:0 35px 100px #0006;overscroll-behavior:contain}.dialog::backdrop{background:#071726ba;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.dialog-close{position:absolute;top:15px;right:15px;width:36px;height:36px}.dialog h2{font-family:Cormorant Garamond,serif;font-size:38px;font-weight:400;margin:0 0 25px}.dialog label{display:flex;flex-direction:column;gap:8px;margin-bottom:18px;font-size:11px;color:var(--muted)}input,textarea{font:inherit;border:1px solid var(--line);background:transparent;color:var(--text);padding:11px;border-radius:3px;width:100%;font-size:16px;line-height:1.6}textarea{resize:vertical;min-height:130px}.save-button{background:#ead38e;color:#253e49;width:100%;display:flex;align-items:center;justify-content:space-between;padding:15px 19px;border-radius:3px;font-size:12px}.save-button .icon{filter:invert(23%) sepia(19%) saturate(670%) hue-rotate(151deg) brightness(92%) contrast(88%)}.share-button{padding:18px 0;font-size:12px;text-decoration:underline;text-underline-offset:5px}.share-status{font-size:11px;color:var(--muted);line-height:1.6}.settings-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px;font-size:10px;color:var(--muted)}.theme-button{display:flex;align-items:center;gap:7px;min-height:44px}.theme-button .icon{width:16px;height:16px}.credits-button{min-height:44px}.credits-dialog p{font-size:13px;line-height:1.8;color:var(--muted)}@media(prefers-reduced-motion:no-preference){.envelope-hit .seal-hint{animation:hint-breathe 3s ease-in-out infinite}.letter{animation:letter-out .85s cubic-bezier(.2,.8,.2,1) both}.catch-star:not(.caught) .icon{animation:star-drift 3s ease-in-out infinite;animation-delay:var(--delay)}.finale{animation:finale-in .9s both}@keyframes hint-breathe{50%{opacity:.45;transform:translateY(5px) rotate(-5deg)}}@keyframes letter-out{0%{opacity:0;transform:translate(-50%,-25%) rotate(6deg) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) rotate(-1.5deg) scale(1)}}@keyframes star-drift{50%{transform:translateY(-8px) rotate(15deg)}}@keyframes finale-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}@media(min-width:768px){.experience{max-width:800px;padding-top:25px;padding-bottom:20px}.opening-caption{top:3%}.opening-caption h1{font-size:38px}.letter{width:440px}.letter-border{padding:26px}.letter-body{font-size:12px}.world{margin:0 70px}.interaction-bar{min-height:95px}.orbit-one{width:125%;left:-12.5%}.game-caption h2,.wish-caption h2{font-size:48px}.catch-star .icon{width:48px;height:48px}}@media(max-height:740px){.experience{padding-top:max(8px,env(safe-area-inset-top));padding-bottom:max(5px,env(safe-area-inset-bottom))}.controls .icon-button{height:40px;width:40px}.opening-caption{top:3%}.opening-caption p{font-size:17px}.opening-caption h1{font-size:26px}.interaction-bar{min-height:76px;gap:8px}.letter{padding:10px;max-height:calc(100% - 8px)}.letter-border{padding:16px 18px}.letter-sun{width:25px;height:25px}.letter-eyebrow{margin:10px 0 17px;font-size:6px}.letter-greeting{font-size:26px;margin-bottom:12px}.letter-body{font-size:11px;line-height:1.75}.letter-body p{margin-bottom:12px}.letter-signature{margin:17px 0 12px;font-size:23px}.game-caption,.wish-caption{top:2%}.finale h2{font-size:43px}.finale>p{font-size:16px}}@media(max-height:520px)and (min-width:600px){.experience{min-height:0}.controls{position:absolute;top:10px;left:20px;right:20px}.world{margin:0 160px}.opening-caption{top:0}.opening-caption p{display:none}.opening-caption h1{font-size:22px}.letter{max-height:100%;width:360px}.interaction-bar{min-height:60px}.journey{display:none}.finale h2{font-size:30px}.finale>p{font-size:12px}.wish-caption h2{font-size:30px}.wish-caption p{display:none}}.experience{overflow:clip}.interaction-bar>button{display:none!important}.has-webgl #scene{pointer-events:auto;touch-action:none}.has-webgl .envelope-hit,.has-webgl .flame-hit,.has-webgl .moon-hit,.has-webgl .heart-control,.stardust{pointer-events:none}.star-field .catch-star,.heart-control{pointer-events:auto}.has-webgl .catch-star{width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);pointer-events:none}.has-webgl .constellation{visibility:hidden}.experience[data-phase=stars] #scene{opacity:1}.paper-next{display:inline-grid;place-items:center;width:44px;height:44px}.paper-next .letter-heart{transition:transform .2s}.paper-next:hover .letter-heart{transform:scale(1.3)}.letter{touch-action:none;cursor:grab}.letter.long-letter{touch-action:pan-y;cursor:default}.heart-control{position:absolute;left:50%;top:50%;width:75%;aspect-ratio:1;transform:translate(-50%,-50%)}.moon-hit{position:absolute;left:0;top:0;width:90px;height:90px;border-radius:50%;z-index:2}:root:not(.has-webgl) .moon-hit{left:76%;top:28%;width:64px;height:64px;background:url(../assets/moon.jpg) center/cover;border-radius:50%;box-shadow:inset -18px -10px 20px #0009}.has-webgl .heart-control:focus-visible{outline:1px solid var(--accent);outline-offset:0}.icon-button{min-width:44px;min-height:44px}:root[data-theme=day] .catch-star .icon,:root[data-theme=day] .star-score .lit .icon{filter:invert(44%) sepia(43%) saturate(660%) hue-rotate(8deg) brightness(89%) contrast(93%) drop-shadow(0 0 12px #bca35844)}.letter-body{font-size:13px;line-height:1.8}.letter-eyebrow{font-size:7px}@media(max-height:740px){.letter-body{font-size:12px;line-height:1.75}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.kiss-hit{position:absolute;left:0;top:0;width:120px;height:120px;z-index:2;border-radius:50%}.has-webgl .kiss-hit{pointer-events:none}.has-webgl .kiss-fallback-heart{display:none}.kiss-fallback-heart{width:80px;height:80px;filter:invert(62%) sepia(19%) saturate(715%) hue-rotate(314deg) brightness(89%) contrast(91%)}:root:not(.has-webgl) .kiss-hit{left:50%;top:38%;transform:translate(-50%,-50%)}.paper-kiss{position:absolute;width:88px;height:88px;pointer-events:none;z-index:2;mix-blend-mode:multiply;opacity:.48;transform:rotate(var(--kiss-angle))}.paper-kiss img{width:100%;height:100%;object-fit:contain}.kiss-whisper{position:absolute;bottom:5%;left:0;width:100%;z-index:2;text-align:center;pointer-events:none;font-family:Cormorant Garamond,serif;font-size:22px;font-style:italic;color:var(--accent);margin:0;padding:0 10px}.hint{max-width:100%}@media(prefers-reduced-motion:no-preference){.paper-kiss{animation:kiss-stamp .45s cubic-bezier(.2,.8,.2,1) both}.kiss-whisper{animation:kiss-words .5s ease-out both}@keyframes kiss-stamp{0%{opacity:0;transform:rotate(var(--kiss-angle)) scale(1.35)}to{opacity:.48;transform:rotate(var(--kiss-angle)) scale(1)}}@keyframes kiss-words{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}}@media(max-height:740px){.finale h2{font-size:34px;margin-bottom:6px}.kiss-whisper{font-size:19px;bottom:2%}}.little-orbit{position:absolute;inset:0;z-index:2;pointer-events:none}.experience[data-phase=orbit] .moon-hit{display:none}.orbit-caption h2{min-height:1.1em}.orbit-moon-hit,.orbit-earth-hit{position:absolute;left:50%;top:56%;border-radius:50%;transform:translate(-50%,-50%);pointer-events:auto;touch-action:manipulation}.orbit-moon-hit{width:min(84%,340px);aspect-ratio:1}.orbit-earth-hit{width:min(30%,120px);aspect-ratio:1}.has-webgl .orbit-moon-hit,.has-webgl .orbit-earth-hit{width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);pointer-events:none}.has-webgl .orbit-moon-hit:focus-visible,.has-webgl .orbit-earth-hit:focus-visible{width:120px;height:120px;clip-path:none;outline:1px solid var(--accent)}.fallback-orbit{position:absolute;left:50%;top:56%;width:min(78%,330px);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}.has-webgl .fallback-orbit{display:none}.fallback-earth{position:absolute;inset:33%;border-radius:50%;background:url(../assets/earth.jpg) 28% center / 200% 100%;box-shadow:inset -14px -8px 22px #0007,0 0 30px #a8cbe244}.fallback-path{position:absolute;inset:0;border:1px solid var(--line);border-radius:50%}.fallback-moon{position:absolute;width:15%;aspect-ratio:1;left:50%;top:0;transform:translate(-50%,-50%);border-radius:50%;background:url(../assets/moon.jpg) center / 200% 100%;box-shadow:inset -6px -4px 10px #0007}@media(prefers-reduced-motion:no-preference){.fallback-path{animation:fallback-orbit 11s linear infinite}.drifting .fallback-moon{animation:fallback-drift 1.7s cubic-bezier(.3,.6,.3,1)}.swap p,.swap h2{animation:caption-in .75s cubic-bezier(.16,1,.3,1) both}.swap h2{animation-delay:.12s}.game-caption:not(.swap) p,.game-caption:not(.swap) h2,.wish-caption p,.wish-caption h2,.opening-caption p,.opening-caption h1,.finale>*{animation:caption-in .9s cubic-bezier(.16,1,.3,1) both}.game-caption h2,.wish-caption h2,.opening-caption h1,.finale h2{animation-delay:.14s}.finale>span{animation-delay:.32s}@keyframes fallback-orbit{to{transform:rotate(360deg)}}@keyframes fallback-drift{35%{transform:translate(-50%,-210%) scale(.86)}62%{transform:translate(-50%,-25%)}80%{transform:translate(-50%,-64%)}}@keyframes caption-in{0%{opacity:0;filter:blur(6px);transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}.credits-theme{margin-top:6px;font-size:12px;color:var(--muted)}.experience{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.experience img{-webkit-user-drag:none}#scene canvas{opacity:0;transition:opacity .8s ease}.has-webgl #scene canvas{opacity:1}.orbit{transition:opacity .8s ease}.experience:not([data-phase=envelope]):not([data-phase=letter]) .orbit{opacity:0}:root{--sky-home: radial-gradient(120% 90% at 50% 40%, #22384b 0%, #182c3d 70%);--sky-space: radial-gradient(120% 90% at 40% 45%, #102033 0%, #0a1520 75%);--sky-galaxy: radial-gradient(120% 90% at 50% 50%, #161c36 0%, #0b1220 75%);--sky-universe: radial-gradient(120% 90% at 50% 45%, #0d1824 0%, #060c14 78%)}.sky{background:var(--sky-home);transition:background-color 1.2s ease,opacity 1.2s ease}.sky:before,.sky:after{content:"";position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease}.sky:before{background:var(--sky-space)}.sky:after{background:var(--sky-galaxy)}:root[data-scale=space] .sky:before,:root[data-scale=galaxy] .sky:after,:root[data-scale=universe] .sky:before{opacity:1}:root[data-scale=universe] .sky:before{background:var(--sky-universe)}.sky span{transition:opacity 1.2s ease}:root:not([data-scale=home]) .sky span{opacity:0!important}:root[data-theme=day] .sky{background:none}:root[data-theme=day] .sky:before,:root[data-theme=day] .sky:after{display:none}.experience[data-travel] .orbit-caption,.experience[data-travel] .game-caption,.experience[data-travel] .wish-caption{opacity:0;transition:opacity .35s ease}.orbit-caption,.game-caption,.wish-caption{transition:opacity .5s ease}.finale[data-stage=away]>*,.finale[data-stage=line]>h2,.finale[data-stage=line]>span{visibility:hidden;animation:none!important}.us-tag{position:absolute;left:0;top:0;width:44px;height:44px;z-index:3;pointer-events:none;border-radius:50%}.us-tag span{position:absolute;left:30px;top:-2px;font-family:Cormorant Garamond,serif;font-style:italic;font-size:17px;color:var(--accent);opacity:var(--tag, 0);white-space:nowrap}:root:not(.has-webgl) .us-tag{display:none}.veil{position:fixed;inset:0;z-index:2;pointer-events:none;background:#fff8e7;opacity:0;mix-blend-mode:screen}.kiss-whisper.coda{white-space:pre-line;font-size:20px;line-height:1.35}.experience[data-travel] .star-score{opacity:0}.star-score{transition:opacity .5s ease}.kiss-whisper.coda{text-shadow:0 0 14px var(--bg),0 0 4px var(--bg)}@media(max-height:740px){.kiss-whisper.coda{font-size:16px;line-height:1.25;bottom:1%}}
