.passport-finale{--navy:#10385e;--blue:#315f89;--cream:#fbf4e2;--gold:#c79b4c;--red:#8c2639;min-height:100svh;position:relative;overflow:hidden;padding:24px clamp(18px,5vw,70px) 38px;background:radial-gradient(circle at 12% 12%,#fff9e5 0 4%,transparent 23%),radial-gradient(circle at 87% 82%,#8fb8d2 0 3%,transparent 26%),linear-gradient(135deg,#dfeaf0,#b8d3e1);color:var(--navy);font-family:"Noto Serif SC",Songti SC,serif}.finale-grain{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.23;background-image:radial-gradient(#163e6318 1px,transparent 1px);background-size:12px 12px;-webkit-mask-image:linear-gradient(#000,transparent 95%);mask-image:linear-gradient(#000,transparent 95%)}.finale-back{position:relative;z-index:20;display:inline-flex;padding:9px 13px;border:1px solid #163e6333;background:#fff8e6b8;font:9px Courier New,monospace;letter-spacing:1px;box-shadow:3px 3px #315e8240}.finale-heading{position:relative;z-index:2;text-align:center;margin:0 auto}.finale-heading>span{display:inline-block;font:8px Courier New,monospace;letter-spacing:3px;color:#496b84}.finale-heading h1{font-family:Cormorant Garamond,"Noto Serif SC",serif;font-size:clamp(32px,4vw,56px);letter-spacing:3px;line-height:1.08;margin:10px 0 3px;text-shadow:0 2px #fff9e8}.finale-heading p{margin:0;color:#557186;font:9px Courier New,monospace;letter-spacing:2px}.interactive-map{position:relative;z-index:2;width:min(1120px,96vw);height:330px;margin:12px auto 0}.travel-line{position:absolute;inset:40px 0 auto;width:100%;height:245px;overflow:visible}.travel-line path{fill:none}.route-base{stroke:#fff7df;stroke-width:14;filter:drop-shadow(0 5px 5px #315f8933)}.route-ink{stroke:#426d8d;stroke-width:2.2;stroke-dasharray:7 8}.landmark{position:absolute;width:92px;min-height:112px;translate:-50% -50%;padding:0;background:transparent;text-align:center;color:var(--navy);transition:.35s;z-index:3}.landmark:hover{transform:translateY(-8px) scale(1.06)}.pin-roof{width:47px;height:47px;margin:auto;display:grid;place-items:center;background:linear-gradient(145deg,#f9f1d9,#d6b76d);clip-path:polygon(50% 0,100% 34%,89% 100%,11% 100%,0 34%);font-size:18px;filter:drop-shadow(3px 4px 0 #315f8945)}.landmark b{display:block;font-size:14px;font-weight:400;letter-spacing:2px;margin-top:5px}.landmark small{display:block;font:7px Courier New,monospace;letter-spacing:2px;color:#647d90}.landmark em{display:inline-block;margin-top:5px;padding:3px 6px;border:1px dashed #6b8496;font:6px Courier New,monospace;letter-spacing:1px;font-style:normal;background:#f9f2dfaa}.landmark.is-visited .pin-roof{background:linear-gradient(145deg,#914052,#641f31);color:#fff0c9}.landmark.is-visited:after{content:"✓";position:absolute;right:9px;top:-3px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--gold);color:#fff;border:2px solid #fff5d9}.lm-0{left:5%;top:70%}.lm-1{left:17%;top:29%}.lm-2{left:30%;top:58%}.lm-3{left:43%;top:31%}.lm-4{left:55%;top:53%}.lm-5{left:68%;top:25%}.lm-6{left:82%;top:65%}.lm-7{left:96%;top:30%}.collection-status{position:relative;z-index:2;width:min(720px,90vw);margin:-12px auto 0;text-align:center}.collection-status>span{font-size:11px;color:#587287;letter-spacing:1px}.collection-status>div{height:5px;display:flex;gap:5px;margin-top:10px}.collection-status i{flex:1;border-radius:6px;background:#6787a330;transition:.35s}.collection-status i.done{background:linear-gradient(90deg,var(--gold),var(--red))}.flight-caption{text-align:center;font:9px Courier New,monospace;letter-spacing:2px}.flight-plane{position:absolute;z-index:9;offset-path:path("M50 205 C120 80 215 238 295 132 S450 216 530 130 S690 74 750 175 S875 250 955 114");offset-rotate:auto;left:0;top:0}.flight-plane span{font-size:32px;display:block;color:#173e68;filter:drop-shadow(2px 3px #fff1c9)}.flight-plane i{position:absolute;left:25px;top:22px;white-space:nowrap;font:7px Courier New,monospace;font-style:normal;background:#fff4d9;padding:4px}.flight-trail{position:absolute;height:4px;left:5%;bottom:62px;background:linear-gradient(90deg,#c99b4e,transparent);filter:blur(1px)}.issue-area{position:relative;z-index:2;margin:20px auto 0;text-align:center}.issue-area p{font:8px Courier New,monospace;letter-spacing:3px}.issue-area button{min-width:min(390px,90vw);padding:14px 25px;background:var(--navy);color:#fff8e8;box-shadow:6px 7px 0 var(--gold);letter-spacing:2px;transition:.25s}.issue-area button:hover{transform:translate(-3px,-3px);box-shadow:9px 10px 0 var(--gold)}.issue-area button span{display:block;margin-bottom:5px;color:#c7dae5;font:7px Courier New,monospace;letter-spacing:2px}.issue-area button b{margin-left:17px}.memory-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:25px;background:#0a2038b5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.memory-note{position:relative;width:min(880px,94vw);min-height:520px;padding:45px 45px 30px;background:#f6edcf;background-image:repeating-linear-gradient(transparent 0 35px,#58778d14 36px);box-shadow:0 30px 80px #06162688,12px 14px #c89749;color:var(--navy)}.memory-note:before{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:1px dashed #315f8955;pointer-events:none}.note-pin{position:absolute;top:-13px;left:50%;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#8e3b4b;color:#e7c36b;box-shadow:2px 6px 8px #173e6850}.note-close{position:absolute;right:20px;top:18px;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;font-size:20px;z-index:4}.note-meta{display:flex;align-items:center;gap:15px;border-bottom:1px dashed #315f8970;padding-bottom:13px;font:8px Courier New,monospace;letter-spacing:2px}.note-meta b{font-weight:400}.note-meta em{margin-left:auto;padding:7px 12px;border:2px solid #91405299;border-radius:50%;color:#914052;transform:rotate(-10deg);font-style:normal}.polaroid-stack{position:absolute;left:50px;top:115px;width:410px;height:300px}.polaroid{position:absolute;width:220px;margin:0;padding:10px 10px 28px;background:#fffdf5;box-shadow:0 12px 24px #173e6842}.polaroid img{width:100%;height:210px;object-fit:cover}.polaroid figcaption{padding:9px 0 0;text-align:center;font:7px Courier New,monospace;letter-spacing:2px}.photo-0{left:0;top:20px;transform:rotate(-8deg)}.photo-1{left:155px;top:0;transform:rotate(8deg)}.photo-2{left:92px;top:78px;transform:rotate(-1deg);z-index:2}.hand-message{margin:54px 10px 0 auto;width:330px;min-height:270px;padding:28px 22px;background:#fff8daaa;transform:rotate(1.5deg);box-shadow:4px 5px #315f8925}.hand-message small{font:7px Courier New,monospace;letter-spacing:2px}.hand-message h2{font:italic 35px Cormorant Garamond,"Noto Serif SC",serif;margin:15px 0 5px}.hand-message p{font-size:14px;line-height:2}.hand-message span{display:block;text-align:right;font:italic 19px Cormorant Garamond,serif}.keep-note{display:block;margin:28px 0 0 auto;padding:11px 18px;background:var(--navy);color:#fff2d8;box-shadow:4px 4px 0 var(--gold)}.passport-zone{position:relative;z-index:2;min-height:760px;margin-top:-10px}.passport-object{position:relative;width:min(850px,94vw);height:480px;margin:30px auto 0;perspective:1800px}.passport-inside{position:absolute;left:50%;top:20px;width:50%;height:405px;display:grid;grid-template-columns:1fr 1fr;background:#f5efd9;border:1px solid #8b7c5a;box-shadow:0 25px 50px #173e6850;transform-origin:left;transition:.9s;overflow:visible}.passport-object.is-open .passport-inside{left:8%;width:84%}.inside-left,.inside-right{position:relative;padding:28px 24px;background-image:radial-gradient(#173e680d 1px,transparent 1px);background-size:8px 8px;overflow:hidden}.inside-left{border-right:9px double #aa9872}.inside-left>span,.inside-right>span{font:9px Courier New,monospace;letter-spacing:2px}.inside-left>small{display:block;margin-top:5px;font:6px Courier New,monospace;letter-spacing:1px}.id-photo{width:150px;height:105px;margin:24px auto 20px;background:linear-gradient(145deg,#a9c5d5,#e7d7aa);border:7px solid #fff;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 7px 14px #173e6829}.id-photo b{font:38px Cormorant Garamond,serif}.id-photo i{font-style:normal;color:var(--red)}.inside-left dl{font:8px Courier New,monospace;text-align:left}.inside-left dt{color:#667e91;margin-top:8px}.inside-left dd{margin:3px 0;border-bottom:1px dotted #7890a5;padding-bottom:4px}.inside-right{text-align:center}.inside-right h2{font:italic 30px Cormorant Garamond,"Noto Serif SC",serif;margin:18px 0 8px}.inside-right>p{font-size:12px}.visa-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:20px}.visa-grid i{aspect-ratio:1;border:1px solid #91405288;border-radius:50%;display:grid;place-items:center;color:#914052;font-size:8px;font-style:normal;transform:rotate(-7deg)}.visa-grid i:nth-child(2n){transform:rotate(8deg)}.visa-grid b{display:block;font-size:11px}.passport-cover{position:absolute;z-index:5;left:50%;top:20px;width:50%;height:405px;border-radius:5px 12px 12px 5px;background:linear-gradient(135deg,#78172d,#4b0d1e);color:#dfba59;box-shadow:0 25px 55px #35101c70,inset 7px 0 15px #30061388,inset 0 0 0 3px #e2c06716;transform-origin:left center;transform-style:preserve-3d;transition:transform 1.2s cubic-bezier(.2,.75,.18,1),box-shadow 1s}.passport-cover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;opacity:.2;background-image:radial-gradient(#f4cf6f 1px,transparent 1px);background-size:5px 5px}.passport-object.is-open .passport-cover{transform:rotateY(-168deg);box-shadow:0 10px 25px #35101c38;pointer-events:none}.cover-emblem{position:relative;width:120px;height:120px;margin:48px auto 16px;border:2px solid #dfba59;border-radius:50%;display:grid;place-items:center}.cover-emblem:before,.cover-emblem:after{content:"❧";position:absolute;font-size:48px;bottom:-18px}.cover-emblem:before{left:-5px;transform:rotate(35deg)}.cover-emblem:after{right:-5px;transform:scaleX(-1) rotate(35deg)}.cover-emblem span{font-size:33px}.cover-emblem i{position:absolute;top:47px;font-size:10px;letter-spacing:5px;font-style:normal}.cover-emblem b{position:absolute;bottom:16px;font-size:22px}.passport-cover h2{font-size:31px;font-weight:400;letter-spacing:9px;margin:0}.passport-cover p{font:16px Georgia,serif;letter-spacing:3px;margin:12px}.passport-cover small{display:block;font:italic 18px Cormorant Garamond,serif}.passport-cover em{position:absolute;bottom:28px;left:50%;translate:-50%;font-style:normal;font-size:32px}.open-hint,.drag-hint{text-align:center;font:8px Courier New,monospace;letter-spacing:2px;color:#57738a}.open-hint:before{content:"↖";margin-right:8px}.drag-hint span{font-size:22px;display:inline-block;animation:hint-up 1.3s ease-in-out infinite}@keyframes hint-up{50%{transform:translateY(-7px)}}.real-ticket{border:0;background:#f7f4e9;color:#162f45;box-shadow:0 12px 25px #173e6850;text-align:left}.ticket-pocket{position:absolute;z-index:10;left:50%;bottom:-58px;translate:-50%;width:620px;height:155px;display:grid;grid-template-columns:90px 155px 1fr 76px;padding:0;cursor:grab}.ticket-pocket:active{cursor:grabbing}.ticket-brand{display:flex;flex-direction:column;justify-content:center;align-items:center;background:#174c77;color:#fff}.ticket-brand b{font:30px Georgia,serif}.ticket-brand span{font:6px Courier New,monospace;letter-spacing:1px;text-align:center;line-height:1.6}.ticket-route{position:relative;padding:17px 15px;border-right:1px dashed #7890a5;display:grid;grid-template-columns:1fr 1fr}.ticket-route small{font:6px Courier New,monospace}.ticket-route b{font:27px Arial Narrow,sans-serif}.ticket-route em{font:6px Courier New,monospace;font-style:normal}.ticket-route i{position:absolute;left:50%;top:54%;translate:-50% -50%;font-style:normal}.ticket-details{padding:17px 14px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ticket-details span{font:700 8px Arial,sans-serif}.ticket-details small{display:block;color:#6d7d88;font:5px Courier New,monospace;margin-bottom:4px}.barcode{border-left:1px dashed #7890a5;display:grid;place-content:center;padding:9px}.barcode i{width:48px;height:88px;background:repeating-linear-gradient(90deg,#162f45 0 2px,transparent 2px 4px,#162f45 4px 5px,transparent 5px 8px)}.barcode small{font:5px Courier New,monospace;writing-mode:vertical-rl;margin-left:4px}.departure-card{width:min(960px,95vw);margin:30px auto 0;border:1px solid #d6b76766;background:linear-gradient(145deg,#092542,#123f66);box-shadow:0 28px 65px #0b294955;color:#fff4d5;overflow:hidden}.night-route{position:relative;height:330px;background:radial-gradient(circle at 50% 50%,#315f8955,transparent 60%),radial-gradient(#f2d37b 1px,transparent 1px);background-size:auto,35px 35px}.glow-path{position:absolute;left:7%;right:7%;top:49%;height:3px;background:linear-gradient(90deg,transparent,#e9c66b,#7cc7e9,#e9c66b,transparent);box-shadow:0 0 18px #e7c66d;transform:rotate(-4deg)}.night-route>b{position:absolute;font-size:38px;color:#f5cf6c;filter:drop-shadow(0 0 11px #f9dd83)}.night-route>i{position:absolute;translate:-50% -50%;font:8px Courier New,monospace;font-style:normal;color:#d8e9ef;text-align:center}.night-route>i span{display:grid;place-items:center;width:28px;height:28px;margin:auto;border-radius:50%;background:#8d3d4c;color:#fff1c8;border:2px solid #d9b968}.departure-message{text-align:center;padding:25px 20px 31px;background:#f7f0df;color:var(--navy)}.departure-message small{font:7px Courier New,monospace;letter-spacing:3px}.departure-message h2{font:italic 37px Cormorant Garamond,"Noto Serif SC",serif;margin:10px 0 3px}.departure-message p{font-size:12px}.departure-message button{padding:10px 14px;background:var(--navy);color:#fff0cf;box-shadow:4px 4px 0 var(--gold)}.passport-finale footer{position:relative;z-index:2;text-align:center;margin-top:32px;font:7px Courier New,monospace;letter-spacing:3px;color:#5a7487}@media(max-width:700px){.passport-finale{padding:15px 10px 32px}.finale-heading h1{font-size:29px;letter-spacing:1px}.interactive-map{height:520px;margin-top:0}.travel-line{display:none}.landmark{width:25%;min-height:100px;translate:0 0}.lm-0,.lm-1,.lm-2,.lm-3{top:30px}.lm-4,.lm-5,.lm-6,.lm-7{top:165px}.lm-0,.lm-4{left:0}.lm-1,.lm-5{left:25%}.lm-2,.lm-6{left:50%}.lm-3,.lm-7{left:75%}.interactive-map:after{content:"";position:absolute;left:9%;right:9%;top:115px;height:130px;border:2px dashed #4f7794;border-left:0;border-right:0}.collection-status{margin-top:-205px}.issue-area{margin-top:24px}.memory-note{min-height:680px;padding:39px 22px 24px}.note-meta{gap:7px}.polaroid-stack{position:relative;left:auto;top:auto;width:290px;height:265px;margin:30px auto 0}.polaroid{width:165px}.polaroid img{height:150px}.photo-1{left:125px}.photo-2{left:62px;top:68px}.hand-message{width:100%;margin:0;padding:20px;min-height:190px}.keep-note{margin-top:15px}.passport-zone{min-height:820px}.passport-object{height:625px}.passport-cover{left:10%;width:80%;height:410px}.passport-inside{left:10%;width:80%;height:560px;grid-template-columns:1fr}.passport-object.is-open .passport-inside{left:4%;width:92%}.inside-left{border-right:0;border-bottom:9px double #aa9872;padding:18px}.inside-right{padding:18px}.id-photo{width:110px;height:70px;margin:12px auto}.inside-left dl{display:grid;grid-template-columns:1fr 1fr;gap:4px}.visa-grid{margin-top:8px}.ticket-pocket{width:330px;height:190px;bottom:-70px;grid-template-columns:60px 105px 1fr}.ticket-brand b{font-size:21px}.ticket-details{grid-template-columns:repeat(2,1fr);padding:10px 8px}.barcode{display:none}.passport-cover h2{font-size:26px}.departure-card{margin-top:20px}.night-route{height:330px}.night-route>i{font-size:6px}.night-route>i span{width:22px;height:22px}.departure-message h2{font-size:29px}.flight-plane,.flight-trail{display:none}}@media(prefers-reduced-motion:reduce){.passport-cover,.drag-hint span{animation:none!important;transition:none!important}}.interactive-map{width:min(1120px,90vw);height:500px;margin-top:8px}.landmark{width:132px;height:150px;min-height:0;padding:13px 10px 11px;background:linear-gradient(150deg,#fffaf0,#ece3cb);border:1px solid #6f8ba05c;box-shadow:7px 9px #315f892d;clip-path:polygon(14% 0,86% 0,100% 12%,100% 100%,0 100%,0 12%)}.landmark:before{content:"";position:absolute;left:50%;top:7px;translate:-50%;width:7px;height:7px;border:2px solid #6a8294;border-radius:50%;background:#d7e4e8}.landmark:hover{transform:translateY(-9px) scale(1.045);box-shadow:10px 14px #315f8939}.pin-roof{width:53px;height:53px;margin:9px auto 7px;border-radius:50%;clip-path:none;background:var(--navy);color:#f8edce;border:5px double #d5b668;font:18px Cormorant Garamond,serif}.landmark b{font-size:16px;letter-spacing:3px}.landmark small{min-height:22px;margin-top:3px;font:6px/1.6 Courier New,monospace;letter-spacing:1px}.landmark em{margin-top:4px}.landmark.is-visited{background:linear-gradient(150deg,#f8eed5,#d8e7e8);border-color:#8d3d4c88}.landmark.is-visited:after{right:10px;top:11px;width:24px;height:24px}.polaroid-stack{outline:0;cursor:zoom-in}.gallery-hint{position:absolute;z-index:7;left:50%;bottom:-25px;translate:-50%;white-space:nowrap;padding:6px 9px;background:var(--navy);color:#fff3d4;font:6px Courier New,monospace;letter-spacing:1px;box-shadow:3px 3px 0 var(--gold)}.polaroid-stack .polaroid{left:92px;top:45px;transition:transform .65s cubic-bezier(.2,.8,.2,1),left .65s,top .65s,filter .4s}.polaroid-stack .photo-0{transform:rotate(-3deg) translate(-14px,7px)}.polaroid-stack .photo-1{transform:rotate(3deg) translate(14px,-3px)}.polaroid-stack .photo-2{transform:rotate(0);z-index:2}.polaroid-stack:hover .photo-0,.polaroid-stack:focus .photo-0{left:0;top:20px;transform:rotate(-9deg) translateY(-8px)}.polaroid-stack:hover .photo-1,.polaroid-stack:focus .photo-1{left:175px;top:0;transform:rotate(9deg) translateY(-11px)}.polaroid-stack:hover .photo-2,.polaroid-stack:focus .photo-2{left:92px;top:78px;transform:rotate(-1deg) translateY(-5px)}.polaroid-stack:hover .polaroid,.polaroid-stack:focus .polaroid{filter:drop-shadow(0 15px 13px #173e6830)}@media(max-width:700px){.interactive-map{height:520px}.landmark{width:23%;height:126px;padding:8px 4px}.pin-roof{width:39px;height:39px;margin:8px auto 4px}.landmark b{font-size:13px}.landmark small{font-size:5px}.lm-0,.lm-1,.lm-2,.lm-3{top:30px}.lm-4,.lm-5,.lm-6,.lm-7{top:176px}.lm-0,.lm-4{left:1%}.lm-1,.lm-5{left:26%}.lm-2,.lm-6{left:51%}.lm-3,.lm-7{left:76%}.polaroid-stack .polaroid{left:62px;top:45px}.polaroid-stack:hover .photo-0,.polaroid-stack:focus .photo-0{left:0}.polaroid-stack:hover .photo-1,.polaroid-stack:focus .photo-1{left:125px}.polaroid-stack:hover .photo-2,.polaroid-stack:focus .photo-2{left:62px}}@media(min-width:701px){.memory-note{width:min(1040px,96vw);min-height:610px;transition:min-height .55s}.polaroid-stack{width:420px;height:350px;transition:width .65s,height .65s;z-index:3}.polaroid-stack:hover,.polaroid-stack:focus{width:calc(100% - 100px);height:455px;z-index:12;cursor:zoom-out}.polaroid-stack:hover .polaroid,.polaroid-stack:focus .polaroid{width:300px;padding:12px 12px 32px;filter:drop-shadow(0 20px 18px #173e6840)}.polaroid-stack:hover .polaroid img,.polaroid-stack:focus .polaroid img{height:345px}.polaroid-stack:hover .photo-0,.polaroid-stack:focus .photo-0{left:0;top:42px;transform:rotate(-7deg) translateY(-8px)}.polaroid-stack:hover .photo-1,.polaroid-stack:focus .photo-1{left:calc(50% - 150px);top:4px;transform:rotate(2deg) translateY(-11px)}.polaroid-stack:hover .photo-2,.polaroid-stack:focus .photo-2{left:calc(100% - 300px);top:48px;transform:rotate(7deg) translateY(-5px)}.memory-note:has(.polaroid-stack:hover) .hand-message,.memory-note:has(.polaroid-stack:focus) .hand-message{opacity:.08;transform:translate(55px) rotate(4deg);transition:opacity .35s,transform .5s}.polaroid-stack:hover .gallery-hint,.polaroid-stack:focus .gallery-hint{opacity:0}}.passport-finale.finale-map,.passport-finale.finale-flight,.passport-finale.finale-ready{background:radial-gradient(circle at 12% 12%,#fff9e5 0 4%,transparent 23%),radial-gradient(circle at 87% 82%,#8fb8d2 0 3%,transparent 26%),linear-gradient(135deg,#dfeaf0,#b8d3e1)}.interactive-map{height:500px;margin-top:8px}.travel-line{inset:34px 0 auto;height:420px}.landmark{width:184px;height:154px;min-height:0;padding:43px 24px 24px;border:0;clip-path:none;box-shadow:none;background-color:transparent!important;background-repeat:no-repeat!important;background-position:center!important;background-size:contain!important;filter:drop-shadow(5px 8px 5px #173e6825);color:var(--navy);transition:transform .35s ease,filter .35s ease}.landmark:nth-of-type(4n+1){background-image:url(../images/city-note-1.png)!important}.landmark:nth-of-type(4n+2){background-image:url(../images/city-note-2.png)!important}.landmark:nth-of-type(4n+3){background-image:url(../images/city-note-3.png)!important}.landmark:nth-of-type(4n+4){background-image:url(../images/city-note-4.png)!important}.landmark:before{display:none}.landmark:hover{transform:translateY(-8px) scale(1.045);filter:drop-shadow(8px 14px 8px #173e6833)}.pin-roof{display:none}.landmark b{display:block;margin:0;font-size:17px;font-weight:500;letter-spacing:3px;color:var(--navy);text-shadow:0 1px #fff}.landmark small{display:block;min-height:20px;margin-top:5px;font:7px/1.5 Courier New,monospace;letter-spacing:1.4px;color:#496b84}.landmark em{display:inline-block;margin-top:5px;padding:3px 7px;border:1px dashed #496b84;background:#f8f0dccc;font:6px Courier New,monospace;letter-spacing:1px;box-shadow:2px 2px #c79b4c;font-style:normal}.landmark.is-visited em{background:#914052;color:#fff0d1;border-color:#d8ba72;transform:rotate(-5deg)}.landmark.is-visited:after{right:18px;top:17px;width:23px;height:23px;background:#c79b4c;border:2px solid #fff5d9}.lm-0{left:7%;top:76%}.lm-1{left:19%;top:25%}.lm-2{left:32%;top:67%}.lm-3{left:44%;top:23%}.lm-4{left:57%;top:65%}.lm-5{left:69%;top:21%}.lm-6{left:81%;top:66%}.lm-7{left:93%;top:22%}@media(max-width:900px){.interactive-map{height:590px}.travel-line{display:none}.landmark{width:23%;height:145px;translate:0 0;padding:42px 10px 18px}.lm-0,.lm-1,.lm-2,.lm-3{top:32px}.lm-4,.lm-5,.lm-6,.lm-7{top:215px}.lm-0,.lm-4{left:1%}.lm-1,.lm-5{left:26%}.lm-2,.lm-6{left:51%}.lm-3,.lm-7{left:76%}.collection-status{margin-top:-175px}}@media(max-width:600px){.interactive-map{height:790px}.landmark{width:47%;height:145px;padding:42px 12px 18px}.lm-0,.lm-1{top:25px}.lm-2,.lm-3{top:190px}.lm-4,.lm-5{top:355px}.lm-6,.lm-7{top:520px}.lm-0,.lm-2,.lm-4,.lm-6{left:1%}.lm-1,.lm-3,.lm-5,.lm-7{left:52%}.collection-status{margin-top:-95px}}.passport-object{width:min(760px,94vw);height:535px}.passport-inside{height:450px}.passport-cover{top:8px;left:50%;width:318px;height:454px;padding:34px 28px 26px;border-radius:7px 18px 18px 7px;background:linear-gradient(135deg,#0a1f42,#07162f 65%,#0c254b);color:#dfc06b;box-shadow:0 28px 55px #06152b70,inset 8px 0 15px #020b1888,inset 0 0 0 2px #edcf7424;display:flex;flex-direction:column;align-items:center}.passport-cover:after{opacity:.12;background-image:radial-gradient(#f3d47b 1px,transparent 1px);background-size:5px 5px}.passport-cover h2{position:relative;z-index:1;margin:0;font:600 31px Georgia,serif;letter-spacing:5px}.passport-eagle{position:relative;z-index:1;width:178px;height:190px;margin:30px auto 13px;color:#dfc06b;filter:drop-shadow(0 1px 0 #6c5521)}.passport-cover p{position:relative;z-index:1;margin:7px 0 0;font:italic 21px Georgia,serif;letter-spacing:1.8px}.passport-cover small{position:relative;z-index:1;margin-top:9px;font:italic 14px Cormorant Garamond,serif;letter-spacing:1px}.passport-cover .biometric-mark{position:absolute;z-index:1;bottom:25px;left:50%;translate:-50%;width:39px;height:28px;border:3px solid currentColor;border-radius:2px;font-size:0}.biometric-mark i{position:absolute;left:50%;top:-3px;width:3px;height:28px;background:currentColor;translate:-50%}.biometric-mark b{position:absolute;left:50%;top:50%;width:13px;height:13px;border:2px solid currentColor;border-radius:50%;translate:-50% -50%;background:#0a1f42}.passport-object.is-open .passport-cover{transform:rotateY(-168deg)}@media(max-width:700px){.passport-object{height:630px}.passport-cover{left:50%;translate:-50%;width:min(318px,84vw);height:454px}.passport-object.is-open .passport-cover{translate:0;left:50%;transform:rotateY(-168deg)}.passport-inside{height:560px}}.polaroid.portrait{width:220px}.polaroid.portrait img{height:270px;object-fit:cover}.polaroid.landscape{width:275px}.polaroid.landscape img{height:185px;object-fit:cover}@media(min-width:701px){.polaroid-stack:hover .polaroid.portrait,.polaroid-stack:focus .polaroid.portrait{width:255px}.polaroid-stack:hover .polaroid.portrait img,.polaroid-stack:focus .polaroid.portrait img{height:345px}.polaroid-stack:hover .polaroid.landscape,.polaroid-stack:focus .polaroid.landscape{width:350px}.polaroid-stack:hover .polaroid.landscape img,.polaroid-stack:focus .polaroid.landscape img{height:238px}.polaroid-stack:hover .photo-0,.polaroid-stack:focus .photo-0{left:0;right:auto;top:58px;transform:rotate(-7deg) translateY(-8px)}.polaroid-stack:hover .photo-1,.polaroid-stack:focus .photo-1{left:50%;right:auto;top:4px;transform:translate(-50%) rotate(2deg) translateY(-11px)}.polaroid-stack:hover .photo-2,.polaroid-stack:focus .photo-2{left:auto;right:0;top:64px;transform:rotate(7deg) translateY(-5px)}}@media(max-width:700px){.polaroid.portrait{width:150px}.polaroid.portrait img{height:185px}.polaroid.landscape{width:205px}.polaroid.landscape img{height:135px}}.interactive-map.dynamic-map{display:grid;align-content:start;justify-items:center;gap:24px 12px;width:min(1120px,96vw);height:auto;min-height:210px;padding:42px 18px 28px}.interactive-map.dynamic-map .travel-line,.interactive-map.dynamic-map .flight-plane,.interactive-map.dynamic-map .flight-trail{display:none}.interactive-map.dynamic-map .landmark{position:relative;left:auto;top:auto;translate:none;width:min(100%,165px);height:150px;min-height:0}.interactive-map.dynamic-map+.collection-status{margin:0 auto}@media(max-width:700px){.interactive-map.dynamic-map{gap:15px 8px;width:96vw;min-height:170px;padding:25px 5px}.interactive-map.dynamic-map .landmark{left:auto;top:auto;width:min(100%,155px);height:135px}.interactive-map.dynamic-map .landmark:only-of-type{grid-column:span 2}.interactive-map.dynamic-map+.collection-status{margin:0 auto}}.interactive-map.dynamic-map{grid-auto-rows:220px;gap:10px 18px;padding:18px 18px 30px;overflow:visible}.interactive-map.dynamic-map .travel-line{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:visible}.interactive-map.dynamic-map .landmark{z-index:2;align-self:start;margin-top:var(--stagger);max-width:170px;width:100%;box-shadow:7px 9px #315f892d}.interactive-map.dynamic-map .route-plane{position:absolute;left:0;top:0;z-index:4;font-size:30px;color:#173e68;pointer-events:none;filter:drop-shadow(2px 2px 0 #fff7df);offset-rotate:auto}.interactive-map.dynamic-map:after{display:none}.polaroid .photo-viewport{width:100%;height:210px;overflow:hidden;background:#e5ebed}.polaroid .photo-viewport img{display:block;width:100%;height:100%;object-fit:cover}.polaroid.portrait .photo-viewport{height:270px}.polaroid.landscape .photo-viewport{height:185px}@media(min-width:701px){.polaroid-stack:hover .polaroid.portrait .photo-viewport,.polaroid-stack:focus .polaroid.portrait .photo-viewport{height:345px}.polaroid-stack:hover .polaroid.landscape .photo-viewport,.polaroid-stack:focus .polaroid.landscape .photo-viewport{height:238px}}@media(max-width:700px){.interactive-map.dynamic-map{grid-auto-rows:195px;gap:6px 12px;padding:10px 5px 26px;height:auto}.interactive-map.dynamic-map .landmark{width:min(100%,155px);height:135px;margin-top:calc(var(--stagger)*.7);justify-self:center}.polaroid.portrait .photo-viewport{height:185px}.polaroid.landscape .photo-viewport{height:135px}}.play-chapter{min-height:calc(100svh - 66px);padding:72px 5vw 80px;position:relative;overflow:hidden;color:#173e68;background:radial-gradient(circle at 12% 15%,#fff9e7 0 7%,transparent 27%),linear-gradient(130deg,#e6eef0,#bfd8e7)}.play-chapter:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.13;background-image:radial-gradient(#173e68 1px,transparent 1px);background-size:13px 13px;-webkit-mask-image:linear-gradient(#000,transparent 42%);mask-image:linear-gradient(#000,transparent 42%)}.play-title{position:relative;z-index:2;text-align:center;margin:0 auto 36px}.play-title>span{font:8px Courier New,monospace;letter-spacing:4px}.play-title h1{font:400 clamp(28px,4vw,48px)/1.2 var(--serif);letter-spacing:4px;margin:12px 0 9px}.play-title p{font-size:11px;letter-spacing:1.5px;color:#617d93;margin:0}.play-next{min-height:47px;padding:11px 20px;background:#173e68;color:#fff8e8;border:1px solid #173e68;box-shadow:5px 6px #c89d55;font:10px Courier New,monospace;letter-spacing:1.5px}.play-next b{font-size:18px;margin-left:20px}.play-next:disabled{opacity:.35;box-shadow:none}.gacha-chapter{background:linear-gradient(145deg,#dfe9ed,#b5d1e4)}.gacha-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(360px,520px) minmax(310px,470px);justify-content:center;gap:55px;align-items:center}.gacha-machine{width:390px;margin:auto;position:relative;filter:drop-shadow(0 25px 20px #143a6730)}.gacha-dome{height:305px;width:305px;margin:auto;border-radius:48% 48% 43% 43%;position:relative;z-index:2;overflow:hidden;border:5px solid #8eb0d0;background:linear-gradient(120deg,#fff8 0 9%,transparent 24%),linear-gradient(#81afe06b,#c6e1ed3d 68%,#345f96aa);box-shadow:inset 15px 10px 25px #fff8,inset -16px -12px 30px #204e8e55}.gacha-dome:after{content:"";position:absolute;inset:auto 13px 0;height:72px;border-radius:50%;background:#234f85}.dome-shine{position:absolute;width:65px;height:210px;left:37px;top:26px;border-radius:50%;transform:rotate(24deg);background:linear-gradient(90deg,#fff8,transparent);z-index:4}.mini-capsule{position:absolute;width:72px;height:72px;border-radius:50%;z-index:3;border:3px solid #fff8;box-shadow:inset -8px -8px 14px #15365f3d,2px 4px 7px #12335e66;transition:.35s}.mini-capsule:after{content:"";position:absolute;left:-2px;right:-2px;top:32px;border-top:4px solid #f5f2df;box-shadow:0 2px #19395d55}.mini-capsule b{position:absolute;z-index:1;top:9px;right:9px;bottom:34px;left:9px;display:grid;place-items:center;border-radius:50%;background:#fff3;color:#fff;font-size:19px}.mini-capsule.red{background:linear-gradient(#db4b58 0,#db4b58 52%,#f5f0e4 52%)}.mini-capsule.yellow{background:linear-gradient(#efc73a 0,#efc73a 52%,#f5f0e4 52%)}.mini-capsule.purple{background:linear-gradient(#8a58c8 0,#8a58c8 52%,#f5f0e4 52%)}.mini-capsule.blue{background:linear-gradient(#3279b9 0,#3279b9 52%,#f5f0e4 52%)}.mini-capsule.pink{background:linear-gradient(#e86d9a 0,#e86d9a 52%,#f5f0e4 52%)}.mini-capsule.green{background:linear-gradient(#55a978 0,#55a978 52%,#f5f0e4 52%)}.cap-0{left:36px;bottom:22px;rotate:-18deg}.cap-1{left:103px;bottom:14px;rotate:9deg}.cap-2{left:173px;bottom:29px;rotate:-5deg}.cap-3{left:64px;bottom:78px;rotate:12deg}.cap-4{left:138px;bottom:83px;rotate:-15deg}.cap-5{left:205px;bottom:78px;rotate:16deg}.mini-capsule.gone{opacity:.12;transform:translateY(40px) scale(.6)}.machine-body{height:225px;margin-top:-8px;border:5px solid #7da5cd;border-radius:12px 12px 3px 3px;position:relative;background:linear-gradient(135deg,#477db8,#2f64a5 65%,#467cb8);box-shadow:inset 8px 8px 12px #8ab1dc55,inset -7px -7px 14px #123b7444}.machine-lines{position:absolute;left:27px;top:30px;display:flex;gap:7px}.machine-lines i{width:5px;height:65px;border-radius:9px;background:#173c70;box-shadow:inset 1px 0 #bdd3e7,1px 0 #87abd1}.gacha-knob{position:absolute;left:93px;top:42px;width:92px;height:92px;border-radius:50%;background:radial-gradient(circle,#bfd0df 0,#bfd0df 8%,#365170 10%,#365170 35%,#9db8cf 37%,#9db8cf 43%,#213f65 46%,#213f65);color:#fff;box-shadow:4px 6px #17385f}.gacha-knob span{display:block;font:700 31px Georgia}.gacha-knob small{position:absolute;top:100px;left:10px;white-space:nowrap;font:7px Courier New,monospace;letter-spacing:1px}.is-spinning .gacha-knob span{animation:knob-turn .35s linear infinite}.is-spinning .gacha-dome{animation:machine-shake .18s linear infinite alternate}.coin-slot{position:absolute;left:205px;top:28px;width:53px;text-align:center;color:#d8e4ec}.coin-slot i{display:block;width:17px;height:53px;border:5px solid #173b70;border-radius:5px;background:#aec4d7;margin:auto;box-shadow:inset 0 0 0 3px #477aaa}.coin-slot span{font:6px Courier New,monospace;letter-spacing:1px}.capsule-door{position:absolute;right:24px;bottom:0;width:96px;height:120px;border-radius:50px 50px 5px 5px;background:#102b50;border:7px solid #779fc6;overflow:hidden;box-shadow:inset 0 0 25px #0009}.falling-capsule{position:absolute;width:54px;height:54px;left:14px;top:20px;border-radius:50%;background:linear-gradient(#ebc74d 0,#ebc74d 49%,#f5efe2 50%);border:2px solid #fff9}.machine-foot{height:52px;margin:-3px -18px 0;padding:15px 27px;background:linear-gradient(#477cb8,#2e5f9b);border:5px solid #7198c0;border-radius:3px;color:#eaf3f8;font:700 13px Courier New,monospace;letter-spacing:3px;box-shadow:0 8px #224d83}.machine-foot span{float:right;font-size:7px;font-weight:400;margin-top:4px}.capsule-shelf{min-height:535px;padding:24px;background:#f8f2df;border:1px solid #7793a9;box-shadow:10px 12px #315f8930;position:relative}.shelf-head{display:flex;justify-content:space-between;border-bottom:1px dashed #587893;padding-bottom:14px;font:8px Courier New,monospace;letter-spacing:2px}.shelf-head b{color:#994556}.shelf-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:19px 0}.shelf-slots button{height:86px;background:#e3e9e7;border:1px dashed #8197a7;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8292a0}.shelf-slots button.filled{background:#fffaf0;border-style:solid}.shelf-slots button>i{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;color:#fff;font-style:normal;font:700 11px Courier New,monospace;box-shadow:inset -4px -4px #173e6844}.shelf-slots i.red{background:#d95562}.shelf-slots i.yellow{background:#d4a928}.shelf-slots i.purple{background:#8055b5}.shelf-slots i.blue{background:#3978b0}.shelf-slots i.pink{background:#d7608d}.shelf-slots i.green{background:#4e9b70}.shelf-slots small{font:6px Courier New,monospace;margin-top:7px}.capsule-reveal{display:grid;grid-template-columns:minmax(145px,46%) 1fr;gap:16px;min-height:205px;padding:13px;background:#fffdf6;outline:1px solid #8095a455;box-shadow:5px 6px #d0a45b}.capsule-reveal img{width:100%;height:180px;object-fit:contain;background:#e5ebed}.capsule-reveal small{font:7px Courier New,monospace;letter-spacing:2px;color:#8e5060}.capsule-reveal h2{font:400 19px var(--serif);margin:10px 0 7px}.capsule-reveal p{font-size:10px;line-height:1.75;margin:0}.capsule-empty{height:205px;display:grid;place-content:center;text-align:center;color:#8395a4}.capsule-empty b{font:41px Georgia}.capsule-empty p{font-size:10px}.capsule-shelf>.play-next{display:block;margin:21px auto 0}@keyframes knob-turn{to{transform:rotate(360deg)}}@keyframes machine-shake{to{transform:translate(3px) rotate(.3deg)}}.workshop-chapter{background:radial-gradient(circle at 88% 20%,#fff6da 0 7%,transparent 27%),linear-gradient(125deg,#e7e5d8,#c8dce6)}.workshop-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(340px,1fr) minmax(420px,620px);gap:42px;max-width:1100px;margin:auto;align-items:stretch}.workbench{min-height:560px;position:relative;display:grid;place-content:center;background:linear-gradient(90deg,#a9815d11 1px,transparent 1px),linear-gradient(#a9815d11 1px,transparent 1px),#f5edda;background-size:32px 32px;border:13px solid #8a6447;box-shadow:inset 0 0 0 2px #dfbd90,11px 14px #315f8928;text-align:center}.bench-note{position:absolute;left:22px;top:22px;transform:rotate(-7deg);padding:13px;background:#fff4b7;box-shadow:3px 4px #b89154;font:7px Courier New,monospace;letter-spacing:1px}.bench-note b{font:italic 17px var(--serif)}.gift-preview,.final-made-gift{width:280px;height:220px;margin:auto;position:relative;border-radius:5px;box-shadow:0 24px 34px #56392233,8px 9px #b7894e;transition:.35s;background:#e9e3d3}.gift-lid{position:absolute;left:-10px;right:-10px;top:-16px;height:35px;background:inherit;border:1px solid #173e6822;box-shadow:0 4px #173e681c}.paper-cream{background-color:#eee2c7;background-image:radial-gradient(#a7987445 1px,transparent 1px);background-size:8px 8px}.paper-blue{background-color:#7599b9;background-image:linear-gradient(45deg,#fff1 25%,transparent 25% 75%,#fff1 75%);background-size:14px 14px}.paper-wine{background-color:#87384c;background-image:radial-gradient(#e8c67488 1px,transparent 1px);background-size:7px 7px}.paper-blank{background:#e3dfd4}.ribbon-v,.ribbon-h{position:absolute;display:block;background:#d3af59;box-shadow:inset 0 0 0 1px #fff4}.ribbon-v{left:calc(50% - 19px);top:-16px;width:38px;height:calc(100% + 16px)}.ribbon-h{top:calc(50% - 18px);left:0;width:100%;height:36px}.ribbon-navy .ribbon-v,.ribbon-navy .ribbon-h{background:#173e68}.ribbon-rose .ribbon-v,.ribbon-rose .ribbon-h{background:#d28a9a}.ribbon-blank .ribbon-v,.ribbon-blank .ribbon-h{opacity:.17}.chosen-sticker{position:absolute;z-index:3;left:50%;top:50%;translate:-50% -50%;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:#f7efd9;color:#8c4050;border:4px double #c69c53;font:700 30px Georgia}.chosen-sticker.stamp{font:700 14px Courier New,monospace;letter-spacing:1px}.gift-preview em{position:absolute;right:13px;bottom:12px;font:italic 14px var(--serif);color:#173e68;background:#fff9dfcc;padding:4px 7px;transform:rotate(-4deg)}.workbench>p{font-size:10px;letter-spacing:1px;color:#6b7f8e;margin-top:35px}.material-board{padding:22px 27px;background:#fbf6e9;border:1px solid #8299aa;box-shadow:10px 12px #315f8929}.material-group{border-bottom:1px dashed #7890a4;padding:0 0 19px;margin-bottom:20px}.material-group header{display:flex;align-items:center;gap:12px;margin-bottom:13px}.material-group header span{font:8px Courier New,monospace;color:#9a5660}.material-group header h2{font:400 17px var(--serif);margin:0}.material-group header b{margin-left:auto;color:#8f3e51}.material-group>div{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.material-group button{min-height:70px;padding:8px;background:#eee8da;border:2px solid transparent;font-size:9px;color:#264c6c}.material-group button.selected{border-color:#173e68;box-shadow:3px 4px #c39950}.material-group button:before{content:"";display:block;width:28px;height:28px;margin:0 auto 7px;border-radius:50%;background:#e8ddc4;border:1px solid #fff;box-shadow:0 0 0 1px #667f91}.material-group .swatch-blue:before{background:#7599b9}.material-group .swatch-wine:before{background:#87384c}.material-group .swatch-gold:before{background:#d3af59}.material-group .swatch-navy:before{background:#173e68}.material-group .swatch-rose:before{background:#d28a9a}.material-group button i{display:block;font-style:normal;font-size:22px;height:28px}.material-group button:has(i):before{display:none}.finish-gift{display:block;width:100%}.sky-chapter{color:#eff7ff;background:radial-gradient(circle at 50% 48%,#234e80,#08152c 72%)}.sky-chapter:before{opacity:.65;background-image:radial-gradient(#dfefff 1px,transparent 1px);background-size:23px 23px;-webkit-mask-image:none;mask-image:none}.sky-chapter .play-title p{color:#9ebad2}.wish-sky{width:min(850px,94vw);height:590px;margin:auto;position:relative;border:1px solid #9dc5e344;box-shadow:inset 0 0 80px #071225,0 25px 60px #02071266;background:radial-gradient(circle at 50% 50%,#17385e99,transparent 58%);overflow:hidden}.sky-dust{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 15% 20%,#fff 0 1px,transparent 2px),radial-gradient(circle at 75% 31%,#fff 0 1px,transparent 2px),radial-gradient(circle at 32% 80%,#b9dcff 0 1px,transparent 2px),radial-gradient(circle at 91% 73%,#fff3b7 0 1px,transparent 2px);background-size:81px 83px,117px 105px,91px 126px,133px 78px;opacity:.55}.wish-sky svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.wish-sky polyline{fill:none;stroke:#ffe99a;stroke-width:.75;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px #ffe17e);transition:.4s}.wish-sky>button{position:absolute;translate:-50% -50%;width:45px;height:45px;border-radius:50%;background:transparent;color:#718da8;z-index:2}.wish-sky>button i{font-style:normal;font-size:16px}.wish-sky>button span{position:absolute;top:32px;left:50%;translate:-50%;font:6px Courier New,monospace;opacity:.55}.wish-sky>button.lit{color:#fff1a9;text-shadow:0 0 9px #fff,0 0 22px #ffdf69}.wish-sky>button.next-star{color:#fff;animation:next-star 1.15s ease-in-out infinite}.sky-message{position:absolute;left:50%;top:45%;translate:-50% -50%;width:320px;text-align:center;z-index:1}.sky-message small{font:7px Courier New,monospace;letter-spacing:3px;color:#8ba9c5}.sky-message h2{font:italic 26px/1.55 var(--serif);font-weight:400;margin:15px 0 7px;color:#fff4ca;text-shadow:0 0 22px #ffe69a66}.sky-message p{font-size:10px;color:#a7bdd0}.sky-message .play-next{margin-top:17px;background:#fff0b8;color:#173e68;border-color:#fff0b8}.wrong-star{animation:wrong-star .25s linear 2}.sky-complete .wish-sky{box-shadow:inset 0 0 100px #1e5794aa,0 0 55px #8cc8ff38}.sky-complete .sky-dust{opacity:1}@keyframes next-star{50%{transform:scale(1.5);text-shadow:0 0 18px #fff}}@keyframes wrong-star{50%{transform:translate(5px)}}.letter-gift-chapter{text-align:center;background:radial-gradient(circle at 18% 15%,#fff6db 0 7%,transparent 27%),linear-gradient(125deg,#e5eae4,#c2d8e8)}.final-made-gift{display:block;border:0;color:#173e68;margin:90px auto 60px;transform:rotate(-2deg);overflow:visible}.final-made-gift:hover{transform:rotate(1deg) translateY(-8px)}.final-made-gift>span{position:absolute;right:13px;bottom:12px;padding:5px 8px;background:#fff9e5;font:italic 17px var(--serif);transform:rotate(-5deg)}.final-made-gift>small{position:absolute;left:50%;top:calc(100% + 28px);translate:-50%;white-space:nowrap;font:9px Courier New,monospace;letter-spacing:2px}.final-letter{width:min(720px,94vw);margin:auto}.final-letter article{position:relative;text-align:left;padding:60px 64px 48px;background:#fffaf0;box-shadow:12px 15px #c3995266,0 24px 55px #173e6820;border-top:6px solid #173e68;background-image:repeating-linear-gradient(transparent 0 38px,#8ba0ae19 39px)}.final-letter h2{font:italic 30px var(--serif);margin:0 0 31px}.final-letter p{font-size:14px;line-height:2.1;margin:0 0 20px}.final-letter strong{display:block;font:italic 22px var(--serif);color:#8e4052;margin-top:32px}.final-letter footer{display:flex;justify-content:space-between;margin-top:38px;border-top:1px dashed #71899b;padding-top:18px}.final-letter footer em{font:italic 20px var(--serif)}.final-letter footer small{font:8px Courier New,monospace;letter-spacing:1px}.letter-stamp{position:absolute;right:30px;top:27px;width:72px;height:72px;border-radius:50%;border:2px solid #98516488;color:#985164aa;display:grid;place-content:center;text-align:center;font:10px Courier New,monospace;transform:rotate(10deg)}.letter-stamp small{font-size:5px}.final-letter>.play-next{margin-top:34px}@media(max-width:820px){.gacha-layout,.workshop-layout{grid-template-columns:1fr}.gacha-machine{transform:scale(.86);margin:-30px auto}.capsule-shelf{max-width:520px;margin:auto}.workbench{min-height:470px}.material-board{max-width:620px;margin:auto}.wish-sky{height:570px}.sky-message{width:270px}}@media(max-width:520px){.play-chapter{padding:58px 14px 76px}.play-title{margin-bottom:25px}.play-title h1{font-size:27px;letter-spacing:1px}.play-title p{font-size:10px;line-height:1.7}.gacha-layout{gap:16px}.gacha-machine{width:390px;left:50%;margin-left:-195px;transform:scale(.75);margin-top:-60px;margin-bottom:-60px}.capsule-shelf{padding:17px}.shelf-slots button{height:77px}.capsule-reveal{grid-template-columns:1fr;min-height:0}.capsule-reveal img{height:240px}.capsule-reveal h2{font-size:20px}.capsule-reveal p{font-size:11px}.workshop-layout{grid-template-columns:1fr}.workbench{min-height:390px;border-width:8px}.gift-preview{width:230px;height:185px}.material-board{padding:18px 14px}.material-group>div{gap:5px}.material-group button{font-size:8px;padding:5px}.wish-sky{height:530px}.wish-sky>button{width:36px;height:36px}.wish-sky>button span{display:none}.sky-message{width:230px}.sky-message h2{font-size:21px}.final-letter article{padding:50px 23px 35px}.final-letter p{font-size:13px}.letter-stamp{right:17px;top:17px;width:58px;height:58px}}.capsule-photo-frame{width:100%;height:180px;overflow:hidden;background:#e5ebed}.capsule-photo-frame img,.capsule-reveal .capsule-photo-frame img{display:block;width:100%;height:100%;object-fit:cover}.capsule-photo-frame.portrait img{object-fit:cover}.capsule-photo-frame.portrait{width:72%;height:220px;margin:auto}@media(max-width:700px){.capsule-photo-frame{height:240px}}.lucky-chapter{background:radial-gradient(circle at 14% 18%,#fff0cf 0 8%,transparent 30%),linear-gradient(135deg,#eadfc7,#c5d8df)}.lucky-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(330px,470px) minmax(350px,520px);gap:55px;align-items:center;justify-content:center;max-width:1080px;margin:auto}.fortune-desk{min-height:540px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:30px;background:linear-gradient(#fff8e600,#fff8e6aa),repeating-linear-gradient(90deg,#9d745b18 0 1px,transparent 1px 38px);border-bottom:18px solid #825b43;position:relative}.stick-bundle{width:250px;height:300px;position:relative;display:flex;align-items:flex-end;justify-content:center}.stick-bundle i{position:absolute;bottom:-9px;width:34px;height:var(--h);transform:rotate(var(--r));transform-origin:bottom;background:#e8c480;border:2px solid #b9874c;border-radius:14px 14px 2px 2px;box-shadow:3px 2px 6px #72513b55}.stick-bundle i b{writing-mode:vertical-rl;margin:20px auto;font:400 15px var(--serif);letter-spacing:3px;color:#814653}.fortune-pot{width:230px;height:210px;margin-top:-70px;position:relative;z-index:2;display:grid;place-content:center;text-align:center;color:#f6e6bd;background:radial-gradient(circle at 35% 20%,#c55e55,#7e2638 60%,#541927);border-radius:28px 28px 75px 75px;box-shadow:inset 10px 8px #fff2,inset -12px -10px #32101b55,0 18px 24px #60412f55;border:5px solid #d7ad67}.fortune-pot span{font:700 62px Georgia}.fortune-pot small{font:7px Courier New,monospace;letter-spacing:2px}.fortune-shake{margin-top:24px;padding:13px 25px;background:#173e68;color:#fff6df;border:1px solid #173e68;box-shadow:5px 5px #c89d55;font:9px Courier New,monospace;letter-spacing:2px}.fortune-desk.shaking .stick-bundle{animation:machine-shake .12s linear infinite alternate}.fortune-result{min-height:540px;padding:25px;background:#faf5e8;border:1px solid #8094a3;box-shadow:11px 13px #315f8929}.fortune-result>header{display:flex;justify-content:space-between;padding-bottom:13px;border-bottom:1px dashed #71899a;font:8px Courier New,monospace;letter-spacing:2px}.fortune-card{min-height:300px;margin:22px auto 18px;padding:32px 30px;position:relative;text-align:center;background:#fffdf6;border:1px solid #d1b779;box-shadow:6px 7px #c29850}.fortune-card>i{display:grid;place-items:center;width:58px;height:58px;margin:auto;border-radius:50%;background:#173e68;color:#fff1c6;font: 27px Georgia}.fortune-card small{display:block;margin-top:17px;font:7px Courier New,monospace;letter-spacing:2px}.fortune-card h2{font:400 clamp(25px,4vw,45px) var(--serif);margin:9px 0;color:#8a3e4d}.fortune-card p{font-size:13px;line-height:1.9;margin:0 auto;max-width:320px}.fortune-card em{display:block;margin-top:24px;font:8px Courier New,monospace;letter-spacing:2px}.fortune-placeholder{height:300px;display:grid;place-items:center;color:#8494a0;font-size:11px}.fortune-collection{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.fortune-collection button{height:67px;background:#e5e7e2;border:1px dashed #8a9aa5;color:#83919a}.fortune-collection button.saved{background:#fffaf0;border-style:solid}.fortune-collection i{display:block;font-style:normal;font-size:17px}.fortune-collection span{font-size:9px}.fortune-result>.play-next{display:block;margin:20px auto 0}.balloon-chapter{background:linear-gradient(#b9d8ea 0,#b9d8ea 58%,#e9e2cf 58%)}.balloon-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(420px,1fr) minmax(330px,460px);gap:40px;max-width:1100px;margin:auto}.wish-field{height:570px;position:relative;overflow:hidden;background:linear-gradient(#8fc2df,#d8e9ed 72%);border:8px solid #f3eddf;box-shadow:10px 12px #315f8930}.cloud{position:absolute;width:160px;height:45px;border-radius:50%;background:#fff8;filter:blur(1px)}.cloud:before,.cloud:after{content:"";position:absolute;border-radius:50%;background:inherit}.cloud:before{width:68px;height:68px;left:30px;bottom:0}.cloud:after{width:90px;height:78px;right:18px;bottom:0}.cloud-a{left:-30px;top:70px}.cloud-b{right:-20px;top:200px;transform:scale(.75)}.wish-balloon{position:absolute;left:50%;top:46%;translate:-50% -50%;width:190px;height:220px;border-radius:50% 50% 46% 46%;display:grid;place-content:center;text-align:center;color:#fff8e5;background:radial-gradient(circle at 34% 24%,#fff8,#d76979 32%,#a43e55 80%);filter:drop-shadow(0 15px 14px #315f8955);transition:.4s}.wish-balloon.heart{clip-path:polygon(50% 96%,8% 47%,5% 25%,17% 8%,37% 5%,50% 20%,63% 5%,83% 8%,95% 25%,92% 47%)}.wish-balloon.star{clip-path:polygon(50% 0,61% 34%,98% 35%,68% 56%,80% 94%,50% 72%,20% 94%,32% 56%,2% 35%,39% 34%)}.wish-balloon.long{width:140px;height:250px;border-radius:55%}.wish-balloon>span{font:35px Georgia;opacity:.65}.wish-balloon p{width:125px;margin:8px auto;font-size:12px;line-height:1.6}.wish-balloon>i{position:absolute;top:98%;left:50%;width:1px;height:180px;background:#6d7180}.wish-balloon.fly-away{animation:balloon-fly 1.25s ease-in forwards}.wish-stars{position:absolute;left:18px;right:18px;top:18px;display:flex;flex-wrap:wrap;gap:8px}.wish-stars button{width:45px;height:45px;background:transparent;color:#fff5b7;text-shadow:0 0 10px #fff}.wish-stars button i{font-style:normal;font-size:22px}.wish-stars button span{display:none}.sky-counter{position:absolute;right:16px;bottom:12px;font:7px Courier New,monospace;letter-spacing:2px;color:#365f7d}.wish-control{padding:27px;background:#fbf5e7;border:1px solid #7890a1;box-shadow:10px 12px #315f8929}.wish-control label{display:block;margin:0 0 12px;font:8px Courier New,monospace;letter-spacing:2px}.balloon-options{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:26px}.balloon-options button{min-height:85px;background:#e7e9e4;border:2px solid transparent;color:#284e6d}.balloon-options button.selected{border-color:#173e68;box-shadow:3px 3px #c79a51}.balloon-options i{display:block;font: 29px Georgia;color:#bf5268}.balloon-options span{font-size:8px}.wish-control textarea{width:100%;height:145px;resize:none;padding:17px;border:1px solid #91a2ad;background:#fffdf7;color:#173e68;font:14px/1.8 var(--sans)}.wish-control>small{display:block;text-align:right;margin:6px 0 18px;font:7px Courier New,monospace}.release-wish,.print-photo{width:100%;min-height:48px;background:#9a4052;color:#fff7e9;border:0;box-shadow:5px 6px #c69a51;font:9px Courier New,monospace;letter-spacing:1px}.release-wish:disabled,.print-photo:disabled{opacity:.35;box-shadow:none}.wish-control .play-next{width:100%;margin-top:20px}@keyframes balloon-fly{to{transform:translateY(-560px) rotate(12deg) scale(.55);opacity:.15}}.coupon-chapter{background:linear-gradient(130deg,#e3e9e6,#c4d8e3)}.coupon-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(330px,430px) minmax(430px,620px);gap:55px;align-items:center;justify-content:center;max-width:1120px;margin:auto}.coupon-machine{height:520px;position:relative;border:9px solid #244e78;border-radius:35px 35px 12px 12px;background:linear-gradient(145deg,#477cae,#234d7d);box-shadow:inset 10px 10px #fff2,inset -12px -12px #112e5544,12px 16px #315f8930}.coupon-window{width:260px;height:245px;margin:48px auto 0;display:grid;place-content:center;text-align:center;border:12px solid #8dafcb;border-radius:18px;background:#102946;color:#f8dd89;box-shadow:inset 0 0 35px #0008}.coupon-window span{font:700 82px Georgia}.coupon-window small{font:8px Courier New,monospace;letter-spacing:3px}.coupon-window>i{position:absolute;margin-top:160px;width:250px;overflow:hidden;white-space:nowrap;font-style:normal;animation:ticket-roll .25s linear infinite}.coupon-lever{position:absolute;right:-58px;top:110px;width:65px;height:230px;background:transparent}.coupon-lever i{position:absolute;left:28px;top:26px;width:13px;height:160px;border-radius:8px;background:#17304d;transform-origin:bottom;box-shadow:inset 4px 0 #8aa8bd}.coupon-lever i:before{content:"";position:absolute;left:-14px;top:-26px;width:42px;height:42px;border-radius:50%;background:#a94354;border:5px solid #d7ac66}.coupon-lever span{position:absolute;right:-20px;bottom:0;white-space:nowrap;font:7px Courier New,monospace;letter-spacing:1px;color:#173e68}.coupon-machine.pulling .coupon-lever i{transform:rotate(150deg);transition:.4s}.ticket-slot{position:absolute;left:73px;right:73px;bottom:35px;height:54px;padding-top:17px;text-align:center;color:#a6bac9;background:#122e51;border:7px solid #789ebd;font:7px Courier New,monospace;letter-spacing:2px}.coupon-counter{min-height:520px;padding:26px;background:#faf5e9;border:1px solid #8095a4;box-shadow:11px 13px #315f8929}.coupon-counter>header{display:flex;justify-content:space-between;padding-bottom:14px;border-bottom:1px dashed #71899a;font:8px Courier New,monospace;letter-spacing:2px}.birthday-ticket{display:grid;grid-template-columns:1fr 105px;min-height:195px;margin:24px 0 16px;position:relative;background:#fff8dc;border:2px solid #a44b5c;box-shadow:6px 7px #c69a51}.birthday-ticket>div{padding:21px}.birthday-ticket small{font:7px Courier New,monospace;letter-spacing:1px}.birthday-ticket>div>i{display:block;margin-top:12px;font-style:normal;font-size:27px;color:#a33f55}.birthday-ticket h2{font:400 25px var(--serif);margin:4px 0 8px}.birthday-ticket p{font-size:11px;line-height:1.7;margin:0}.birthday-ticket>aside{display:grid;place-content:center;text-align:center;border-left:2px dashed #a44b5c}.birthday-ticket>aside b{font:45px Georgia;color:#a33f55}.birthday-ticket>aside span{font:7px Courier New,monospace}.birthday-ticket>em{position:absolute;right:115px;bottom:12px;padding:5px 8px;border:2px solid #a33f55;color:#a33f55;font:8px Courier New,monospace;transform:rotate(-8deg)}.ticket-empty{height:195px;margin:24px 0 16px;display:grid;place-items:center;text-align:center;color:#8294a0;font-size:11px}.stamp-coupon{display:block;margin:0 auto 16px;padding:10px 21px;border:2px solid #9d4053;background:transparent;color:#9d4053;font:9px Courier New,monospace;letter-spacing:1px}.coupon-book{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.coupon-book button{height:60px;padding:6px;background:#e5e8e4;border:1px dashed #81939f;color:#87949c;font-size:7px}.coupon-book button.saved{background:#fffaf0;border-style:solid;color:#173e68}.coupon-book i{display:block;font-style:normal;font-size:16px}.coupon-counter>.play-next{display:block;margin:20px auto 0}@keyframes ticket-roll{to{transform:translate(-35px)}}.booth-chapter{background:linear-gradient(135deg,#dfe8e8,#eadfc9)}.booth-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(370px,520px) minmax(420px,570px);gap:45px;max-width:1120px;margin:auto}.polaroid-stage{min-height:620px;display:grid;place-content:center;position:relative;background:linear-gradient(90deg,#173e6810 1px,transparent 1px),linear-gradient(#173e6810 1px,transparent 1px),#b6cfda;background-size:28px 28px;border:10px solid #f7f1e3;box-shadow:10px 12px #315f8930}.birthday-polaroid{width:350px;padding:17px 17px 28px;background:#fffdf4;box-shadow:0 24px 35px #173e6840;transform:rotate(-2deg)}.booth-photo{height:390px;position:relative;overflow:hidden;background:#fff;touch-action:none}.booth-photo>img{width:100%;height:100%;object-fit:contain}.booth-photo>b{position:absolute;right:13px;bottom:10px;font:700 72px Georgia;color:#fff9;text-shadow:2px 3px #9d4053;pointer-events:none}.photo-sticker{position:absolute;z-index:2;width:88px;height:78px;padding:0;border:0;background-color:transparent;background-image:url(../images/photo-booth/birthday-stickers.png);background-repeat:no-repeat;background-size:400% 300%;background-position:var(--sx) var(--sy);filter:drop-shadow(2px 3px 1px #0003);cursor:grab;touch-action:none}.photo-sticker:active{cursor:grabbing}.birthday-polaroid footer{padding-top:18px;text-align:center}.birthday-polaroid footer strong{display:block;font:italic 22px var(--serif);color:#984355}.birthday-polaroid footer span{font:7px Courier New,monospace;letter-spacing:2px}.print-note{position:absolute;bottom:20px;left:50%;translate:-50%;padding:8px 13px;background:#fff5bd;box-shadow:3px 4px #bd9250;font-size:9px}.booth-controls{padding:27px;background:#fbf6e9;border:1px solid #8095a4;box-shadow:10px 12px #315f8929}.booth-controls section{padding-bottom:22px;margin-bottom:22px;border-bottom:1px dashed #71899a}.booth-controls label{display:block;margin-bottom:13px;font:8px Courier New,monospace;letter-spacing:2px}.drag-tip{margin:-3px 0 14px;font-size:10px;line-height:1.7;color:#667f91}.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.photo-strip button{height:155px;padding:6px;background:#e5e8e4;border:2px solid transparent;color:#173e68}.photo-strip button.selected{border-color:#173e68;box-shadow:3px 4px #c69a51}.photo-strip img{width:100%;height:113px;object-fit:contain;background:#d7dfdf}.photo-strip span{display:block;margin-top:6px;font-size:8px}.sticker-tray{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.sticker-tray button{min-height:100px;padding:6px 4px;background:#e7e9e4;border:2px solid transparent;color:#173e68}.sticker-tray button.selected{border-color:#9b4153;box-shadow:3px 4px #c69a51}.sticker-tray i{display:block;width:62px;height:57px;margin:0 auto 4px;background-image:url(../images/photo-booth/birthday-stickers.png);background-repeat:no-repeat;background-size:400% 300%;background-position:var(--sx) var(--sy)}.sticker-tray span{display:block;font-size:7px;line-height:1.25}.booth-controls>.play-next{width:100%;margin-top:20px}@media(max-width:900px){.lucky-layout,.balloon-layout,.coupon-layout,.booth-layout{grid-template-columns:1fr}.fortune-desk,.wish-field,.coupon-machine,.polaroid-stage{max-width:560px;width:100%;margin:auto}.fortune-result,.wish-control,.coupon-counter,.booth-controls{max-width:620px;width:100%;margin:auto}.coupon-machine{width:min(430px,88vw)}}@media(max-width:520px){.fortune-desk{min-height:430px}.stick-bundle{transform:scale(.82);margin-bottom:-30px}.fortune-result{padding:17px}.fortune-card{padding:25px 18px}.fortune-card h2{font-size:37px}.balloon-layout{gap:18px}.wish-field{height:480px}.wish-balloon{transform:scale(.82)}.wish-control{padding:19px 15px}.balloon-options{grid-template-columns:repeat(2,1fr)}.coupon-layout{gap:30px}.coupon-machine{height:470px;transform:scale(.85);margin-top:-35px;margin-bottom:-35px}.coupon-counter{padding:17px}.birthday-ticket{grid-template-columns:1fr 80px}.birthday-ticket>div{padding:15px}.birthday-ticket h2{font-size:21px}.birthday-ticket>em{right:88px}.coupon-book{grid-template-columns:repeat(2,1fr)}.polaroid-stage{min-height:500px}.birthday-polaroid{width:285px}.booth-photo{height:325px}.booth-controls{padding:18px 14px}.photo-strip button{height:125px}.photo-strip img{height:88px}.sticker-tray{grid-template-columns:repeat(2,1fr)}}.photo-sticker.active{outline:2px dashed #f3c55e;outline-offset:3px}.sticker-size-panel>div{display:grid;grid-template-columns:36px 1fr 36px 48px;align-items:center;gap:8px}.sticker-size-panel button{height:36px;border:1px solid #173e68;background:#fffaf0;color:#173e68;font-size:20px}.sticker-size-panel input{width:100%;accent-color:#9b4153}.sticker-size-panel output{text-align:center;font:9px Courier New,monospace;color:#9b4153}.booth-photo.landscape>img{object-fit:contain}.booth-photo.portrait>img{object-fit:cover}.studio-loading{min-height:100vh;display:grid;place-items:center;background:#e5eef3;color:#204b73;font-size:18px}.storefront,.studio-shell{font-family:system-ui,-apple-system,Microsoft YaHei,sans-serif;color:#173e68;background:#e9f2f5}.storefront header{height:76px;padding:0 max(5%,calc((100vw - 1200px)/2));display:flex;align-items:center;justify-content:space-between;background:#f8f4e9;border-bottom:1px solid #c7d7df}.storefront header strong{font-size:15px;letter-spacing:2px}.storefront nav{display:flex;gap:24px;font-size:14px}.storefront main{max-width:1200px;margin:auto;padding:0 28px}.store-hero{min-height:680px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:8%;padding:75px 0}.store-hero>div:first-child>small,.storefront section>small{font-size:12px;letter-spacing:3px;color:#8c6b4a}.store-hero h1{font-family:"Noto Serif SC",serif;font-size:clamp(42px,5vw,76px);letter-spacing:1px;line-height:1.38;margin:20px 0 24px}.store-hero h1 em{font-weight:400;color:#a25d66}.store-hero p{font-size:16px;line-height:2;max-width:550px;color:#527087}.store-actions{display:flex;align-items:center;gap:26px;margin:32px 0 20px}.store-actions .buy,.demo-link{display:inline-block;background:#173e68;color:#fff;padding:16px 25px;box-shadow:5px 5px #d3a857;font-weight:600}.store-actions .unavailable{background:#8ba1ad;cursor:default}.store-note,.fine-print{color:#738a98;font-size:12px!important}.store-card{height:460px;background:#faf4e6;border:12px solid #fffdf7;box-shadow:18px 22px #d2a75c,0 20px 60px #19436122;transform:rotate(3deg);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:20px}.store-card>span,.store-card>small{font:11px Courier New,monospace;letter-spacing:3px}.store-card>div{font:bold clamp(66px,7vw,110px) Georgia,serif;line-height:.93;color:#173e68}.store-card i{font-size:.65em;font-weight:400;color:#9a5165}.store-card>b{font-size:16px;font-weight:500}.storefront section{padding:70px 0 110px}.storefront section h2{font-size:34px;margin:15px 0 34px}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:35px}.how-grid article{background:#fffdf7;border:1px solid #d4dfdf;padding:28px}.how-grid b{font:30px Georgia;color:#b98b50}.how-grid h3{font-size:19px}.how-grid p{color:#587388;font-size:14px;line-height:1.9}.storefront footer{text-align:center;padding:25px;color:#66849a;border-top:1px solid #c7d7df;font-size:12px}.studio-shell{height:100vh;overflow:hidden}.studio-top{height:70px;background:#143c65;color:#fff;display:flex;align-items:center;gap:25px;padding:0 22px}.studio-top>a{font-size:18px;font-weight:700;letter-spacing:1px}.studio-top>span{flex:1;text-align:center;font-size:12px;color:#bdd0da}.studio-top button,.studio-end button{background:#d8ad63;color:#173e68;padding:12px 20px;font-weight:700;border-radius:2px}.studio-top button:disabled,.studio-end button:disabled{opacity:.6;cursor:wait}.studio-grid{height:calc(100vh - 70px);display:grid;grid-template-columns:minmax(320px,420px) 1fr}.studio-form{overflow:auto;background:#f7f4eb;border-right:1px solid #c9d8db;padding:26px}.studio-intro small{font:11px Courier New,monospace;letter-spacing:2px;color:#a07849}.studio-intro h1{font-family:"Noto Serif SC",serif;font-size:31px;line-height:1.4;letter-spacing:0;margin:14px 0}.studio-intro h1 i{color:#a56370;font-weight:400}.studio-intro p{font-size:13px;line-height:1.8;margin:8px 0;color:#607789}.studio-intro output{display:block;min-height:20px;font-size:12px;color:#4c806e;margin-bottom:18px}.studio-form details{background:#fffdf8;border:1px solid #cbd8dc;margin:0 0 10px}.studio-form summary{cursor:pointer;padding:16px 18px;font-weight:700;font-size:14px;list-style:none}.studio-form summary:after{content:"＋";float:right;color:#9f6d48}.studio-form details[open] summary:after{content:"−"}.field-stack{padding:4px 17px 20px;display:grid;gap:14px}.edit-field,.upload-field{display:grid;gap:6px;font-size:12px;color:#4d6d80}.edit-field input,.edit-field textarea{width:100%;font:14px system-ui,Microsoft YaHei,sans-serif;border:1px solid #b7c9d1;background:#fff;padding:10px 11px;border-radius:3px;color:#173e68;line-height:1.6}.edit-field textarea{resize:vertical;min-height:78px}.edit-field input:focus,.edit-field textarea:focus{outline:2px solid #86acbd}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.upload-field{border:1px dashed #9db5c1;background:#f3f8f8;padding:12px;cursor:pointer}.upload-field input{position:absolute;width:1px;height:1px;opacity:0}.upload-field b{font-size:13px;color:#205982}.upload-field img{width:100%;max-height:130px;object-fit:contain;background:#fff}.chapter-toggle{display:flex;align-items:center;gap:12px;padding:7px 0;font-size:14px}.chapter-toggle input{width:17px;height:17px;accent-color:#245b83}.edit-card{border-top:1px solid #dce4e5;padding-top:13px;display:grid;gap:10px}.edit-card>b{color:#a57348;font-size:12px}.field-stack>h3{margin:12px 0 0;font-size:16px}.studio-end{padding:25px 5px}.studio-end p{font-size:12px;color:#607789}.studio-end button{width:100%}.studio-preview{display:flex;flex-direction:column;min-width:0;background:#dce9ed;padding:15px}.preview-bar{height:42px;display:flex;align-items:center;gap:16px;color:#466b83}.preview-bar span{font:10px Courier New,monospace;letter-spacing:1px}.preview-bar strong{flex:1;font-size:14px}.preview-bar a{font-size:12px;text-decoration:underline}.studio-preview iframe{width:100%;flex:1;border:1px solid #b8cbd2;background:#fff;box-shadow:0 12px 35px #173e6820}.studio-reset{display:block;border:0;background:none;color:#617f92;text-decoration:underline;font-size:12px;cursor:pointer;padding:0 0 12px}.travel-photo-edit{display:grid;gap:7px}.travel-photo-edit>label{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#4d6d80}.travel-photo-edit select{padding:6px 9px;color:#173e68;background:#fff;border:1px solid #b7c9d1;border-radius:3px}.edit-card-head{display:flex;align-items:center;justify-content:space-between}.edit-card-head b{color:#a57348;font-size:12px}.edit-card-head button{border:0;background:none;color:#9b5664;font-size:12px;text-decoration:underline;cursor:pointer}.add-travel-stop{padding:13px;border:1px dashed #6e95ab;background:#ecf5f6;color:#1e587b;font-weight:700;cursor:pointer}.empty-travel-tip{font-size:12px;color:#718795;line-height:1.7;margin:0}@media(max-width:800px){.store-hero{grid-template-columns:1fr;gap:45px}.store-card{height:340px}.how-grid{grid-template-columns:1fr}.studio-top>span{display:none}.studio-top{justify-content:space-between}.studio-grid{grid-template-columns:1fr;grid-template-rows:55vh 45vh}.studio-form{padding:16px}.studio-preview{padding:8px}.preview-bar{height:30px}}.cover-position-controls{display:grid;gap:9px;padding:12px;background:#edf4f6;border:1px solid #bfd2dc;color:#355b73;font-size:12px}.cover-position-controls p{margin:0;line-height:1.6}.cover-position-controls label{display:grid;grid-template-columns:30px 1fr 44px;align-items:center;gap:8px}.cover-position-controls input{width:100%;accent-color:#315d87}.cover-position-controls b{text-align:right;font-weight:500}.cover-position-controls button{justify-self:start;padding:6px 10px;background:#fff;border:1px solid #9fb9c8;color:#315d87;font-size:11px}.studio-top .review-trigger{background:transparent;color:#f5deb5;border:1px solid #d8ad63;padding:10px 13px;white-space:nowrap}.review-panel{margin:0 0 16px;border:1px solid #afc5ce;background:#fffdf8;scroll-margin-top:12px}.review-summary{width:100%;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:14px 16px;background:#e8f2f4;color:#173e68;text-align:left;cursor:pointer}.review-summary span{font-weight:700;font-size:14px}.review-summary strong{font-size:12px;color:#9a5660}.review-summary b{font-size:11px;font-weight:400}.review-list{max-height:265px;overflow:auto;padding:8px 12px 13px;display:grid;gap:5px}.review-list button{display:flex;justify-content:space-between;gap:9px;text-align:left;background:#fff7eb;color:#385d76;border:1px solid #eadccb;padding:9px 11px;font-size:12px;cursor:pointer}.review-list button:hover,.review-list button:focus-visible{border-color:#a76572;background:#fdf0e4}.review-list button span{color:#a76572;white-space:nowrap}.review-list p{font-size:12px;line-height:1.7;color:#4c806e;margin:6px}.review-list .review-download-anyway{justify-content:center;margin-top:8px;background:#e7eef0;border-color:#9bb4c2;color:#315d79;font-weight:700}.photo-adjuster{display:grid;gap:9px;padding:11px;background:#eef5f5;border:1px solid #bcd0d8;color:#355b73}.photo-adjust-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}.photo-adjust-heading button{padding:4px 8px;border:1px solid #9fb9c8;background:#fff;color:#315d87;font-size:11px;cursor:pointer}.photo-adjust-preview{width:100%;height:150px;margin:auto;overflow:hidden;background:#dbe6e7;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.photo-adjust-preview:active{cursor:grabbing}.photo-adjust-preview.portrait{width:min(100%,180px);height:180px}.photo-adjust-preview img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none}.photo-adjust-controls{display:grid;gap:8px}.photo-adjust-controls label{display:grid;grid-template-columns:65px 1fr 45px;align-items:center;gap:7px;font-size:11px}.photo-adjust-controls input{width:100%;accent-color:#315d87}.photo-adjust-controls b{text-align:right;font-weight:500}.photo-adjust-controls select{grid-column:2/4;padding:6px;background:#fff;border:1px solid #b7c9d1;color:#173e68}@media(max-width:800px){.studio-top .review-trigger{font-size:11px;padding:8px}.review-summary{grid-template-columns:1fr auto}.review-summary b{display:none}}.hat-position-controls .hat-visible{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;cursor:pointer}.hat-position-controls .hat-visible input{width:17px;height:17px;accent-color:#315d87}.chapter-help{margin:0 0 4px;color:#5b778b;font-size:12px;line-height:1.7}.preview-bar .preview-open{padding:0;border:0;background:none;color:#466b83;text-decoration:underline;font-size:12px;cursor:pointer}:root{font-family:"Noto Serif SC",Songti SC,SimSun,serif;color:#403831;background:#f7f3eb;font-synthesis:none;--wine:#783742;--muted:#8d8176;--line:#ded5c7;--serif:"Cormorant Garamond",Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23918472' filter='url(%23n)' opacity='.3' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--wine);outline-offset:6px}button{border:0}img{max-width:100%;display:block;object-fit:cover}p{line-height:1.9}::selection{background:#e7d2ca}.site-header{height:90px;display:flex;align-items:center;justify-content:space-between;margin:0 auto;padding:0 6.5%;max-width:1600px;border-bottom:1px solid var(--line)}.brand{font-family:var(--serif);font-style:italic;font-size:24px;display:flex;gap:13px;align-items:center}.brand>span{color:var(--wine);font-size:27px}nav{display:flex;align-items:center;gap:35px}nav>a{font-size:12px;letter-spacing:2px;padding:15px 0}nav>a:hover{color:var(--wine)}.music-button{background:transparent;border:1px solid #cfc1ae;border-radius:50%;width:44px;height:44px;display:grid;place-items:center}.music-button.playing{background:#e8dbcc}.music-control{position:relative}.music-notice{position:absolute;right:0;top:54px;width:245px;padding:15px;background:#fffcf6;box-shadow:0 4px 24px #40383120;font-size:12px;z-index:30;line-height:1.8}.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--wine);transform-origin:left;z-index:50}.hero{position:relative;min-height:calc(100svh - 90px);max-width:1600px;margin:auto;padding:85px 11% 100px;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:65px}.eyebrow{font-family:var(--serif);font-size:12px;letter-spacing:3px;font-weight:500}.hero-copy>.eyebrow{color:var(--wine)}.tiny-star{font-size:24px;vertical-align:middle;margin-right:10px}h1{font-family:var(--serif);font-weight:400;font-size:clamp(78px,8.4vw,138px);line-height:.88;letter-spacing:-5px;margin:34px 0 35px}h1 em{font-weight:400;color:var(--wine)}.dedication{display:flex;align-items:center;gap:19px;font-size:18px;letter-spacing:3px}.hairline{width:32px;height:1px;background:#bda798}.date{font-family:var(--serif);letter-spacing:2px;font-size:13px;color:var(--muted)}.hero-copy h2{font-size:18px;font-weight:400;letter-spacing:2px;margin:30px 0 13px}.hero-description{font-size:13px;white-space:pre-line;color:var(--muted);line-height:2.1}.scroll-link{display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:1.5px;margin-top:43px;width:fit-content}.circle{width:37px;height:37px;border:1px solid #cdbdaa;border-radius:50%;display:grid;place-items:center}.hero-art{position:relative;margin:0 8px 0 0}.photo-mat{background:#fffcf5;padding:14px 14px 0;transform:rotate(5deg);box-shadow:2px 14px 38px #58483318;border:1px solid #eee4d5}.photo-mat>img{width:100%;height:clamp(300px,32vw,470px);filter:saturate(.65) sepia(.13)}.photo-caption{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:66px;font-size:12px;color:#766655;letter-spacing:1px}.tape{position:absolute;width:116px;height:34px;top:-15px;left:calc(50% - 58px);transform:rotate(-8deg);background:#d8c7a878;z-index:1;clip-path:polygon(2% 0,98% 2%,100% 94%,0 100%)}.vertical-note{position:absolute;right:-46px;top:60px;writing-mode:vertical-rl;font-size:9px;letter-spacing:3px;color:var(--muted);font-family:var(--serif)}.love-stamp{position:absolute;left:-44px;bottom:17px;width:100px;height:100px;border-radius:50%;background:#7c3c46;color:#f9efdf;outline:1px dashed #b58686;outline-offset:-7px;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-14deg);box-shadow:0 4px 9px #4c202327}.love-stamp span{font-family:var(--serif);font-size:8px;letter-spacing:2px}.love-stamp b{font-size:34px;font-weight:400;line-height:1.25}.hand-note{font-size:12px;text-align:center;color:#9a8776;letter-spacing:3px;transform:rotate(-3deg);margin:30px 0 0}.hero-bottom{position:absolute;bottom:26px;left:6.5%;right:6.5%;display:flex;justify-content:space-between;font-family:var(--serif);font-size:10px;color:var(--muted);letter-spacing:2px}.section{padding:110px max(7%,calc((100vw - 1140px)/2))}.section-heading{text-align:center;margin-bottom:65px}.section-heading .eyebrow{color:var(--wine)}.section-heading .eyebrow span{margin-right:12px;color:#b19b7e}h2{font-weight:400}.section-heading h2{font-size:29px;letter-spacing:3px;margin:22px 0 16px}.section-heading p{font-size:13px;color:var(--muted);letter-spacing:1px}.memories{background:#f0e9de}.memory-grid{display:grid;grid-template-columns:1.15fr .9fr 1fr;gap:34px;align-items:start}.memory-1{padding-top:95px}.memory-2{padding-top:30px}.memory figure{margin:0 0 25px;padding:10px;background:#fffaf2;box-shadow:0 9px 22px #5046320c;transform:rotate(-2deg)}.memory-1 figure{transform:rotate(3deg)}.memory-2 figure{transform:rotate(-1deg)}.memory-image{position:relative;overflow:hidden}.memory img{aspect-ratio:4/5;width:100%;transition:transform .8s;filter:saturate(.65)}.memory-1 img{aspect-ratio:1/1}.memory figure:hover img{transform:scale(1.03)}figcaption{display:flex;justify-content:space-between;font-size:10px;color:#8c7e6d;padding:16px 3px 7px;font-family:var(--serif);letter-spacing:1px}.memory h3{font-size:17px;font-weight:400;margin:0 0 12px}.memory p{font-size:12px;color:var(--muted);margin:0}.photo-secret{position:absolute;bottom:0;left:0;right:0;padding:26px 12px 12px;color:#fff;background:linear-gradient(transparent,#392d2677);font-size:11px;opacity:0;transition:opacity .5s}.memory figure:hover .photo-secret{opacity:1}.memory-footer{font-family:var(--serif);font-size:10px;letter-spacing:2.4px;color:#9d8c77;text-align:center;margin:70px 0 0}.story{background:#f9f6f0}.timeline{position:relative;max-width:850px;margin:auto}.timeline:before{content:"";position:absolute;top:9px;bottom:50px;left:50%;width:1px;background:var(--line)}.timeline-item{position:relative;display:flex;padding-bottom:50px}.timeline-item.left{justify-content:flex-start;text-align:right}.timeline-item.right{justify-content:flex-end}.timeline-text{width:44%}.timeline-dot{position:absolute;left:calc(50% - 4px);top:5px;background:var(--wine);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 6px #efe7dc}.timeline h3{font-size:18px;font-weight:400;margin:10px 0}.timeline p{font-size:12px;color:var(--muted);margin:0}.small-heart{color:var(--wine)}.things{border-top:1px solid #e9e0d4}.things-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.thing-card{background:#eee5d8;text-align:left;border:1px solid #e4d8c8;width:100%;min-height:238px;padding:24px 19px;display:flex;flex-direction:column;transition:transform .5s,background .6s,color .6s;position:relative}.things-grid>div:nth-child(2n) .thing-card{background:#f2ece3}.thing-card:hover{transform:translateY(-5px)}.thing-number{font-family:var(--serif);font-size:30px;color:#a38b73}.thing-card p{font-size:13px;line-height:2;flex:1}.card-hint{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#948170;gap:6px}.thing-card.is-flipped{background:var(--wine)!important;color:#fff5e8;transform:rotate(-1deg)}.is-flipped .thing-number,.is-flipped .card-hint{color:#dbc4b6}.letter-section{background:#fcfaf5}.envelope{position:relative;max-width:590px;width:100%;min-height:255px;margin:0 auto;display:flex;align-items:center;flex-direction:column;justify-content:space-between;padding:35px;background:linear-gradient(154deg,transparent 49.6%,#d8c8b3 50%,transparent 50.4%),linear-gradient(206deg,#f0e6d6 49.6%,#d8c8b3,#eee3d2 50.4%);box-shadow:0 10px 30px #57422912;border:1px solid #e0d3bf}.envelope-address{font-family:var(--serif);font-style:italic;font-size:23px;align-self:flex-start}.wax-seal{display:grid;place-items:center;width:55px;height:55px;background:var(--wine);color:#eadac6;border-radius:50%;font-size:30px;box-shadow:0 2px 6px #74384633;border:3px double #a8767a}.envelope-action{font-size:12px;letter-spacing:2px;display:flex;gap:22px}.opened .wax-seal{transform:rotate(20deg)}.letter{overflow:hidden;max-width:700px;margin:auto}.letter-inner{padding:55px 20px 0}.letter h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:30px;color:var(--wine)}.letter p{font-size:15px;line-height:2;margin:0 0 25px}.letter .letter-ending{font-size:22px;color:var(--wine);margin:50px 0}.signature{text-align:right}.signature em{font-family:var(--serif);font-size:31px}.signature p{margin:8px 0;font-size:14px}.surprise{text-align:center;background:#eee4d8;padding:85px 24px 24px}.surprise>.eyebrow,.surprise .eyebrow{color:var(--wine)}.surprise h2{font-size:22px;letter-spacing:2px;margin:25px 0 30px}.gift-button{background:var(--wine);color:#fff5e7;padding:17px 25px;display:inline-flex;align-items:center;gap:20px;font-size:12px;letter-spacing:1px;transition:background .3s}.gift-button:hover{background:#5e2932}.gift-result{max-width:500px;margin:45px auto 0}.gift-result h3{font-family:var(--serif);font-weight:400;font-style:italic;font-size:40px;color:var(--wine)}.gift-result img{width:100%;max-height:380px;border:12px solid #fff8ed;box-shadow:0 10px 25px #43331f15;transform:rotate(-2deg)}.gift-result p{margin:35px 0;font-size:15px}.infinity{font-family:var(--serif);font-size:65px;color:var(--wine);margin:10px 0}.surprise footer{border-top:1px solid #d9ccbd;max-width:1140px;margin:80px auto 0;padding-top:25px;font-family:var(--serif);font-style:italic;color:#998673;font-size:14px;letter-spacing:1px}@media(min-width:1600px){.hero{padding-left:175px;padding-right:175px}}@media(max-width:1000px){.hero{padding:65px 8% 90px;gap:45px}h1{font-size:95px}.hero-copy h2{font-size:15px}.things-grid{grid-template-columns:repeat(3,1fr)}.memory-grid{gap:22px}.photo-caption{font-size:10px}.hero-description{font-size:12px}}@media(max-width:650px){.site-header{height:74px;padding:0 6%}.brand{font-size:21px;gap:7px}nav{gap:12px}nav>a{display:none}.music-button{width:44px;height:44px}.hero{min-height:calc(100svh - 74px);display:flex;flex-direction:column;gap:45px;align-items:stretch;padding:42px 9% 76px}.hero-copy>.eyebrow{font-size:9px;letter-spacing:2px;margin:0}h1{font-size:clamp(78px,21vw,115px);letter-spacing:-3px;margin:25px 0}.dedication{font-size:16px;gap:15px}.hero-copy h2{margin-top:23px;font-size:15px;letter-spacing:1px}.hero-description{font-size:12px}.scroll-link{margin-top:23px;font-size:10px}.hero-art{width:78%;align-self:center;margin:0 0 8px 10px}.photo-mat{padding:10px 10px 0}.photo-mat>img{height:auto;aspect-ratio:4/4.6}.photo-caption{min-height:48px;font-size:9px;letter-spacing:0}.love-stamp{width:77px;height:77px;left:-32px;bottom:25px}.love-stamp span{font-size:6px}.love-stamp b{font-size:25px}.vertical-note{font-size:7px;right:-29px;top:35px;letter-spacing:2px}.hand-note{font-size:10px;letter-spacing:1px;margin-top:20px}.hero-bottom{font-size:8px;bottom:22px}.section{padding:70px 8%}.section-heading{margin-bottom:42px}.section-heading h2{font-size:23px;letter-spacing:1px}.section-heading p{font-size:12px}.eyebrow{font-size:10px;letter-spacing:2px}.memory-grid{display:grid;grid-template-columns:1fr;gap:40px}.memory-1,.memory-2{padding-top:0}.memory figure{max-width:100%}.memory img,.memory-1 img{aspect-ratio:5/4}.memory h3{font-size:17px}.memory p{font-size:13px}.memory-footer{font-size:8px;line-height:2.2;margin-top:42px}.timeline:before{left:5px}.timeline-item.left,.timeline-item.right{justify-content:flex-end;text-align:left}.timeline-text{width:calc(100% - 34px)}.timeline-dot{left:1px}.timeline h3{font-size:17px}.timeline p{font-size:13px}.things-grid{grid-template-columns:1fr;gap:15px}.thing-card{min-height:180px;padding:22px 25px}.thing-card p{font-size:15px}.thing-number{font-size:26px}.card-hint{font-size:11px}.envelope{min-height:220px;padding:26px 22px}.envelope-address{font-size:21px}.letter-inner{padding:30px 0 0}.letter p{font-size:15px}.letter .letter-ending{font-size:19px}.surprise{padding:65px 8% 23px}.surprise h2{font-size:18px;line-height:1.8}.gift-result h3{font-size:33px}.gift-result p{font-size:13px}.surprise footer{margin-top:60px}.photo-secret{opacity:1}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}:root{--wine:#264d81;--muted:#738399;--line:#b8c9d6;color:#213e64;background:#e5edf2}body{background:#e5edf2}.site-header{border-bottom:1px solid #aebfce;height:76px;max-width:none;background:#e5edf2}.brand{font-weight:600;font-size:24px}.brand>span{color:#315987}.site-header nav{gap:25px}.site-header nav>a{font-family:Arial,sans-serif;font-size:10px;letter-spacing:1px}.music-button{border-color:#9db0c4}.scrap-cover{padding:22px 24px 32px;position:relative;background-color:#dfeaf1;background-image:linear-gradient(90deg,#fff3 1px,transparent 1px),linear-gradient(#fff3 1px,transparent 1px);background-size:24px 24px;overflow:hidden;text-align:center}.cover-kicker{max-width:1050px;margin:0 auto 23px;display:flex;justify-content:space-between;font:10px Courier New,monospace;letter-spacing:2px}.birthday-poster{width:min(850px,100%);height:715px;margin:auto;position:relative;background:#f6f2e5;box-shadow:0 12px 40px #24476b18;isolation:isolate;border:9px solid #f7f3e8;outline:1px solid #d6d2c7;background-image:radial-gradient(#32497610 .7px,transparent .7px);background-size:5px 5px}.birthday-poster:before,.birthday-poster:after{content:"";position:absolute;top:-19px;width:125px;height:36px;background:repeating-linear-gradient(90deg,#55769755 0,#55769755 8px,#dbe7ef99 8px,#dbe7ef99 16px);opacity:.6;z-index:9}.birthday-poster:before{left:35px;transform:rotate(-14deg)}.birthday-poster:after{right:35px;transform:rotate(11deg)}.poster-topline{display:flex;justify-content:center;align-items:center;gap:22px;font:10px Courier New,monospace;letter-spacing:3px;padding:22px 0 8px}.little-spark{font-size:22px}.ransom-title{position:relative;z-index:4;letter-spacing:0;line-height:1;margin:8px 0 0;font-size:60px;font-family:Georgia,serif;display:flex;align-items:center;justify-content:center;gap:18px}.happy-word{display:flex;gap:5px}.happy-word>span{background:#234775;color:#f7f1dd;display:inline-block;font-size:47px;padding:4px 9px;transform:rotate(-8deg);box-shadow:2px 3px #203a6425}.happy-word>span:nth-child(2){background:#97b6ce;color:#203c66;transform:rotate(7deg);font-family:Arial,sans-serif}.happy-word>span:nth-child(3){background:#ebe1b9;color:#234775;transform:rotate(-3deg)}.happy-word>span:nth-child(4){background:#48668b;transform:rotate(8deg)}.happy-word>span:nth-child(5){background:#bacbd7;color:#234775;transform:rotate(-5deg)}.birthday-word{font-family:var(--serif);font-weight:600;font-style:italic;font-size:70px;transform:rotate(-6deg)}.age-drawing{position:absolute;top:113px;left:50%;transform:translate(-50%) rotate(-6deg);font:700 390px/.98 Georgia,serif;letter-spacing:-25px;color:#628aaf;-webkit-text-stroke:2px #2d547e;text-shadow:3px 2px #f7f2e3,-3px -3px #f7f2e3,6px 5px #9eb7c6;opacity:.87;z-index:0}.photo-cutout{position:absolute;z-index:2;width:310px;height:361px;bottom:115px;left:50%;transform:translate(-50%) rotate(-3deg)}.photo-cutout img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(5px 5px 0 #fdf9ee) drop-shadow(-4px -3px 0 #fdf9ee)}.party-hat{position:absolute;top:-31px;left:47%;width:78px;height:115px;background:repeating-linear-gradient(160deg,#335b8c 0,#335b8c 14px,#a9c6d9 14px,#a9c6d9 28px,#f1e8c9 28px,#f1e8c9 32px);clip-path:polygon(50% 0,100% 100%,0 100%);transform:rotate(12deg);z-index:4}.party-hat:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-bottom:7px solid #234976}.date-ticket{position:absolute;right:24px;top:176px;z-index:3;transform:rotate(9deg);width:161px;padding:17px 8px;background:#bccfdb;border:1px dashed #446387;box-shadow:5px 5px #dce3df}.date-ticket>span{font:10px Courier New,monospace;letter-spacing:2px}.date-ticket strong{display:block;font:italic 42px Georgia,serif;margin:5px 0}.date-ticket small{font-size:9px;display:block;line-height:1.6}.sticker{position:absolute;z-index:3;line-height:1;filter:drop-shadow(3px 3px 0 #f7f1df)}.star-one{font-size:99px;left:45px;top:177px;color:#315581;transform:rotate(-14deg)}.star-two{font-size:67px;right:88px;bottom:152px;color:#7699b7;transform:rotate(12deg)}.star-three{font-size:82px;left:147px;bottom:147px;color:#355578;transform:rotate(15deg)}.star-four{font-size:42px;right:39px;top:354px;color:#314e70}.born-sticker{position:absolute;left:36px;top:347px;z-index:3;width:123px;height:123px;border-radius:50%;border:2px solid #345982;outline:1px solid #345982;outline-offset:-7px;background:#e4dcb8;transform:rotate(-12deg);display:flex;flex-direction:column;justify-content:center;font:11px Courier New,monospace;line-height:1.6}.born-sticker strong{font:37px Georgia,serif}.born-sticker span{font-size:8px;letter-spacing:1px}.handwritten-note{position:absolute;right:21px;top:350px;width:175px;transform:rotate(8deg);font:italic 24px/1.05 var(--serif);z-index:3}.handwritten-note svg{width:88px;display:block;margin-left:12px;transform:rotate(105deg)}.handwritten-note path{fill:none;stroke:#34577e;stroke-width:2}.cake-wrap{position:absolute;width:285px;bottom:29px;left:50%;transform:translate(-50%);z-index:5}.cake-wrap>svg{width:100%;display:block}.candle-button{position:absolute;top:-22px;left:calc(50% - 28px);width:56px;height:82px;padding:0;background:transparent;display:flex;align-items:flex-start;justify-content:center}.candle-flame{display:block;width:16px;height:26px;border-radius:70% 30% 60% 40%;transform:rotate(9deg);background:#efbb50;box-shadow:0 0 16px #f3c966aa,inset 3px -5px #e99337;animation:flicker 1.7s ease-in-out infinite;pointer-events:none}.candle-hit-label{position:absolute;top:14px;left:51px;white-space:nowrap;font-size:11px;background:#234d7c;color:#fff6e4;padding:8px 11px;transform:rotate(-5deg);border-radius:3px}.candle-hit-label:before{content:"";position:absolute;left:-6px;top:10px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:7px solid #234d7c}.is-out .candle-flame{background:#a5bacb;box-shadow:none;opacity:.65;animation:none}.poster-bottom{position:absolute;bottom:9px;left:18px;right:18px;display:flex;justify-content:space-between;font:8px Courier New,monospace;letter-spacing:1.3px}.cover-instruction{font-size:13px;letter-spacing:1px;margin:24px 0 12px}.next-chapter{font-size:11px;letter-spacing:2px;display:inline-flex;align-items:center;gap:20px;min-height:44px}.next-chapter span{font-size:21px}.wish-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#030509;color:#f4f2e8;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:24px;text-align:center;animation:night-in 1.1s ease both}.wish-stars{color:#b8c9de;font-size:33px;margin-bottom:50px;letter-spacing:15px}.wish-eyebrow{font:10px Courier New,monospace;letter-spacing:3px;color:#7e8b9b}.wish-screen h2{font-size:clamp(24px,3vw,39px);font-weight:400;letter-spacing:7px;margin:22px 0}.wish-subtitle{font-size:13px;color:#8993a1;letter-spacing:2px}.wish-screen button{margin-top:45px;border:1px solid #65758a;color:#e5ebf3;background:transparent;min-height:48px;padding:13px 28px;display:flex;gap:35px;align-items:center;font-size:13px;letter-spacing:3px}.wish-screen button:hover{background:#152438}.fireworks-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:90}.blue-footer{text-align:center;padding:30px;font:italic 17px var(--serif);border-top:1px solid var(--line);background:#e3ecf1}.memories{background:#edf1ee}.story,.letter-section{background:#f6f3e8}.things{background:#e4edf2;border-top:0}.things-grid .thing-card,.things-grid>div:nth-child(2n) .thing-card{background:#f6f3e8;border-color:#bbcad5}.thing-number{color:#7c9bb7}.card-hint{color:#75889c}.timeline-dot{box-shadow:0 0 0 6px #e3e9e7}.envelope{background:linear-gradient(154deg,transparent 49.6%,#9baec1 50%,transparent 50.4%),linear-gradient(206deg,#e0e9ed 49.6%,#9baec1,#d8e4ec 50.4%);border-color:#b7c7d0}.wax-seal{border-color:#829ab1}.memory figure{background:#faf7ed}.photo-secret{background:linear-gradient(transparent,#183f6877)}.memory img{filter:none}.memory-footer{color:#6e879d}.letter h3,.letter .letter-ending{color:#264d81}@keyframes flicker{50%{transform:rotate(-7deg) scale(.9,1.1);opacity:.8}}@keyframes night-in{0%{opacity:0}to{opacity:1}}@media(max-width:700px){.site-header{padding:0 5%;height:64px}.site-header .brand{font-size:20px}.site-header nav>a{display:none}.scrap-cover{padding:17px 13px 24px}.cover-kicker{font-size:8px;letter-spacing:1px;margin-bottom:17px}.birthday-poster{height:625px;border-width:6px}.poster-topline{font-size:8px;letter-spacing:1.4px;padding-top:20px;gap:13px}.ransom-title{display:block;margin-top:7px}.happy-word{justify-content:center;gap:5px}.happy-word>span{font-size:35px;padding:3px 9px}.birthday-word{display:block;font-size:52px;margin:6px 0 0;transform:rotate(-6deg)}.age-drawing{font-size:275px;top:160px;letter-spacing:-20px;left:46%}.photo-cutout{width:245px;height:290px;bottom:103px;left:49%}.party-hat{height:85px;width:58px;top:-14px;left:45%}.date-ticket{right:9px;top:187px;width:101px;padding:9px 4px;transform:rotate(8deg)}.date-ticket strong{font-size:28px}.date-ticket>span{font-size:8px}.date-ticket small{font-size:8px}.star-one{left:12px;top:177px;font-size:53px}.star-two{right:12px;bottom:154px;font-size:46px}.star-three{left:13px;bottom:151px;font-size:43px}.star-four{right:16px;top:334px;font-size:29px}.born-sticker{width:75px;height:75px;left:7px;top:291px;font-size:8px}.born-sticker strong{font-size:24px}.born-sticker span{font-size:5px;letter-spacing:0}.handwritten-note{right:3px;top:376px;width:83px;font-size:16px}.handwritten-note svg{width:50px}.cake-wrap{width:242px;bottom:25px}.candle-button{top:-22px}.candle-hit-label{font-size:10px;left:46px;padding:6px 8px}.poster-bottom{left:4px;right:4px;bottom:7px;font-size:5px;letter-spacing:.6px}.birthday-poster:before,.birthday-poster:after{width:75px;height:26px;top:-12px}.birthday-poster:before{left:12px}.birthday-poster:after{right:12px}.cover-instruction{font-size:11px;letter-spacing:0;margin-top:21px}.next-chapter{font-size:10px}.wish-screen h2{letter-spacing:3px;font-size:23px}.wish-eyebrow{font-size:8px;letter-spacing:1.5px}}@media(max-width:350px){.birthday-poster{height:583px}.age-drawing{font-size:240px;top:161px}.photo-cutout{width:217px;height:258px}.date-ticket{width:83px;top:195px}.date-ticket strong{font-size:24px}.born-sticker{width:65px;height:65px}.handwritten-note{top:342px}.cake-wrap{width:221px}.star-two{bottom:140px}.ransom-title .birthday-word{font-size:48px}}.photo-cutout img{object-fit:fill;clip-path:polygon(33% 18%,39% 15%,49% 14%,59% 15%,66% 18%,72% 24%,76% 32%,77% 44%,75% 53%,80% 66%,91% 76%,99% 83%,100% 100%,3% 100%,4% 87%,9% 70%,13% 58%,9% 50%,8% 42%,11% 39%,15% 45%,18% 49%,20% 42%,23% 41%,26% 46%,29% 42%,32% 37%,33% 29%)}.film-chapter{padding:90px 24px 85px;text-align:center;background:radial-gradient(ellipse at 10% 30%,#f5f0e1 0,transparent 65%),linear-gradient(120deg,#e4edf1,#bed5e9);min-height:80svh}.film-heading{margin-bottom:38px}.film-heading>p{font:10px Courier New,monospace;letter-spacing:3px;color:#617d97;margin:0 0 20px}.film-heading h2{font-size:28px;font-weight:400;letter-spacing:3px;margin:0 0 18px}.film-heading>span{font-size:12px;color:#688198;line-height:1.9}.album-tabs{display:flex;justify-content:center;gap:10px;margin-bottom:30px;flex-wrap:wrap}.album-tabs button{font-size:11px;min-height:44px;padding:10px 21px;border:1px solid #8da9c0;background:transparent;border-radius:30px}.album-tabs button[aria-pressed=true]{background:#2e537e;color:#fff9ef;border-color:#2e537e}.flip-photo-grid{max-width:565px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.flip-photo{padding:0;background:transparent;aspect-ratio:4/4.65;perspective:1000px}.photo-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s}.revealed .photo-inner{transform:rotateY(180deg)}.photo-front,.photo-back{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:7px solid #faf9f1;border-bottom-width:24px;box-shadow:0 6px 14px #34557017;border-radius:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#a6bfd1}.photo-front{background:linear-gradient(130deg,#cbd8df,#a4bdd0);color:#2d5177}.photo-index{position:absolute;top:12px;left:10px;font:8px Courier New,monospace;letter-spacing:1px}.photo-star{font-size:26px;margin-bottom:10px}.photo-front strong{font-weight:400;font-size:13px;letter-spacing:2px}.photo-front small{font-size:8px;letter-spacing:1px;margin-top:8px;opacity:.7}.photo-back{transform:rotateY(180deg);background:#fff}.photo-back img{width:100%;height:100%;object-fit:cover}.photo-back>span{position:absolute;bottom:-20px;font-size:9px;letter-spacing:0;white-space:nowrap;color:#556c82}.sample-note{font-size:10px;color:#748a9e;margin:24px 0 0}.chapter-continue{display:inline-flex;align-items:center;gap:30px;border-radius:30px;background:#305984;color:#fff9ee;min-height:46px;padding:12px 25px;margin-top:33px;font:10px Courier New,monospace;letter-spacing:2px}.chapter-continue:hover{background:#204366}.words-chapter{background:linear-gradient(125deg,#e7e9df,#c2d8e9)}.question-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:800px;margin:auto}.question-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:260px;position:relative;background:#f7fbf6a8;box-shadow:0 7px 23px #3556760d;border:1px solid #f5f7efbb;border-radius:12px;padding:30px 24px;transition:background .5s,transform .5s;color:#284a6f}.question-card:hover{transform:translateY(-4px)}.question-index{font:9px Courier New,monospace;letter-spacing:3px;color:#7a93a6;margin-bottom:22px}.question-copy{font-size:14px;line-height:2}.question-hint{position:absolute;bottom:18px;left:22px;right:22px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:#8299aa}.question-card.answered{background:#2e567e;color:#f6f4e8}.answered .question-index,.answered .question-hint{color:#adc8df}.final-chapter{background:radial-gradient(ellipse at 20% 20%,#f4eddd,transparent 60%),linear-gradient(130deg,#d5e3e9,#adcce3);min-height:85svh}.present{position:relative;width:220px;height:225px;margin:40px auto 8px;background:none;display:block;perspective:600px}.present-body{position:absolute;width:180px;height:145px;bottom:0;left:20px;background:linear-gradient(90deg,#668eb4 0,#668eb4 40%,#eee2ba 40%,#eee2ba 59%,#668eb4 59%);box-shadow:14px 12px #315c8133;transform:rotate(-4deg);display:grid;place-items:center;border:1px solid #5d83a4}.present-body>span{position:absolute;right:8px;top:35px;transform:rotate(12deg);font:8px Courier New,monospace;letter-spacing:1px;background:#f3ecda;padding:13px 6px;border:1px solid #d9cfb9}.present-lid{position:absolute;top:64px;left:12px;width:198px;height:35px;background:linear-gradient(90deg,#436d98 0,#436d98 41%,#e9ddb6 41%,#e9ddb6 59%,#436d98 59%);z-index:2;box-shadow:0 6px #20456825;transform:rotate(-4deg);transition:transform .9s,opacity .9s}.present-bow{position:absolute;left:61px;top:14px;width:106px;height:62px;z-index:3;transition:transform .9s,opacity .9s}.present-bow:before,.present-bow:after{content:"";position:absolute;border:8px solid #e3d4a5;width:50px;height:37px;top:9px;left:0;border-radius:50% 50% 0;transform:rotate(20deg)}.present-bow:after{left:44px;transform:rotate(70deg)}.present-open .present-lid{transform:translateY(-65px) rotate(-20deg);opacity:.45}.present-open .present-bow{transform:translate(-15px,-70px) rotate(-15deg);opacity:.45}.gift-tap{font-size:12px;letter-spacing:3px;color:#567691;margin-top:28px}.gift-letter{max-width:670px;margin:45px auto 0}.gift-letter article{padding:45px 50px;background:#fcf9ed;box-shadow:0 12px 35px #25456512;text-align:left;position:relative;border-top:4px solid #7396b6}.gift-letter h3{font:italic 30px var(--serif);margin-top:0}.gift-letter article p{font-size:14px;line-height:2.1;margin:0 0 22px}.gift-letter-star{position:absolute;right:35px;top:30px;font-size:29px;color:#829eb8}.gift-letter .gift-ending{font-size:20px;color:#254f7a;margin-top:38px}.gift-signature{text-align:right}.gift-signature em{font:italic 28px var(--serif)}.gift-signature p{margin:5px 0!important}.ending-mark{font:60px var(--serif);margin-top:45px;color:#41658b}.ending-line{font:8px Courier New,monospace;letter-spacing:3px;color:#68839c}.photo-front,.photo-back{pointer-events:none}.question-card{touch-action:manipulation}@media(max-width:650px){.film-chapter{padding:65px 20px}.film-heading h2{font-size:21px;letter-spacing:1px}.film-heading>p{font-size:8px;letter-spacing:1.7px}.film-heading>span{font-size:11px}.flip-photo-grid{gap:10px;max-width:420px}.photo-front,.photo-back{border-width:5px;border-bottom-width:21px}.photo-index{font-size:6px;top:7px;left:5px}.photo-front strong{font-size:10px;letter-spacing:1px}.photo-front small{font-size:6px;letter-spacing:0}.photo-star{font-size:20px;margin-bottom:5px}.photo-back>span{font-size:7px;bottom:-17px}.album-tabs{gap:7px}.album-tabs button{font-size:10px;padding:9px 12px}.question-grid{grid-template-columns:repeat(2,1fr);gap:12px}.question-card{min-height:228px;padding:28px 17px}.question-copy{font-size:12px}.question-index{font-size:8px;letter-spacing:2px}.question-hint{font-size:8px;left:15px;right:15px}.gift-letter article{padding:35px 23px}.gift-letter article p{font-size:14px}.gift-letter .gift-ending{font-size:18px}}@media(prefers-reduced-motion:reduce){.photo-inner{transition:none}.wish-screen,.candle-flame{animation:none}}.photo-cutout img{clip-path:none;-webkit-mask:url(../images/childhood-mask.svg) center/100% 100% no-repeat;mask:url(../images/childhood-mask.svg) center/100% 100% no-repeat;filter:none}.photo-cutout{filter:drop-shadow(1px 1px 1px #39567418)}.journey-header{height:66px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:#e4edf2;border-bottom:1px solid #bfced8}.journey-header .brand{background:none;font:italic 21px var(--serif);padding:8px 0}.journey-header>div{display:flex;gap:20px;align-items:center}.back-stage{font-size:11px;background:none;min-height:44px}.journey-progress{position:fixed;left:0;top:0;height:2px;background:#2a557f;z-index:80;transition:width .4s}.journey-scene{min-height:calc(100svh - 66px);padding:70px 24px 80px;text-align:center;background:radial-gradient(ellipse at 0 20%,#f1ebda 0,transparent 65%),linear-gradient(115deg,#dde8e9,#bbd5e9);animation:scene-in .65s ease}.journey-title{margin:0 auto 40px}.journey-title>p,.journey-eyebrow{font:10px Courier New,monospace;letter-spacing:3px;color:#6f879a}.journey-title h2{font-size:27px;font-weight:400;letter-spacing:3px;margin:20px 0 14px}.journey-title h2:empty{display:none}.journey-title>span{font-size:12px;letter-spacing:1px;color:#6c8296}.journey-scene .chapter-continue{border:0}.tiny-question{max-width:480px;margin:0 auto;min-height:65svh;text-align:left;padding-top:15px}.tiny-question>.journey-eyebrow{text-align:center;margin-bottom:40px}.question-bubble{font-size:14px;display:table;background:#fffcf5;border-radius:20px 20px 20px 3px;padding:17px 20px;max-width:90%;line-height:1.7}.reply-bubble{display:table;margin:25px 0 28px auto;font-size:12px;background:#bdcfe0aa;padding:12px 17px;border-radius:15px 15px 3px;color:#59768f}.tiny-question form{display:flex;gap:12px;align-items:center}.tiny-question textarea{resize:vertical;width:100%;min-height:93px;max-height:300px;border:1px solid #d2dee6;background:#fffefa;border-radius:13px;padding:17px;font:15px/1.7 inherit;color:#24476e;box-shadow:0 6px 15px #34516b0b}.tiny-question form>button{flex:0 0 77px;width:77px;height:77px;border-radius:50%;background:#3c668e;color:#fffaed;font-size:13px}.tiny-question form>button:hover{background:#274c75}.answer-error{font-size:12px;color:#80504a;min-height:24px}.tiny-question textarea:focus,.unlock-card input:focus{outline:2px solid #7a9fbe;outline-offset:3px}.travel-book{max-width:610px;margin:auto;text-align:left;position:relative;border-left:1px solid #8faec6;padding-left:30px}.travel-book article{background:#ffffff70;padding:25px;margin-bottom:25px;border-radius:8px;position:relative}.travel-book article:before{content:"";position:absolute;left:-35px;top:30px;width:9px;height:9px;background:#5b84a8;border-radius:50%;box-shadow:0 0 0 5px #d8e5e9}.travel-date{font:10px Courier New,monospace;letter-spacing:2px}.travel-book h3{font-weight:400;font-size:22px;margin:12px 0 20px}.travel-book img{aspect-ratio:16/9;width:100%;border-radius:5px}.travel-book p{font-size:12px;color:#6d8192}.unlock-card{max-width:370px;background:#ffffff78;margin:0 auto;padding:34px 30px;border-radius:15px;box-shadow:0 9px 25px #536e8910}.unlock-card>label{display:block;font-size:19px;margin-bottom:25px}.unlock-card input{display:block;width:100%;border:1px solid #d9e3e8;border-radius:12px;padding:14px;background:#fffdfa;font-size:15px;color:#2b4c70}.unlock-result{font-size:12px;color:#486f93;min-height:20px;letter-spacing:3px}.unlock-card .chapter-continue{margin-top:6px}.answer-hint{max-width:370px;margin:22px auto;color:#72879a;font-size:11px;line-height:1.9}.answer-hint summary{cursor:pointer;min-height:44px;padding:12px}.festival-carousel{display:flex;justify-content:center;align-items:center;gap:30px;margin:auto}.festival-carousel>button:not(.festival-poster){background:transparent;font:35px var(--serif);width:44px;height:55px;color:#597796}.festival-poster{padding:0;width:295px;perspective:900px;background:none;transform:rotate(-2deg);transition:transform .6s;border-radius:12px;overflow:hidden;box-shadow:0 15px 30px #2d476c20}.festival-poster:hover{transform:rotate(2deg)}.poster-art{height:310px;background:#1b355e;display:flex;flex-direction:column;align-items:center;justify-content:space-between;color:#f1e4bd;padding:24px 10px;position:relative;overflow:hidden}.poster-art>small{font:8px Courier New,monospace;letter-spacing:2px;z-index:2}.poster-art>b{font:700 49px Georgia,serif;z-index:2;letter-spacing:-2px}.poster-art>em{font:9px Courier New,monospace;letter-spacing:2px;z-index:2}.record-disc{position:absolute;top:99px;width:175px;height:175px;background:repeating-radial-gradient(circle,#192131 0,#192131 4px,#3f4b61 5px,#192131 7px);border-radius:50%;border:2px solid #6f8099;box-shadow:0 0 0 24px #44608730}.record-disc:after{content:"✦";position:absolute;top:58px;right:58px;bottom:58px;left:58px;background:#a8c7da;color:#234c70;display:grid;place-items:center;border-radius:50%;font-size:30px}.poster-art-1{background:#26314b;color:#bed8e9}.poster-art-2{background:#99b9d2;color:#203a64}.poster-caption{display:block;background:#fffdf4;padding:19px 10px;font-size:19px;letter-spacing:2px}.poster-caption small{display:block;font:8px Courier New,monospace;margin-top:8px;color:#7990a3}.poster-dots{display:flex;justify-content:center;gap:8px;margin-top:23px}.poster-dots button{width:26px;height:26px;border-radius:50%;background:radial-gradient(circle,#a2b9ca 3px,transparent 4px)}.poster-dots button[aria-pressed=true]{background:radial-gradient(circle,#315c84 4px,transparent 5px)}.magic-doors{display:flex;justify-content:center;gap:30px;margin:55px auto 25px}.magic-door{width:145px;height:245px;border-radius:90px 90px 3px 3px;background:linear-gradient(#192b58,#597dab);color:#f8f0d9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;box-shadow:8px 10px #6388aa20;position:relative;transform-origin:left;transition:transform .7s}.magic-door:before{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border:1px solid #c3d6e444;border-radius:90px 90px 0 0}.magic-door:after{content:"";position:absolute;right:14px;top:145px;width:7px;height:7px;border-radius:50%;background:#ead7a0}.magic-door:hover{transform:perspective(700px) rotateY(-10deg)}.magic-door span{font-size:37px}.magic-door strong{font-size:15px;font-weight:400;letter-spacing:3px}.magic-door small{font:italic 11px var(--serif)}.magic-door.door-1{background:linear-gradient(#628cab,#d7ccb1);color:#25476e}.park-gallery{display:grid;grid-template-columns:repeat(3,1fr);max-width:580px;margin:auto;gap:13px}.park-gallery img{width:100%;aspect-ratio:1;border-radius:7px}.plain-button{display:block;margin:20px auto;background:transparent;min-height:44px;padding:10px 20px;font-size:12px;color:#486d8c}.food-illustration{font-size:65px;display:block;margin-bottom:20px}.food-grid .question-card.answered{background:#f8f5e9;color:#294f75}.food-grid .question-copy{font-size:19px}.answer-summary{max-width:620px;margin:auto;display:grid;gap:17px;text-align:left}.answer-summary article{background:#ffffff78;border-radius:17px;padding:24px 28px}.answer-summary p{font-size:12px;margin:0 0 15px;color:#57738d}.answer-summary strong{font-size:15px;font-weight:400;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.answer-summary button{display:block;margin:14px 0 0 auto;background:transparent;font-size:10px;color:#6d8ca7;min-height:35px}.last-gift-card{max-width:480px;margin:60px auto 15px;padding:45px 25px;background:#fffaf0;box-shadow:0 12px 25px #4a6b8520;border-radius:8px}.last-gift-card>span{font-size:30px;color:#7495b1}.last-gift-card h2{font-size:24px;line-height:1.8}.last-gift-card p{font-size:13px;color:#6e8394}.chapter-map-trigger{position:fixed;right:23px;bottom:23px;width:48px;height:48px;border-radius:50%;background:#fffdf4dd;color:#355f89;font-size:25px;z-index:80;box-shadow:0 3px 15px #254d7020}.map-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#15284166;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:110}.chapter-map{position:absolute;inset:0 auto 0 0;width:min(315px,87vw);background:#f6f6ef;padding:35px 25px;overflow:auto;animation:map-in .4s ease}.chapter-map h2{font-size:19px;margin:10px 0 22px}.chapter-map>p{font:9px Courier New,monospace;letter-spacing:2px;color:#8297a8;margin-bottom:20px}.chapter-map>button:not(.map-close){display:flex;align-items:center;gap:20px;width:100%;min-height:50px;background:transparent;text-align:left;font-size:13px}.chapter-map>button>span{font:10px Courier New,monospace;color:#9bafbd}.chapter-map>button[aria-current]{color:#2a628f;background:#e4edf2}.chapter-map .map-close{position:absolute;right:14px;top:20px;width:44px;height:44px;border-radius:50%;font-size:24px;background:transparent}.save-warning{position:fixed;bottom:0;left:0;padding:12px;background:#fff;font-size:11px;z-index:95}.scrap-cover .next-chapter{background:transparent}.scene-14{padding-top:105px}.journey-scene .question-card{min-height:260px}@keyframes scene-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes map-in{0%{transform:translate(-100%)}to{transform:none}}@media(max-width:650px){.journey-header{padding:0 18px;height:64px}.journey-header .brand{font-size:18px}.journey-header>div{gap:10px}.back-stage{font-size:10px}.journey-scene{padding:55px 20px 85px;min-height:calc(100svh - 64px)}.journey-title h2{font-size:22px;letter-spacing:1px}.journey-title>p{font-size:8px;letter-spacing:2px}.journey-title>span{font-size:11px}.tiny-question{padding-top:15px}.tiny-question>.journey-eyebrow{font-size:8px;letter-spacing:2px}.question-bubble{font-size:13px}.tiny-question form{gap:9px}.tiny-question form>button{width:60px;height:60px;flex-basis:60px}.reply-bubble{font-size:11px}.travel-book{padding-left:18px}.travel-book article{padding:16px}.travel-book article:before{left:-23px}.festival-carousel{gap:4px}.festival-poster{width:235px;max-width:calc(100vw - 102px)}.poster-art{height:270px}.poster-art>b{font-size:38px}.poster-caption{font-size:17px}.festival-carousel>button:not(.festival-poster){width:30px}.magic-doors{gap:20px}.magic-door{width:125px;height:225px}.park-gallery{gap:8px}.journey-scene .question-card{min-height:220px}.food-grid .question-copy{font-size:15px}.answer-summary article{padding:20px}.answer-summary strong{font-size:14px}.chapter-map-trigger{width:44px;height:44px;right:16px;bottom:16px}.unlock-card{padding:29px 20px}.unlock-card>label{font-size:17px}.last-gift-card h2{font-size:20px}}.food-grid .question-card.answered{padding:0 0 15px;overflow:hidden;justify-content:flex-start}.food-photo{width:100%;height:210px;object-fit:cover;margin-bottom:14px}.food-grid .answered .question-copy{font-size:12px;padding:0 12px}.clear-answers{font-size:10px;color:#7f8f9f}.journey-scene textarea{font-family:inherit}.journey-scene .gift-letter{margin-bottom:30px}@media(max-width:650px){.food-photo{height:175px}}.photo-cutout img{filter:sepia(.22) saturate(.78) contrast(1.12) brightness(.97) hue-rotate(-3deg);mix-blend-mode:multiply}.photo-cutout:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;-webkit-mask:url(../images/childhood-mask.svg) center/100% 100% no-repeat;mask:url(../images/childhood-mask.svg) center/100% 100% no-repeat;background:radial-gradient(circle at 30% 20%,#f6ddae22,transparent 45%),repeating-linear-gradient(0deg,#243a5306 0 1px,transparent 1px 3px);mix-blend-mode:multiply}.cover-collage>span{position:absolute;z-index:2}.cover-balloon{width:62px;height:76px;border:3px solid #234f7c;border-radius:52% 48% 48% 50%;display:grid;place-items:center;font:700 21px Georgia,serif;background:#d9ad61;color:#284c71;filter:drop-shadow(3px 4px 0 #eee3c6)}.cover-balloon:before{content:"";position:absolute;bottom:-8px;border-left:7px solid transparent;border-right:7px solid transparent;border-top:10px solid #234f7c}.cover-balloon i{position:absolute;top:82px;height:72px;width:1px;background:#335d85;transform:rotate(-12deg)}.balloon-a{left:26px;top:88px;transform:rotate(-12deg)}.balloon-b{right:31px;top:89px;transform:rotate(13deg);background:#a9c7d8}.cover-car{right:32px;top:463px;width:125px;height:39px;border-radius:55% 70% 20% 18%;background:#315b88;transform:rotate(-9deg);border:3px solid #1d4169;box-shadow:4px 5px #d5aa60;z-index:3!important}.cover-car:before{content:"";position:absolute;left:22px;top:-27px;width:67px;height:35px;background:#7da1bd;border:3px solid #1d4169;clip-path:polygon(20% 0,85% 0,100% 100%,0 100%)}.cover-car:after{content:"";position:absolute;left:50px;top:-23px;width:3px;height:32px;background:#1d4169;transform:rotate(-6deg)}.cover-car i,.cover-car b{position:absolute;bottom:-12px;width:24px;height:24px;border-radius:50%;background:#243b58;border:5px double #d7bd83}.cover-car i{left:15px}.cover-car b{right:14px}.cover-car em{position:absolute;left:12px;top:10px;width:22px;height:7px;border-radius:50%;background:#e8d89f}.cover-flag{left:22px;top:266px;background:#a9c5d5;padding:12px 14px;transform:rotate(-8deg);font:8px Courier New,monospace;letter-spacing:2px;color:#1f466e;border:1px dashed #365f86;box-shadow:4px 4px #d1ad69}.cover-flag b{font:19px Georgia,serif}.cover-ribbon{right:18px;bottom:76px;background:#d4ac65;color:#173e68;padding:8px 13px;font:8px Courier New,monospace;letter-spacing:1.5px;transform:rotate(7deg);box-shadow:3px 3px #557796}.cover-confetti{font-size:17px;color:#b68840}.c1{left:187px;top:176px;transform:rotate(20deg)}.c2{right:179px;top:261px}.c3{left:181px;bottom:65px;font-size:10px!important}.city-route{position:relative;max-width:860px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.route-line{position:absolute;left:8%;right:8%;top:53px;height:2px;background:repeating-linear-gradient(90deg,#567c9d 0 6px,transparent 6px 12px);z-index:0}.city-stop{position:relative;min-height:205px;padding:28px 15px 20px;background:#f8f5e9;border:1px solid #c6d1d7;box-shadow:6px 7px #6f92af22;display:flex;flex-direction:column;align-items:center;color:#234b74;transition:transform .45s,box-shadow .45s;z-index:1;overflow:visible}.city-stop:nth-of-type(2n){transform:rotate(1.3deg)}.city-stop:nth-of-type(odd){transform:rotate(-1.3deg)}.city-stop:hover,.city-stop.city-open{transform:translateY(-7px) rotate(0);box-shadow:9px 13px #527da733}.city-pin{width:51px;height:51px;border-radius:50%;display:grid;place-items:center;background:#365f88;color:#f8f1dd;font-size:21px;margin-bottom:12px;border:5px double #d9c693}.city-no{position:absolute;top:8px;left:9px;font:8px Courier New,monospace}.city-stop>strong{font-size:21px;font-weight:400;letter-spacing:4px}.city-stop>small{font:8px Courier New,monospace;letter-spacing:1px;margin-top:9px}.city-more{font-size:9px;color:#7690a5;margin-top:auto;padding-top:16px}.city-memory{position:absolute;top:calc(100% + 10px);left:0;width:calc(200% + 22px);background:#fffdf4;padding:12px;box-shadow:0 12px 28px #2748672c;z-index:8;text-align:left;border:1px solid #b8c9d4;display:grid;grid-template-columns:120px 1fr;gap:15px;overflow:hidden}.city-stop:nth-child(4n+3) .city-memory,.city-stop:nth-child(4n+4) .city-memory{left:auto;right:0}.city-memory img{width:120px;height:90px;object-fit:cover}.city-memory>span{font-size:11px;line-height:1.9}.city-memory b{display:block;font:9px Courier New,monospace;letter-spacing:2px;margin-bottom:7px}.concert-decor{display:flex;align-items:center;justify-content:center;gap:25px;margin:-10px auto 25px;color:#315d87}.concert-decor span{border:1px dashed #4d779d;padding:9px 14px;background:#f3ecd7;transform:rotate(-4deg);font:8px Courier New,monospace;letter-spacing:2px}.concert-decor span:last-child{transform:rotate(5deg)}.concert-decor b{font-size:27px}.single-door-stage{position:relative;width:280px;height:310px;margin:30px auto 8px;display:grid;place-items:center}.single-magic-door{width:165px;height:270px;z-index:3;transition:transform .72s cubic-bezier(.2,.8,.2,1),opacity .72s;transform-origin:left}.single-magic-door.door-opening{transform:perspective(650px) rotateY(-82deg);opacity:.35}.door-light{position:absolute;width:150px;height:250px;border-radius:80px 80px 0 0;background:radial-gradient(ellipse,#fffbd7,#a9d5ef 60%,transparent 70%);opacity:.72}.door-note{position:absolute;background:#eee2bc;border:1px solid #476b8b;padding:12px;font:9px Courier New,monospace;letter-spacing:2px;z-index:4;box-shadow:3px 3px #6f8ca6}.note-a{left:-15px;top:60px;transform:rotate(-12deg)}.note-b{right:-3px;bottom:57px;transform:rotate(9deg)}.door-instruction{font-size:11px;color:#69839a;letter-spacing:1px}.single-magic-door:hover{transform:perspective(650px) rotateY(-10deg) translateY(-3px)}.single-magic-door.door-opening:hover{transform:perspective(650px) rotateY(-82deg)}@media(max-width:700px){.cover-balloon{width:42px;height:51px;font-size:14px;border-width:2px}.cover-balloon i{top:55px;height:38px}.balloon-a{left:5px;top:77px}.balloon-b{right:7px;top:75px}.cover-flag{left:3px;top:247px;padding:7px}.cover-flag b{font-size:13px}.cover-car{right:7px;top:407px;transform:rotate(-9deg) scale(.68);transform-origin:right}.cover-ribbon{right:2px;bottom:62px;font-size:5px;padding:5px}.cover-confetti.c1{left:76px;top:145px}.cover-confetti.c2{right:69px;top:252px}.cover-confetti.c3{left:62px;bottom:64px}.city-route{grid-template-columns:repeat(2,1fr);gap:16px 12px}.route-line{top:47px}.city-stop{min-height:185px;padding:22px 10px 17px}.city-pin{width:45px;height:45px}.city-stop>strong{font-size:18px}.city-memory{position:fixed;top:auto;bottom:70px;left:20px!important;right:20px!important;width:auto;grid-template-columns:90px 1fr;z-index:70;text-align:left}.city-memory img{width:90px;height:82px}.city-memory:after{content:"轻触城市收起";position:absolute;right:7px;top:5px;font-size:7px;color:#8192a0}.single-door-stage{width:250px}.note-a{left:0}.note-b{right:0}}@media(max-width:350px){.city-memory{left:10px!important;right:10px!important}.cover-car{display:none}}.city-stop.city-open{z-index:12}@media(max-width:700px){.city-memory{position:absolute;top:calc(100% + 8px);bottom:auto;left:0!important;right:auto!important;width:calc(200% + 12px)}.city-stop:nth-of-type(2n) .city-memory{left:auto!important;right:0!important}}.reference-stickers svg{position:absolute;z-index:2;filter:drop-shadow(3px 4px 0 #f3e8cc) drop-shadow(0 1px 1px #173c5930)}.sticker-bouquet{width:75px;left:178px;top:285px;transform:rotate(-12deg)}.sticker-gift{width:72px;right:170px;top:325px;transform:rotate(8deg)}.sticker-lips{width:68px;left:176px;bottom:88px;transform:rotate(-9deg)}.sticker-fingerprint{width:55px;right:185px;bottom:75px;transform:rotate(10deg)}.sticker-dog{width:100px;right:14px;top:385px;transform:rotate(7deg)}.reference-stickers svg:hover{transform:rotate(0) scale(1.06);transition:transform .35s}.travel-stickers{height:128px;max-width:900px;margin:-5px auto 30px;position:relative}.travel-stickers svg{position:absolute;filter:drop-shadow(3px 4px 0 #e9e4d3);transition:transform .4s;z-index:2}.travel-stickers svg:hover{transform:translateY(-5px) rotate(0) scale(1.05)}.travel-passport{width:58px;left:2%;top:8px;transform:rotate(-10deg)}.travel-camera{width:83px;left:15%;top:28px;transform:rotate(6deg)}.travel-suitcase{width:81px;left:29%;top:4px;transform:rotate(-5deg)}.travel-plane{width:118px;left:43%;top:28px;transform:rotate(4deg);animation:plane-float 3s ease-in-out infinite}.travel-ticket{width:116px;left:58%;top:30px;transform:rotate(-6deg)}.travel-compass{width:69px;right:18%;top:10px;transform:rotate(9deg)}.travel-map{width:103px;right:5%;top:35px;transform:rotate(5deg)}.travel-sign{width:61px;right:-2%;top:-8px;transform:rotate(5deg)}.travel-route{position:absolute;left:40%;top:100px;font:15px Courier New,monospace;letter-spacing:6px;color:#64849d;white-space:nowrap}@keyframes plane-float{50%{transform:translate(5px,-5px) rotate(1deg)}}@media(max-width:700px){.reference-stickers .sticker-bouquet{width:43px;left:5px;top:335px}.reference-stickers .sticker-gift{width:43px;right:6px;top:342px}.reference-stickers .sticker-lips{width:42px;left:9px;bottom:82px}.reference-stickers .sticker-fingerprint{width:38px;right:10px;bottom:78px}.reference-stickers .sticker-dog{width:56px;right:4px;top:418px}.travel-stickers{height:96px;margin-top:-15px;overflow:hidden}.travel-stickers svg{transform:scale(.75)}.travel-passport{left:-6px}.travel-camera{left:10%}.travel-suitcase{left:25%}.travel-plane{left:38%;width:95px}.travel-ticket{left:56%;width:90px}.travel-compass{right:12%}.travel-map{right:-4%;width:83px}.travel-sign{display:none}.travel-route{left:28%;top:77px;font-size:11px}}@media(prefers-reduced-motion:reduce){.travel-plane{animation:none}}:root{--ink:#173e68;--ink-2:#315f89;--powder:#c8dce8;--paper:#f8f2e4;--paper-2:#eee4cd;--gold:#c99b4e;--red:#944851}body{overflow-x:hidden;background:#dbe8ee;color:var(--ink)}.journey-header{background:#eaf1f2e8;border-bottom:1px solid #173e6822;-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);box-shadow:0 7px 30px #1b416610}.journey-header .brand span{color:var(--ink)}.chapter-status{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;color:#426885}.chapter-status span{font:9px Courier New,monospace;letter-spacing:2px;padding-right:12px;border-right:1px solid #52728b55}.chapter-status b{font-size:11px;font-weight:400;letter-spacing:2px}.journey-rail{position:fixed;z-index:71;top:65px;left:0;right:0;height:10px;display:flex;gap:3px;padding:0 3px;background:#eaf1f2cc}.journey-rail i{height:3px;flex:1;margin-top:2px;background:#8ca9bb40;transition:background .5s,transform .5s}.journey-rail i.passed{background:var(--ink-2);transform:scaleY(1.45)}.journey-progress{height:3px;background:linear-gradient(90deg,var(--gold),var(--ink-2));z-index:90}.journey-scene{position:relative;padding-top:88px;background:radial-gradient(circle at 8% 16%,#fff9e7bb 0 10%,transparent 24%),radial-gradient(circle at 94% 80%,#aacbdf88 0 9%,transparent 23%),linear-gradient(120deg,#e6eef0,#bfd7e6);overflow:hidden}.journey-scene:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.13;background-image:radial-gradient(#173e68 1px,transparent 1px);background-size:13px 13px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 38%);mask-image:linear-gradient(to bottom,#000,transparent 38%)}.journey-scene>*{position:relative;z-index:1}.journey-title{max-width:760px}.journey-title>p{display:inline-flex;align-items:center;gap:12px;color:var(--ink);padding:7px 12px;border:1px solid #173e6830;background:#f9f1dfaa;transform:rotate(-1deg)}.journey-title>p:before{content:"✦";color:var(--gold)}.journey-title h2{font-size:clamp(27px,3vw,43px);font-family:var(--serif);letter-spacing:2px;color:var(--ink);text-shadow:0 2px #fff8e7}.journey-title>span{display:block;max-width:560px;margin:auto;line-height:2;color:#4f6c82}.chapter-continue,.next-chapter{position:relative;overflow:hidden;background:var(--ink)!important;color:#fff8e8!important;border:1px solid var(--ink)!important;box-shadow:5px 6px #c89d55!important;transition:transform .25s,box-shadow .25s!important}.chapter-continue:hover,.next-chapter:hover{transform:translate(-2px,-2px)!important;box-shadow:8px 9px #c89d55!important}.chapter-continue:active,.next-chapter:active{transform:translate(3px,3px)!important;box-shadow:2px 2px #c89d55!important}.chapter-map-trigger{width:68px;border-radius:24px;display:flex;align-items:center;justify-content:center;gap:7px;background:#173e68ed;color:#fff8e5;border:1px solid #fff7df66;box-shadow:4px 5px #c99b4e;font-size:19px}.chapter-map-trigger span{font:7px Courier New,monospace;letter-spacing:1px}.gift-intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:105;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center;color:#f8f1df;background:radial-gradient(circle at 50% 42%,#315f89 0 12%,transparent 37%),linear-gradient(145deg,#0e2e52,#1d527e 58%,#0f355b)}.gift-intro:before{content:"";position:absolute;top:18px;right:18px;bottom:18px;left:18px;border:1px solid #e7d39e66;outline:1px solid #e7d39e22;outline-offset:-8px;pointer-events:none}.gift-intro:after{content:"PRIVATE BIRTHDAY ARCHIVE  ·  YOUR YEAR";position:absolute;bottom:34px;font:8px Courier New,monospace;letter-spacing:3px;color:#d9c89e}.intro-envelope{width:min(410px,82vw);height:220px;position:relative;margin-bottom:34px;background:#f4ecd8;box-shadow:0 28px 55px #06182d66,9px 10px #d2a45b;transform:rotate(-2deg);overflow:hidden;color:var(--ink)}.intro-envelope:before,.intro-envelope:after{content:"";position:absolute;inset:auto 0 0;height:78%;background:#e6d9bd;clip-path:polygon(0 100%,0 0,50% 69%,100% 0,100% 100%);border-top:1px solid #183f6744}.intro-envelope:after{inset:0 0 auto;height:58%;background:#faf3e3;clip-path:polygon(0 0,100% 0,50% 100%)}.intro-stripe{position:absolute;z-index:3;top:0;bottom:0;left:calc(50% - 24px);width:48px;background:repeating-linear-gradient(135deg,#315d88 0,#315d88 13px,#e9d49f 13px,#e9d49f 25px)}.intro-seal{position:absolute;z-index:4;left:50%;top:50%;translate:-50% -30%;width:88px;height:88px;border-radius:50%;display:grid;place-content:center;background:var(--red);border:5px double #ead8a7;box-shadow:0 5px 12px #173e6840;color:#fff4d6;font:700 28px Georgia,serif}.intro-seal small{display:block;font:7px Courier New,monospace;letter-spacing:2px}.intro-envelope i{position:absolute;z-index:4;right:24px;bottom:20px;font:italic 15px var(--serif);transform:rotate(-8deg)}.gift-intro>p{font:9px Courier New,monospace;letter-spacing:4px;color:#e0cea1;margin:0}.gift-intro>h2{font-size:clamp(24px,4vw,38px);font-weight:400;letter-spacing:4px;margin:18px 0 8px}.gift-intro>span{font-size:11px;letter-spacing:2px;color:#bfd3df}.gift-intro>button{margin-top:28px;min-height:50px;padding:0 25px;border:1px solid #e2d1a4;background:transparent;color:#fff7df;letter-spacing:2px;box-shadow:4px 4px #d0a45a;transition:.3s}.gift-intro>button:hover{background:#f7edd7;color:var(--ink);transform:translateY(-3px)}.gift-intro>button b{margin-left:20px}.cover-unwrapped .birthday-poster{animation:poster-reveal .85s cubic-bezier(.22,1,.36,1) both}@keyframes poster-reveal{0%{opacity:0;transform:translateY(35px) rotate(-1deg) scale(.96)}to{opacity:1;transform:none}}.scrap-cover{background:linear-gradient(145deg,#e6eef0,#c0d9e7)}.birthday-poster{border:1px solid #284f7144;box-shadow:0 25px 60px #24486622,9px 11px #bf9651;background-color:#faf4e5}.birthday-poster:before{opacity:.38}.reference-stickers svg{opacity:.82;filter:drop-shadow(2px 3px 0 #f3e8cc)}.reference-stickers .sticker-lips,.reference-stickers .sticker-fingerprint{opacity:.48}.photo-cutout img{filter:sepia(.28) saturate(.72) contrast(1.08) brightness(.98);mix-blend-mode:multiply}.candle-hit-label{box-shadow:3px 4px #c7974c}.passport-progress{width:min(860px,100%);margin:-10px auto 25px;display:grid;grid-template-columns:1fr auto;align-items:end;text-align:left;font:9px Courier New,monospace;letter-spacing:2px;color:var(--ink)}.passport-progress b{font-size:13px;font-weight:400}.passport-progress i{grid-column:1/-1;height:5px;margin-top:9px;background:linear-gradient(90deg,var(--gold) calc(var(--visited) / 8 * 100%),#6b8aa52e 0);transition:background .5s;border-radius:9px}.city-stop{border:0;outline:1px solid #7794a655;box-shadow:6px 7px #315f8933;background:linear-gradient(#fffaf0,#f1ead8);overflow:visible}.city-stop:before{content:"PASSPORT";position:absolute;right:8px;top:8px;font:6px Courier New,monospace;letter-spacing:1px;color:#7890a1}.city-stop.city-visited{background:linear-gradient(150deg,#fbf5e6,#dbe8e9)}.city-stop.city-visited .city-pin{background:var(--red);animation:stamp-down .35s ease}.city-stop.city-visited:after{content:"VISITED";position:absolute;right:11px;bottom:11px;border:2px solid #95465088;border-radius:50%;padding:7px 3px;color:#95465088;font:7px Courier New,monospace;transform:rotate(-17deg)}@keyframes stamp-down{50%{transform:scale(1.28) rotate(-8deg)}}.city-memory{border:0;border-top:6px solid var(--ink);box-shadow:0 17px 35px #173e6840;background:#fffaf0}.tiny-question{max-width:600px;padding:30px;min-height:auto;background:#f8f2e4;box-shadow:11px 13px #456e8c2d,0 20px 60px #183d5f1e;outline:1px solid #173e6830;position:relative}.tiny-question:before,.tiny-question:after{content:"";position:absolute;top:-13px;width:90px;height:28px;background:#d7c39188;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tiny-question:before{left:30px;transform:rotate(-6deg)}.tiny-question:after{right:30px;transform:rotate(7deg)}.question-ticket{display:flex;justify-content:space-between;border-bottom:1px dashed #42688588;padding-bottom:14px;margin-bottom:28px;font:8px Courier New,monospace;letter-spacing:2px}.question-ticket b{font-weight:400;color:var(--red)}.tiny-question>.journey-eyebrow{margin-bottom:24px}.question-bubble{max-width:100%;display:block;text-align:center;background:none;padding:5px 0 22px;font-size:clamp(17px,2.2vw,24px);letter-spacing:1px;color:var(--ink)}.reply-bubble{margin:0 0 9px;background:none;padding:0;color:#658096;font-size:10px;letter-spacing:1px}.tiny-question form{align-items:stretch}.answer-paper{flex:1;background:#fffdf6;border:1px solid #8ba1af66;background-image:repeating-linear-gradient(transparent 0 34px,#7890a522 35px);padding:8px 12px 5px}.tiny-question textarea{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;border-radius:0;min-height:125px;padding:8px 3px;font-size:15px;line-height:35px}.answer-paper small{display:block;text-align:right;color:#7d91a0;font:7px Courier New,monospace;letter-spacing:1px}.tiny-question form>button{flex:0 0 92px;width:92px;height:auto;border-radius:0;background:var(--ink);display:flex;flex-direction:column;justify-content:center;gap:8px;box-shadow:5px 5px 0 var(--gold);letter-spacing:2px}.tiny-question form>button b{font-size:22px}.concert-stage{position:relative;isolation:isolate;transition:color .7s}.stage-beam{position:absolute;top:-90px;width:180px;height:540px;z-index:-1;opacity:0;filter:blur(5px);transition:opacity .7s;clip-path:polygon(42% 0,58% 0,100% 100%,0 100%)}.beam-left{left:8%;background:linear-gradient(#fff7bd88,#6fc4ff33);transform:rotate(-15deg)}.beam-right{right:8%;background:linear-gradient(#fff7bd88,#7aa8ff33);transform:rotate(15deg)}.stage-lit .stage-beam{opacity:1;animation:beam-sway 3.8s ease-in-out infinite alternate}.stage-lit .beam-right{animation-delay:-1.7s}@keyframes beam-sway{to{transform:rotate(4deg)}}.light-stage{margin:-18px auto 27px;display:flex;align-items:center;gap:10px;padding:10px 15px;background:#f7f0dc;border:1px solid #315f8977;color:var(--ink);font-size:10px;letter-spacing:1px;box-shadow:3px 3px #c89b4f}.light-stage i{width:9px;height:9px;border-radius:50%;background:#7891a5;box-shadow:0 0 0 4px #7891a522}.light-stage[aria-pressed=true] i{background:#f4ce63;box-shadow:0 0 17px 7px #f4ce6388}.stage-lit .record-disc{animation:disc-spin 8s linear infinite}@keyframes disc-spin{to{transform:rotate(360deg)}}.stage-lit .festival-poster{box-shadow:0 18px 55px #ffd66d55,0 0 0 2px #f5d878}.album-counter{display:inline-block;margin:-15px 0 30px;padding:8px 14px;background:#f8f1de;border:1px dashed #315f8988;font:9px Courier New,monospace;letter-spacing:2px;transform:rotate(-1deg)}.album-counter span{color:var(--red);font-weight:700}.flip-photo{transform:rotate(var(--tilt));transition:transform .35s,filter .35s;filter:drop-shadow(5px 7px 0 #315f8928)}.flip-photo:hover{transform:rotate(0) translateY(-7px);filter:drop-shadow(8px 12px 0 #315f8935)}.flip-photo.revealed{transform:rotate(0) scale(1.015)}.photo-front>b{position:absolute;top:11px;left:12px;font:8px Courier New,monospace;color:#6e8798}@media(max-width:700px){.chapter-status{display:none}.journey-rail{top:63px}.journey-scene{padding-top:72px}.gift-intro{padding:26px 20px}.gift-intro:before{top:10px;right:10px;bottom:10px;left:10px}.gift-intro:after{font-size:6px;letter-spacing:2px;bottom:22px}.intro-envelope{height:180px;margin-bottom:28px}.intro-seal{width:75px;height:75px;font-size:24px}.gift-intro>h2{font-size:23px;line-height:1.6;letter-spacing:2px}.birthday-poster{box-shadow:0 18px 35px #24486622,5px 7px #bf9651}.passport-progress{margin-top:0}.city-stop.city-visited:after{font-size:5px;padding:5px 2px;bottom:7px}.tiny-question{padding:32px 18px 22px}.tiny-question:before,.tiny-question:after{width:66px;height:22px}.tiny-question form{display:block}.tiny-question form>button{width:100%;height:54px;margin-top:13px;display:flex;flex-direction:row;flex-basis:auto}.tiny-question form>button b{font-size:17px}.answer-paper{padding-bottom:8px}.stage-beam{width:100px}.beam-left{left:-12%}.beam-right{right:-12%}.chapter-map-trigger{width:54px}.chapter-map-trigger span{display:none}}@media(prefers-reduced-motion:reduce){.cover-unwrapped .birthday-poster,.stage-lit .record-disc,.stage-lit .stage-beam,.city-stop.city-visited .city-pin{animation:none}}.photo-cutout img{filter:sepia(.16) saturate(.92) contrast(1.34) brightness(.96)!important}.photo-cutout:after{opacity:.58;mix-blend-mode:multiply}.journey-scene.scene-1,.journey-scene.scene-3,.journey-scene.scene-4,.journey-scene.scene-5{padding:0;text-align:initial;overflow:visible;background:none}.journey-scene.scene-1:before,.journey-scene.scene-2:before,.journey-scene.scene-3:before,.journey-scene.scene-4:before,.journey-scene.scene-5:before{display:none}.journey-scene.scene-2{padding:0;text-align:initial;overflow:visible;background:none}.journey-scene.scene-2 .passport-embedded{min-height:calc(100svh - 66px)}.departure-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:24px}.departure-actions button{margin:0!important;min-height:46px;padding:11px 19px}.departure-actions .continue-letter{background:#f5e7bd;color:#173e68;border-color:#f5e7bd;box-shadow:4px 5px #c89d55}@media(max-width:650px){.journey-scene.scene-1,.journey-scene.scene-2,.journey-scene.scene-3,.journey-scene.scene-4,.journey-scene.scene-5{padding:0}.journey-scene.scene-2 .passport-embedded{min-height:calc(100svh - 64px)}.departure-actions{gap:11px}.departure-actions button{width:100%}}.party-hat-real{position:absolute;z-index:5;width:104px;height:130px;top:-46px;left:39%;transform:rotate(8deg);transform-origin:50% 100%;filter:drop-shadow(2px 5px 2px #173e6840);overflow:visible}.cover-vintage-car{position:absolute;z-index:3;width:158px;height:auto;right:13px;top:422px;transform:rotate(-6deg);filter:drop-shadow(5px 7px 0 #d3a45266);transition:transform .35s}.cover-vintage-car:hover{transform:rotate(-2deg) translateY(-3px)}@media(max-width:700px){.party-hat-real{width:76px;height:101px;top:-26px;left:38%;transform:rotate(7deg)}.cover-vintage-car{width:108px;right:-2px;top:390px;transform:rotate(-7deg)}}@media(max-width:350px){.cover-vintage-car{display:none}}.template-music-slot{display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px dashed #6f91ad;border-radius:999px;color:#315b7b;background:#f7f4ec;font:11px sans-serif;white-space:nowrap}.template-music-slot span{letter-spacing:.03em}.photo-cutout img{clip-path:none!important;-webkit-mask:none!important;mask:none!important;object-fit:contain!important;background:#f6f1e5;filter:none!important;mix-blend-mode:normal!important}.photo-cutout:after{display:none!important}.date-ticket strong,.handwritten-note,.capsule-reveal h2,.capsule-reveal p,.hand-message h2,.hand-message p,.final-letter article>h2,.final-letter article>p,.final-letter article>strong,.final-letter footer,.fortune-card h2,.fortune-card p,.birthday-ticket h2,.birthday-ticket p{outline:1px dashed #8ca7b8;outline-offset:4px;border-radius:3px}.date-ticket strong,.handwritten-note{background:#f8f4e8bd}.polaroid img,.booth-photo>img{object-fit:contain!important;background:#f6f1e5}.date-ticket strong{font-size:clamp(18px,2.2vw,28px)!important;white-space:nowrap}.born-sticker strong{font-size:clamp(15px,2vw,24px)!important}.photo-cutout{transform:translate(calc(-50% + var(--cover-x,0px)),var(--cover-y,0px)) rotate(-3deg) scale(var(--cover-scale,1))!important}.photo-cutout img{background:transparent!important;filter:drop-shadow(4px 5px 0 #fdf9ee)!important}.party-hat-real{transform:translate(var(--hat-x,0px),var(--hat-y,0px)) rotate(8deg) scale(var(--hat-scale,1))!important;touch-action:none}.party-hat-real.hat-draggable{cursor:grab;pointer-events:auto}.party-hat-real.hat-draggable:active{cursor:grabbing}.photo-draggable{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.photo-draggable:active{cursor:grabbing}
