@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-vietnamese-full-normal-7BpKI3vF.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-ext-full-normal-YHFkNujK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-full-normal-CFFu7zhK.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(./fraunces-vietnamese-full-italic-BHALq22K.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-ext-full-italic-B8-t4Nou.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-full-italic-D2JnYqd-.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(./schibsted-grotesk-latin-ext-wght-normal-hsMS0n0O.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(./schibsted-grotesk-latin-wght-normal-Bb8VGrTG.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--midnight:#080f25;--panel:#101a35;--panel-hi:#17264a;--blue:#527dff;--blue-lt:#a9c0ff;--ivory:#f4f0e8;--body:#d9ddeb;--muted:#9fabc8;--amber:#e8b04a;--violet:#b7a3e8;--line:#a9c0ff2e;--serif:"Fraunces Variable", Georgia, "Times New Roman", serif;--sans:"Schibsted Grotesk Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--ease:cubic-bezier(.22, .7, .2, 1);--bar-h:68px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0}html{background:var(--midnight);-webkit-text-size-adjust:100%}html.locked,html.locked body{overflow:hidden}body{min-width:320px;font-family:var(--sans);color:var(--ivory);background:var(--midnight);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.6}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--blue-lt);outline-offset:3px;border-radius:4px}::selection{background:var(--blue);color:#050b1f}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{isolation:isolate;min-height:100vh;position:relative}.app:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(110% 55% at 18% 4%, #26408c61, transparent 62%), radial-gradient(90% 50% at 88% 52%, #40348c3d, transparent 64%), radial-gradient(80% 45% at 30% 100%, #1e3a824d, transparent 62%), var(--midnight);position:fixed;inset:0}.ambient{z-index:1;pointer-events:none;transition:opacity 1.2s;position:fixed;inset:0}.app[data-calm=true] .ambient{opacity:.35}.touch{z-index:100;pointer-events:none;position:fixed;inset:0}.app[data-phase=intro] .stage,.app[data-phase=intro] .bar{visibility:hidden}.bar{transition:opacity 1s .2s var(--ease)}.app[data-phase=leaving] .bar{opacity:0}.btn{min-height:48px;transition:transform .25s var(--ease), box-shadow .35s, background .25s, border-color .25s;border-radius:4px;justify-content:center;align-items:center;gap:10px;padding:0 24px;font-size:15px;font-weight:600;display:inline-flex}.btn-primary{background:var(--blue);color:#050b1f;box-shadow:0 0 0 1px #a9c0ff8c,0 0 26px #527dff8c,0 0 70px #527dff40}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 0 0 1px #c8d7ffcc,0 0 34px #6e96ffbf,0 0 90px #527dff59}.btn-ghost{color:var(--ivory);border:1px solid #a9c0ff59}.btn-ghost:hover{background:#a9c0ff14;border-color:#a9c0ff99}.icon-btn{width:44px;height:44px;color:var(--muted);border-radius:50%;place-items:center;transition:color .2s,background .2s;display:grid}.icon-btn:hover{color:var(--ivory);background:#a9c0ff1a}.bar{z-index:10;height:var(--bar-h);padding:0 max(16px, env(safe-area-inset-right)) 0 max(20px, env(safe-area-inset-left));background:linear-gradient(var(--midnight) 35%, #080f2500);justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.brand{font-family:var(--serif);color:var(--ivory);white-space:nowrap;font-size:18px;font-style:italic}@media (width<=420px){.bar.is-birthday .brand{font-size:16px}.bar.is-birthday .menu-btn>span:last-child{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.sound-btn{margin-left:auto;margin-right:6px}.sound-btn[aria-pressed=true]{color:var(--amber)}.menu-btn{min-height:44px;color:var(--blue-lt);align-items:center;gap:12px;padding:0 4px;font-size:14px;display:flex}.pips{align-items:center;gap:5px;display:inline-flex}.pips i{width:6px;height:6px;transition:all .6s var(--ease);background:#a9c0ff59;border-radius:50%}.pips i.on{background:var(--amber);width:8px;height:8px;box-shadow:0 0 10px #e8b04ae6}.menu{top:calc(var(--bar-h) - 8px);background:var(--panel);border:1px solid var(--line);width:min(320px,100vw - 24px);max-height:calc(100vh - var(--bar-h) - 12px);max-height:calc(100dvh - var(--bar-h) - 12px);border-radius:10px;padding:8px;position:absolute;right:12px;overflow-y:auto;box-shadow:0 20px 60px #030817b3}.menu-item{text-align:left;border-radius:6px;align-items:center;gap:14px;width:100%;min-height:48px;padding:8px 12px;font-size:15px;display:flex}.menu-item:hover{background:#a9c0ff14}.menu-item small{color:var(--muted);font-size:13px;line-height:1.3;display:block}.menu-dot{background:#a9c0ff59;border-radius:50%;flex:none;width:8px;height:8px}.menu-dot.on{background:var(--amber);box-shadow:0 0 10px #e8b04ae6}.menu-dot.wish{background:var(--violet);box-shadow:0 0 10px #b7a3e8e6}.menu-wishes summary{cursor:pointer;list-style:none}.menu-wishes summary::-webkit-details-marker{display:none}.menu-wishes summary:after{content:"";border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);width:7px;height:7px;transition:transform .3s var(--ease);margin:-3px 4px 0 auto;transform:rotate(45deg)}.menu-wishes[open] summary:after{margin-top:4px;transform:rotate(-135deg)}.menu-wishes ol{margin:0;padding:2px 12px 4px 34px;list-style:none}.menu-wishes li{font:italic 400 16px / 1.4 var(--serif);color:var(--body);padding:6px 0;position:relative}.menu-wishes li:before{content:"";background:var(--violet);border-radius:50%;width:5px;height:5px;position:absolute;top:15px;left:-18px}.wishes-save{width:calc(100% - 24px);min-height:44px;margin:6px 12px 8px;font-size:14px}.menu-rule{background:var(--line);height:1px;margin:6px 12px}.stage{position:relative}.sky{z-index:2;width:100%;height:max(1000px,175svh);position:relative;overflow:hidden}.orbits{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.orbits ellipse{fill:none;stroke:#a9c0ff24;stroke-width:1px}.sky-cam{transform-origin:0 0;transition:transform 1.1s var(--ease);position:absolute;inset:0}.line{transform-origin:0;pointer-events:none;height:2px;margin-top:-1px;display:block;position:absolute}.line-base,.line-lit{display:block;position:absolute;left:0;right:0}.line-base{background:repeating-linear-gradient(90deg,#a9c0ff57 0 3px,#0000 3px 10px);height:1px;top:.5px}.line-lit{transform-origin:0;height:1.5px;transition:transform 1.6s var(--ease);background:linear-gradient(90deg,#e8b04af2,#a9c0fff2);top:.25px;transform:scaleX(0);box-shadow:0 0 9px #e8b04a8c}.line-lit.on{transform:scaleX(1)}.line.is-flying .line-lit{background:linear-gradient(90deg,#e8b04af2,#ffe2a3);transition:transform 1s cubic-bezier(.5,0,.25,1) .45s;transform:scaleX(1);box-shadow:0 0 14px #ffd68ccc}.star{--tone:var(--blue-lt);--glow:#6e96ffcc;opacity:0;border-radius:50%;place-items:center;width:56px;height:56px;margin:-28px 0 0 -28px;display:grid;position:absolute}.revealed .star{animation:star-in 1.5s calc(.5s + var(--i) * .28s) var(--ease) both}.star-halo{background:radial-gradient(circle, var(--glow) 0, transparent 66%);opacity:.55;animation:breathe 5.5s calc(var(--i) * -1.1s) ease-in-out infinite;border-radius:50%;position:absolute;inset:-26px}.star:after{content:"";opacity:0;pointer-events:none;border:1px solid #a9c0ffbf;border-radius:50%;position:absolute;inset:10px}.revealed .star:after{animation:ring-out 1.8s calc(.6s + var(--i) * .28s) var(--ease) both}.star-orbit{opacity:0;transition:opacity .6s, transform .9s var(--ease);pointer-events:none;border:1px dashed #e8b04a73;border-radius:50%;position:absolute;inset:-16px;transform:scale(.5)}.star-orbit:after{content:"";background:#ffe2a3;border-radius:50%;width:5px;height:5px;margin-left:-2.5px;position:absolute;top:-3px;left:50%;box-shadow:0 0 8px 2px #e8b04acc}.star.is-active .star-orbit{opacity:1;animation:9s linear infinite spin;transform:scale(1)}.star-glyph{width:19px;height:19px;color:var(--tone);filter:drop-shadow(0 0 6px var(--glow));transition:width .6s var(--ease), height .6s var(--ease), color .6s;position:relative}.star[data-state=visited]{--tone:var(--amber);--glow:#e8b04ad9}.star[data-state=visited] .star-glyph{width:26px;height:26px}.star[data-state=visited] .star-halo{opacity:.9}.sky:not(.aligning) .star[data-state=visited]:not(.is-secret) .star-glyph{animation:spin calc(14s + var(--i) * 3.5s) linear infinite}.star[data-state=visited]:not(.is-secret) .star-halo{animation:glow-slow calc(5.5s + var(--i) * 1.3s) calc(var(--i) * -2.1s) ease-in-out infinite}@keyframes glow-slow{0%,to{opacity:.55;transform:scale(.95)}50%{opacity:.85;transform:scale(1.03)}}.star.is-active{--tone:var(--ivory);--glow:#ffecbecc}.star.is-active .star-glyph{width:32px;height:32px}.star.is-active .star-halo{opacity:1}.star:hover .star-halo{opacity:.85}.star.is-secret .star-glyph{width:11px;height:11px}.star.is-secret{animation-delay:.4s}.revealed .star.is-secret .star-halo{opacity:.25}.star.is-secret[data-state=visited] .star-glyph{width:16px;height:16px}.star-label{white-space:nowrap;pointer-events:none;transition:opacity .5s;position:absolute}.star-name{font-family:var(--serif);color:var(--ivory);text-shadow:0 0 12px #a9c0ff59;font-size:17px;line-height:1.25;display:block}.star-sub{color:var(--muted);font-size:13px;line-height:1.3;display:block}.side-r .star-label{top:50%;left:calc(100% - 4px);transform:translateY(-50%)}.side-l .star-label{text-align:right;top:50%;right:calc(100% - 4px);transform:translateY(-50%)}.side-b .star-label{text-align:center;top:calc(100% - 8px);left:50%;transform:translate(-50%)}.star.is-active.side-r .star-label{left:calc(100% + 12px)}.star.is-active.side-l .star-label{right:calc(100% + 12px)}.side-a .star-label{text-align:center;bottom:calc(100% - 8px);left:50%;transform:translate(-50%)}.hint{font-family:var(--serif);color:var(--blue-lt);white-space:nowrap;font-size:18px;font-style:italic;animation:3.6s ease-in-out 2.4s infinite both hint;position:absolute;top:86px;left:50%;transform:translate(-50%)}.sky-sign{font-family:var(--serif);color:var(--blue-lt);text-shadow:0 0 14px #a9c0ff59;justify-content:center;align-items:center;gap:10px;font-size:18px;font-style:italic;display:flex;position:absolute;bottom:2.5%;left:0;right:0}.sky-sign-star{width:14px;height:14px;color:var(--amber);filter:drop-shadow(0 0 6px #e8b04acc)}.comet{z-index:3;pointer-events:none;width:0;height:0;animation:comet-fly 1s var(--delay) cubic-bezier(.5, 0, .25, 1) both;position:absolute}.comet-head{background:#fff8e6;border-radius:50%;width:10px;height:10px;position:absolute;top:-5px;left:-5px;box-shadow:0 0 10px 3px #ffd68cf2,0 0 34px 12px #e8b04a66}.comet-tail{transform-origin:100%;width:150px;height:3px;transform:rotate(var(--ang));background:linear-gradient(90deg,#e8b04a00,#ffe2a3f2);border-radius:2px;position:absolute;top:-1.5px;right:0}.sky.aligning .line-lit{animation:line-flash 1.3s calc(var(--k) * .25s) ease-in-out both;transform:scaleX(1)}.sky.aligning .star-glyph{animation:star-flare 1.2s calc(var(--i) * .25s) var(--ease) both}.panel{z-index:20;background:var(--panel);border-top:1px solid var(--line);visibility:hidden;transition:transform .7s var(--ease), top .55s var(--ease), visibility 0s .7s;border-radius:18px 18px 0 0;flex-direction:column;display:flex;position:fixed;inset:36svh 0 0;transform:translateY(105%);box-shadow:0 -20px 70px #030817a6}.panel[data-open=true]{visibility:visible;transition:transform .7s var(--ease), top .55s var(--ease);transform:none}.panel[data-expanded=true]{top:8svh}.panel-handle{border-radius:0 0 12px 12px;width:96px;height:30px;margin-left:-48px;position:absolute;top:0;left:50%}.panel-handle:before{content:"";background:#a9c0ff66;border-radius:2px;width:40px;height:4px;margin-left:-20px;position:absolute;top:9px;left:50%}.panel-seam{z-index:3;pointer-events:none;height:2px;position:absolute;top:-1px;left:18px;right:18px;overflow:hidden}.panel-seam:before{content:"";width:45%;animation:seam-x 1.5s .3s var(--ease) both;background:linear-gradient(90deg,#0000,#ffe2a3,#0000);position:absolute;top:0;bottom:0;left:0;box-shadow:0 0 12px #ffd68ce6}.panel[data-traveling=true] .panel-body{opacity:0;transition:opacity .4s,transform .4s;transform:translateY(10px)}.panel-bar{flex:none;justify-content:space-between;align-items:center;min-height:60px;padding:10px 10px 0 clamp(20px,5vw,40px);display:flex;position:relative}.panel-name{color:var(--blue-lt);align-items:center;gap:8px;font-size:14px;display:inline-flex}.panel-name-star{width:11px;height:11px;color:var(--amber);filter:drop-shadow(0 0 5px #e8b04acc)}.panel-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.panel-body{padding:8px clamp(20px, 5vw, 40px) calc(48px + env(safe-area-inset-bottom));max-width:880px;animation:.7s .15s backwards fade}.panel-foot{justify-items:start;gap:26px;margin-top:56px;display:grid}.next{flex-direction:column;align-items:flex-start;gap:1px;min-height:56px;padding:9px 20px}.next small{color:var(--muted);font-size:13px;font-weight:400}.story-head h2{font:400 clamp(32px, 5.2vw, 46px) / 1.12 var(--serif);font-variation-settings:"opsz" 120, "SOFT" 100;letter-spacing:-.012em;color:var(--ivory);text-shadow:0 0 22px #a9c0ff38;animation:title-in 1.1s .2s var(--ease) backwards;margin-top:14px}.story-head h2:focus{outline:none}.lead{animation:rise .9s .55s var(--ease) backwards;max-width:46ch;color:var(--body);margin-top:16px;font-size:17px;line-height:1.65}.reveal{opacity:0;transition:opacity 1.1s}.reveal.in{opacity:1}.divider{align-items:center;gap:12px;width:100%;display:flex}.divider span{background:linear-gradient(90deg,#0000,#a9c0ff61);flex:1;height:1px}.divider span:last-child{background:linear-gradient(90deg,#a9c0ff61,#0000)}.divider-star{width:12px;height:12px;color:var(--amber);filter:drop-shadow(0 0 6px #e8b04acc);flex:none}.flourish{width:120px;height:40px;display:block;overflow:visible}.flourish ellipse{fill:none;stroke:#a9c0ff52;stroke-width:.6px;stroke-dasharray:1;stroke-dashoffset:1px;animation:draw 1.6s .4s var(--ease) forwards}.flourish path{fill:none;stroke:#e8b04acc;stroke-width:.8px;stroke-dasharray:1;stroke-dashoffset:1px;animation:draw 1.4s .7s var(--ease) forwards}.flourish circle{fill:#f7d58c;animation:fade .6s calc(.7s + var(--i) * .22s) both}.tl{margin-top:40px;padding:0;list-style:none}.tl li{padding:0 0 46px 48px;position:relative}.tl li:before{content:"";background:linear-gradient(var(--amber), #a9c0ff40);transform-origin:top;width:1px;transition:transform 1.5s .35s var(--ease);position:absolute;top:30px;bottom:2px;left:11.5px;transform:scaleY(0)}.tl li.in:before{transform:scaleY(1)}.tl li:last-child{padding-bottom:0}.tl li:last-child:before{display:none}.tl-mark{width:24px;height:24px;color:var(--amber);filter:drop-shadow(0 0 7px #e8b04acc);position:absolute;top:3px;left:0}.tl-date{color:var(--blue-lt);font-size:14px;display:block}.tl h3{font:400 25px / 1.25 var(--serif);font-variation-settings:"opsz" 48, "SOFT" 100;margin:4px 0 8px}.tl p{max-width:50ch;color:var(--body)}.skychart{margin:40px 0 8px}.skychart-wait{aspect-ratio:1;width:min(100%,440px);margin:40px auto 8px}.skychart svg{width:min(100%,440px);margin:0 auto;display:block;overflow:visible}.sc-ring{fill:none;stroke:#e8b04a66;stroke-width:.8px;stroke-dasharray:2 6}.sc-horizon{fill:none;stroke:#a9c0ff80;stroke-width:1px}.sc-alt{fill:none;stroke:#a9c0ff21;stroke-dasharray:3 6}.sc-mw{fill:#a9c0ff0d}.sc-mw-5{fill:#c8d7ff14}.sc-lines{fill:none;stroke:#a9c0ff80;stroke-width:.8px;stroke-dasharray:1;stroke-dashoffset:1px}.sc-star{opacity:0}.sc-planet{fill:#ffd38a;stroke:#ffd38a59;stroke-width:4px}.sc-moon{fill:#f4f0e8}.sc-sun{fill:#fff6dc}.sc-label{font:400 17px var(--sans);fill:var(--blue-lt);paint-order:stroke;stroke:#0b1530;stroke-width:4px;stroke-linejoin:round;opacity:0}.sc-label-sun,.sc-label-planet{fill:#ffe2a3}.sc-label-star{fill:var(--body)}.sc-cardinal{font:600 17px var(--sans);fill:var(--muted)}.skychart .sc-turn{opacity:0;transform-box:view-box;transform-origin:0 0}.skychart.in .sc-turn{animation:sky-turn 3.2s var(--ease) both}.skychart.in .sc-star{animation:fade 1.2s var(--d) both}.skychart.in .sc-lines{animation:draw 3.4s 1.4s var(--ease) forwards}.skychart.in .sc-label{animation:1s 2.2s both fade}.skychart figcaption{text-align:center;justify-items:center;gap:3px;margin-top:16px;display:grid}.skychart-title{font:400 21px / 1.25 var(--serif);font-variation-settings:"opsz" 48, "SOFT" 100;color:var(--ivory);text-shadow:0 0 16px #a9c0ff40}.skychart-when{color:var(--blue-lt);font-size:14px}.skychart-day{max-width:40ch;color:var(--muted);font-size:14px}.skychart-note{max-width:34ch;font:italic 400 18px / 1.5 var(--serif);color:var(--body);margin-top:10px}.mem-wrap{gap:52px;margin-top:40px;display:grid;container-type:inline-size}.mem{gap:14px;display:grid}.mem-photo{border:1px solid var(--line);background:#0b1430;border-radius:3px;position:relative;overflow:hidden}.mem-photo img{object-fit:cover;width:100%;height:100%;transition:transform 1.2s var(--ease);display:block}.mem:hover .mem-photo img{transform:scale(1.03)}.mem-wrap .mem .mem-photo{aspect-ratio:4/5}.mem-wrap .mem:nth-child(2n){justify-self:end;width:80%}.mem-wrap .mem:nth-child(2n) .mem-photo{aspect-ratio:1}.mem-wrap .mem:nth-child(2n+3){width:72%}.mem-wrap .mem:nth-child(2n+3) .mem-photo{aspect-ratio:5/6}.mem-date{color:var(--blue-lt);font-size:14px;display:block}.mem h3{font:400 23px / 1.25 var(--serif);font-variation-settings:"opsz" 48, "SOFT" 100;margin:3px 0 6px}.mem p{color:var(--body);max-width:42ch}.ph{text-align:center;color:var(--blue-lt);background:radial-gradient(60% 50% at 50% 46%,#527dff33,#0000 70%),#0d1733;place-content:center;justify-items:center;gap:10px;font-size:14px;display:grid;position:absolute;inset:0}.ph .ph-orbit{fill:none;stroke:#a9c0ff33;stroke-width:.5px;width:76%;height:76%;position:absolute;inset:12%}.ph-star{width:22px;height:22px;color:var(--amber);filter:drop-shadow(0 0 8px #e8b04acc)}@container (width>=620px){.mem-wrap{gap:72px}.mem-wrap .mem{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;column-gap:28px}.mem-wrap .mem:nth-child(n){width:100%}.mem-wrap .mem .mem-photo{aspect-ratio:4/3;grid-column:1/8}.mem-wrap .mem figcaption{grid-column:8/13}.mem-wrap .mem:nth-child(2n) .mem-photo{aspect-ratio:1;order:2;grid-column:6/13}.mem-wrap .mem:nth-child(2n) figcaption{text-align:right;order:1;grid-column:1/6;justify-self:end}.mem-wrap .mem:nth-child(2n+3) .mem-photo{aspect-ratio:5/4}}.love-map{aspect-ratio:1;width:min(100%,460px);margin:36px auto 0;position:relative}.love-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.love-lines path{fill:none;stroke:#a9c0ff80;stroke-width:.35px;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset 1.8s calc(.3s + var(--i) * .18s) var(--ease)}.love-map.in .love-lines path{stroke-dashoffset:0}.love-ring{fill:none;stroke:#a9c0ff38;stroke-width:.3px;stroke-dasharray:1 1.6}.halo{background:radial-gradient(circle, var(--glow,#6e96ff8c) 0, transparent 66%);opacity:.4;border-radius:50%;transition:opacity .4s;position:absolute;inset:-14px}.love-core{--glow:#ffecbeb3;place-items:center;width:90px;height:90px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.love-core .halo{opacity:.7;animation:6s ease-in-out infinite breathe;inset:-30px}.love-sparkle{width:38px;height:38px;color:var(--ivory);filter:drop-shadow(0 0 10px #ffecbee6);position:relative}.love-name{font-family:var(--serif);white-space:nowrap;color:var(--ivory);background:var(--panel);padding:0 7px;font-size:15px;font-style:italic;position:absolute;top:calc(100% - 8px)}.love-node{--tone:var(--blue-lt);--glow:#6e96ff8c;border-radius:50%;place-items:center;width:48px;height:48px;margin:-24px 0 0 -24px;display:grid;position:absolute}.love-glyph{width:14px;height:14px;color:var(--tone);filter:drop-shadow(0 0 5px var(--glow));transition:width .4s var(--ease), height .4s var(--ease), color .4s;position:relative}.love-label{text-align:center;width:max-content;max-width:116px;color:var(--ivory);pointer-events:none;font-size:14px;line-height:1.25;position:absolute;left:50%;transform:translate(-50%)}.love-node.up .love-label{bottom:calc(100% - 8px)}.love-node.down .love-label{top:calc(100% - 8px)}.love-node.is-seen{--tone:var(--amber);--glow:#e8b04ab3}.love-node.is-seen .love-glyph{width:18px;height:18px}.love-node.is-seen .halo{opacity:.7}.love-node.is-active{--tone:var(--ivory)}.love-node.is-active .love-glyph{width:24px;height:24px}.love-node.is-active .halo{opacity:1}.love-detail{border-top:1px solid var(--line);text-align:center;min-height:130px;margin-top:40px;padding-top:22px}.love-detail h3{font:400 26px / 1.2 var(--serif);font-variation-settings:"opsz" 60, "SOFT" 100}.love-detail p{max-width:40ch;color:var(--body);margin:8px auto 0;animation:.6s both fade}.love-photo{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);border-radius:3px;width:min(100%,360px);margin:18px auto 0;animation:.6s both fade;display:block}.love-story{color:var(--muted)!important}.love-hint{font-family:var(--serif);color:var(--muted);font-size:18px;font-style:italic}.odds{margin-top:36px}.odds-row{border-top:1px solid var(--line);padding:26px 0 30px}.odds-num{font:350 clamp(68px, 18vw, 116px) / .95 var(--serif);font-variation-settings:"opsz" 144, "SOFT" 100;font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.02em;color:var(--ivory);text-shadow:0 0 30px #a9c0ff40}.odds-label{font:italic 400 21px / 1.3 var(--serif);color:var(--ivory);margin-top:12px}.odds-tick{color:var(--blue-lt);margin-top:4px;font-size:15px}.odds-note{max-width:38ch;color:var(--muted);margin-top:4px}.odds-disclaimer{border-top:1px solid var(--line);max-width:46ch;color:var(--muted);align-items:flex-start;gap:12px;margin-top:12px;padding-top:22px;font-size:15px;line-height:1.55;display:flex}.odds-star{width:14px;height:14px;color:var(--amber);flex:none;margin-top:4px}.wishes{gap:60px;margin-top:48px;display:grid}.wish{max-width:28ch}.wish-0{justify-self:start}.wish-1{text-align:right;justify-self:end}.wish-2{text-align:center;justify-self:center}.wish-mark{width:20px;height:20px;color:var(--amber);filter:drop-shadow(0 0 9px #e8b04ad9);margin-bottom:14px;display:block}.wish-1 .wish-mark{margin-left:auto}.wish-2 .wish-mark{margin-inline:auto}.wish h3{font:400 24px / 1.2 var(--serif);font-variation-settings:"opsz" 48, "SOFT" 100;color:var(--ivory)}.wish p{font:italic 400 19px / 1.55 var(--serif);color:var(--body);margin-top:8px}.secret{text-align:center;padding-top:8px}.secret-spark{width:34px;height:34px;color:var(--amber);filter:drop-shadow(0 0 12px #e8b04ae6);animation:4s ease-in-out infinite breathe}.secret-img{border:1px solid var(--line);border-radius:3px;width:min(100%,360px);margin:28px auto 0;display:block}.secret-text{max-width:32ch;font:italic 400 23px / 1.5 var(--serif);font-variation-settings:"opsz" 60, "SOFT" 100;color:var(--ivory);margin:26px auto 0}.intro{z-index:50;transition:opacity .8s 1.3s var(--ease);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.intro:before{content:"";transition:opacity 1s .15s var(--ease);background:radial-gradient(70% 55% at 50% 40%,#14264f 0%,#0a1330 55%,#070d22 100%);position:absolute;inset:0}.intro>*{position:relative}.intro.leaving{opacity:0;pointer-events:none}.intro.leaving:before{opacity:0}.intro.leaving .intro-title,.intro.leaving .intro-for,.intro.leaving .intro-cta,.intro.leaving .intro-skip,.intro.leaving .intro-corner{animation:intro-out .7s var(--ease) forwards}.intro.leaving .intro-spark{animation:spark-flare 1.3s var(--ease) forwards}.intro.leaving .intro-halo{animation:halo-out 1.3s var(--ease) forwards}.intro.leaving .intro-orbit{animation:1.4s cubic-bezier(.55,0,.3,1) forwards orbit-past}.intro-shock{opacity:0;pointer-events:none;border:2px solid #c8daffe6;border-radius:50%;width:80px;height:80px;margin:-40px 0 0 -40px;position:absolute;top:50%;left:50%;box-shadow:0 0 20px #82aaff99,inset 0 0 20px #82aaff66}.intro.leaving .intro-shock{animation:1.4s cubic-bezier(.2,.6,.3,1) forwards shock}.intro.leaving .intro-shock.s2{border-color:#e8b04ad9;animation-delay:.16s}.intro.leaving .intro-shock.s3{animation-delay:.32s}.intro-rays{opacity:0;pointer-events:none;background:linear-gradient(90deg,#0000,#fffffff2,#0000) 50%/100% 2px no-repeat,linear-gradient(#0000,#fffffff2,#0000) 50%/2px 100% no-repeat;position:absolute;inset:-140px}.intro.leaving .intro-rays{animation:rays 1.2s var(--ease) forwards}.intro-corner{opacity:.6;pointer-events:none;width:min(230px,42vw);position:absolute;overflow:visible}.intro-corner.tl{top:11%;left:5%}.intro-corner.br{bottom:8%;right:5%}.intro-corner polyline{fill:none;stroke:#a9c0ff73;stroke-width:.8px;stroke-dasharray:1;stroke-dashoffset:1px;animation:draw 3s 1.4s var(--ease) forwards}.intro-corner circle{fill:var(--ivory);animation:fade .8s calc(1.4s + var(--i) * .45s) both}.intro-skip{top:max(14px, env(safe-area-inset-top));z-index:2;min-height:44px;color:var(--muted);padding:0 12px;font-size:14px;animation:1s .8s both fade;position:absolute;right:14px}.intro-skip:hover{color:var(--ivory)}.intro-stage{text-align:center;flex-direction:column;align-items:center;padding:24px;display:flex}.intro-star{width:120px;height:120px;animation:star-birth 1.8s .25s var(--ease) both;place-items:center;display:grid;position:relative}.intro-halo{background:radial-gradient(circle,#82aaff99 0,#527dff33 34%,#0000 66%);border-radius:50%;animation:5s ease-in-out 1.8s infinite breathe;position:absolute;inset:-70px}.intro-spark{width:46px;height:46px;color:var(--ivory);filter:drop-shadow(0 0 12px #7fa2ff)drop-shadow(0 0 36px #527dffe6);position:relative}.intro-orbit{pointer-events:none;width:min(720px,170vw);position:absolute;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.intro-orbit path.faint{stroke:#a9c0ff33}.intro-orbit path{fill:none;stroke:#a9c0ff6b;stroke-width:1.3px;stroke-dasharray:1;stroke-dashoffset:1px;animation:draw 2.8s 1s var(--ease) forwards}.orbiter{opacity:0;filter:drop-shadow(0 0 6px #e8b04a);animation:1.2s 3s both fade}.intro-title{font:400 clamp(38px, 8.8vw, 78px) / 1.1 var(--serif);font-variation-settings:"opsz" 144, "SOFT" 100;letter-spacing:-.015em;color:var(--ivory);text-shadow:0 0 28px #a9c0ff52;margin-top:34px}.intro-title .ln{animation:rise 1.5s var(--d) var(--ease) both;display:block}.intro-for{color:var(--muted);margin-top:26px;font-size:15px;line-height:1.55;animation:1.4s 3.9s both fade}.intro-cta{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:32px;animation:1.4s 4.3s both fade;display:flex}.gate .intro-spark{opacity:.75;width:34px;height:34px}.gate:not(.leaving) .intro-spark.nudged{animation:gate-nudge .9s var(--ease)}.gate-title{font:400 clamp(34px, 7vw, 60px) / 1.1 var(--serif);font-variation-settings:"opsz" 144, "SOFT" 100;letter-spacing:-.015em;color:var(--ivory);text-shadow:0 0 28px #a9c0ff52;animation:rise 1.5s 1s var(--ease) both;margin-top:34px}.gate-when{color:var(--muted);margin-top:14px;font-size:15px;animation:1.4s 1.6s both fade}.gate-count{color:var(--muted);justify-content:center;gap:clamp(14px,4vw,30px);margin-top:30px;font-size:13px;animation:1.4s 2s both fade;display:flex}.gate-count span{flex-direction:column;align-items:center;min-width:3.4em;display:flex}.gate-count b{font:400 clamp(30px, 7vw, 44px) / 1 var(--serif);font-variant-numeric:tabular-nums;color:var(--ivory);text-shadow:0 0 22px #a9c0ff4d;margin-bottom:6px}.gate-note{max-width:30ch;font:italic 400 18px / 1.5 var(--serif);color:var(--body);margin-top:30px;animation:1.4s 2.4s both fade}.gate.leaving .gate-title,.gate.leaving .gate-when,.gate.leaving .gate-count,.gate.leaving .gate-note{animation:intro-out .7s var(--ease) forwards}@keyframes gate-nudge{35%{opacity:1;transform:scale(1.6)}}.overlay{z-index:40;background:#050918eb;place-items:center;padding:16px;animation:.5s both fade;display:grid;position:fixed;inset:0;overflow-y:auto}.finale{background:radial-gradient(60% 50% at 50% 36%,#162854,#050918)}.finale-card{z-index:1;position:relative}.finale-rise{pointer-events:none;position:fixed;inset:0;overflow:hidden}.finale-rise i{opacity:0;width:3px;height:3px;animation:rise-up var(--t) var(--d) linear infinite;background:#f7d58c;border-radius:50%;position:absolute;bottom:-8px;box-shadow:0 0 8px 2px #e8b04a99}.f-orbit{fill:none;stroke:#a9c0ff33;stroke-width:.7px;stroke-dasharray:1;stroke-dashoffset:1px;animation:draw 2.6s .2s var(--ease) forwards}.f-orbit-2{stroke:#e8b04a38;animation-delay:.7s}.finale-flourish{margin:14px auto 0}.finale-flourish ellipse{animation-delay:3.6s}.finale-flourish path{animation-delay:3.9s}.finale-flourish circle{animation-delay:calc(3.9s + var(--i) * .22s)}.finale-card{text-align:center;flex-direction:column;align-items:center;width:min(720px,100%);display:flex}.finale-card:focus{outline:none}.finale-sky{width:min(560px,100%,54vh);height:auto;overflow:visible}.f-dust{fill:var(--ivory);opacity:.5;animation:twinkle 3.6s var(--d) ease-in-out infinite alternate}.f-line{fill:none;stroke:#f7d58ce6;stroke-width:1.4px;stroke-dasharray:1;stroke-dashoffset:1px;filter:drop-shadow(0 0 4px #e8b04acc);animation:draw .8s var(--d) ease forwards}.f-nova>*{transform-box:fill-box;transform-origin:50%;opacity:0}.f-nova-ring{fill:none;stroke:#ffe2a3;stroke-width:1.2px;animation:2.6s cubic-bezier(.2,.6,.3,1) 3.25s forwards nova-ring}.f-nova-ring.r2{stroke:#a9c0ff;animation-delay:3.45s}.f-nova-ring.r3{animation-delay:3.65s}.f-nova-glow{animation:nova-glow 3.4s 3.15s var(--ease) forwards}.f-nova-spikes{fill:#fff6dc;filter:drop-shadow(0 0 6px #ffe2a3e6);animation:nova-spikes 2.8s 3.15s var(--ease) forwards}.f-star{transform-box:fill-box;transform-origin:50%;animation:pop 1s var(--d) var(--ease) both}.finale-copy{opacity:0;visibility:hidden;animation:copy-in 1.6s 3.2s var(--ease) forwards;margin-top:6px}.finale-copy h2{font:400 clamp(28px, 5.6vw, 44px) / 1.15 var(--serif);font-variation-settings:"opsz" 120, "SOFT" 100;color:var(--ivory);text-shadow:0 0 26px #a9c0ff4d}.finale-line{font:italic 400 clamp(25px, 5.2vw, 38px) / 1.25 var(--serif);font-variation-settings:"opsz" 90, "SOFT" 100;color:#ffe2a3;text-shadow:0 0 18px #e8b04a59;margin-top:16px}.finale-note{max-width:40ch;color:var(--body);margin:14px auto 0}.finale-photo{width:min(210px,56vw);animation:photo-in 1.4s 3.9s var(--ease) both;margin:28px auto 0}.finale-photo-frame{aspect-ratio:4/5;background:#f0ebdf;border-radius:2px;padding:10px 10px 0;transform:rotate(-2deg);box-shadow:0 0 0 1px #e8b04a80,0 24px 60px #0000008c,0 0 60px #e8b04a2e}.finale-photo-frame img{object-fit:cover;width:100%;height:calc(100% - 10px);display:block}.finale-photo figcaption{font:italic 400 17px / 1.4 var(--serif);color:var(--body);margin-top:14px}.preview-missing{height:100%;min-height:48px;font:400 13px / 1.4 var(--sans);color:#5b6685;text-align:center;border:1px dashed #5b668599;place-items:center;padding:12px;display:grid}.song{width:min(420px,100%)}.song iframe{border:0;border-radius:12px;display:block}.song-list{text-align:left;margin-top:14px}.song-list-title{font:italic 400 17px / 1.4 var(--serif);color:var(--blue-lt);padding:0 12px}.song-list ol{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.song-pick{text-align:left;border:1px solid #0000;border-radius:6px;width:100%;min-height:44px;padding:8px 12px;display:block}.song-pick:hover{background:#a9c0ff0f}.song-pick.is-on{background:#a9c0ff0f;border-color:#a9c0ff4d}.song-name{font:400 17px / 1.3 var(--serif);color:var(--ivory);display:block}.song-name small{font:400 13px var(--sans);color:var(--muted);margin-left:4px}.song-why{color:var(--muted);margin-top:2px;font-size:14px;line-height:1.45;display:block}.song .preview-missing{color:var(--muted);border-color:#a9c0ff59}.reply{margin-top:1.6em}.reply .preview-missing{height:auto}.finale-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:36px;display:flex}.letter-overlay{align-items:start}.paper{color:#18213a;width:min(620px,100%);animation:unfold 1.2s var(--ease) backwards;background:#f0ebdf;border-radius:3px;margin-block:auto;padding:clamp(36px,6vw,62px);position:relative;box-shadow:0 0 0 1px #e8b04a73,0 30px 90px #0009,0 0 90px #e8b04a24}.paper-frame{pointer-events:none;border:1px solid #b5832a61;border-radius:2px;position:absolute;inset:12px}.paper-frame .corner{color:#b5832a;background:#f0ebdf;width:13px;height:13px;position:absolute}.paper-frame .c1{top:-7px;left:-7px}.paper-frame .c2{top:-7px;right:-7px}.paper-frame .c3{bottom:-7px;left:-7px}.paper-frame .c4{bottom:-7px;right:-7px}.paper-flourish{margin:-10px 0 4px}.paper-flourish ellipse{stroke:#3b55a059;animation-delay:1s}.paper-flourish path{stroke:#b5832ad9;animation-delay:1.3s}.paper-flourish circle{fill:#b5832a;animation-delay:calc(1.3s + var(--i) * .22s)}.paper:focus{outline:none}.paper-close{color:#5b6685;position:absolute;top:8px;right:8px}.paper-close:hover{color:#18213a;background:#18213a14}.paper h2{font:400 clamp(32px, 6vw, 48px) / 1.1 var(--serif);font-variation-settings:"opsz" 120, "SOFT" 100;letter-spacing:-.012em;color:#18213a;margin-bottom:26px}.paper p{font:400 18px / 1.75 var(--serif);font-variation-settings:"opsz" 18, "SOFT" 50;color:#2a3350;margin-top:1.1em}.paper .signoff{margin-top:1.8em}.paper .signoff em{color:#3b55a0;font-size:1.15em}.future{text-align:center;margin-top:44px}.divider-ink span{background:linear-gradient(90deg,#0000,#18213a47)}.divider-ink span:last-child{background:linear-gradient(90deg,#18213a47,#0000)}.divider-ink .divider-star{color:#b5832a;filter:none}.envelope{width:132px;margin:30px auto 16px;display:block;overflow:visible}.env-body{fill:#e6dcc6;stroke:#18213a59}.env-fold{fill:none;stroke:#18213a38}.env-flap{fill:#ddd0b4;stroke:#18213a59;transform-box:fill-box;transform-origin:50% 0;transition:transform .8s var(--ease)}.env-seal{fill:#b5832a;transition:opacity .4s}.env-seal-star{fill:#f7e3b0;transition:opacity .4s}.is-open .env-flap{transform:scaleY(-1)}.is-open .env-seal,.is-open .env-seal-star{opacity:0}.open-when{text-align:center;margin-top:44px}.ow-row{justify-content:center;gap:clamp(8px,3vw,24px);margin-top:22px;display:flex}.ow{min-height:44px;font:italic 400 16px / 1.3 var(--serif);color:#2a3350;transition:transform .35s var(--ease), background .25s;border-radius:6px;flex-direction:column;flex:0 132px;align-items:center;gap:10px;padding:6px 4px 8px;display:flex}.ow:hover{transform:translateY(-3px)}.ow.is-open{background:#18213a0f}.ow .envelope{width:100%;max-width:104px;margin:0}.open-when h3,.future h3{font:400 24px / 1.25 var(--serif);font-variation-settings:"opsz" 48, "SOFT" 100;color:#18213a}.paper .future-when{font:400 15px / 1.5 var(--sans);color:#4a5574;margin-top:6px}.btn-ink{color:#18213a;border:1px solid #18213a73;margin-top:16px}.btn-ink:hover{background:#18213a0f}.future-body{text-align:left;animation:rise .9s .35s var(--ease) both}.video-card{width:min(900px,100%);position:relative}.video-card:focus{outline:none}.video-card video{width:100%;max-height:80dvh;box-shadow:0 0 0 1px var(--line), 0 30px 90px #0009, 0 0 80px #527dff33;background:#000;border-radius:4px;display:block}.video-close{position:absolute;top:-48px;right:0}@media (width<=899px){.stage{padding-bottom:55svh}}@media (width>=900px){html,body{overflow:hidden}.bar{right:var(--panel-px,0px);transition:right .8s var(--ease), opacity 1s .2s var(--ease);padding-left:32px;padding-right:28px}.stage{z-index:2;position:fixed;inset:0}.sky{top:var(--bar-h);bottom:0;left:0;right:var(--panel-px,0px);width:auto;height:auto;transition:right .8s var(--ease);position:absolute}.hint{top:auto;bottom:7%}.star-name{font-size:18px}.panel{width:var(--panel-target,560px);border-top:0;border-left:1px solid var(--line);transition:transform .8s var(--ease), width .8s var(--ease), visibility 0s .8s;border-radius:0;inset:0 0 0 auto;transform:translate(104%);box-shadow:-30px 0 90px #03081799}.panel[data-open=true]{transition:transform .8s var(--ease), width .8s var(--ease)}.panel[data-expanded=true]{top:0}.panel-seam{width:2px;height:auto;inset:18px auto 18px -1px}.panel-seam:before{background:linear-gradient(#0000,#ffe2a3,#0000);width:auto;height:45%;animation-name:seam-y;top:0;left:0;right:0}.line.is-flying .line-lit{transition-delay:.15s}.panel-bar{padding-top:14px;padding-left:44px}.panel-body{padding:10px 44px 64px}.sky.has-panel .star:not(.is-active) .star-label{opacity:0}}@media (width>=1200px) and (height>=700px){.finale-photo{margin:0;position:absolute;bottom:0;left:calc(100% + 12px)}}.tickets{margin-top:48px}.tickets h3{font:400 25px / 1.25 var(--serif);color:var(--ivory)}.tickets ul{gap:14px;margin:18px 0 0;padding:0;list-style:none;display:grid}.ticket{color:inherit;transition:transform .3s var(--ease), border-color .25s;background:linear-gradient(100deg,#e8b04a17,#e8b04a05);border:1px solid #e8b04a66;border-radius:6px;text-decoration:none;display:flex;position:relative;overflow:hidden}a.ticket:hover{border-color:#e8b04ab3;transform:translateY(-2px)}.ticket-main{flex:1;padding:14px 18px}.ticket-no{letter-spacing:.08em;color:var(--amber);font-size:12px;display:block}.ticket-title{font:400 19px / 1.3 var(--serif);color:var(--ivory);margin-top:2px;display:block}.ticket-detail{color:var(--muted);margin-top:4px;font-size:14px;display:block}.ticket-stub{color:var(--amber);white-space:nowrap;border-left:1px dashed #e8b04a73;align-items:center;padding:0 18px;font-size:14px;font-weight:600;display:flex;position:relative}.ticket-stub:before,.ticket-stub:after{content:"";background:var(--panel);border:1px solid #e8b04a66;border-radius:50%;width:14px;height:14px;position:absolute;left:-8px}.ticket-stub:before{top:-8px}.ticket-stub:after{bottom:-8px}.mem .mem-photo img{filter:sepia(.55)brightness(1.45)contrast(.7)saturate(.5);transition:filter 2.8s .3s var(--ease)}.mem.in .mem-photo img{filter:none}.wish-chance{left:50%;bottom:max(22px, env(safe-area-inset-bottom));z-index:30;min-height:44px;font:italic 400 17px / 1.2 var(--serif);color:var(--ivory);white-space:nowrap;animation:wish-in 8s var(--ease) both;background:#080f25e0;border:1px solid #b7a3e873;border-radius:999px;align-items:center;gap:10px;padding:0 18px;display:inline-flex;position:fixed;box-shadow:0 0 24px #b7a3e840}.wish-chance-star{width:14px;height:14px;color:var(--violet);filter:drop-shadow(0 0 6px #b7a3e8e6)}@keyframes wish-in{0%{opacity:0;transform:translate(-50%,8px)}8%,85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}.wish-card{text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:6px;width:min(420px,100%);padding:34px 28px 28px;position:relative;box-shadow:0 0 60px #b7a3e81f}.wish-card:focus{outline:none}.wish-card-star{width:26px;height:26px;color:var(--violet);filter:drop-shadow(0 0 10px #b7a3e8e6)}.wish-card h2{font:400 30px / 1.15 var(--serif);color:var(--ivory);margin-top:14px}.wish-card p{color:var(--muted);margin-top:8px;font-size:15px}.wish-card input{width:100%;min-height:48px;font:italic 400 18px / 1.3 var(--serif);color:var(--ivory);background:var(--midnight);border:1px solid #a9c0ff59;border-radius:4px;margin-top:22px;padding:0 14px}.wish-card input::placeholder{color:#7d88aa}.wish-card input:focus{outline:2px solid var(--blue-lt);outline-offset:1px}.wish-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px;display:flex}.btn:disabled{opacity:.45;cursor:default;box-shadow:none;transform:none}.wish-star{width:44px;height:44px;animation:pop 1s var(--ease) both;border-radius:50%;place-items:center;margin:-22px 0 0 -22px;display:grid;position:absolute}.wish-star.is-open{z-index:3}.wish-glyph{width:12px;height:12px;color:var(--violet);filter:drop-shadow(0 0 6px #b7a3e8f2);animation:4s ease-in-out infinite hint}.wish-star.is-open .wish-glyph{width:16px;height:16px;animation:none}.wish-text{text-align:left;width:max-content;max-width:min(220px,44vw);font:italic 400 16px / 1.4 var(--serif);color:var(--ivory);pointer-events:none;background:#080f25eb;border:1px solid #b7a3e859;border-radius:4px;padding:8px 12px;animation:.4s both fade;position:absolute;top:50%;left:calc(100% - 4px);transform:translateY(-50%)}.wish-star.to-left .wish-text{text-align:right;left:auto;right:calc(100% - 4px)}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes star-in{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes star-birth{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes breathe{0%,to{transform:scale(.92)}50%{transform:scale(1.08)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes pop{0%{opacity:0;transform:scale(.2)}60%{opacity:1;transform:scale(1.25)}to{opacity:1;transform:scale(1)}}@keyframes twinkle{0%{opacity:.15}to{opacity:.7}}@keyframes hint{0%,to{opacity:.45}50%{opacity:1}}@keyframes ring-out{0%{opacity:.95;transform:scale(.4)}to{opacity:0;transform:scale(3.4)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes comet-fly{0%{opacity:0;transform:translate(0)}8%,90%{opacity:1}to{transform:translate(var(--dx), var(--dy));opacity:0}}@keyframes line-flash{0%,to{filter:brightness()}45%{filter:brightness(1.9);box-shadow:0 0 18px 2px #ffd68cf2}}@keyframes star-flare{0%,to{transform:scale(1)}40%{transform:scale(2.1)}}@keyframes seam-x{0%{opacity:1;transform:translate(-100%)}to{opacity:0;transform:translate(240%)}}@keyframes seam-y{0%{opacity:1;transform:translateY(-100%)}to{opacity:0;transform:translateY(240%)}}@keyframes title-in{0%{clip-path:inset(-25% 100% -25% 0);transform:translate(-10px)}to{clip-path:inset(-25% 0);transform:none}}@keyframes intro-out{to{opacity:0;transform:translateY(-26px)}}@keyframes spark-flare{0%{transform:scale(1)}30%{filter:drop-shadow(0 0 30px #fff)drop-shadow(0 0 60px #7fa2ff);transform:scale(3.4)}to{opacity:0;transform:scale(.2)}}@keyframes halo-out{30%{opacity:1;transform:scale(2.2)}to{opacity:0;transform:scale(5)}}@keyframes orbit-past{to{opacity:0;transform:translate(-50%,-50%)scale(3.6)}}@keyframes shock{0%{opacity:.95;transform:scale(.2)}to{opacity:0;transform:scale(16)}}@keyframes rays{0%{opacity:0;transform:scale(.3)rotate(0)}30%{opacity:1;transform:scale(1.5)rotate(20deg)}to{opacity:0;transform:scale(2.6)rotate(45deg)}}@keyframes unfold{0%{opacity:0;clip-path:inset(48% 10% round 3px);transform:translateY(24px)scale(.97)}20%{opacity:1}55%{clip-path:inset(22% 2% round 3px)}to{opacity:1;clip-path:inset(0 round 3px);transform:none}}@keyframes rise-up{0%{opacity:0;transform:translateY(0)}12%{opacity:.9}80%{opacity:.5}to{opacity:0;transform:translateY(-105vh)}}@keyframes nova-ring{0%{opacity:.95;transform:scale(.1)}to{opacity:0;transform:scale(4.2)}}@keyframes nova-glow{0%{opacity:0;transform:scale(.4)}20%{opacity:1;transform:scale(2.6)}to{opacity:.55;transform:scale(1.5)}}@keyframes nova-spikes{0%{opacity:0;transform:scale(.1)rotate(-30deg)}22%{opacity:1;transform:scale(1.15)rotate(0)}to{opacity:.4;transform:scale(.45)rotate(8deg)}}@keyframes sky-turn{0%{opacity:0;transform:rotate(-70deg)scale(.9)}25%{opacity:1}to{opacity:1;transform:none}}@keyframes photo-in{0%{opacity:0;transform:translateY(18px)scale(.94)}to{opacity:1;transform:none}}@keyframes copy-in{0%{opacity:0;visibility:visible;transform:translateY(8px)}to{opacity:1;visibility:visible;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}
