#starCanvas{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:.82}.hero-copy{margin-bottom:17px}.portal-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);width:min(660px,92vw);margin:23px auto 0;gap:9px}.portal-button{padding:10px 5px;border:1px solid #fff9d799;border-radius:14px;background:#ffffff20;color:#fff;cursor:pointer;backdrop-filter:blur(4px);transition:.25s}.portal-button:hover{transform:translateY(-5px) rotate(-2deg);background:#fff7d955}.portal-button b{display:block;color:#fff8bf;font:18px Georgia}.portal-button span{font-size:11px}.story-page{position:fixed;z-index:25;inset:0;overflow:auto;padding:40px 20px;visibility:hidden;opacity:0;transform:scale(1.08);transition:.45s cubic-bezier(.2,.8,.2,1)}.story-page.active{visibility:visible;opacity:1;transform:none}.page-content{position:relative;width:min(780px,100%);min-height:calc(100vh - 80px);margin:auto;padding:55px 24px 35px;text-align:center}.page-close{position:fixed;z-index:2;top:18px;right:20px;width:45px;height:45px;border:0;border-radius:50%;background:#ffffffb8;color:#6d6c98;font:30px Arial;cursor:pointer}.page-index{margin:0 0 12px;font:700 11px Arial;letter-spacing:.18em;color:#ee6e88}.story-page h2{margin:0;color:#606a9c;font-size:clamp(32px,7vw,55px)}.page-intro{margin:15px auto 35px;line-height:1.8}.page-pink{background:radial-gradient(circle at 15% 15%,#fff9ce,#ffd4d4 43%,#a9d9ee)}.flip-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;max-width:600px;margin:auto}.flip-card{position:relative;min-height:180px;padding:0;border:0;background:transparent;perspective:800px;cursor:pointer}.flip-card>span{display:grid;place-items:center;height:100%;padding:20px;border-radius:22px;backface-visibility:hidden;transition:transform .65s;box-shadow:0 10px 20px #a46d7b22}.flip-front{background:#fffef8;color:#e67891;font-size:18px;line-height:1.6}.flip-front b{font-size:25px}.flip-front small{font:10px Arial;color:#91a3c6}.flip-back{position:absolute;inset:0;background:#ff95ac;color:#fff;line-height:1.8;transform:rotateY(180deg)}.flip-card.flipped .flip-front{transform:rotateY(180deg)}.flip-card.flipped .flip-back{transform:rotateY(360deg)}.mini-note{margin:25px auto 0;color:#d17589;font-size:13px}.page-night{background:radial-gradient(circle at 50% 10%,#5a679e,#202956 68%,#172044);color:#edf2ff}.page-night .page-index,.page-night h2{color:#ffe38e}.page-night .page-intro{color:#d7e3ff}.constellation{position:relative;width:min(550px,90vw);height:300px;margin:auto}.constellation i{position:absolute;height:1px;background:#ffffff77;transform-origin:left}.constellation i:nth-last-child(3){left:18%;top:32%;width:46%;transform:rotate(19deg)}.constellation i:nth-last-child(2){left:58%;top:48%;width:30%;transform:rotate(-32deg)}.constellation i:last-child{left:30%;top:80%;width:40%;transform:rotate(-35deg)}.star-letter{position:absolute;z-index:1;border:0;background:transparent;color:#fff7b8;font-size:35px;cursor:pointer;filter:drop-shadow(0 0 9px #fff2a2);animation:twinkle 2s infinite}.star-letter:hover{transform:scale(1.5)}.star-letter:nth-child(1){left:12%;top:20%}.star-letter:nth-child(2){left:53%;top:42%;animation-delay:-.4s}.star-letter:nth-child(3){right:8%;top:25%;animation-delay:-1s}.star-letter:nth-child(4){left:27%;bottom:8%;animation-delay:-1.5s}@keyframes twinkle{50%{opacity:.45;filter:drop-shadow(0 0 18px #fff2a2)}}.letter-reveal{max-width:480px;min-height:76px;margin:10px auto;padding:20px;border:1px solid #ffffff44;border-radius:20px;background:#ffffff10;line-height:1.8}.page-yellow{background:linear-gradient(135deg,#fff6c6,#ffd6a0 47%,#f6aab9)}.wish-list{max-width:600px;margin:auto;text-align:left}.wish{display:grid;grid-template-columns:35px 1fr 25px;gap:12px;align-items:center;width:100%;margin:10px 0;padding:17px 14px;border:2px solid #fff8e5;border-radius:16px;background:#ffffff9c;color:#7b6781;text-align:left;cursor:pointer;transition:.25s}.wish:hover,.wish.done{transform:translateX(7px);background:#fff;color:#eb7089}.wish span{font:700 16px Georgia;color:#ee93a2}.wish b{font-size:14px;line-height:1.55}.wish i{font:25px Arial;font-style:normal}.wish.done i{font-size:0}.wish.done i:after{content:'✓';font-size:21px}.wish-counter{font-size:14px;color:#9a6272}.wish-counter strong{font-size:28px;color:#ee6d87}.page-secret{background:radial-gradient(circle,#ffeaad 0,#ff9eb2 38%,#677bb6 100%)}.secret-content{display:flex;flex-direction:column;justify-content:center;align-items:center}.lock-orbit{display:grid;place-items:center;width:110px;height:110px;margin:18px;border:3px dashed #fff;border-radius:50%;color:#fff;font-size:46px;animation:spin 8s linear infinite}.lock-orbit:before,.lock-orbit:after{content:'✦';position:absolute;font-size:23px}.lock-orbit:before{transform:translate(68px,-42px)}.lock-orbit:after{transform:translate(-68px,40px)}@keyframes spin{to{transform:rotate(360deg)}}.secret-button{padding:13px 27px;border:0;border-radius:999px;background:#fff6bd;color:#d65b7c;font:700 15px "Noto Serif SC";cursor:pointer;box-shadow:0 8px 18px #a64b6977}.secret-message{display:none;max-width:500px;margin-top:25px;padding:25px;border-radius:25px;background:#ffffffc7;color:#825a7d;box-shadow:0 12px 30px #82506b44;animation:pop .5s}.secret-message.show{display:block}.secret-message p{margin:0;color:#ec6684;font:700 18px Arial}.secret-message h3{margin:10px 0 4px}.secret-message strong{display:block;line-height:1.8;font-size:18px}.secret-message small{display:block;margin-top:14px}@keyframes pop{from{transform:scale(.6) rotate(-6deg);opacity:0}to{transform:none;opacity:1}}@media(max-width:600px){.portal-grid{grid-template-columns:repeat(2,1fr);width:84vw}.flip-grid{grid-template-columns:1fr}.page-content{padding-top:68px}.flip-card{min-height:145px}.constellation{height:260px}}
