.reveal-section{background-color:var(--midnight-black);flex-direction:column;align-items:center;width:100%;min-height:100svh;padding:10vh 0 20vh;display:flex;position:relative;overflow:hidden}.intro-text-container{text-align:center;z-index:10;margin-bottom:10vh;padding:0 20px;position:relative}.intro-line{font-family:var(--font-sans);letter-spacing:.15em;color:var(--muted-blue-grey);opacity:0;font-size:.9rem;transition:opacity 1.5s,transform 1.5s;transform:translateY(10px)}.intro-line.visible{opacity:1;transform:translateY(0)}.intro-title{font-family:var(--font-serif);letter-spacing:.1em;color:var(--warm-ivory);opacity:0;margin:20px 0;font-size:clamp(2.5rem,8vw,6rem);transition:opacity 2s,transform 2s;transform:translateY(20px)scale(.95)}.intro-title.visible{opacity:1;transform:translateY(0)scale(1)}.centerpiece{text-align:center;z-index:20;pointer-events:none;width:100%;max-width:600px;margin:10vh auto;padding:0 20px;position:relative}.centerpiece h2{letter-spacing:.1em;text-shadow:0 10px 30px #000c;opacity:0;margin-bottom:20px;font-size:clamp(2rem,5vw,4rem);transition:opacity 2s 1s}.centerpiece.visible h2{opacity:1}.centerpiece p{color:var(--champagne-gold);letter-spacing:.05em;opacity:0;margin:5px 0;font-size:clamp(1rem,2vw,1.2rem);transition:opacity 1.5s}.centerpiece.visible p:nth-child(2){opacity:1;transition-delay:2.5s}.centerpiece.visible p:nth-child(3){opacity:1;transition-delay:4.5s}.constellation-container{flex-direction:column;align-items:center;gap:30px;width:100%;max-width:1400px;padding:0 20px;display:flex;position:relative}.photo-card{width:100%;max-width:500px;aspect-ratio:var(--mobile-aspect-ratio,4/5);position:relative}@media (width>=1025px){.reveal-section{min-height:150vh}.centerpiece{margin:0;position:absolute;top:60%;left:50%;transform:translate(-50%,-50%)}.constellation-container{height:80vh;padding:0;display:block}.photo-card{left:var(--dt-left);right:var(--dt-right);top:var(--dt-top);bottom:var(--dt-bottom);width:var(--dt-width);height:var(--dt-height);z-index:var(--dt-z-index);position:absolute}}.journey-container{background-color:var(--midnight-black);width:100%;position:relative}.journey-intro,.journey-finale{text-align:center;z-index:10;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:0 20px;display:flex;position:relative}.journey-intro-label{font-family:var(--font-sans);letter-spacing:.2em;color:var(--champagne-gold);opacity:0;margin-bottom:30px;font-size:.8rem;transition:opacity 1s,transform 1s;transform:translateY(10px)}.journey-intro.visible .journey-intro-label{opacity:1;transform:translateY(0)}.journey-intro h2,.journey-finale h2{font-family:var(--font-serif);letter-spacing:.1em;opacity:0;margin:5px 0;font-size:clamp(2.5rem,6vw,5rem);transition:opacity 1.5s,transform 1.5s;transform:translateY(20px)}.journey-intro.visible h2,.journey-finale.visible h2{opacity:1;transform:translateY(0)}.journey-intro.visible h2:nth-child(3){transition-delay:.8s}.journey-intro p,.journey-finale p{font-family:var(--font-sans);letter-spacing:.15em;color:var(--muted-blue-grey);opacity:0;margin-top:30px;font-size:.9rem;transition:opacity 1.5s 2s}.journey-intro.visible p,.journey-finale.visible p{opacity:1}.journey-scene{flex-direction:column;justify-content:flex-start;min-height:100svh;padding:10vh 20px;display:flex;position:relative}.scene-content{opacity:0;flex-direction:column;justify-content:flex-start;align-items:center;transition:opacity 1.5s;display:flex;position:relative}.journey-scene.visible .scene-content{opacity:1}.scene-text{text-align:center;z-index:10;width:100%;max-width:500px;margin-bottom:40px;position:relative}.scene-text h3{font-family:var(--font-serif);letter-spacing:.05em;color:var(--warm-ivory);opacity:0;margin:0 0 20px;font-size:clamp(2.5rem,8vw,6rem);transition:opacity 1.5s .5s,transform 1.5s .5s;transform:translateY(20px)}.scene-text p{font-family:var(--font-sans);color:var(--muted-blue-grey);opacity:0;font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.6;transition:opacity 1.5s 1s,transform 1.5s 1s;transform:translateY(20px)}.journey-scene.visible .scene-text h3,.journey-scene.visible .scene-text p{opacity:1;transform:translateY(0)}.scene-visuals{flex-direction:column;align-items:center;gap:30px;width:100%;display:flex;position:relative}.scene-photo{object-fit:cover;opacity:0;filter:brightness(.7)blur(2px);aspect-ratio:4/5;z-index:1;border-radius:2px;width:100%;max-width:500px;transition:opacity 2s,transform 2.5s cubic-bezier(.19,1,.22,1),filter 2s;position:relative;transform:scale(.95)translateY(20px);box-shadow:0 20px 50px #00000080}.journey-scene.visible .scene-photo{opacity:1;filter:brightness()blur();transform:scale(1)translateY(0)}.scene-photo.support-1,.scene-photo.support-2{aspect-ratio:16/9}@media (width>=1025px){.journey-scene{justify-content:center;min-height:150vh;padding:10vh 5vw}.scene-content{flex-direction:row;justify-content:space-between;height:60vh;position:sticky;top:20vh}.journey-scene.alt .scene-content{flex-direction:row-reverse}.scene-text{text-align:left;flex:1;max-width:400px;margin-bottom:0}.journey-scene.alt .scene-text{text-align:right}.scene-text h3,.scene-text p{transform:translate(-20px)}.journey-scene.alt .scene-text h3,.journey-scene.alt .scene-text p{transform:translate(20px)}.journey-scene.visible .scene-text h3,.journey-scene.visible .scene-text p,.journey-scene.alt.visible .scene-text h3,.journey-scene.alt.visible .scene-text p{transform:translate(0)}.scene-visuals{flex:1.5;height:100%;display:block}.scene-photo{aspect-ratio:auto;position:absolute;transform:scale(1.05)translateY(20px)}.journey-scene.visible .scene-photo{transform:scale(1)translateY(0)}.scene-photo.dominant{z-index:5;width:70%;height:80%;transition-delay:.3s;top:10%;left:15%}.scene-photo.support-1{z-index:2;filter:brightness(.6)blur(1px);width:40%;height:50%;transition-delay:.8s;top:10%;left:auto;right:0}.scene-photo.support-2{z-index:8;width:45%;height:40%;transition-delay:1.2s;top:auto;bottom:0;left:0}.journey-scene.visible .scene-photo.support-1,.journey-scene.visible .scene-photo.support-2{filter:brightness(.8)blur()}}.finale-bg{z-index:0;position:absolute;inset:0}.finale-bg img{object-fit:cover;opacity:.4;width:100%;height:100%;transition:transform 15s linear;transform:scale(1.05)}.journey-finale.visible .finale-bg img{transform:scale(1.15)}.finale-bg:after{content:"";background:radial-gradient(circle,#08090b33 0%,#08090b 100%);position:absolute;inset:0}.archive-container{background-color:var(--midnight-black);width:100%;position:relative}.archive-intro,.archive-finale{text-align:center;z-index:10;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:0 20px;display:flex;position:relative}.archive-intro-label{font-family:var(--font-sans);letter-spacing:.2em;color:var(--champagne-gold);opacity:0;margin-bottom:24px;font-size:.8rem;transition:opacity 1s,transform 1s;transform:translateY(10px)}.archive-intro.visible .archive-intro-label{opacity:1;transform:translateY(0)}.archive-intro h2,.archive-finale h2{font-family:var(--font-serif);letter-spacing:.08em;opacity:0;color:var(--warm-ivory);margin:8px 0;font-size:clamp(2.5rem,7vw,5.5rem);transition:opacity 1.5s,transform 1.5s;transform:translateY(20px)}.archive-intro.visible h2,.archive-finale.visible h2{opacity:1;transform:translateY(0)}.archive-intro p,.archive-finale p{font-family:var(--font-sans);letter-spacing:.12em;color:var(--muted-blue-grey);opacity:0;max-width:480px;margin-top:24px;font-size:clamp(.85rem,1.2vw,1.05rem);transition:opacity 1.5s .8s}.archive-intro.visible p,.archive-finale.visible p{opacity:1}.archive-scene{flex-direction:column;justify-content:flex-start;min-height:100svh;padding:10vh 20px;display:flex;position:relative}.archive-content{opacity:0;flex-direction:column;justify-content:flex-start;align-items:center;transition:opacity 1.5s;display:flex;position:relative}.archive-scene.visible .archive-content{opacity:1}.archive-text{text-align:center;z-index:10;width:100%;max-width:520px;margin-bottom:36px;position:relative}.archive-text h3{font-family:var(--font-serif);letter-spacing:.05em;color:var(--warm-ivory);opacity:0;margin:0 0 16px;font-size:clamp(2.2rem,6vw,4.5rem);transition:opacity 1.5s .3s,transform 1.5s .3s;transform:translateY(20px)}.archive-text p{font-family:var(--font-sans);color:var(--muted-blue-grey);opacity:0;font-size:clamp(.9rem,1.4vw,1.15rem);line-height:1.6;transition:opacity 1.5s .6s,transform 1.5s .6s;transform:translateY(20px)}.archive-scene.visible .archive-text h3,.archive-scene.visible .archive-text p{opacity:1;transform:translateY(0)}.archive-visuals{flex-direction:column;align-items:center;gap:28px;width:100%;display:flex;position:relative}.archive-photo{object-fit:cover;opacity:0;filter:brightness(.8)blur(2px);aspect-ratio:4/5;z-index:1;border-radius:2px;width:100%;max-width:500px;transition:opacity 2s,transform 2.2s cubic-bezier(.19,1,.22,1),filter 2s;position:relative;transform:scale(.96)translateY(20px);box-shadow:0 20px 45px #0009}.archive-scene.visible .archive-photo{opacity:1;filter:brightness()blur();transform:scale(1)translateY(0)}.archive-photo.support-1,.archive-photo.support-2{aspect-ratio:16/9}@media (width>=1025px){.archive-scene{justify-content:center;min-height:140vh;padding:10vh 6vw}.archive-content{flex-direction:row;justify-content:space-between;height:56vh;position:sticky;top:22vh}.archive-scene.alt .archive-content{flex-direction:row-reverse}.archive-text{text-align:left;flex:1;max-width:420px;margin-bottom:0}.archive-scene.alt .archive-text{text-align:right}.archive-visuals{flex:1.5;height:100%;display:block}.archive-photo{aspect-ratio:auto;position:absolute}.archive-photo.dominant{z-index:5;width:68%;height:82%;top:5%;left:10%}.archive-photo.support-1{z-index:2;width:42%;height:48%;top:15%;left:auto;right:2%}.archive-photo.support-2{z-index:8;width:40%;height:42%;top:auto;bottom:5%;left:0}}.archive-finale-bg{z-index:0;position:absolute;inset:0}.archive-finale-bg img{object-fit:cover;opacity:.35;width:100%;height:100%;transition:transform 12s linear;transform:scale(1.04)}.archive-finale.visible .archive-finale-bg img{transform:scale(1.12)}.archive-finale-bg:after{content:"";background:radial-gradient(circle,#08090b33 0%,#08090bf2 100%);position:absolute;inset:0}.letter-section{background-color:var(--midnight-black);flex-direction:column;align-items:center;width:100%;min-height:100svh;padding:10vh 0 15vh;display:flex;position:relative;overflow-x:hidden}.letter-intro{text-align:center;z-index:10;opacity:0;margin-bottom:8vh;padding:0 20px;transition:opacity 1.5s,transform 1.5s;position:relative;transform:translateY(20px)}.letter-intro.visible{opacity:1;transform:translateY(0)}.letter-intro-label{font-family:var(--font-sans);letter-spacing:.2em;color:var(--champagne-gold);margin-bottom:24px;font-size:.8rem}.letter-intro h2{font-family:var(--font-serif);letter-spacing:.08em;color:var(--warm-ivory);margin:10px 0;font-size:clamp(2.5rem,7vw,5.5rem)}.letter-intro p{font-family:var(--font-sans);letter-spacing:.12em;color:var(--muted-blue-grey);margin-top:20px;font-size:clamp(.9rem,1.4vw,1.1rem)}.envelope-container{background:var(--charcoal);cursor:pointer;-webkit-user-select:none;user-select:none;z-index:20;border:1px solid #c9a86a59;border-radius:4px;justify-content:center;align-items:center;width:90%;max-width:360px;height:220px;transition:transform .6s cubic-bezier(.19,1,.22,1),box-shadow .6s,border-color .6s;display:flex;position:relative;box-shadow:0 20px 40px #000000b3,0 0 20px #c9a86a0d}.envelope-container:hover,.envelope-container:focus-visible{border-color:var(--champagne-gold);outline:none;transform:translateY(-6px)scale(1.02);box-shadow:0 25px 50px #000c,0 0 30px #c9a86a26}.envelope-card{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:20px;display:flex}.envelope-seal{background:radial-gradient(circle, var(--champagne-gold) 0%, #8a6d3b 100%);width:44px;height:44px;color:var(--midnight-black);border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;transition:transform .8s;display:flex;box-shadow:0 4px 12px #0006}.envelope-container.open .envelope-seal{transform:rotate(180deg)scale(.8)}.envelope-recipient{font-family:var(--font-serif);letter-spacing:.25em;color:var(--warm-ivory);font-size:1.1rem}.envelope-action{font-family:var(--font-sans);letter-spacing:.2em;color:var(--champagne-gold);text-transform:uppercase;font-size:.75rem}.letter-paper-wrapper{background:var(--charcoal);opacity:0;z-index:15;border:1px solid #c9a86a40;border-radius:4px;width:90%;max-width:580px;margin-top:20px;padding:clamp(28px,6vw,48px);transition:opacity 1.2s,transform 1.2s;transform:translateY(30px)scale(.97);box-shadow:0 25px 60px #000c}.letter-paper-wrapper.visible{opacity:1;transform:translateY(0)scale(1)}.letter-content{color:var(--warm-ivory);font-family:var(--font-serif);letter-spacing:.02em;font-size:clamp(1.05rem,1.8vw,1.25rem);line-height:1.8}.letter-paragraph{opacity:0;margin-bottom:24px;transition:opacity 1.2s,transform 1.2s;transform:translateY(12px)}.letter-paragraph.visible{opacity:1;transform:translateY(0)}.letter-salutation{color:var(--champagne-gold);margin-bottom:28px;font-size:clamp(1.2rem,2.2vw,1.5rem)}.letter-closing{color:var(--champagne-gold);margin-top:36px;font-style:italic}.letter-finale{text-align:center;opacity:0;margin-top:10vh;padding:0 20px;transition:opacity 1.5s,transform 1.5s;transform:translateY(20px)}.letter-finale.visible{opacity:1;transform:translateY(0)}.letter-finale h3{font-family:var(--font-serif);color:var(--warm-ivory);margin-bottom:12px;font-size:clamp(2rem,5vw,3.5rem)}.letter-finale p{font-family:var(--font-sans);letter-spacing:.15em;color:var(--champagne-gold);font-size:.9rem}@media (prefers-reduced-motion:reduce){.letter-intro,.letter-paper-wrapper,.letter-paragraph,.letter-finale{opacity:1!important;transition:none!important;transform:none!important}}.gift-section{background-color:var(--midnight-black);flex-direction:column;align-items:center;width:100%;min-height:100svh;padding:10vh 0 15vh;display:flex;position:relative;overflow-x:hidden}.gift-intro{text-align:center;z-index:10;opacity:0;margin-bottom:6vh;padding:0 20px;transition:opacity 1.5s,transform 1.5s;position:relative;transform:translateY(20px)}.gift-intro.visible{opacity:1;transform:translateY(0)}.gift-intro-label{font-family:var(--font-sans);letter-spacing:.2em;color:var(--champagne-gold);margin-bottom:20px;font-size:.8rem}.gift-intro h2{font-family:var(--font-serif);letter-spacing:.08em;color:var(--warm-ivory);margin:8px 0;font-size:clamp(2.5rem,7vw,5.5rem)}.gift-intro p{font-family:var(--font-sans);letter-spacing:.12em;color:var(--muted-blue-grey);margin-top:16px;font-size:clamp(.9rem,1.4vw,1.1rem)}.gift-box-container{background:var(--charcoal);cursor:pointer;-webkit-user-select:none;user-select:none;z-index:20;border:1px solid #c9a86a66;border-radius:6px;justify-content:center;align-items:center;width:min(86vw,360px);height:240px;transition:transform .6s cubic-bezier(.19,1,.22,1),box-shadow .6s,border-color .6s;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 50px #000c,0 0 30px #c9a86a14}.gift-box-container:hover,.gift-box-container:focus-visible{border-color:var(--champagne-gold);outline:none;transform:translateY(-6px)scale(1.02);box-shadow:0 30px 60px #000000e6,0 0 40px #c9a86a33}.gift-box-ribbon-v{background:linear-gradient(to bottom, transparent, var(--champagne-gold), transparent);opacity:.6;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.gift-box-ribbon-h{background:linear-gradient(to right, transparent, var(--champagne-gold), transparent);opacity:.6;height:2px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.gift-box-card{text-align:center;z-index:2;flex-direction:column;align-items:center;gap:14px;padding:24px;display:flex}.gift-box-emblem{background:radial-gradient(circle, var(--champagne-gold) 0%, #8a6d3b 100%);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.4rem;transition:transform .8s;display:flex;box-shadow:0 4px 14px #00000080}.gift-box-container.opening .gift-box-emblem{transform:scale(1.2)rotate(360deg)}.gift-box-container.revealed{opacity:.4;pointer-events:none;transform:scale(.95)}.gift-box-label{font-family:var(--font-serif);letter-spacing:.25em;color:var(--warm-ivory);font-size:1.15rem}.gift-box-action{font-family:var(--font-sans);letter-spacing:.2em;color:var(--champagne-gold);text-transform:uppercase;font-size:.75rem}.gift-reveal-wrapper{text-align:center;opacity:0;z-index:15;width:90%;max-width:540px;margin-top:40px;transition:opacity 1.5s,transform 1.5s;transform:translateY(30px)}.gift-reveal-wrapper.visible{opacity:1;transform:translateY(0)}.gift-reveal-title{font-family:var(--font-serif);color:var(--warm-ivory);letter-spacing:.06em;margin-bottom:20px;font-size:clamp(2rem,5vw,3.8rem)}.gift-reveal-message{font-family:var(--font-sans);color:var(--muted-blue-grey);margin-bottom:30px;font-size:clamp(.95rem,1.5vw,1.15rem);line-height:1.8}.gift-reveal-message p{opacity:0;margin:12px 0;transition:opacity 1.2s,transform 1.2s;transform:translateY(10px)}.gift-reveal-message p.visible{opacity:1;transform:translateY(0)}.gift-photo-frame{opacity:0;border:1px solid #c9a86a4d;border-radius:4px;width:100%;max-width:440px;margin:30px auto;transition:opacity 1.8s,transform 1.8s;overflow:hidden;transform:scale(.95);box-shadow:0 20px 50px #000c,0 0 20px #c9a86a1a}.gift-photo-frame.visible{opacity:1;transform:scale(1)}.gift-photo-frame img{aspect-ratio:4/5;object-fit:cover;object-position:center bottom;width:100%;height:100%;display:block}.gift-finale-toast{font-family:var(--font-serif);color:var(--champagne-gold);opacity:0;margin-top:40px;font-size:clamp(1.4rem,3vw,2.2rem);transition:opacity 1.5s,transform 1.5s;transform:translateY(15px)}.gift-finale-toast.visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.gift-intro,.gift-reveal-wrapper,.gift-reveal-message p,.gift-photo-frame,.gift-finale-toast{opacity:1!important;transition:none!important;transform:none!important}}.game-section{background-color:var(--midnight-black);flex-direction:column;align-items:center;width:100%;min-height:100svh;padding:10vh 0 15vh;display:flex;position:relative;overflow-x:hidden}.game-container{text-align:center;flex-direction:column;align-items:center;width:min(90vw,520px);margin:0 auto;display:flex}.game-intro{opacity:0;padding:0 20px;transition:opacity 1.5s,transform 1.5s;transform:translateY(20px)}.game-intro.visible{opacity:1;transform:translateY(0)}.game-intro-label{font-family:var(--font-sans);letter-spacing:.2em;color:var(--champagne-gold);margin-bottom:20px;font-size:.8rem}.game-intro h2{font-family:var(--font-serif);letter-spacing:.08em;color:var(--warm-ivory);margin:8px 0;font-size:clamp(2.4rem,7vw,5rem)}.game-intro p{font-family:var(--font-sans);letter-spacing:.12em;color:var(--muted-blue-grey);margin-top:16px;font-size:clamp(.9rem,1.4vw,1.1rem)}.game-start-btn{background:var(--charcoal);border:1px solid var(--champagne-gold);min-height:48px;color:var(--warm-ivory);font-family:var(--font-sans);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;border-radius:4px;margin-top:36px;padding:14px 32px;font-size:.85rem;transition:transform .4s,background-color .4s,box-shadow .4s;box-shadow:0 10px 30px #0009}.game-start-btn:hover,.game-start-btn:focus-visible{background:#c9a86a26;outline:none;transform:translateY(-2px);box-shadow:0 15px 40px #c9a86a33}.game-card{background:var(--charcoal);opacity:0;border:1px solid #c9a86a40;border-radius:6px;width:100%;padding:clamp(20px,5vw,36px);transition:opacity .8s,transform .8s;transform:translateY(20px);box-shadow:0 20px 50px #000c}.game-card.visible{opacity:1;transform:translateY(0)}.game-hud{font-family:var(--font-sans);letter-spacing:.2em;color:var(--champagne-gold);border-bottom:1px solid #c9a86a26;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;font-size:.8rem;display:flex}.game-question-text{font-family:var(--font-serif);color:var(--warm-ivory);text-align:left;margin-bottom:24px;font-size:clamp(1.15rem,2vw,1.4rem);line-height:1.6}.game-photo-frame{border:1px solid #c9a86a33;border-radius:4px;width:100%;height:200px;margin-bottom:24px;overflow:hidden}.game-photo-frame img{object-fit:cover;width:100%;height:100%;display:block}.game-options-grid{flex-direction:column;gap:12px;width:100%;display:flex}.game-option-btn{background:var(--midnight-black);width:100%;min-height:48px;color:var(--warm-ivory);font-family:var(--font-sans);text-align:left;cursor:pointer;border:1px solid #c9a86a33;border-radius:4px;align-items:center;padding:14px 18px;font-size:.9rem;line-height:1.4;transition:all .3s;display:flex}.game-option-btn:not(:disabled):hover,.game-option-btn:not(:disabled):focus-visible{border-color:var(--champagne-gold);background:#c9a86a1a;outline:none}.game-option-btn.selected-correct{border-color:var(--champagne-gold);color:var(--warm-ivory);background:#c9a86a33;font-weight:500}.game-option-btn.selected-incorrect{opacity:.4;border-color:#78949a66}.game-option-btn:disabled{cursor:default}.game-feedback-bar{border-top:1px solid #c9a86a26;justify-content:space-between;align-items:center;margin-top:24px;padding-top:16px;display:flex}.game-feedback-text{font-family:var(--font-sans);letter-spacing:.2em;color:var(--champagne-gold);font-size:.85rem}.game-next-btn{background:var(--champagne-gold);min-height:44px;color:var(--midnight-black);font-family:var(--font-sans);letter-spacing:.15em;cursor:pointer;border:none;border-radius:3px;padding:10px 24px;font-size:.8rem;font-weight:600;transition:opacity .3s}.game-next-btn:hover{opacity:.9}.game-result-card{text-align:center;opacity:0;width:100%;padding:clamp(24px,5vw,40px);transition:opacity 1.2s,transform 1.2s;transform:translateY(20px)}.game-result-card.visible{opacity:1;transform:translateY(0)}.game-result-title{font-family:var(--font-serif);color:var(--warm-ivory);margin-bottom:12px;font-size:clamp(2.4rem,6vw,4.2rem)}.game-result-score{font-family:var(--font-sans);color:var(--champagne-gold);letter-spacing:.15em;margin:20px 0;font-size:clamp(2rem,5vw,3.5rem)}.game-result-msg{font-family:var(--font-sans);color:var(--muted-blue-grey);margin-bottom:36px;font-size:clamp(.95rem,1.5vw,1.15rem);line-height:1.6}.game-unlock-story{border-top:1px solid #c9a86a33;margin-top:40px;padding-top:32px}.game-unlock-title{font-family:var(--font-serif);color:var(--warm-ivory);margin-bottom:12px;font-size:clamp(1.6rem,3.5vw,2.8rem)}.game-unlock-sub{font-family:var(--font-sans);letter-spacing:.15em;color:var(--champagne-gold);font-size:.9rem}@media (prefers-reduced-motion:reduce){.game-intro,.game-card,.game-result-card{opacity:1!important;transition:none!important;transform:none!important}}.next-chapter-container{background-color:var(--midnight-black);width:100%;position:relative;overflow-x:hidden}.nc-block{text-align:center;z-index:10;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:0 20px;display:flex;position:relative}.nc-intro{opacity:0;transition:opacity 1.5s,transform 1.5s;transform:translateY(20px)}.nc-intro.visible{opacity:1;transform:translateY(0)}.nc-intro-label{font-family:var(--font-sans);letter-spacing:.2em;color:var(--champagne-gold);margin-bottom:24px;font-size:.8rem}.nc-intro h2{font-family:var(--font-serif);letter-spacing:.08em;color:var(--warm-ivory);margin:10px 0;font-size:clamp(2.2rem,6.5vw,5rem);line-height:1.2}.nc-sequence{opacity:0;max-width:600px;transition:opacity 1.5s}.nc-sequence.visible{opacity:1}.nc-seq-line{font-family:var(--font-sans);letter-spacing:.1em;color:var(--muted-blue-grey);opacity:0;margin:16px 0;font-size:clamp(1rem,1.6vw,1.25rem);transition:opacity 1.2s,transform 1.2s;transform:translateY(15px)}.nc-seq-line.visible{opacity:1;transform:translateY(0)}.nc-seq-headline{font-family:var(--font-serif);letter-spacing:.1em;color:var(--warm-ivory);opacity:0;margin-top:36px;font-size:clamp(2.8rem,8vw,6rem);transition:opacity 1.5s,transform 1.5s;transform:scale(.95)}.nc-seq-headline.visible{opacity:1;transform:scale(1)}.nc-image-block{opacity:0;border:1px solid #c9a86a4d;border-radius:4px;width:100%;max-width:580px;margin:60px 0;transition:opacity 1.8s,transform 1.8s;overflow:hidden;transform:scale(.96);box-shadow:0 25px 60px #000c,0 0 35px #c9a86a26}.nc-image-block.visible{opacity:1;transform:scale(1)}.nc-image-block img{aspect-ratio:16/9;object-fit:cover;object-position:center bottom;width:100%;height:100%;display:block}.nc-pause{opacity:0;max-width:500px;transition:opacity 1.5s,transform 1.5s;transform:translateY(20px)}.nc-pause.visible{opacity:1;transform:translateY(0)}.nc-pause-small{font-family:var(--font-sans);letter-spacing:.2em;color:var(--champagne-gold);margin-bottom:24px;font-size:.85rem}.nc-pause-line{font-family:var(--font-serif);color:var(--warm-ivory);opacity:0;margin:12px 0;font-size:clamp(1.4rem,3vw,2.2rem);line-height:1.6;transition:opacity 1.2s,transform 1.2s;transform:translateY(10px)}.nc-pause-line.visible{opacity:1;transform:translateY(0)}.nc-climax{opacity:0;max-width:640px;transition:opacity 1.8s,transform 1.8s;transform:scale(.96)}.nc-climax.visible{opacity:1;transform:scale(1)}.nc-climax-title{font-family:var(--font-serif);letter-spacing:.08em;color:var(--warm-ivory);text-shadow:0 0 40px #c9a86a59;margin-bottom:28px;font-size:clamp(2.8rem,8vw,6rem);line-height:1.15}.nc-climax-phrases{flex-direction:column;gap:12px;margin-top:24px;display:flex}.nc-phrase{font-family:var(--font-sans);letter-spacing:.15em;color:var(--champagne-gold);opacity:0;font-size:clamp(1rem,1.8vw,1.3rem);transition:opacity 1.2s,transform 1.2s;transform:translateY(10px)}.nc-phrase.visible{opacity:1;transform:translateY(0)}.nc-horizon-block{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100svh;padding:0 20px;display:flex;position:relative}.nc-horizon-bg{z-index:0;position:absolute;inset:0}.nc-horizon-bg img{object-fit:cover;object-position:center bottom;opacity:.45;width:100%;height:100%;transition:transform 15s linear;transform:scale(1.04)}.nc-horizon-block.visible .nc-horizon-bg img{transform:scale(1.12)}.nc-horizon-bg:after{content:"";background:radial-gradient(circle,#08090b33 0%,#08090bf2 100%);position:absolute;inset:0}.nc-horizon-content{z-index:10;opacity:0;max-width:520px;transition:opacity 1.5s,transform 1.5s;position:relative;transform:translateY(20px)}.nc-horizon-block.visible .nc-horizon-content{opacity:1;transform:translateY(0)}.nc-horizon-line{font-family:var(--font-serif);color:var(--warm-ivory);margin-bottom:24px;font-size:clamp(1.2rem,2.2vw,1.8rem);line-height:1.5}.nc-teaser{font-family:var(--font-sans);letter-spacing:.2em;color:var(--champagne-gold);text-transform:uppercase;opacity:0;margin-top:36px;font-size:.85rem;transition:opacity 1.5s 1s}.nc-horizon-block.visible .nc-teaser{opacity:1}@media (prefers-reduced-motion:reduce){.nc-intro,.nc-sequence,.nc-seq-line,.nc-seq-headline,.nc-image-block,.nc-pause,.nc-pause-line,.nc-climax,.nc-phrase,.nc-horizon-content,.nc-teaser{opacity:1!important;transition:none!important;transform:none!important}}.final-msg-container{background-color:var(--midnight-black);width:100%;position:relative;overflow-x:hidden}.fm-block{text-align:center;z-index:10;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:10vh 20px;display:flex;position:relative}.fm-half-block{text-align:center;z-index:10;flex-direction:column;justify-content:center;align-items:center;min-height:60svh;padding:8vh 20px;display:flex;position:relative}.fm-intro{opacity:0;transition:opacity 1.5s,transform 1.5s;transform:translateY(20px)}.fm-intro.visible{opacity:1;transform:translateY(0)}.fm-intro-label{font-family:var(--font-sans);letter-spacing:.2em;color:var(--champagne-gold);margin-bottom:24px;font-size:.8rem}.fm-intro h2{font-family:var(--font-serif);letter-spacing:.08em;color:var(--warm-ivory);margin:8px 0;font-size:clamp(2.2rem,6vw,4.5rem);line-height:1.2}.fm-intro p{font-family:var(--font-sans);letter-spacing:.1em;color:var(--muted-blue-grey);max-width:460px;margin-top:16px;font-size:clamp(.9rem,1.4vw,1.1rem)}.fm-message-card{text-align:left;opacity:0;width:min(90vw,560px);transition:opacity 1.5s,transform 1.5s;transform:translateY(24px)}.fm-message-card.visible{opacity:1;transform:translateY(0)}.fm-msg-heading{font-family:var(--font-serif);color:var(--warm-ivory);letter-spacing:.05em;margin-bottom:28px;font-size:clamp(2.4rem,6vw,4rem)}.fm-msg-para{font-family:var(--font-sans);color:var(--warm-ivory);opacity:.9;margin-bottom:20px;font-size:clamp(.95rem,1.5vw,1.15rem);line-height:1.8}.fm-msg-italic{color:var(--champagne-gold);font-style:italic}.fm-msg-aside{font-family:var(--font-sans);color:var(--muted-blue-grey);letter-spacing:.08em;margin:12px 0;font-size:.85rem;line-height:1.7}.fm-msg-highlight{color:var(--champagne-gold);font-weight:500}.fm-msg-emoji{font-size:1.1em}.fm-msg-closing{font-family:var(--font-serif);color:var(--warm-ivory);letter-spacing:.04em;margin-top:28px;font-size:clamp(1.3rem,2.5vw,1.8rem)}.fm-divider{background:var(--champagne-gold);opacity:.4;width:40px;height:1px;margin:0 auto}.fm-contact-name{font-family:var(--font-serif);color:var(--warm-ivory);letter-spacing:.1em;margin:12px 0 4px;font-size:1.4rem;font-weight:500}.fm-contact-handle{font-family:var(--font-sans);color:var(--champagne-gold);letter-spacing:.05em;font-size:.95rem}.fm-magical-section{background:linear-gradient(180deg, var(--midnight-black) 0%, #0d0e14 50%, var(--midnight-black) 100%);position:relative}.fm-magical-section:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(1px 1px at 20% 30%,#c9a86a99,#0000),radial-gradient(1px 1px at 60% 15%,#c9a86a80,#0000),radial-gradient(1px 1px at 80% 45%,#c9a86a66,#0000),radial-gradient(1px 1px at 35% 70%,#c9a86a80,#0000),radial-gradient(1px 1px at 10% 85%,#c9a86a4d,#0000),radial-gradient(1px 1px at 90% 80%,#c9a86a66,#0000),radial-gradient(1.5px 1.5px,#c9a86a4d,#0000),radial-gradient(1px 1px at 75% 65%,#c9a86a59,#0000);position:absolute;inset:0}.fm-magical-glow{pointer-events:none;z-index:0;background:radial-gradient(circle,#c9a86a1f 0%,#0000 70%);width:200px;height:200px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fm-spell-btn{border:1px solid var(--champagne-gold);min-height:48px;color:var(--champagne-gold);font-family:var(--font-serif);letter-spacing:.2em;cursor:pointer;z-index:10;background:0 0;border-radius:4px;margin-top:32px;padding:14px 28px;font-size:.95rem;transition:all .4s;position:relative;box-shadow:0 0 15px #c9a86a1a}.fm-spell-btn:hover,.fm-spell-btn:focus-visible{background:#c9a86a26;outline:none;box-shadow:0 0 30px #c9a86a4d}.fm-spell-result{font-family:var(--font-serif);color:var(--champagne-gold);letter-spacing:.1em;opacity:0;margin-top:24px;font-size:1.1rem;transition:opacity 1s,transform 1s;transform:scale(.95)}.fm-spell-result.visible{opacity:1;transform:scale(1)}.fm-spell-stars{pointer-events:none;z-index:15;opacity:0;width:160px;height:160px;transition:opacity .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fm-spell-stars.visible{opacity:1;animation:1.5s ease-out forwards spellBurst}@keyframes spellBurst{0%{opacity:1;transform:translate(-50%,-50%)scale(.3)}60%{opacity:1}to{opacity:0;transform:translate(-50%,-50%)scale(2.5)}}.fm-spell-stars span{font-size:1rem;animation:1.5s ease-out forwards floatStar;position:absolute}.fm-spell-stars span:first-child{animation-delay:0s;top:20%;left:10%}.fm-spell-stars span:nth-child(2){animation-delay:.1s;top:10%;left:60%}.fm-spell-stars span:nth-child(3){animation-delay:.2s;top:50%;left:80%}.fm-spell-stars span:nth-child(4){animation-delay:.15s;top:70%;left:30%}.fm-spell-stars span:nth-child(5){animation-delay:50ms;top:40%;left:50%}@keyframes floatStar{0%{opacity:0;transform:scale(0)}30%{opacity:1;transform:scale(1.3)}to{opacity:0;transform:scale(.5)translateY(-20px)}}.fm-ending{opacity:0;max-width:500px;transition:opacity 1.5s,transform 1.5s;transform:translateY(20px)}.fm-ending.visible{opacity:1;transform:translateY(0)}.fm-ending-title{font-family:var(--font-serif);letter-spacing:.1em;color:var(--warm-ivory);margin-bottom:12px;font-size:clamp(3rem,8vw,6rem)}.fm-ending-sub{font-family:var(--font-sans);letter-spacing:.15em;color:var(--champagne-gold);margin:8px 0;font-size:clamp(1rem,1.6vw,1.25rem)}.fm-ending-sig{font-family:var(--font-serif);color:var(--muted-blue-grey);margin-top:32px;font-size:1.2rem;font-style:italic}.fm-the-end{opacity:0;max-width:400px;transition:opacity 2s}.fm-the-end.visible{opacity:1}.fm-the-end h2{font-family:var(--font-serif);letter-spacing:.15em;color:var(--warm-ivory);margin-bottom:16px;font-size:clamp(2rem,5vw,3.5rem)}.fm-the-end p{font-family:var(--font-sans);letter-spacing:.15em;color:var(--muted-blue-grey);font-size:.9rem}@media (prefers-reduced-motion:reduce){.fm-intro,.fm-message-card,.fm-ending,.fm-the-end,.fm-spell-result{opacity:1!important;transition:none!important;transform:none!important}.fm-spell-stars.visible{animation:none}.fm-spell-stars span{opacity:1;animation:none}}:root{--midnight-black:#08090b;--charcoal:#111416;--warm-ivory:#f4f0e8;--champagne-gold:#c9a86a;--warm-highlight:#e6d5ad;--muted-blue-grey:#78949a;--font-serif:"Playfair Display", "Georgia", serif;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box}html,body{background-color:var(--midnight-black);color:var(--warm-ivory);font-family:var(--font-sans);scroll-behavior:smooth;height:100%;margin:0;padding:0;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:400;font-family:var(--font-serif);margin:0}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-family:inherit}.section{flex-direction:column;width:100%;min-height:100svh;display:flex;position:relative}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes kenBurns{0%{transform:scale(1.05)translate(0)}to{transform:scale(1.15)translate(-1%,-1%)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}@keyframes floatSlow{0%{transform:translateY(0)}50%{transform:translateY(-5px)}to{transform:translateY(0)}}@keyframes particleDrift{0%{opacity:.2;transform:translate(0)}50%{opacity:.6}to{opacity:.2;transform:translate(20px,-20px)}}.fade-in{animation:2s forwards fadeIn}.slide-up{animation:2s forwards slideUp}.ken-burns{animation:30s linear infinite alternate kenBurns}.cinematic-text-sequence{text-align:center;z-index:10;pointer-events:none;width:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.text-reveal{opacity:0;transition:opacity 1.5s ease-in-out,transform 1.5s ease-out;transform:translateY(10px)}.text-reveal.visible{opacity:1;transform:translateY(0)}.text-reveal.hidden{opacity:0;transform:translateY(-10px)}.film-grain{opacity:.04;pointer-events:none;z-index:9999;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");width:200%;height:200%;animation:8s steps(10,end) infinite grain;position:fixed;top:-50%;left:-50%}@keyframes grain{0%,to{transform:translate(0)}10%{transform:translate(-5%,-10%)}20%{transform:translate(-15%,5%)}30%{transform:translate(7%,-25%)}40%{transform:translate(-5%,25%)}50%{transform:translate(-15%,10%)}60%{transform:translate(15%)}70%{transform:translateY(15%)}80%{transform:translate(3%,35%)}90%{transform:translate(-10%,10%)}}.vignette{z-index:2;pointer-events:none;background:radial-gradient(circle,#0000 30%,#08090bcc 100%);position:absolute;inset:0}.stagger-appear{opacity:0;transition:opacity 1.5s ease-out,transform 1.5s ease-out;transform:translateY(20px)scale(.95)}.stagger-appear.visible{opacity:1;transform:translateY(0)scale(1)}.photo-card{cursor:pointer;filter:brightness(.7)contrast(1.1);transform-origin:50%;transition:all .6s cubic-bezier(.19,1,.22,1)}.photo-card:hover,.photo-card.selected{filter:brightness(1.1)contrast(1.05);box-shadow:0 20px 40px #00000080,0 0 20px #c9a86a1a;z-index:30!important}.photo-card:hover{transform:translateY(-10px)scale(1.02)}.constellation-container.has-selection .photo-card:not(.selected){filter:blur(2px)brightness(.4);opacity:.3!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
