:root{color-scheme:dark;--night:#10152f;--cream:#f3e5d0;--gold:#ebc78e;--lavender:#bfa6e8;--muted:#b9b5cb;--line:rgba(235,199,142,.22);--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;background:var(--night);color:var(--cream);font:16px/1.65 var(--sans);overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:default}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}button:disabled:not(.answer){opacity:.35}h1,h2,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400;line-height:1.14}h1{font-size:clamp(36px,4.4vw,66px);letter-spacing:-2px}h1 em{color:var(--gold);font-weight:400}h2{font-size:30px;letter-spacing:-.7px}p+p{margin-top:18px}button{border:0}#app{min-height:calc(100svh - 174px)}#app:focus{outline:none}.sky{position:fixed;inset:0;z-index:-1;overflow:hidden;background:radial-gradient(ellipse at 50% 20%,#25234144,transparent 55%),linear-gradient(145deg,#10182f,#12162f 45%,#19152f)}.nebula{position:absolute;inset:-40px;background:radial-gradient(ellipse at 68% 45%,#583b8538,transparent 38%),radial-gradient(ellipse at 24% 68%,#713b4b24,transparent 35%);transition:transform 1.5s ease}#stars{position:absolute;inset:0}#stars i{position:absolute;width:var(--size);height:var(--size);background:#f3e5d0;border-radius:50%;box-shadow:0 0 6px #ebc78e66;animation:twinkle 6s var(--delay) infinite alternate}.shooting-star{position:absolute;top:20%;left:10%;width:110px;height:1px;background:linear-gradient(90deg,transparent,#e7d4ad);transform:rotate(-30deg);opacity:0;animation:shoot 17s 5s infinite}.site-header{max-width:1480px;padding:30px 5%;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:2px}.brand{display:flex;align-items:center;gap:12px;font-size:11px}.brand-star{font-size:31px;color:var(--gold);line-height:1}.date{color:var(--gold)}.date span{color:var(--muted);margin-left:9px}.header-map{color:var(--muted);letter-spacing:.6px;font-size:12px}.header-map span{color:var(--gold);margin-left:14px}.site-footer{max-width:1480px;margin:auto;display:flex;justify-content:space-between;padding:27px 5%;font-size:9px;letter-spacing:1.7px;color:#a5a1b8;gap:20px}.site-footer i{font-size:16px;color:var(--gold);margin-left:14px}.page{max-width:1160px;margin:0 auto;padding:12px 34px 36px;animation:arrive .55s ease both}.eyebrow{font-size:10px;letter-spacing:3px;font-weight:500;color:var(--gold);text-transform:uppercase;margin-bottom:20px}.micro{font-size:10px;letter-spacing:1.8px;color:var(--muted)}.subtitle{font-size:14px;color:var(--muted);margin-top:19px;line-height:1.8}.primary,.secondary,.text-button{display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:48px;padding:13px 27px;line-height:1.4;border-radius:3px;font-size:13px;transition:background .2s,transform .2s,box-shadow .2s}.primary{background:var(--gold);color:#211c2e;border:1px solid #f5d7a7;box-shadow:0 5px 30px #ebc78e12}.primary:hover{background:#f4d9ae;box-shadow:0 7px 35px #ebc78e30;transform:translateY(-2px)}.secondary{background:#f3e5d006;border:1px solid var(--line);color:var(--cream)}.secondary:hover{background:#f3e5d012}.text-button{background:none;color:var(--muted);text-decoration:underline;text-underline-offset:5px}.primary:active,.secondary:active{transform:translateY(1px)}.section-heading{text-align:center;margin:30px auto 20px;max-width:800px}.back-nav{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:35px}.back-nav a{padding:12px 0}.back-nav span{font-size:9px;letter-spacing:1.5px}.intro{text-align:center;padding-top:25px;padding-bottom:50px;position:relative}.intro>.eyebrow{margin-bottom:2px}.intro-cosmos{position:relative;width:310px;height:175px;margin:0 auto 10px}.orbit{position:absolute;border:1px solid var(--line);border-radius:50%;width:260px;height:100px;left:25px;top:39px;transform:rotate(-20deg)}.orbit-two{transform:rotate(23deg);border-color:#bfa6e828}.orbit-three{width:160px;height:160px;left:75px;top:8px;transform:rotate(-35deg);border-color:#ebc78e16}.cosmic-star{position:absolute;font:118px/1 var(--serif);left:104px;top:30px;color:var(--gold);text-shadow:0 0 45px #ebc78e55;animation:float 8s ease-in-out infinite}.tiny-planet{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--lavender);left:30px;top:112px;box-shadow:0 0 20px #bfa6e888}.orbit-spark{position:absolute;left:257px;top:44px;color:var(--gold);font-size:19px}.intro-copy{font-size:14px;color:#c6c0d1;margin:0 auto 23px;line-height:1.7}.intro-copy p+p{margin-top:2px}.intro h1{font-size:clamp(44px,5.7vw,78px);line-height:1.06;letter-spacing:-2.8px}.title-spark{display:inline-block;font-size:25px;vertical-align:middle;opacity:.85}.intro-subtitle{font-size:14px;color:var(--muted);margin:21px 0 28px}.intro>.micro{display:block;margin-top:24px;font-size:8px}.hub{max-width:1250px}.hub .section-heading{margin-top:26px}.hub h1{font-size:60px}.star-map{height:490px;position:relative;margin:15px 12px 0}.constellation-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.constellation-lines path{fill:none;stroke:var(--gold);stroke-opacity:.22;stroke-width:1;stroke-dasharray:4 7;animation:line-draw 4s ease both}.constellation-lines circle{fill:var(--gold);opacity:.7}.star-destination{position:absolute;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-40%);text-align:center;width:220px;isolation:isolate;padding:8px}.destination-story{left:14%;top:34.4%}.destination-talks{left:40%;top:16.7%}.destination-birthday{left:69%;top:30.2%}.destination-appreciations{left:24%;top:68.8%}.destination-quiz{left:52%;top:77.1%}.destination-gift{left:85%;top:64.6%}.star-object{display:grid;place-items:center;width:70px;height:70px;margin-bottom:8px;font:50px/1 var(--serif);color:var(--gold);position:relative;text-shadow:0 0 25px #ebc78e80;transition:transform .3s}.star-object:before{content:'';position:absolute;inset:0;background:radial-gradient(circle,#ebc78e20,transparent 70%);border-radius:50%;transform:scale(1.6)}.object-story{font-size:28px;filter:drop-shadow(0 0 16px #8ccce2)}.object-talks{font-size:70px;color:#eadcc5;transform:rotate(-20deg)}.object-appreciations{font-size:49px;color:#ddafa9}.object-quiz{color:var(--lavender);font-size:48px}.object-gift{border:1px solid #ebc78e55;width:50px;height:50px;margin:10px 0 18px;transform:rotate(-12deg);font-size:40px;box-shadow:0 0 25px #ebc78e18}.star-destination:hover .star-object{transform:translateY(-5px) scale(1.13)}.destination-label small{color:#c2a97f;font-size:8px;letter-spacing:2px}.destination-label strong{display:block;font:19px/1.4 var(--serif);margin:4px 0;color:var(--cream)}.destination-label>span{font-size:10px;color:var(--muted);display:block}.visited .destination-label small{color:#c7b6e5}.visited .star-object:after{content:'✓';position:absolute;right:-5px;top:-3px;font:10px var(--sans);color:var(--cream);background:#583b85;border:1px solid #bfa6e855;border-radius:50%;width:17px;height:17px;display:grid;place-items:center}.map-bottom{border-top:1px solid #ebc78e16;padding-top:22px;display:flex;align-items:center;justify-content:center;gap:13px;font-size:11px;color:var(--muted)}.progress-dots{display:flex;gap:8px}.progress-dots i{width:5px;height:5px;border-radius:50%;border:1px solid var(--gold)}.progress-dots .done{background:var(--gold);box-shadow:0 0 10px #ebc78e66}.map-note{margin-left:50px;font:italic 14px var(--serif);color:#c5b7cf}.paper{color:#48312b;background:radial-gradient(ellipse at 30% 25%,#fff7e680,transparent 75%),repeating-linear-gradient(20deg,#48312b03 0px,#48312b03 1px,transparent 1px,transparent 4px),#f3e5d0;box-shadow:0 18px 80px #0004;border:1px solid #d6bd9b}.paper p{font-size:16px;line-height:1.9}.paper h2{color:#48312b;margin-bottom:25px}.paper .paper-kicker{font:10px var(--sans);letter-spacing:2px;color:#7c6252;margin-bottom:24px}.scrapbook{max-width:880px;margin:44px auto 30px;display:grid;grid-template-columns:31% 1fr;position:relative;align-items:stretch;transform:rotate(-.7deg);isolation:isolate}.scrapbook:before,.scrapbook:after{content:'';position:absolute;inset:9px -7px -7px 5px;background:#b4a18a;z-index:-1;transform:rotate(1.6deg);border:1px solid #dfc8a4}.scrapbook:after{inset:4px -3px -3px 2px;background:#d9c6aa;transform:rotate(.7deg)}.book-page{padding:38px 42px 25px;position:relative;min-height:395px;box-shadow:inset 15px 0 22px #48312b0a;animation:page-turn .45s ease;transform-origin:left center}.book-page h2{font-size:27px}.book-page p{font-size:15px;line-height:1.85}.page-number{text-align:right;font:italic 17px var(--serif);color:#80644e;margin-top:20px}.page-number span{font-size:12px}.tape{position:absolute;right:34px;top:-14px;width:87px;height:29px;background:#ba956754;transform:rotate(7deg);backdrop-filter:blur(2px)}.book-decoration{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:37px 22px;background:linear-gradient(#24394f,#62808a);border:8px solid #e5d5b9;border-right:0;box-shadow:inset -5px 0 20px #0002}.book-decoration>span:first-child{font:italic 38px var(--serif);color:#efeee3;z-index:1}.book-decoration small{text-align:center;font-size:9px;letter-spacing:2px;line-height:2;color:white;z-index:1}.mountains{position:absolute;inset:25% -30% 0;background:linear-gradient(135deg,#dbe4dc,#829a9d);clip-path:polygon(0 70%,18% 42%,32% 58%,52% 13%,75% 58%,84% 40%,100% 70%,100% 100%,0 100%)}.snow{position:absolute;top:32%;font-size:29px;color:#e7efed;opacity:.8}.warmth-1 .book-decoration{background:linear-gradient(#30354c,#7a7486)}.warmth-2 .book-decoration{background:linear-gradient(#3c2c52,#97758a)}.warmth-3 .book-decoration{background:linear-gradient(#2c244c,#987b75)}.warmth-3 .snow{color:var(--gold)}.book-controls{display:flex;justify-content:center;align-items:center;gap:25px;max-width:900px;margin:27px auto}.chapter-dots{display:flex;gap:8px}.chapter-dots button{width:30px;height:44px;background:none;color:var(--muted);font:12px var(--sans);border-bottom:1px solid transparent}.chapter-dots [aria-current=step]{color:var(--gold);border-color:var(--gold)}.talks-page{text-align:center}.moon{margin:32px auto 45px;width:76px;height:76px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff4d9,#d9c7a8 75%);box-shadow:0 0 45px #f3e5d02e,0 0 100px #bfa6e81a;position:relative}.moon:after{content:'';position:absolute;inset:10px;background:radial-gradient(circle at 30% 60%,#9c978929 0 8%,transparent 10%),radial-gradient(circle at 70% 30%,#9c97892b 0 14%,transparent 16%);border-radius:50%}.envelope-area{margin:20px auto 60px}.envelope{display:block;position:relative;width:330px;height:205px;background:linear-gradient(35deg,#65303e 50%,#713b4b 50%);border:1px solid #a46b7866;border-radius:4px;box-shadow:0 25px 60px #0004; margin:25px auto 35px;transition:transform .3s}.envelope:hover{transform:translateY(-5px) rotate(-1deg)}.envelope:before{content:'';position:absolute;inset:0;background:linear-gradient(145deg,transparent 49.7%,#a46b7844 50%,transparent 50.4%),linear-gradient(215deg,transparent 49.7%,#a46b7844 50%,transparent 50.4%)}.envelope-flap{position:absolute;inset:0 0 40%;background:#844859;clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 6px 6px #0004)}.wax{position:absolute;left:calc(50% - 26px);top:80px;background:radial-gradient(circle at 30% 20%,#d2a365,#9d6a39);border:3px double #e1b879;border-radius:48% 46% 44% 49%;width:52px;height:52px;display:grid;place-items:center;color:#5f3d29;font:29px var(--serif);box-shadow:0 4px 8px #0004}.letter{text-align:left;max-width:720px;margin:28px auto;padding:50px 58px;border-radius:2px;position:relative}.letter:before{content:'';position:absolute;inset:12px;border:1px solid #b59a6d55;pointer-events:none}.letter h2{font-size:32px}.ornament{display:flex;align-items:center;justify-content:center;gap:15px;margin:25px 0;color:#a17b45}.ornament span{height:1px;width:55px;background:#b59a6d66}.letter-signature{display:block;font:italic 19px var(--serif);margin-top:32px;color:#713b4b}.opened{animation:unfold .65s ease}.talks-page:has(.opened) .moon{width:46px;height:46px;margin:20px auto}.birthday-page{text-align:center;position:relative}.birthday-art{height:210px;margin:16px auto 22px;max-width:450px;position:relative}.orbit-scene .constellation-lines{opacity:.7}.twin{position:absolute;font:60px var(--serif);color:var(--gold);text-shadow:0 0 35px #ebc78e99;animation:glow 2s infinite alternate}.t1{left:26%;top:25%}.t2{left:65%;top:50%;font-size:40px;animation-delay:.5s}.scene-copy{max-width:580px;min-height:170px;margin:auto}.scene-copy p{font-size:16px;line-height:1.7;color:#d9d1df}.scene-copy p+p{margin-top:10px}.scene-copy p:nth-child(1):has(+p){font-family:var(--serif);font-size:21px;color:var(--cream)}.scene-controls{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:20px;margin-top:28px}.date-reveal{display:flex;flex-direction:column;align-items:center;justify-content:center;animation:burst .7s ease;background:radial-gradient(ellipse,#ebc78e16,transparent 68%)}.date-reveal>span{letter-spacing:8px;font-size:14px;color:var(--gold)}.date-reveal strong{font:130px/.97 var(--serif);color:var(--gold);text-shadow:0 0 40px #ebc78e33}.date-reveal small{font-size:9px;letter-spacing:3px;margin-top:14px}.cakes{display:flex;gap:52px;align-items:center;justify-content:center;padding-top:42px}.cake{width:120px;height:94px;border-radius:10px 10px 6px 6px;background:repeating-linear-gradient(0deg,#e4bf9c 0 25px,#b87e84 25px 34px);position:relative;box-shadow:0 15px 25px #0003;border-top:10px solid #f5dfba}.cake:before{content:'';position:absolute;top:-39px;left:57px;height:30px;width:7px;background:repeating-linear-gradient(45deg,#f3e5d0 0 4px,#bfa6e8 4px 7px)}.cake i{position:absolute;top:-58px;left:56px;width:9px;height:17px;border-radius:50% 50% 40% 40%;background:var(--gold);box-shadow:0 0 22px var(--gold)}.cake b{font-size:30px;color:#713b4b}.cake span{position:absolute;left:-15px;right:-15px;bottom:-35px;font-size:8px;letter-spacing:1.5px;color:var(--gold)}.cake-two{background:repeating-linear-gradient(0deg,#bfa6e8 0 25px,#826696 25px 34px);transform:scale(.85)}.confetti{position:absolute;inset:100px 0 0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;left:calc(var(--i)*4.5%);top:0;width:5px;height:10px;background:var(--gold);animation:confetti 3s calc(var(--i)*-.11s) ease-out both}.confetti i:nth-child(2n){background:var(--lavender)}.confetti i:nth-child(3n){background:#b87587}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1000px;margin:38px auto 10px}.flip-card{height:350px;background:none;padding:0;perspective:1000px;text-align:center;display:block;border-radius:8px}.card-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.flipped .card-inner{transform:rotateY(180deg)}.card-front,.card-back{position:absolute;inset:0;border-radius:6px;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 27px;border:1px solid #ebc78e40;box-shadow:0 12px 35px #0002}.card-front{background:radial-gradient(ellipse at 50% 30%,#583b8538,transparent 75%),#191b35}.card-front:before{content:'';position:absolute;inset:10px;border:1px solid #ebc78e15;border-radius:3px}.card-front>small{font-size:9px;letter-spacing:2px;color:var(--muted)}.card-illustration{font:70px/1 var(--serif);color:var(--gold);margin:27px 0 24px;text-shadow:0 0 35px #ebc78e33}.card-front strong{font:22px var(--serif)}.card-hint{font-size:8px;letter-spacing:2px;color:#bbb0c6;margin-top:30px}.card-back{transform:rotateY(180deg);background:var(--cream);color:#48312b;gap:17px;text-align:left;align-items:flex-start}.card-back strong{font:22px var(--serif)}.card-back>span{font-size:14px;line-height:1.75}.card-back small{font-size:8px;letter-spacing:1.5px;margin-top:auto;color:#71594b}.flip-card:nth-child(2) .card-front{background:radial-gradient(ellipse at 50% 30%,#713b4b38,transparent 75%),#231b32}.flip-card:nth-child(3n) .card-front{background:radial-gradient(ellipse at 50% 30%,#ebc78e0f,transparent 75%),#202030}.quiz-panel{max-width:680px;margin:36px auto 0;padding:35px 40px;background:#171b35cc;border:1px solid var(--line);box-shadow:0 20px 65px #0002;border-radius:6px}.quiz-meta{display:flex;justify-content:space-between;color:var(--gold);font-size:10px;letter-spacing:1.6px}.quiz-progress{height:2px;background:#ebc78e15;margin:18px 0 28px}.quiz-progress i{display:block;height:100%;background:var(--gold);transition:width .5s}.quiz-panel h2{font-size:29px;line-height:1.3;margin-bottom:24px}.answers{display:grid;gap:12px}.answer{display:flex;gap:17px;align-items:center;text-align:left;min-height:62px;padding:13px 17px;background:#bfa6e806;border:1px solid #bfa6e824;border-radius:3px;color:var(--cream);font-size:14px}.answer>span{display:grid;place-items:center;flex:0 0 28px;height:28px;border:1px solid #bfa6e833;color:var(--muted);font-size:11px;border-radius:50%}.answer:hover:enabled{background:#bfa6e814;border-color:#bfa6e880}.answer.correct{background:#7d9b7620;border-color:#aac49a;color:#d5e9c9}.answer.incorrect{background:#b8758718;border-color:#d396a5}.answer b{margin-left:auto}.quiz-feedback{margin-top:26px;min-height:95px;font-size:14px;line-height:1.8}.quiz-feedback .primary{margin-top:20px}.quiet{font-size:12px;color:var(--muted);font-style:italic}.quiz-result{text-align:center;padding:15px 0}.result-icon{font:70px var(--serif);color:var(--gold)}.quiz-result .eyebrow{margin:18px 0}.quiz-result h2{font-size:85px;color:var(--gold);margin:20px 0}.quiz-result h2 span{font-size:30px;color:var(--muted)}.result-message{font:25px/1.5 var(--serif)}.quiz-result>p:not(.eyebrow):not(.result-message){font-size:14px;color:var(--muted)}.quiz-result .primary{margin-top:30px}.gift-page{text-align:center}.gift-box{width:230px;height:210px;margin:55px auto 30px;position:relative;filter:drop-shadow(0 10px 40px #bfa6e82b);animation:float 7s ease-in-out infinite}.gift-base{position:absolute;bottom:0;left:20px;right:20px;height:145px;background:linear-gradient(110deg,#75569a,#583b85 60%,#38274f);border:1px solid #c8a6e455;border-radius:3px;box-shadow:inset 0 -5px 30px #24153455}.gift-lid{position:absolute;top:44px;left:10px;right:10px;height:37px;background:linear-gradient(100deg,#9d7cb8,#614587);z-index:2;border:1px solid #c8a6e466;box-shadow:0 4px 7px #21122e55}.gift-ribbon{position:absolute;top:44px;bottom:0;left:99px;width:32px;background:linear-gradient(90deg,#a97a44,#f0d197 45%,#bd965b);z-index:3}.gift-bow{position:absolute;top:5px;width:66px;height:43px;border:12px solid #d7b579;border-radius:60% 60% 0 60%;z-index:3;box-shadow:inset 0 0 6px #76552b}.bow-left{left:51px;transform:rotate(20deg)}.bow-right{right:50px;transform:rotate(70deg)}.gift-tag{position:absolute;right:0;top:103px;z-index:4;transform:rotate(17deg);background:var(--cream);color:#48312b;padding:8px 12px;font:italic 17px var(--serif);box-shadow:0 2px 5px #0004}.gift-opening-copy{font-size:14px;color:#d0c5d7;margin:30px auto 24px;max-width:600px}.gift-opening-copy p+p{margin-top:2px}.unwrapping{animation:burst .8s ease!important}.unwrapping .gift-lid{transform:translateY(-95px) rotate(-20deg);opacity:0;transition:all .8s}.unwrapping .gift-bow,.unwrapping .gift-ribbon{transform:translateY(-50px) rotate(60deg) scale(.3);opacity:0;transition:all .6s}.unwrapping .gift-base{transform:scaleX(1.25);opacity:0;transition:all .9s}.loot-card{max-width:380px;padding:28px 30px 32px;border:1px solid var(--gold);outline:1px solid #ebc78e25;outline-offset:7px;background:radial-gradient(circle at 50% 40%,#8e603840,transparent 65%),linear-gradient(#27213c,#1d1930);margin:40px auto 20px;box-shadow:0 0 70px #ebc78e16;animation:burst .65s ease}.rarity{font-size:10px;letter-spacing:1.8px;color:var(--gold);line-height:1.8}.loot-rays{height:225px;display:grid;place-items:center;background:repeating-conic-gradient(from 10deg,#ebc78e00 0deg 20deg,#ebc78e07 21deg 24deg,#ebc78e00 25deg 40deg);margin:15px 0}.chancla{height:207px;transform:rotate(23deg);filter:drop-shadow(0 0 20px #ebc78e55);animation:float 5s ease infinite}.loot-card dl{font-size:13px;margin:18px 0 25px}.loot-card dl>div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #ebc78e20}.loot-card dt{color:var(--muted)}.loot-card dd{color:var(--gold);margin:0}.loot-card dl>.ability{display:block;line-height:1.9}.loot-card .primary{width:100%}.equipped-symbol{font:100px var(--serif);color:var(--gold);margin:15px auto;text-shadow:0 0 70px #ebc78e88}.gift-transition{font:23px var(--serif);margin:25px 0}.small-envelope{transform:scale(.8);margin-top:0;margin-bottom:0}.final-letter{margin-top:30px}.final-letter h1{font-size:42px;letter-spacing:-1px}.final-letter p:last-child{font-style:italic;border-top:1px solid #b59a6d55;padding-top:25px;margin-top:28px;font-size:14px}.finale{padding:35px 0}.finale .subtitle{font:22px var(--serif);color:#d8c8df}.finale-map{position:relative;max-width:680px;height:270px;margin:25px auto}.final-star{position:absolute;font:33px var(--serif);color:#b8a9bf;transform:translate(-50%,-50%);opacity:.4}.final-star.lit{color:var(--gold);opacity:1;text-shadow:0 0 35px #ebc78e99}.fs0{left:14%;top:34.4%}.fs1{left:40%;top:16.7%}.fs2{left:69%;top:30.2%}.fs3{left:24%;top:68.8%}.fs4{left:52%;top:77.1%}.fs5{left:85%;top:64.6%}.finale-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;margin-top:30px}.noscript{margin:40px;padding:30px;background:var(--cream);color:var(--night)}
@keyframes twinkle{to{opacity:.25}}@keyframes float{50%{translate:0 -7px}}@keyframes shoot{0%,85%,100%{opacity:0;translate:0 0}88%{opacity:.7}94%{opacity:0;translate:400px -180px}}@keyframes arrive{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}@keyframes page-turn{from{opacity:.4;transform:rotateY(-8deg)}to{opacity:1;transform:rotateY(0)}}@keyframes unfold{from{opacity:0;transform:scaleY(.6);transform-origin:top}to{opacity:1;transform:scaleY(1)}}@keyframes burst{from{opacity:0;scale:.8;filter:brightness(1.8)}to{opacity:1;scale:1;filter:brightness(1)}}@keyframes glow{to{text-shadow:0 0 65px #ebc78edd;opacity:.7}}@keyframes line-draw{from{stroke-dashoffset:150;opacity:0}to{stroke-dashoffset:0;opacity:1}}@keyframes confetti{from{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(350px) rotate(400deg);opacity:0}}
@media(min-width:1500px){.intro{padding-top:55px}.intro-cosmos{height:190px}.hub{padding-top:35px}.star-map{height:540px}}
@media(max-width:900px){.card-grid{gap:16px;grid-template-columns:repeat(2,1fr);max-width:680px}.star-map{margin-inline:0}.star-destination{width:185px}.destination-label>span{max-width:150px;margin:auto;font-size:9px}.destination-label strong{font-size:17px}.site-header{padding:25px 4%}.page{padding-inline:25px}.scrapbook{grid-template-columns:27% 1fr}.book-page{padding:32px}.book-decoration{padding-inline:10px}.map-note{margin-left:20px}.date{display:none}}
@media(max-width:600px){body{font-size:15px}.site-header{padding:20px 22px;gap:10px}.brand{font-size:9px;letter-spacing:1.3px;gap:8px}.brand-star{font-size:25px}.header-map{font-size:10px;letter-spacing:0}.header-map span{margin-left:4px}.site-footer{padding:25px 22px;flex-direction:column;align-items:center;gap:5px;font-size:7px;letter-spacing:1.4px}.site-footer i{margin-left:5px}.page{padding:10px 22px 30px}h1{font-size:39px;letter-spacing:-1.5px}.eyebrow{font-size:8px;letter-spacing:2px;line-height:1.9;margin-bottom:15px}.intro{padding-top:24px}.intro>.eyebrow{max-width:250px;margin:0 auto 3px;font-size:7px}.intro-cosmos{transform:scale(.85);margin-top:-7px;margin-bottom:-4px;max-width:100%}.intro-copy{font-size:12px;max-width:315px;line-height:1.85;margin-bottom:24px}.intro h1{font-size:45px;letter-spacing:-1.8px}.title-spark{font-size:17px}.intro-subtitle{font-size:12px;max-width:230px;margin:22px auto 26px}.intro>.micro{font-size:7px;letter-spacing:1.3px}.section-heading{margin:18px auto 25px}.subtitle{font-size:12px;margin-top:16px}.hub h1{font-size:43px}.star-map{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:30px 0 25px}.star-map>.constellation-lines{display:none}.star-destination{position:relative;left:auto;top:auto;transform:none;width:auto;min-width:0;min-height:180px;border:1px solid #ebc78e1f;border-radius:5px;padding:15px 9px;background:radial-gradient(ellipse at top,#583b8517,transparent);justify-content:center}.star-object{width:55px;height:55px;margin-bottom:7px;font-size:40px}.object-story{font-size:26px}.object-talks{font-size:55px}.object-gift{width:38px;height:38px;font-size:32px;margin:9px 0 15px}.destination-label strong{font-size:16px;line-height:1.25;margin:6px 0}.destination-label small{font-size:7px;letter-spacing:1.4px}.destination-label>span{font-size:9px;line-height:1.6}.map-bottom{flex-wrap:wrap;gap:10px;font-size:10px}.map-note{margin-left:0;width:100%;text-align:center;font-size:12px}.back-nav{font-size:11px;margin-bottom:15px}.back-nav span{font-size:7px;letter-spacing:.8px}.scrapbook{margin:28px auto 25px;grid-template-columns:1fr;transform:none}.book-decoration{height:110px;border:6px solid #e5d5b9;border-bottom:0;flex-direction:row;padding:15px 25px;align-items:center}.book-decoration>span:first-child{font-size:28px}.book-decoration small{font-size:7px;max-width:130px;text-align:right;line-height:1.8}.mountains{inset:-80% 0 -10%}.snow{top:0;left:40%;font-size:21px}.book-page{padding:28px 24px 20px;min-height:360px}.book-page h2{font-size:24px;margin-bottom:20px}.book-page p{font-size:14px;line-height:1.85}.book-page .paper-kicker{font-size:8px;margin-bottom:18px}.book-controls{gap:9px;flex-wrap:wrap}.book-controls .secondary{font-size:11px;padding:12px 14px}.chapter-dots{gap:2px;order:3;width:100%;justify-content:center}.tape{width:65px;right:20px;height:22px;top:-10px}.moon{width:60px;height:60px;margin:25px auto 35px}.envelope{width:270px;max-width:100%;height:172px}.wax{top:66px;width:46px;height:46px;left:calc(50% - 23px)}.letter{padding:33px 25px;margin:22px auto}.letter:before{inset:8px}.letter h2{font-size:26px;line-height:1.25}.paper p{font-size:14px;line-height:1.9}.letter .paper-kicker{font-size:8px;line-height:1.8}.letter-signature{font-size:17px}.birthday-art{height:195px}.scene-copy{min-height:210px}.scene-copy p{font-size:14px}.scene-copy p:nth-child(1):has(+p){font-size:19px}.scene-controls{gap:15px;margin-top:15px}.scene-controls .text-button{width:100%}.cakes{gap:28px}.cake{width:100px;height:80px}.cake:before{left:46px}.cake i{left:45px}.card-grid{gap:18px;grid-template-columns:1fr;max-width:370px;margin-top:30px}.flip-card{height:330px}.card-back{padding:28px}.card-back>span{font-size:15px;line-height:1.8}.card-front strong{font-size:24px}.card-front .card-illustration{font-size:73px}.quiz-panel{margin-top:27px;padding:25px 20px}.quiz-panel h2{font-size:25px}.answer{font-size:13px;padding:13px 12px;gap:12px}.answer>span{flex-basis:26px;height:26px}.quiz-feedback{font-size:13px}.quiz-feedback .primary{width:100%}.quiz-result h2{font-size:72px}.result-message{font-size:22px}.quiz-result>p:not(.eyebrow):not(.result-message){font-size:13px}.gift-box{margin-top:40px;transform:scale(.9)}.gift-opening-copy{font-size:12px;margin:20px auto 25px}.loot-card{margin:30px auto 20px;padding:25px 22px}.rarity{font-size:9px;letter-spacing:1.2px}.gift-transition{font-size:20px;line-height:1.5}.final-letter{padding:33px 24px}.final-letter h1{font-size:32px}.finale{padding-top:10px}.finale .subtitle{font-size:19px;line-height:1.6}.finale-map{height:200px}.finale-controls{gap:14px}.finale-controls a,.finale-controls button{width:100%}.finale .micro{font-size:8px}.primary,.secondary{padding:13px 22px}}
@media(max-width:350px){.page{padding-inline:17px}.site-header{padding-inline:17px}.header-map{font-size:9px}.intro h1{font-size:40px}.intro-cosmos{width:286px;scale:.9;margin-left:-1px}.star-map{gap:10px}.star-destination{padding:12px 7px}.destination-label strong{font-size:15px}.destination-label>span{font-size:8px}.card-back{padding:24px}.card-back>span{font-size:14px}.gift-page .primary{font-size:12px}.quiz-panel{padding:22px 17px}.back-nav span{font-size:6px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.nebula{transform:none!important}.card-inner{transform:none!important}.card-back{transform:none}.flip-card:not(.flipped) .card-back{display:none}.flip-card.flipped .card-front{display:none}.shooting-star{display:none}}

/* A small, decorative name constellation within the existing opening artwork. */
.moni-constellation{position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);width:180px;height:36px;overflow:visible;pointer-events:none;color:var(--gold)}
.moni-constellation path{fill:none;stroke:currentColor;stroke-width:.65;stroke-opacity:.65;stroke-dasharray:1;stroke-dashoffset:0;animation:moni-connect 2s .15s ease-out both}
.moni-constellation circle{fill:currentColor;opacity:.85;animation:moni-stars 1.6s .15s ease-out both}
@keyframes moni-connect{from{stroke-dashoffset:1;opacity:0}to{stroke-dashoffset:0;opacity:1}}
@keyframes moni-stars{from{opacity:0}to{opacity:.85}}
@media(prefers-reduced-motion:reduce){.moni-constellation path,.moni-constellation circle{animation:none!important}}
