*{margin:0;padding:0}html,body{background-color:#0e0e0e;overflow:hidden}.webgl{position:fixed;top:0;left:0;outline:none}#preloader{position:fixed;left:0;top:0;height:100%;width:100%;z-index:99999;display:flex}#preloader:before,#preloader:after{content:"";position:absolute;left:0;top:0;width:50%;height:100%;z-index:-1;background-color:#0e0e0e;-webkit-transition:all .3s ease 0s;-o-transition:all .3s ease 0s;transition:all .3s ease 0s}#preloader:after{left:auto;right:0}#preloader .loader_line{margin:auto;width:1px;height:75%;position:relative;overflow:hidden;-webkit-transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease 0s}.loader_line:before{content:"";position:absolute;left:0;top:50%;width:1px;height:0%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);background-color:#fff;-webkit-animation:lineheight 1s ease-in-out 0s forwards;-o-animation:lineheight 1s ease-in-out 0s forwards;animation:lineheight 1s ease-in-out 0s forwards}.loader_line:after{content:"";position:absolute;left:0;top:0;width:1px;height:100%;background-color:#bbb;-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);-o-transform:translateY(-100%);transform:translateY(-100%);-webkit-animation:lineround 1.2s linear 0s infinite;-o-animation:lineround 1.2s linear 0s infinite;animation:lineround 1.2s linear 0s infinite;animation-delay:2s}@keyframes lineheight{0%{height:0%}to{height:100%}}@keyframes lineround{0%{-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);-o-transform:translateY(-100%);transform:translateY(-100%)}to{-webkit-transform:translateY(200%);-ms-transform:translateY(200%);-o-transform:translateY(200%);transform:translateY(200%)}}.preloaded .loader_line:after{opacity:0}.preloaded .loader_line{opacity:0;height:100%!important}.preloaded:before,.preloaded:after{-webkit-animation:preloadedzero 1s ease-in-out .5s forwards;-o-animation:preloadedzero 1s ease-in-out .5s forwards;animation:preloadedzero 1s ease-in-out .5s forwards}@keyframes preloadedzero{0%{width:50%}to{width:0%}}#play-button{position:absolute;top:50%;left:50%;opacity:0;transition:opacity 1s ease-in;transform:translate(-50%,-50%);font-size:16px;padding:10px 20px;border:none;background-color:#555;color:#fff;cursor:pointer;z-index:100000;display:flex;align-items:center;justify-content:center;border-radius:50px;box-shadow:0 8px 15px #0000001a;text-transform:uppercase;letter-spacing:1.5px}#play-button:hover{background-color:#333;box-shadow:0 15px 20px #0003;transform:translate(-50%,-48%)}#play-icon{margin-right:5px}#play-button.fade-in{opacity:1}.fade-out{opacity:0;transition:opacity 1s ease-out}.wrapper{position:sticky;top:0;left:0;width:100%;height:100%;overflow:hidden}.smooth{display:block;position:relative;overflow:hidden auto;will-change:transform}.section{display:flex;align-items:center;box-sizing:border-box;width:100%;max-width:100vw;height:100dvh;position:relative;font-family:Jost Medium,sans-serif;color:#ddc4a4;text-transform:uppercase;font-size:6vmin;padding-left:10%;padding-right:10%}section:nth-child(odd){justify-content:flex-end}.section--intro{justify-content:center;padding:0;text-transform:none;font-size:initial;font-family:Jost,sans-serif}.intro{position:fixed;top:0;left:0;width:100%;height:100vh;display:grid;place-items:center;text-align:center;pointer-events:none;z-index:100}.intro__title{place-items:center;margin:0;font-weight:300;line-height:.9;display:grid;gap:.5rem}.intro__title-pre{text-transform:uppercase;font-family:norman-stencil,Big Shoulders Stencil Display,sans-serif;font-size:clamp(3rem,12vw,10rem);font-weight:800;letter-spacing:.02em;color:#ddc4a4;line-height:.9}.intro__title-sub{font-family:Jost,sans-serif;font-size:clamp(1rem,3.5vw,2.25rem);font-weight:500;color:#ddc4a4;letter-spacing:.05em;text-transform:uppercase}.intro__title-sub sup{margin-left:.2em;font-size:.55em;vertical-align:super}.intro__info{max-width:22ch;opacity:.55;margin-bottom:3rem;padding-bottom:1rem;font-family:Jost,sans-serif;font-size:14px;font-weight:600;line-height:1.2;letter-spacing:.1em;text-transform:uppercase;color:#ddc4a4;position:relative}.intro__info:after{content:"";width:1px;height:1.5rem;background:#ddc4a4;position:absolute;top:100%;left:50%;opacity:.7}.section--text{align-items:center;text-transform:none;font-size:initial}.section--text h2{position:static;top:auto;transform:none;pointer-events:auto;text-align:left}.content--text{max-width:min(38vw,42rem);min-width:0;padding:0;text-align:left}.content__text-title{font-family:Jost,sans-serif;font-size:clamp(2.5rem,5vw,4.5rem);font-weight:500;line-height:1;color:#ddc4a4;text-transform:none;margin:0 0 1.5rem;letter-spacing:-.01em}.content__text-title:not(.content__text-title--small){font-family:Cinzel,serif;text-transform:uppercase;font-weight:700;letter-spacing:.04em}.content__text{font-family:Jost,sans-serif;font-size:clamp(1rem,1.3vw,1.3rem);line-height:1.4;color:#ddc4a4;text-transform:none;margin:0}.content__text .word{display:inline-block;will-change:opacity,transform}.content__text .word.word--in{opacity:1;transform:rotate(0)}.content__text-title--small{font-family:halogen,Helvetica Neue,Arial,sans-serif;font-weight:700;font-size:clamp(3.75rem,7.5vw,6.75rem);text-transform:uppercase;text-align:center;letter-spacing:.02em;margin:8rem 0}#page-fairy{flex-direction:column;align-items:flex-start;justify-content:center;padding-top:7vh;padding-bottom:12vh;overflow:hidden}#page-fairy h2.content__text-title--small{text-align:left!important;max-width:42vw;margin:0 0 2rem;font-size:clamp(2.5rem,5vw,5.5rem);line-height:1.05}#page-fairy .content--text{position:relative;z-index:3;max-width:min(36vw,40rem)}.girlfriend-portrait{position:absolute;z-index:2;top:7vh;right:clamp(2rem,7vw,9rem);width:min(35vw,480px);height:82vh;pointer-events:none;isolation:isolate;perspective:900px}.girlfriend-portrait:before,.girlfriend-portrait:after{content:"";position:absolute;z-index:2;pointer-events:none}.girlfriend-portrait:before{top:5%;right:-10%;bottom:3%;left:-10%;z-index:0;border:1px solid rgba(255,197,220,calc(.12 + var(--portrait-depth, 0) * .24));border-radius:50%;background:radial-gradient(circle at 50% 42%,rgba(255,144,191,.18),rgba(14,31,48,.08) 48%,transparent 72%);box-shadow:inset 0 0 90px #ff82b814,0 0 90px #ff82b824;transform:scale(calc(.92 + var(--portrait-depth, 0) * .08));transition:border-color .3s ease}.girlfriend-portrait:after{inset:auto -8% -4% -8%;height:24%;background:linear-gradient(to top,#071018 15%,transparent 100%);filter:blur(8px)}.girlfriend-portrait img{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:contain;object-position:50% 50%;filter:saturate(.98) contrast(1.08) brightness(.98) drop-shadow(0 24px 38px rgba(4,10,18,.5));-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 84%,transparent 99%);mask-image:linear-gradient(to bottom,#000 0%,#000 84%,transparent 99%)}.girlfriend-portrait.is-particle-ready img{opacity:var(--photo-reveal, 0)}.girlfriend-portrait__particles{position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:0;mix-blend-mode:normal;filter:drop-shadow(0 0 2px rgba(255,162,205,.34));-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 88%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 88%,transparent 100%)}.girlfriend-portrait__halo{position:absolute;z-index:-1;top:8%;right:-16%;bottom:0;left:-16%;border-radius:50%;background:radial-gradient(circle,rgba(255,157,199,.28),transparent 68%);filter:blur(20px);animation:portraitGlow 3.5s ease-in-out infinite}.girlfriend-portrait__caption{position:absolute;z-index:4;right:-1.5rem;bottom:5%;color:#ffd2e4;font-family:Cormorant Garamond,serif;font-size:clamp(.7rem,1vw,.95rem);letter-spacing:.28em;writing-mode:vertical-rl;opacity:.8}.continue-hint{position:absolute;left:10%;bottom:4vh;color:#f4d8e5;font-family:Jost,sans-serif;font-size:.75rem;letter-spacing:.18em;opacity:.7;animation:hintFloat 1.8s ease-in-out infinite}.continue-hint:after{content:"↓";display:inline-block;margin-left:.75rem}.section--forever{position:relative;justify-content:center!important;padding:0 8%;overflow:hidden;text-align:center;text-transform:none}.forever__particles{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;opacity:.92;filter:drop-shadow(0 0 5px rgba(255,126,177,.48));-webkit-mask-image:radial-gradient(circle at center,#000 0%,#000 64%,transparent 94%);mask-image:radial-gradient(circle at center,#000 0%,#000 64%,transparent 94%)}.forever__content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;color:#f6dfd0;font-family:Jost,sans-serif;text-shadow:0 2px 18px rgba(7,16,24,.9)}.forever__eyebrow{margin-bottom:1.25rem;color:#ffb7d5;font-size:clamp(.65rem,1vw,.85rem);letter-spacing:.32em}.forever__heart{color:#ff7faf;font-size:clamp(3rem,7vw,6rem);line-height:1;filter:drop-shadow(0 0 20px rgba(255,100,165,.8));animation:heartBeat 1.6s ease-in-out infinite}.forever__content h2{margin:1rem 0 .8rem;font-family:Cormorant Garamond,Times New Roman,serif;font-size:clamp(3rem,8vw,7rem);font-weight:400;letter-spacing:.04em}.forever__content p{margin:0 0 1.25rem;font-size:clamp(1rem,1.6vw,1.35rem);opacity:.75}.forever__content strong{font-size:clamp(1rem,1.8vw,1.5rem);font-weight:500;letter-spacing:.08em}.forever__signature{margin-top:2rem;color:#ffb7d5;font-family:Cormorant Garamond,serif;font-size:1.25rem;font-style:italic}.forever__glow{z-index:0;position:absolute;width:min(70vw,800px);aspect-ratio:1;border:1px solid rgba(255,157,199,.22);border-radius:50%;background:radial-gradient(circle,rgba(255,109,170,.15),transparent 62%);box-shadow:0 0 100px #ff5da21f,inset 0 0 100px #ff5da214;animation:glowBreath 4s ease-in-out infinite}.forever__glow:before,.forever__glow:after{content:"";position:absolute;top:12%;right:12%;bottom:12%;left:12%;border:1px solid rgba(255,183,213,.13);border-radius:50%}.forever__glow:before{animation:finaleOrbit 12s linear infinite;transform:rotate(18deg) scaleX(.72)}.forever__glow:after{top:23%;right:23%;bottom:23%;left:23%;animation:finaleOrbit 9s linear infinite reverse;transform:rotate(-28deg) scaleY(.7)}.forever__hearts span{position:absolute;z-index:1;bottom:10%;color:#ff9bc4;font-size:clamp(.7rem,1.5vw,1.2rem);opacity:0;animation:heartRise 6s linear infinite}.forever__hearts span:nth-child(1){left:15%;animation-delay:0s}.forever__hearts span:nth-child(2){left:30%;animation-delay:2.2s}.forever__hearts span:nth-child(3){left:52%;animation-delay:1.1s}.forever__hearts span:nth-child(4){left:70%;animation-delay:3.5s}.forever__hearts span:nth-child(5){left:84%;animation-delay:4.6s}.scroll-spacer{width:100%;height:600dvh}@keyframes hintFloat{0%,to{transform:translateY(0);opacity:.45}50%{transform:translateY(7px);opacity:.9}}@keyframes heartBeat{0%,to{transform:scale(1)}15%{transform:scale(1.16)}30%{transform:scale(1)}45%{transform:scale(1.1)}}@keyframes glowBreath{0%,to{transform:scale(.92);opacity:.55}50%{transform:scale(1.08);opacity:1}}@keyframes finaleOrbit{to{rotate:1turn}}@keyframes portraitGlow{0%,to{transform:scale(.96);opacity:.65}50%{transform:scale(1.04);opacity:1}}@keyframes heartRise{0%{transform:translateY(0) scale(.6) rotate(-8deg);opacity:0}20%{opacity:.65}to{transform:translateY(-75vh) scale(1.4) rotate(12deg);opacity:0}}@media (max-width: 768px){#page-fairy{padding:8vh 9% 12vh}#page-fairy .content--text{max-width:82vw}#page-fairy h2.content__text-title--small{max-width:82vw;margin:0 0 2rem;font-size:clamp(2.2rem,11vw,4rem)}.girlfriend-portrait{top:4vh;right:-12vw;width:78vw;height:92vh;opacity:.38}.girlfriend-portrait__caption{display:none}.continue-hint{left:9%}.forever__particles{opacity:.72;filter:drop-shadow(0 0 3px rgba(255,126,177,.4))}.forever__content{width:100%}.forever__glow{width:115vw}}@media (prefers-reduced-motion: reduce){.forever__heart,.forever__glow,.forever__glow:before,.forever__glow:after,.forever__hearts span{animation:none}.forever__hearts{display:none}}@media (min-width: 769px) and (max-width: 1200px){.section{padding-left:7%;padding-right:7%}.section--text--right .content--text{max-width:48vw}.content__text-title--small{font-size:clamp(3rem,6vw,5rem)}#page-fairy .content--text{max-width:42vw}.girlfriend-portrait{right:4vw;width:39vw}}div[data-text-effect="21"] h2.content__text-title--small{font-family:Cormorant Garamond,Times New Roman,serif;font-weight:400;font-style:normal;letter-spacing:0;text-transform:none}h2[data-text-effect="20"].content__text-title--small{font-size:clamp(2.5rem,5vw,4.5rem);letter-spacing:.08em}h2[data-text-effect="28"].content__text-title--small{font-size:clamp(2.5rem,5vw,4.5rem);letter-spacing:.01em}.content__text-title--small{text-align:center!important}.section--text--right{justify-content:flex-end}.section--text--right .content--text{text-align:center;max-width:38vw}.section--text--stack{flex-direction:column;align-items:flex-end}.section--text--left{justify-content:flex-start}.section--text--left .content--text{text-align:left;max-width:38vw}.content__text-title--left{text-align:left!important}[data-text-effect="18"] .word{white-space:nowrap;display:inline-block}[data-text-effect="18"] .char{display:inline-block}div[data-text-effect="18"] h2.content__text-title--small{font-family:inge-variable,halogen,Helvetica Neue,Arial,sans-serif;font-weight:400;font-style:normal;letter-spacing:.04em;text-transform:uppercase;margin:8rem 0}[data-text-effect="20"] .char{display:inline-block;opacity:0;transform-origin:50% 100%;will-change:opacity,transform}[data-text-effect="28"] .word{white-space:normal;display:inline}[data-text-effect="28"] .char{display:inline-block}[data-text-effect="23"] .word{white-space:nowrap;display:inline-block}[data-text-effect="23"] .char{display:inline-block}[data-text-effect="21"] .word{white-space:normal;display:inline}[data-text-effect="21"] .char{display:inline-block}#fake-scroll{position:absolute;width:100%;height:100%;overflow:hidden auto;top:0;left:0}#replay-btn{position:fixed;right:24px;bottom:24px;z-index:100001;opacity:0;pointer-events:none;transition:opacity .6s ease;padding:10px 20px;border:none;border-radius:50px;background-color:#555555d9;color:#fff;font-family:Jost,sans-serif;font-size:15px;letter-spacing:1px;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#replay-btn:hover{background-color:#333333f2}#replay-btn.show{opacity:1;pointer-events:auto}body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
