@font-face{font-family:Birthday Sans;src:url(../assets/fonts/noto-sans-sc-0.ttf) format("truetype");font-display:swap}@font-face{font-family:Birthday Sans;src:url(../assets/fonts/noto-sans-sc-1.ttf) format("truetype");font-display:swap;font-weight:500 900}:root{font-family:Birthday Sans,PingFang SC,Microsoft YaHei,sans-serif;color:#102454;background:#edf4ff;font-synthesis:none;--blue: #0042d1;--ink: #102454;--muted: #546da3;--paper: #fffefa;--ice: #edf4ff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #93b2f6;outline-offset:5px}button{border:0}button:disabled{cursor:default}::selection{background:#d3f19f;color:#102454}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}svg{flex-shrink:0;vertical-align:middle}.handwritten{font-family:Georgia,Times New Roman,serif;font-style:italic}.header{height:90px;max-width:1440px;margin:auto;padding:0 6%;display:flex;align-items:center;justify-content:space-between;gap:26px}.wordmark{font-size:15px;font-weight:600;display:flex;align-items:center;gap:10px}.mini-disc{height:23px;width:23px;border-radius:50%;background:var(--blue);position:relative}.mini-disc:after{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--ice)}.wordmark-dot{font-size:7px;color:var(--blue);align-self:start;margin-top:4px}.header nav{display:flex;gap:36px;font-size:13px}.header nav a{position:relative;padding:10px 0}.header nav a:after{content:"";position:absolute;bottom:3px;height:1px;background:var(--blue);left:0;right:100%;transition:right .2s}.header nav a:hover:after{right:0}.sound-button{display:flex;align-items:center;gap:9px;border:1px solid #c1cadf;border-radius:50px;background:transparent;padding:10px 17px;font-size:11px}.hero{max-width:1440px;margin:auto;position:relative;padding:60px 7% 0;overflow:hidden}.hero-copy{position:relative;width:53%;z-index:2;padding-bottom:87px}.dedication{display:flex;align-items:center;gap:9px;font-size:12px;color:#485e8d;margin-bottom:28px}.dedication>span{width:6px;height:6px;background:var(--blue);border-radius:50%}h1{font-family:Songti SC,"Noto Serif CJK SC",SimSun,serif;font-size:clamp(64px,6.2vw,90px);line-height:1.28;letter-spacing:-5px;position:relative;white-space:nowrap}.title-spark{font-family:Georgia,serif;font-size:58px;display:inline-block;vertical-align:top;line-height:1;color:var(--blue);margin:12px 0 0 12px}.hero-description{font-size:14px;line-height:2.1;color:#50679a;margin-top:24px;letter-spacing:1px}.hero-actions{display:flex;gap:25px;align-items:center;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:center;gap:23px;font-size:12px;padding:17px 25px;border-radius:5px;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--blue);color:#fff}.primary:hover{background:#0036ac}.text-button{background:none;display:inline-flex;align-items:center;gap:8px;padding:10px 0;font-size:11px;white-space:nowrap}.hero-signoff{margin-top:38px;display:flex;flex-direction:column;gap:9px}.hero-signoff .handwritten{font-size:23px;color:var(--blue);transform:rotate(-4deg);transform-origin:left}.hero-signoff>span:last-child{font-size:10px;color:#6b82b3}.hero-art{position:absolute;width:48%;height:520px;right:4%;top:25px}.disc{position:relative;aspect-ratio:1;border-radius:50%;background:conic-gradient(from 50deg,#d5d7ec,#fcfdff 35deg,#9cb3e4,#dde2ed 95deg,#ecf8d6,#b8dbdf 145deg,#d5dbe9 180deg,#edf1fa,#bfcdeb 260deg,#fcf9f1 295deg,#bccae7 325deg,#d5d7ec);box-shadow:inset 0 0 0 1px #ffffffa0,inset 0 0 25px #ffffffe0,12px 28px 45px #41547e1a;isolation:isolate}.hero-disc{width:80%;position:absolute;left:10%;top:45px;transform:rotate(-15deg)}.disc:before{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-radial-gradient(circle at 50% 50%,transparent 0 2px,#4c629310 2.5px 3px);-webkit-mask-image:radial-gradient(circle,transparent 29%,black 30%);mask-image:radial-gradient(circle,transparent 29%,black 30%);z-index:1}.disc:after{content:"";position:absolute;inset:4%;border-radius:50%;border:1px solid #ffffffa0}.disc-label{position:absolute;inset:25%;background:#0042d1;color:#f7f9fe;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 0 0 4px #d8dfed,0 0 0 5px #9eadcd;overflow:hidden}.disc-label:before{content:"";position:absolute;width:150%;height:30%;background:#c1d2f71a;transform:rotate(-35deg)}.disc-label>span{font-size:9px;margin-bottom:8px;letter-spacing:2px}.disc-label strong{font:italic 34px/.95 Georgia,serif;letter-spacing:-1px;position:relative}.disc-label small{font-size:6px;letter-spacing:1px;margin-top:27px}.disc-hole{position:absolute;inset:47%;background:var(--ice);border:4px solid #b4c1dc;border-radius:50%;z-index:2}.disc.spinning{animation:spin 24s linear infinite}.orbit{position:absolute;border:1px solid #b2bed775;border-radius:50%;width:106%;height:55%;left:-3%;top:26%;transform:rotate(-35deg)}.orbit-two{width:103%;height:70%;top:14%;transform:rotate(35deg);border-color:#bfcae350}.art-star{position:absolute;color:var(--blue)}.star-one{font-size:52px;right:2%;top:55px}.star-two{font-size:48px;left:4%;bottom:78px}.disc-caption{position:absolute;top:13px;left:20%;font:italic 16px Georgia,serif;color:#748ab8;transform:rotate(-12deg)}.age-sticker{background:#e8f39c;border-radius:50%;position:absolute;right:3%;bottom:105px;width:105px;height:105px;transform:rotate(12deg);display:flex;justify-content:center;align-items:center;gap:3px;box-shadow:2px 5px #546da30f;font-size:11px;z-index:3}.age-sticker strong{font:italic 48px Georgia,serif}.birthday-ticket{position:absolute;bottom:16px;left:18%;transform:rotate(-7deg);background:#fffefa;width:320px;min-height:91px;box-shadow:0 8px 20px #3b507e0d;display:flex;align-items:center;padding:20px;gap:15px;z-index:2;-webkit-mask-image:radial-gradient(circle at 0 50%,transparent 7px,black 7.5px),radial-gradient(circle at 100% 50%,transparent 7px,black 7.5px);mask-image:radial-gradient(circle at 0 50%,transparent 7px,black 7.5px),radial-gradient(circle at 100% 50%,transparent 7px,black 7.5px);-webkit-mask-composite:source-in;mask-composite:intersect}.ticket-flower{font-size:39px;color:var(--blue)}.birthday-ticket>div{display:flex;flex-direction:column;gap:7px}.birthday-ticket small{font-size:9px;color:#6c83b4}.birthday-ticket strong{font-size:13px;font-weight:500}.ticket-number{font-size:9px;writing-mode:vertical-rl;border-left:1px dashed #c2cce0;padding-left:13px;margin-left:auto}.hero-bottom{border-top:1px solid #d0d7e7;display:flex;align-items:center;justify-content:space-between;padding:21px 0;color:#6c83b4;font-size:10px}.hero-bottom a{display:flex;gap:12px;align-items:center;color:var(--ink)}.ribbon{height:57px;background:#dae2f2;display:flex;justify-content:space-around;align-items:center;gap:35px;padding:0 45px;overflow:hidden;white-space:nowrap;color:#5973aa;font-size:16px}.ribbon span{font-size:12px;letter-spacing:2px}.ribbon span:nth-of-type(2n){font-family:Georgia,serif;font-style:italic;font-size:16px;letter-spacing:0}.section-wrap{max-width:1220px;margin:auto;padding:98px 65px}.memories,.wishes{background:#fffefa;max-width:none}.memories>.section-intro,.memories>.memory-layout,.wishes>.section-intro,.wishes>.wish-cards{max-width:1090px;margin-left:auto;margin-right:auto}.section-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:54px}.section-kicker{font-size:11px;color:#657db0;margin-bottom:18px;letter-spacing:1px}h2{font-family:Songti SC,"Noto Serif CJK SC",SimSun,serif;font-size:43px;line-height:1.5;letter-spacing:-1px}.section-intro>p{font-size:12px;color:#89838e;line-height:2.2;padding-bottom:7px}.memory-layout{display:grid;grid-template-columns:1.13fr 1fr;gap:100px;align-items:center;padding:10px 10px 25px}.photo-area{position:relative}.photo-print{display:block;background:#fff;padding:15px 15px 0;width:100%;box-shadow:0 8px 35px #2b385413,0 0 0 1px #e8ebf3;transform:rotate(-3deg);transition:transform .3s;text-align:left}.photo-print:hover{transform:rotate(0)}.photo-print img{width:100%;aspect-ratio:1.45;object-fit:cover;display:block;animation:photo-in .4s}.photo-print>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:20px 4px;font-size:11px}.photo-print .handwritten{font-size:15px;color:#7e92bc}.tape{position:absolute;left:37%;top:-15px;width:120px;height:35px;background:#e6e1b9a6;transform:rotate(4deg);z-index:1;clip-path:polygon(0 4%,100% 0,97% 18%,100% 35%,97% 65%,100% 91%,0 100%,3% 80%,0 60%,3% 40%)}.photo-doodle{position:absolute;right:-40px;bottom:3px;font-size:65px;color:#8093bd}.memory-tabs{display:flex;gap:30px;border-bottom:1px solid #dfe4ee;margin-bottom:31px}.memory-tabs button{background:none;padding:0 0 13px;font-size:12px;color:#7c90bb;position:relative}.memory-tabs button[aria-selected=true]{color:var(--blue)}.memory-tabs button[aria-selected=true]:after{position:absolute;content:"";bottom:-1px;left:0;right:0;height:2px;background:var(--blue)}.memory-number{font-size:10px;color:#8698c0;letter-spacing:1px}.memory-copy h3{font-size:26px;font-family:Songti SC,SimSun,serif;line-height:1.7;margin:13px 0}.memory-copy [role=tabpanel]>p{font-size:12px;color:#8b8391;line-height:2.2;max-width:330px}.memory-foot{display:flex;justify-content:space-between;border-top:1px solid #dfe4ee;margin-top:27px;padding-top:17px;font-size:10px;color:#8497bf}.music-section{background:#0042d1;color:#fffefa;overflow:hidden;position:relative}.music-section:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 20% 70%,#7899df80,transparent 50%);pointer-events:none}.music-inner{position:relative;max-width:1220px;padding:78px 65px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:105px;align-items:center}.music-visual{position:relative;padding:25px 0 42px}.music-visual .disc{width:95%;margin:auto}.music-visual .disc-hole{background:#0042d1}.music-visual .disc-label{background:#0038b2}.music-note{position:absolute;font:italic 48px Georgia,serif;color:#bdd0fa;z-index:2}.note-one{top:0;left:-10px;transform:rotate(-15deg)}.note-two{bottom:18px;right:0;transform:rotate(15deg)}.music-handwritten{position:absolute;bottom:0;left:10%;font-size:18px;color:#cbdafb;transform:rotate(-5deg)}.music-content .section-kicker{color:#bbcbee}.music-content h2{font:italic 46px Georgia,serif;letter-spacing:-2px;white-space:nowrap}.music-subtitle{font-size:11px;color:#c1d0ef;margin-top:15px}.lyric-display{min-height:113px;padding-top:34px}.lyric-display>p{font-size:14px;line-height:1.7}.lyric-display>span{font-size:11px;display:block;color:#cad9fa;margin-top:7px;line-height:1.7}.progress-label{display:flex;justify-content:space-between;font-size:10px;color:#c6d3ee;margin-bottom:8px}.music-progress{appearance:none;width:100%;height:3px;display:block;cursor:pointer;background:linear-gradient(to right,#e6efa7 var(--progress),#ffffff30 var(--progress));margin:0;padding:0;border-radius:10px}.music-progress::-webkit-slider-thumb{appearance:none;background:#e8f39c;border-radius:50%;width:10px;height:10px}.music-progress::-moz-range-thumb{background:#e8f39c;border:0;border-radius:50%;width:10px;height:10px}.music-controls{display:flex;gap:15px;align-items:center;margin-top:22px}.play-button{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#fffefa;color:#0042d1}.music-download{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;margin-top:20px}.music-download a{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:0 16px;border:1px solid #ffffff55;border-radius:7px;color:#fffefa;font-size:12px}.music-download a:hover{background:#ffffff15}.music-download>span{color:#d7e6ff;font-size:10px}.music-controls>span{font-size:10px;color:#ccd8f2}.mute-button{background:none;color:#d6e0f4;padding:10px;margin-left:auto}.lyrics-details{margin-top:20px;border-top:1px solid #ffffff29}.lyrics-details summary{cursor:pointer;font-size:10px;list-style:none;display:flex;justify-content:space-between;padding:17px 0;color:#d4dff8}.lyrics-details summary::-webkit-details-marker{display:none}.lyrics-details[open] summary>span{transform:rotate(45deg)}.full-lyrics{max-height:280px;overflow:auto;scrollbar-color:#9aaed9 transparent}.full-lyrics button{display:block;text-align:left;background:none;color:#d2dcf3;width:100%;padding:12px 8px;border-radius:3px}.full-lyrics button:hover,.full-lyrics button.active{background:#ffffff15;color:#f3f7bb}.full-lyrics button>span{display:block;font-size:12px;line-height:1.8}.full-lyrics button>small{display:block;font-size:10px;color:#becbe7;line-height:1.8;margin-top:4px}.wish-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:27px;padding:5px 0 0}.wish-card{background:none;padding:0;perspective:1200px;height:292px;border-radius:7px}.card-inner{width:100%;height:100%;position:relative;display:block;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.2,.7,.2,1);border-radius:7px}.wish-card.flipped .card-inner{transform:rotateY(180deg)}.card-front,.card-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;border-radius:7px;background:var(--card-color);padding:29px}.blue-card{--card-color: #e6ebf7;--card-ink: #6981b6}.lime{--card-color: #edf0cd;--card-ink: #7d9052}.pink{--card-color: #f7e3e9;--card-ink: #c2879b}.card-symbol{font-family:Georgia,serif;font-size:83px;line-height:1.3;color:var(--card-ink);height:132px;display:grid;place-items:center}.card-front strong{font-family:Songti SC,SimSun,serif;font-size:23px;font-weight:400;letter-spacing:4px;margin:6px 0 30px}.card-hint{font-size:9px;color:#8c8292;width:100%;display:flex;justify-content:space-between;border-top:1px solid #10245410;padding-top:17px}.card-back{transform:rotateY(180deg);justify-content:space-between;color:var(--card-ink)}.card-back>span{font-size:16px;line-height:2.2;color:#40537d;text-align:left}.card-back small{font-size:9px;color:#8c8292}.birthday-finale{text-align:center;position:relative;overflow:hidden;padding:76px 24px 55px;background:#dee5f4}.finale-star{font-size:47px;color:#7086b7;display:block;margin-bottom:25px}.birthday-finale>p:first-of-type{font-size:11px;color:#677eb0;letter-spacing:3px;margin-bottom:17px}.birthday-finale h2{font-size:46px;line-height:1.65}.finale-description{font-size:11px;color:#6e85b5;line-height:2.2;margin-top:20px}.wish-form{width:min(510px,100%);margin:30px auto 0;text-align:left}.wish-form label{font-size:10px;color:#5a73aa;display:block;margin-bottom:10px}.wish-form>div{display:flex;gap:8px}.wish-form input{min-width:0;flex:1;border:1px solid #c5cee1;border-radius:5px;background:#f3f6fc;padding:13px 16px;font-size:12px;color:#3a4b71}.wish-form input::placeholder{color:#8497bf}.wish-form .button{white-space:nowrap;gap:15px;padding:14px 20px}.wish-form>small{font-size:9px;color:#7287b6;display:block;margin-top:12px;text-align:center}.saved-wish{max-width:510px;margin:22px auto 0;overflow-wrap:anywhere}.saved-wish>span{font-size:11px;color:#5a73aa}.saved-wish>p{font-size:14px;line-height:1.9;margin:9px 0;color:#3f5179}.saved-wish>small{font-size:10px;color:#7086b6}.finale-script{display:block;font-size:27px;color:#7c90bc;transform:rotate(-5deg);margin:33px 0 15px}.footer{background:#dee5f4;border-top:1px solid #c7d0e2;padding:24px 6%;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#677eb0}.footer>a:first-child{color:#475c89}.confetti{position:fixed;inset:0;pointer-events:none;z-index:20;overflow:hidden}.confetti i{position:absolute;left:var(--x);top:-25px;width:9px;height:16px;animation:confetti-fall 3.6s var(--delay) ease-in forwards;transform:rotate(var(--rotation))}.confetti i:nth-child(3n){border-radius:50%;width:9px;height:9px}.lightbox{padding:16px;border:0;border-radius:8px;background:#fffefa;max-width:min(1000px,92vw);max-height:90vh;overflow:auto}.lightbox::backdrop{background:#1a2335c9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lightbox>button{position:sticky;top:0;display:grid;place-items:center;width:36px;height:36px;margin:0 0 10px auto;border-radius:50%;background:#e5eaf6}.lightbox img{max-width:100%;max-height:70vh;display:block;object-fit:contain}.lightbox p{font-size:13px;text-align:center;margin:15px}.load-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px}.load-error h1{font-size:40px;letter-spacing:0}.load-error p{font-size:14px}.hero-copy{animation:hero-arrive .9s both}.hero-art{animation:art-arrive 1.2s both}@keyframes spin{to{rotate:360deg}}@keyframes hero-arrive{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes art-arrive{0%{opacity:0;transform:translateY(25px) rotate(7deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes photo-in{0%{opacity:.5}to{opacity:1}}@keyframes confetti-fall{to{transform:translate(var(--drift),110vh) rotate(calc(var(--rotation) + 500deg));opacity:.25}}@media(min-width:1450px){.hero-art{top:35px;height:565px}.hero-copy{padding-bottom:105px}}@media(max-width:1100px){.hero{padding-top:50px}.hero-art{top:50px;height:430px;right:3%}h1{font-size:70px}.title-spark{font-size:39px;margin-left:6px}.hero-actions{gap:17px}.button{padding:16px 20px;gap:15px}.hero-copy{padding-bottom:65px}.age-sticker{width:85px;height:85px;right:0;bottom:85px}.age-sticker strong{font-size:37px}.birthday-ticket{width:270px;left:15%;bottom:10px;padding:14px}.ticket-flower{font-size:30px}.birthday-ticket strong{font-size:11px}.hero-disc .disc-label strong{font-size:29px}.hero-disc .disc-label>span{font-size:7px;letter-spacing:1px}.hero-disc .disc-label small{font-size:5px;margin-top:20px}.section-wrap{padding:78px 6%}.memory-layout{gap:65px}.music-inner{gap:65px;padding:65px 6%}.music-content h2{font-size:38px}.music-visual .disc-label strong{font-size:28px}.wish-card{height:265px}.card-front,.card-back{padding:24px}.card-symbol{height:115px}.card-back>span{font-size:14px}}@media(max-width:760px){html{scroll-padding-top:20px}.header{height:75px;padding:0 6%;gap:10px}.wordmark{font-size:12px;gap:7px}.mini-disc{width:20px;height:20px}.mini-disc:after{inset:8px}.header nav{gap:20px;font-size:11px}.sound-button{padding:9px}.sound-button>span{display:none}.hero{padding:34px 7% 0}.hero-copy{width:100%;padding-bottom:0}.dedication{font-size:10px;margin-bottom:20px}h1{font-size:clamp(57px,10vw,78px);line-height:1.3;letter-spacing:-3px}.title-spark{font-size:42px;margin:10px 0 0 10px}.hero-description{font-size:12px;margin-top:20px;line-height:2}.hero-actions{margin-top:25px;gap:22px}.button{font-size:11px;padding:15px 18px}.text-button{font-size:10px}.hero-signoff{position:absolute;right:0;bottom:-327px;z-index:3;gap:6px}.hero-signoff .handwritten{font-size:18px}.hero-signoff>span:last-child{font-size:8px}.hero-art{position:relative;top:auto;left:auto;right:auto;width:min(440px,100%);height:350px;margin:25px auto 36px}.hero-disc{width:74%;left:12%;top:15px}.disc-caption{font-size:12px;top:0;left:13%}.star-one{top:20px;right:0;font-size:42px}.star-two{left:0;bottom:65px;font-size:36px}.orbit-one{height:54%;top:20%}.orbit-two{height:72%;top:10%}.age-sticker{width:77px;height:77px;bottom:80px;right:2%;font-size:10px}.age-sticker strong{font-size:34px}.birthday-ticket{left:9%;bottom:18px;width:260px;min-height:75px}.hero-disc .disc-label strong{font-size:29px}.hero-disc .disc-label small{font-size:5px;margin-top:19px}.hero-bottom{padding:17px 0;font-size:9px}.hero-bottom>span:last-child{display:none}.hero-bottom a{gap:7px}.ribbon{height:47px;justify-content:flex-start;gap:30px;padding:0 22px}.ribbon span{font-size:10px;letter-spacing:1px}.ribbon span:nth-of-type(2n){font-size:14px}.section-wrap{padding:60px 7%}.section-intro{display:block;margin-bottom:36px}.section-kicker{font-size:10px;margin-bottom:12px}h2{font-size:33px;line-height:1.5}.section-intro>p{font-size:11px;line-height:2;margin-top:18px}.memory-layout{grid-template-columns:1fr;gap:40px;padding:5px 9px 0}.photo-print{padding:11px 11px 0;max-width:500px;margin:auto}.photo-print>div{padding:17px 3px;font-size:10px}.photo-print .handwritten{font-size:13px}.tape{width:95px;height:30px}.photo-doodle{right:-22px;bottom:-10px;font-size:48px}.memory-copy{margin-top:3px}.memory-tabs{margin-bottom:23px}.memory-tabs button{font-size:11px}.memory-number{font-size:9px}.memory-copy h3{font-size:25px}.memory-copy [role=tabpanel]>p{max-width:none;font-size:11px}.memory-foot{margin-top:20px}.music-inner{grid-template-columns:1fr;gap:37px;padding:45px 8% 40px}.music-visual{width:270px;max-width:90%;margin:auto;padding:10px 0 35px}.music-visual .disc-label strong{font-size:27px}.music-visual .disc-label>span{font-size:6px;letter-spacing:1px}.music-visual .disc-label small{font-size:4px;margin-top:20px}.music-handwritten{font-size:15px;left:3%;white-space:nowrap}.music-note{font-size:33px}.music-content h2{font-size:40px;letter-spacing:-1px}.music-subtitle{font-size:10px}.lyric-display{padding-top:27px;min-height:115px}.lyric-display>p{font-size:13px}.lyric-display>span{font-size:10px}.music-controls>span{font-size:9px}.wish-cards{gap:12px;grid-template-columns:repeat(3,1fr)}.wish-card{height:212px}.card-front,.card-back{padding:16px 11px}.card-symbol{font-size:60px;height:95px}.card-front strong{font-size:17px;letter-spacing:1px;white-space:nowrap;margin:7px 0 21px}.card-hint{font-size:8px;display:block;text-align:center;padding-top:13px}.card-hint>span{display:none}.card-back>span{font-size:11px;line-height:1.9}.card-back>small{font-size:7px}.card-back svg{width:19px;height:19px}.birthday-finale{padding:55px 7% 40px}.birthday-finale h2{font-size:36px}.finale-star{font-size:38px;margin-bottom:20px}.finale-description{font-size:10px;margin-top:19px}.wish-form>div{gap:7px}.wish-form input{padding:12px;font-size:10px}.wish-form .button{padding:13px 14px;gap:7px;font-size:10px}.wish-form>small{font-size:8px}.finale-script{font-size:23px}.footer{padding:22px 7%;flex-wrap:wrap;gap:16px;font-size:9px}.footer>span{order:3;flex-basis:100%}.footer>a:last-child{margin-left:auto}.saved-wish>p{font-size:13px}}@media(max-width:370px){.header nav{gap:13px}.hero-actions{gap:12px}.text-button{font-size:9px}.hero-disc{width:78%;left:9%}.hero-art{height:310px}.hero-signoff{bottom:-295px}.age-sticker{bottom:72px}.birthday-ticket{left:2%}.card-front strong{font-size:15px}.card-back>span{font-size:10px}.wish-card{height:205px}.music-content h2{font-size:35px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.confetti{display:none}}.photo-print{touch-action:pan-y}.photo-controls{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:23px;color:#6f84a8;font-size:10px}.photo-controls button{background:transparent;min-width:44px;min-height:44px;border:1px solid #dce6f7;border-radius:50%;font-size:17px;color:var(--blue)}.swipe-hint{display:none}.keepsake-section{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;background:#edf4ff;padding-top:90px;padding-bottom:90px}.plans-intro{color:#6f84a8;font-size:12px;line-height:2;margin:17px 0 26px}.plans-list{display:grid;gap:8px}.plans-list button{min-height:52px;border:1px solid #ccdcf5;background:#ffffff75;display:flex;align-items:center;gap:13px;border-radius:7px;padding:12px 15px;text-align:left;font-size:12px;transition:background .2s,border-color .2s}.plans-list button.selected{border-color:var(--blue);background:#fff}.plan-symbol{display:grid;place-items:center;width:24px;font-size:20px;color:#7797c6}.plan-check{margin-left:auto;color:#7894be;font-size:18px}.selected .plan-check{background:var(--blue);width:21px;height:21px;border-radius:50%;color:#fff;font-size:12px;display:grid;place-items:center}.plans-status{margin-top:17px;font-size:11px;color:#526e9e;line-height:1.8}.plans-local{font-size:9px;color:#6f84a8;display:block;margin-top:5px}.ticket-keepsake{max-width:380px;width:100%;justify-self:center}.admission-ticket{position:relative;overflow:hidden;background:#0042d1;color:#fffefa;border-radius:13px;box-shadow:0 22px 45px #0042d123;transform:rotate(3deg);padding:28px 28px 23px;isolation:isolate}.admission-ticket:before{content:"";position:absolute;right:-95px;top:-35px;width:320px;height:320px;z-index:-1;background:repeating-radial-gradient(circle,transparent 0 14px,#ffffff15 15px 16px);border-radius:50%}.ticket-topline{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#d4e5ff}.ticket-topline>span:last-child{font-size:27px;color:#e8f39c}.ticket-big-age{font:italic 115px/.95 Georgia,serif;margin-top:16px;display:flex;align-items:flex-end;gap:16px}.ticket-big-age>span{font:10px sans-serif;writing-mode:vertical-rl;letter-spacing:2px;padding-bottom:11px;color:#c3d9ff}.admission-ticket h3{font:26px/1.6 Georgia,Songti SC,serif;margin-top:22px}.admission-ticket>p{font-size:11px;color:#ccdeff;margin-top:14px}.ticket-foil{height:9px;margin-top:29px;background:linear-gradient(105deg,#b4d8f5,#e8f7be,#f1ddf1,#aac6ee,#e8f7be);background-size:200% 100%;transition:background-position .6s}.admission-ticket:hover .ticket-foil{background-position:100% 50%}.ticket-perforation{margin:29px -28px 23px;border-top:1px dashed #b8d1ff99;position:relative}.ticket-perforation:before,.ticket-perforation:after{content:"";position:absolute;width:22px;height:22px;top:-11px;background:#edf4ff;border-radius:50%}.ticket-perforation:before{left:-11px}.ticket-perforation:after{right:-11px}.admission-ticket dl{display:flex;justify-content:space-between;margin:0;gap:20px}.admission-ticket dt{font-size:9px;color:#c1d8ff}.admission-ticket dd{font-size:13px;margin:9px 0 0}.ticket-barcode{width:70%;height:29px;margin:23px 0 12px;background:repeating-linear-gradient(90deg,#fffefa 0 1px,transparent 1px 3px,#fffefa 3px 6px,transparent 6px 8px,#fffefa 8px 10px,transparent 10px 14px)}.ticket-bottomline{display:flex;justify-content:space-between;font-size:8px;color:#c9ddff}.save-ticket{width:100%;margin-top:31px;min-height:49px;background:#fff;color:#0042d1;border:1px solid #c2d6f8}.save-ticket:hover{color:#fff}.ticket-help{margin-top:13px;font-size:10px;text-align:center;color:#6f84a8}.ticket-preview{background:#edf4ff;border:0;border-radius:14px;padding:18px;width:min(430px,94vw);max-height:90dvh;overflow:auto}.ticket-preview::backdrop{background:#102454b3;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.ticket-preview-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-bottom:12px}.ticket-preview-header button{min-width:44px;min-height:44px;border-radius:50%;background:#dfeaff;color:#0042d1}.ticket-preview img{width:100%;display:block;border-radius:6px}.ticket-preview>p{font-size:11px;color:#526e9e;line-height:1.8;margin:13px 0}.ticket-preview>a{width:100%}.mobile-dock{display:none}@media(max-width:1100px){.keepsake-section{gap:60px}.ticket-keepsake{max-width:340px}}@media(max-width:760px){html{scroll-padding-top:24px}body{padding-bottom:calc(75px + env(safe-area-inset-bottom,0px))}.header{height:65px}.header nav{display:none}.header .sound-button{min-width:44px;min-height:44px}.sound-button>span{display:inline;font-size:10px}.hero{display:flex;flex-direction:column;padding-top:20px}.hero-copy{display:contents;animation:none}.dedication{order:0;margin-bottom:17px}.hero h1{order:1;font-size:clamp(52px,11vw,76px)}.hero-description{order:2;margin-top:15px;font-size:12px}.hero-art{order:3;margin:12px auto 6px;height:clamp(285px,78vw,365px)}.hero-actions{order:4;margin-top:5px;gap:18px}.hero-actions .primary{flex:1;min-height:49px;font-size:12px}.hero-actions .text-button{min-height:49px;font-size:11px}.hero-signoff{order:5;position:static;display:none}.hero-bottom{order:6;margin-top:22px}.birthday-ticket{bottom:12px;left:9%}.hero-disc{top:12px}.age-sticker{bottom:66px}.star-two{bottom:65px}.section-wrap{padding-top:54px;padding-bottom:54px}.section-intro{margin-bottom:28px}.section-intro>p{margin-top:12px}.memory-layout{gap:22px}.photo-controls{gap:14px;margin-top:15px;font-size:11px}.swipe-hint{display:inline;font-size:10px}.memory-tabs{gap:12px;margin-bottom:21px}.memory-tabs button{min-height:44px;flex:1;font-size:12px;padding:10px 0}.photo-doodle{bottom:55px;font-size:40px}.music-inner{padding-top:37px;gap:22px}.music-visual{width:220px}.music-visual .disc-label strong{font-size:22px}.music-visual .disc-label>span{font-size:5px}.music-visual .disc-label small{margin-top:18px;font-size:4px}.music-handwritten{font-size:13px}.music-content h2{font-size:clamp(32px,9vw,42px)}.lyric-display>p{font-size:14px}.lyric-display>span{font-size:12px}.lyric-display{min-height:125px}.music-progress{height:44px;background-size:100% 4px;background-position:center;background-repeat:no-repeat}.music-progress::-webkit-slider-thumb{width:17px;height:17px}.music-progress::-moz-range-thumb{width:17px;height:17px}.progress-label{margin-bottom:-10px}.music-controls{margin-top:5px}.play-button{width:50px;height:50px}.mute-button{min-width:44px;min-height:44px}.lyrics-details summary{min-height:48px;align-items:center;font-size:11px}.full-lyrics button{min-height:65px;padding:14px 8px}.full-lyrics button>small{font-size:11px}.wish-cards{display:flex;gap:15px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:7vw;margin-left:-7vw!important;margin-right:-7vw!important;padding:4px 7vw 16px;scrollbar-width:thin;scrollbar-color:#b5ccf5 transparent}.wish-card{flex:0 0 78vw;max-width:330px;height:285px;scroll-snap-align:center}.card-front,.card-back{padding:26px}.card-symbol{font-size:80px;height:135px}.card-front strong{font-size:25px;letter-spacing:4px;margin:9px 0 24px}.card-hint{font-size:11px;display:flex;padding-top:18px}.card-hint>span{display:inline}.card-back>span{font-size:17px;line-height:2.3}.card-back>small{font-size:10px}.card-back svg{width:28px;height:28px}.keepsake-section{grid-template-columns:1fr;gap:48px;padding-top:50px;padding-bottom:60px}.future-plans h2{font-size:33px}.plans-intro{font-size:12px;margin-top:12px}.plans-list button{min-height:57px;font-size:13px}.plans-list{gap:9px}.plans-status{font-size:11px}.ticket-keepsake{max-width:340px;padding:0 7px}.admission-ticket{transform:rotate(2deg);padding:26px}.ticket-big-age{font-size:108px}.admission-ticket h3{font-size:25px}.ticket-perforation{margin-left:-26px;margin-right:-26px}.wish-form input{font-size:16px;min-height:50px;padding:13px 12px;width:100%}.wish-form>div{flex-direction:column;gap:10px}.wish-form .button{font-size:13px;min-height:50px}.wish-form label{font-size:12px;margin-bottom:11px}.wish-form>small{font-size:10px;line-height:1.8}.saved-wish>p{font-size:14px}.finale-description{font-size:12px}.mobile-dock{display:flex;align-items:center;justify-content:space-around;position:fixed;bottom:0;left:0;right:0;padding:9px 12px calc(8px + env(safe-area-inset-bottom,0px));background:#fffffff2;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid #dce6f7;box-shadow:0 -5px 25px #0042d108;z-index:10}.mobile-dock>a{min-width:48px;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px;color:#6e84aa}.dock-mark{font:21px/1.1 Georgia,serif}.mobile-dock>a[aria-current]{color:var(--blue)}.mobile-dock>a[aria-current] .dock-mark{background:#edf4ff;border-radius:7px}.dock-play{min-width:58px;min-height:48px;border-radius:12px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;gap:4px;flex-direction:column}.dock-play>span{font-size:9px}.lightbox{padding:12px}.lightbox>button{width:44px;height:44px}.lightbox img{max-height:65dvh}.ticket-preview-header button{flex-shrink:0}}.hero h1{color:var(--blue)}.hero-copy{min-height:580px;padding-bottom:70px}.photo-hero{width:48%;height:570px;right:2.5%;top:30px}.cover-caption{position:absolute;top:16px;left:9%;font-size:18px;color:#718bb8;transform:rotate(-5deg)}.cover-disc{position:absolute;width:72%;left:33%;top:105px}.cover-disc .disc{width:100%}.cover-disc .disc-label strong{font-size:30px}.cover-disc .disc-label>span{font-size:7px}.cover-disc .disc-label small{font-size:5px;margin-top:22px}.album-cover{display:block;position:absolute;width:65%;aspect-ratio:3/4;left:6%;top:61px;padding:0;border:11px solid #fffefa;background:#0042d1;box-shadow:0 18px 50px #10245426;transform:rotate(-7deg);text-align:left;overflow:hidden;transition:transform .3s}.album-cover:hover{transform:rotate(-4deg) translateY(-3px)}.album-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#10245433,transparent 30%,transparent 55%,#00174dbe);pointer-events:none}.album-cover>img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 40%}.cover-edition{position:absolute;top:16px;left:17px;font-size:9px;color:#fff;letter-spacing:2px;z-index:1}.cover-title{position:absolute;bottom:20px;left:20px;color:#fff;z-index:1;font:italic clamp(30px,3vw,46px)/.98 Georgia,serif;letter-spacing:-1px}.cover-title small{display:block;font:9px sans-serif;letter-spacing:1px;margin-top:12px}.cover-star{position:absolute;right:5%;top:51px;color:var(--blue);font:55px Georgia,serif}.cover-seal{position:absolute;right:7%;bottom:76px;width:100px;height:100px;border-radius:50%;background:#e8f39c;color:#193a67;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(11deg);box-shadow:0 7px 20px #0042d10a}.cover-seal strong{font:italic 46px/.95 Georgia,serif}.cover-seal>span{font-size:8px;letter-spacing:2px;line-height:1.7}.cover-bottom-tag{position:absolute;bottom:4px;left:10%;width:76%;display:flex;align-items:center;gap:13px;padding:15px 0;border-bottom:1px solid #bccde9;color:#395e9f}.cover-bottom-tag>span{font-size:9px;color:#7890b5}.cover-bottom-tag strong{font-size:12px;font-weight:500}.cover-bottom-tag svg{margin-left:auto;color:var(--blue)}.memory-layout{grid-template-columns:1fr 1fr;gap:90px}.photo-print{transform:rotate(-3deg);max-width:420px}.photo-print>img{aspect-ratio:3/4;object-fit:cover}.photo-print>div{font-size:11px;padding:21px 5px}.memory-tabs{gap:8px;border:0;margin-bottom:35px}.memory-tabs button{padding:4px;flex:1;min-width:0;border:1px solid transparent;border-radius:5px}.memory-tabs button:hover{background:#edf4ff}.memory-tabs button[aria-selected=true]{border-color:#0042d1;background:#edf4ff}.memory-tabs button[aria-selected=true]:after{display:none}.memory-tabs img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;display:block;border-radius:2px}.memory-tabs button>span{display:block;font-size:9px;margin:7px 0 4px}.memory-copy h3{font-size:30px;line-height:1.7;margin:16px 0}.memory-copy [role=tabpanel]>p{max-width:none;font-size:12px}.memory-number{color:#6c86b1}.memory-foot{border-color:#dde7f7;color:#6c86b1}.ticket-photo-stamp{width:83px;height:111px;position:absolute;top:78px;right:28px;object-fit:cover;border:5px solid #fffefa;transform:rotate(7deg);box-shadow:0 4px 15px #00236d30}@media(max-width:1100px)and (min-width:761px){.hero h1{font-size:65px}.hero-copy{min-height:510px}.photo-hero{height:490px}.album-cover{top:65px;width:64%}.cover-disc{top:120px}.cover-seal{bottom:73px;width:83px;height:83px}.cover-seal strong{font-size:38px}.cover-bottom-tag{bottom:12px}.memory-layout{gap:55px}.memory-copy h3{font-size:26px}}@media(max-width:760px){.hero-copy{min-height:0;padding:0}.photo-hero{position:relative;top:auto;right:auto;left:auto;width:100%;max-width:420px;height:clamp(315px,95vw,410px);margin:18px auto 12px}.cover-caption{top:1px;left:8%;font-size:13px}.album-cover{width:68%;left:6%;top:28px;border-width:8px}.cover-disc{width:76%;left:32%;top:70px}.cover-disc .disc-label strong{font-size:24px}.cover-disc .disc-label>span{font-size:6px}.cover-disc .disc-label small{font-size:4px;margin-top:17px}.cover-title{font-size:clamp(28px,8vw,38px);bottom:15px;left:14px}.cover-title small{font-size:7px;letter-spacing:.5px;margin-top:10px}.cover-edition{font-size:7px;top:13px;left:13px}.cover-star{top:25px;right:1%;font-size:38px}.cover-seal{width:77px;height:77px;bottom:53px;right:1%}.cover-seal strong{font-size:36px}.cover-seal>span{font-size:6px;letter-spacing:1px}.cover-bottom-tag{left:4%;bottom:0;width:91%;gap:10px;padding:12px 0}.cover-bottom-tag>span{font-size:8px}.cover-bottom-tag strong{font-size:11px}.hero .hero-actions{margin-top:13px}.hero .hero-actions .primary{padding-left:12px;padding-right:12px;font-size:11px;gap:10px}.hero-actions .text-button{font-size:10px;gap:6px}.memory-layout{grid-template-columns:1fr;gap:14px;padding-left:4px;padding-right:4px}.photo-print{width:94%;max-width:360px}.photo-print>img{aspect-ratio:4/5;max-height:440px}.photo-print>div{padding:17px 3px;font-size:10px}.photo-print .handwritten{font-size:12px}.photo-controls{margin-top:13px;gap:12px}.photo-controls>span{font-size:10px}.swipe-hint{font-size:9px}.memory-tabs{gap:7px;margin:2px 0 24px}.memory-tabs button{padding:3px;min-height:44px}.memory-tabs button>span{font-size:10px;margin:7px 0 4px}.memory-copy h3{font-size:27px;margin:12px 0}.memory-copy [role=tabpanel]>p{font-size:12px;line-height:2.1}.photo-doodle{right:-9px;bottom:60px}.plans-list{grid-template-columns:1fr 1fr;gap:9px}.plans-list button{display:grid;grid-template-columns:1fr auto;gap:9px;padding:13px 12px;min-height:100px;align-content:space-between}.plan-symbol{grid-column:1;grid-row:1}.plan-check{grid-column:2;grid-row:1}.plans-list button>span:nth-child(2){grid-column:1/-1;grid-row:2;font-size:11px;line-height:1.7}}@media(prefers-reduced-motion:reduce){.album-cover{transition:none}}.music-inner>*{min-width:0}.video-visual{width:100%}.birthday-video{display:block;width:100%;aspect-ratio:16 / 9;max-height:70vh;object-fit:contain;background:#001b55;border:1px solid #ffffff40;border-radius:12px;box-shadow:0 18px 45px #001b5540}.video-placeholder{text-align:center;color:#d6e2ff;margin-top:16px}button:disabled,input:disabled{cursor:not-allowed;opacity:.5}.photo-print>img,.memory-tabs img{object-fit:contain;background:#f6f8ff}.memory-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.next-step{min-width:0}.next-step h2{font-size:clamp(30px,4vw,44px);line-height:1.55}.next-step-form{display:grid;gap:10px}.next-step-form label{font-size:12px;color:#3a5a90;margin-top:8px}.next-step-form input{width:100%;min-width:0;max-width:100%;box-sizing:border-box;min-height:48px;border:1px solid #c4d4ed;border-radius:6px;padding:12px;font:inherit;font-size:16px;color:#153d82;background:#fff}.next-step-form .button{margin-top:10px}.next-step-status{font-size:12px;line-height:1.8;margin-top:16px;color:#375b92}.next-step-status:empty{display:none}.calendar-download{margin-top:14px;border:1px solid #0042d1;color:#0042d1}.next-step-help{font-size:11px;color:#59759c;line-height:1.9;margin-top:12px}.album-download{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:30px;padding-top:22px;border-top:1px solid #c4d4ed;color:#0042d1;font-size:14px;min-height:48px}.finale-replay{margin-top:28px}
