:root{--night: #0C0509;--ink: #F6E7EB;--ink-soft: #C9A5AF;--rose: #E8A9B6;--rose-deep: #A24A5E;--blush: #FFE6EC;--serif: "Cormorant Garamond", Cormorant, Garamond, "Times New Roman", serif;--sans: "Jost", "Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif;--script: "Great Vibes", "Snell Roundhand", "Apple Chancery", cursive;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--night)}body{color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;overscroll-behavior:none}.no-webgl body{background:radial-gradient(90% 60% at 50% 38%,#3A1424 0%,transparent 70%),var(--night)}.no-webgl.is-inside body{background:radial-gradient(100% 80% at 50% 45%,#6b1c38,#210912 75%)}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0}.curtain{position:fixed;inset:0;z-index:30;background:#000;pointer-events:none}.veil{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 50%,#fff7f9,#ffc9d6 40%,#ffa0be00 78%)}.bar{position:fixed;left:0;right:0;z-index:22;height:11vh;background:#000;transform:scaleY(0);pointer-events:none}.bar-top{top:0;transform-origin:50% 0}.bar-bottom{bottom:0;transform-origin:50% 100%}.gate{position:fixed;inset:0;z-index:24;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.6rem;width:100%;margin:0;padding:0;border:0;background:none;color:var(--ink-soft);cursor:pointer;-webkit-appearance:none;appearance:none}.gate[hidden]{display:none}.gate-title,.gate-hint{display:block;opacity:0;font-family:var(--sans);font-weight:300;text-transform:uppercase}.gate-title{font-size:clamp(.78rem,2.6vw,.95rem);letter-spacing:.42em;padding-left:.42em;color:var(--ink)}.gate-hint{font-size:clamp(.56rem,1.8vw,.66rem);letter-spacing:.3em;padding-left:.3em;animation:breathe 2.8s ease-in-out infinite}@keyframes breathe{0%,to{color:var(--ink-soft)}50%{color:var(--rose)}}.gate:focus-visible{outline:none}.gate:focus-visible .gate-hint{text-decoration:underline;text-underline-offset:.5em}.act{position:fixed;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:max(1.5rem,env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));pointer-events:none}.act[hidden]{display:none}.act-question{justify-content:flex-end;padding-bottom:max(10vh,calc(env(safe-area-inset-bottom) + 2rem))}.question{margin:0;font-weight:300;font-style:italic;font-size:clamp(2.1rem,min(8.6vw,8vh),4.3rem);line-height:1.1;color:var(--ink);text-shadow:0 2px 28px rgba(12,5,9,.95),0 0 2px rgba(12,5,9,.6)}.question .w{display:inline-block;opacity:0}.choices{position:relative;display:flex;align-items:center;justify-content:center;gap:1.1rem;min-height:4.6rem;margin-top:clamp(1.4rem,4.5vh,2.4rem);opacity:0}.is-ready .choices{pointer-events:auto}.no-slot{display:flex;justify-content:center;transition:width .7s cubic-bezier(.65,0,.35,1),margin .7s cubic-bezier(.65,0,.35,1)}.choices.is-solo .no-slot{margin-left:-1.1rem}.btn{appearance:none;-webkit-appearance:none;border:0;margin:0;font-family:var(--sans);font-weight:400;font-size:.8rem;letter-spacing:.28em;text-transform:uppercase;white-space:nowrap;min-width:7.6rem;min-height:3.2rem;padding:1rem 2.2rem 1rem calc(2.2rem + .28em);border-radius:999px;cursor:pointer;touch-action:none}.btn-yes{--grow: 1;color:#2a1219;background:linear-gradient(180deg,#f5c6d0,#e49aac);box-shadow:0 0 0 1px #ffe4eb73 inset,0 12px 40px -10px #e86e91bf,0 0 60px -10px #ff96b473;transform:scale(var(--grow));transition:transform .55s cubic-bezier(.2,1.4,.4,1),box-shadow .35s ease}.btn-yes:hover,.btn-yes:focus-visible{box-shadow:0 0 0 1px #ffe4eb99 inset,0 14px 46px -8px #e86e91e6,0 0 80px -6px #ff96b499}.btn-no{color:var(--ink-soft);background:#ffffff0a;box-shadow:0 0 0 1px #e8a9b659 inset;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.btn-no.is-free{position:fixed;left:0;top:0;z-index:6;transition:transform .5s cubic-bezier(.2,1.3,.35,1),opacity .4s ease,background .4s ease,color .4s ease}.btn-no.is-yes{color:#2a1219;background:linear-gradient(180deg,#f5c6d0,#e49aac);box-shadow:0 0 0 1px #ffe4eb73 inset,0 12px 40px -10px #e86e91bf}@media (orientation: landscape) and (max-height: 520px){.act-question{padding-bottom:max(5vh,calc(env(safe-area-inset-bottom) + .8rem))}.choices{margin-top:.9rem;min-height:3.6rem}}.hint{min-height:1.4em;margin:1.2rem 0 0;font-family:var(--sans);font-weight:300;font-size:clamp(.62rem,1.9vw,.72rem);letter-spacing:.22em;padding-left:.22em;text-transform:uppercase;color:var(--ink-soft)}:focus-visible{outline:2px solid var(--rose);outline-offset:4px}.act-love{justify-content:center}@media (max-aspect-ratio: 9 / 10){.act-love{justify-content:flex-start;padding-top:max(18vh,calc(env(safe-area-inset-top) + 4rem))}.love-line{font-size:clamp(2.2rem,10vw,4rem)}}.love{display:flex;flex-direction:column;align-items:center;margin:0;font-family:var(--script);font-weight:400;line-height:1;color:var(--blush)}.love-line{position:relative;display:block;font-size:clamp(2.5rem,min(11vw,13vh),6.6rem);white-space:nowrap}.love-line+.love-line{margin-top:-.12em;transform:translate(.9em) rotate(-3deg)}.ink{--x: 0px;--soft: 1.1em;display:inline-block;padding:.5em .7em;margin:-.26em -.3em;-webkit-mask-image:linear-gradient(90deg,#000 calc(var(--x) - var(--soft)),transparent var(--x));mask-image:linear-gradient(90deg,#000 calc(var(--x) - var(--soft)),transparent var(--x));text-shadow:0 0 16px rgba(255,140,170,.55),0 0 34px rgba(255,90,140,.32)}.ink.is-written{-webkit-mask-image:none;mask-image:none}.pen{position:absolute;left:0;top:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:radial-gradient(circle,#fff,#ffe0e8 30%,#ffa0be00 70%);box-shadow:0 0 22px 8px #ffaac38c;opacity:0;pointer-events:none}.stack{display:grid;margin-top:clamp(1.6rem,5vh,3.2rem)}.stack>*{grid-area:1 / 1}.since{opacity:0}.reason{align-self:center;justify-self:center;max-width:min(86vw,22rem);opacity:0;pointer-events:none}.reason-n{margin:0 0 .7rem;font-family:var(--sans);font-weight:300;font-size:.6rem;letter-spacing:.3em;padding-left:.3em;text-transform:uppercase;color:var(--rose)}.reason-t{margin:0;font-style:italic;font-weight:400;font-size:clamp(1.15rem,3.8vw,1.45rem);line-height:1.3;color:var(--ink);text-shadow:0 0 18px rgba(12,5,9,.9)}@media (orientation: landscape) and (max-height: 520px){.act-love{flex-direction:row;justify-content:center;align-items:center;gap:6vw}.love-line{font-size:clamp(1.8rem,min(11vh,5.4vw),3rem)}.stack{margin-top:0}.since-label{margin-bottom:.7rem}.units{gap:.9rem}.value{font-size:clamp(1.4rem,8vh,2rem)}.forever{margin-top:.8rem;font-size:1.1rem}}.since-label{margin:0 0 1rem;font-family:var(--sans);font-weight:300;font-size:clamp(.6rem,1.9vw,.72rem);letter-spacing:.3em;padding-left:.3em;text-transform:uppercase;color:var(--ink-soft)}.units{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.6rem,3.5vw,1.8rem);max-width:24rem;margin:0 auto;padding:0;list-style:none}.unit{display:flex;flex-direction:column;align-items:center;gap:.4rem;min-width:0}.value{font-family:var(--serif);font-weight:300;font-size:clamp(1.7rem,min(6.5vw,6vh),2.6rem);line-height:1;color:var(--rose);font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1;text-shadow:0 0 20px rgba(255,120,160,.35)}.label{font-family:var(--sans);font-weight:300;font-size:clamp(.5rem,1.6vw,.62rem);letter-spacing:.16em;padding-left:.16em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}.forever{margin:1.3rem 0 0;font-style:italic;font-weight:300;font-size:clamp(1.1rem,3.6vw,1.5rem);color:var(--ink)}.forever.is-special{font-family:var(--script);font-style:normal;font-size:clamp(1.6rem,5vw,2.2rem);color:var(--blush);text-shadow:0 0 16px rgba(255,140,170,.55)}.tap-hint{position:fixed;left:0;right:0;top:max(1.9rem,calc(env(safe-area-inset-top) + 1rem));margin:0;font-family:var(--sans);font-weight:300;font-size:.6rem;letter-spacing:.3em;padding-left:.3em;text-transform:uppercase;color:var(--ink-soft);opacity:0}.after{position:fixed;left:max(1rem,env(safe-area-inset-left));right:max(1rem,env(safe-area-inset-right));bottom:max(.4rem,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;font-family:var(--sans);font-weight:300;font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);opacity:0;pointer-events:auto}.link{appearance:none;-webkit-appearance:none;background:none;border:0;margin:0;padding:.9rem .3rem;font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--ink-soft);text-decoration:none;cursor:pointer;transition:color .25s ease}.sky-btn{position:fixed;left:0;right:0;bottom:max(.7rem,env(safe-area-inset-bottom));width:fit-content;margin:0 auto;display:inline-flex;align-items:center;gap:.6rem;min-height:2.9rem;padding:.7rem 1.5rem .75rem 1.3rem;border:0;border-radius:999px;font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.12rem;color:var(--blush);background:#18081161;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;opacity:0;pointer-events:auto;animation:halo 3.2s ease-in-out infinite;transition:color .25s ease}.sky-btn:hover,.sky-btn:focus-visible{color:#fff}.sky-btn:disabled{cursor:default}.sky-btn[hidden]{display:none}.sky-btn-star{flex:none;color:#ffd9e2;animation:twinkle 2.4s ease-in-out infinite}.sky-btn-arrow{display:inline-block;margin-left:-.15rem;font-style:normal;font-size:.95em;color:#ffd9e2;animation:nudge 2.4s ease-in-out infinite}@keyframes nudge{0%,to{transform:none}50%{transform:translateY(-4px)}}@keyframes halo{0%,to{box-shadow:inset 0 0 0 1px #e8a9b673,0 0 22px -8px #ff8caf80}50%{box-shadow:inset 0 0 0 1px #ffcddabf,0 0 34px -4px #ff8cafbf}}@keyframes twinkle{0%,to{transform:scale(1) rotate(0);opacity:.75}50%{transform:scale(1.3) rotate(25deg);opacity:1}}@media (max-width: 34rem){.sky-btn{bottom:calc(max(.4rem,env(safe-area-inset-bottom)) + 3rem)}}@media (prefers-reduced-motion: reduce){.sky-btn,.sky-btn-star,.sky-btn-arrow,.gate-hint{animation:none}}.link:hover,.link:focus-visible{color:var(--rose)}.sound{position:fixed;top:max(1rem,env(safe-area-inset-top));right:max(1rem,env(safe-area-inset-right));z-index:25;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;color:var(--ink-soft);background:#ffffff0d;box-shadow:0 0 0 1px #e8a9b640 inset;cursor:pointer;opacity:0}.sound[hidden],.sound .icon-off,.sound[aria-pressed=true] .icon-on{display:none}.sound[aria-pressed=true] .icon-off{display:block}.noscript{position:fixed;inset:0;display:grid;place-items:center;margin:0;padding:2rem;z-index:40;font-style:italic;font-size:1.4rem;text-align:center;background:var(--night)}.static .question .w,.static .choices,.static .since,.static .after{opacity:1}.static .curtain{display:none}.static .ink{-webkit-mask-image:none;mask-image:none}.static .choices{pointer-events:auto}.is-sky body{touch-action:none}.act-sky{justify-content:space-between;z-index:4}.sky-title{margin-top:clamp(.6rem,3vh,1.6rem);opacity:0}.sky-place{margin:0;font-style:italic;font-weight:300;font-size:clamp(1.4rem,5vw,2.2rem);color:var(--ink);text-shadow:0 0 24px rgba(5,8,23,.9)}.sky-date{margin:.5rem 0 0;font-family:var(--sans);font-weight:300;font-size:clamp(.58rem,1.8vw,.68rem);letter-spacing:.3em;padding-left:.3em;text-transform:uppercase;color:var(--ink-soft)}.sky-hint{margin:1.1rem 0 0;font-family:var(--sans);font-weight:300;font-size:.56rem;letter-spacing:.3em;padding-left:.3em;text-transform:uppercase;color:#b9b2d6;opacity:0}.sky-note{margin:0 0 clamp(3.6rem,10vh,5rem);min-height:2.6em;font-style:italic;font-weight:300;font-size:clamp(1.05rem,3.4vw,1.35rem);line-height:1.3;color:var(--ink);text-shadow:0 0 20px rgba(5,8,23,.95);opacity:0}.sky-labels{position:fixed;inset:0;z-index:3;overflow:hidden;pointer-events:none}.sky-label{position:absolute;left:0;top:0;white-space:nowrap;opacity:0;will-change:transform,opacity}.sky-label.is-con{font-family:var(--sans);font-weight:300;font-size:.54rem;letter-spacing:.32em;text-transform:uppercase;color:#b9b2debf}.sky-label.is-star,.sky-label.is-planet,.sky-label.is-moon{font-style:italic;font-size:.92rem;color:#eee6f4d9}.sky-label.is-planet{color:#ffe2c8e6}.sky-label.is-us{font-family:var(--script);font-size:clamp(1.5rem,4vw,2rem);color:var(--blush);text-shadow:0 0 14px rgba(255,140,170,.7),0 0 30px rgba(255,90,140,.4)}
