.home-screen,.album-screen,.photo-detail,.photo-moment,.settlement{position:absolute;inset:0;overflow:hidden}
.home-screen{z-index:10;background:#180707;color:#fff3e8}
.home-art-wrap,.home-vignette{position:absolute;inset:0;pointer-events:none}
.home-art-wrap{overflow:hidden}
.home-art-wrap img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.home-art-base{filter:saturate(.96);animation:home-body-breathe 6.4s ease-in-out infinite}
.home-art-wrap .home-art-head{mask:url("assets/home-head-mask.svg") center / cover no-repeat;-webkit-mask:url("assets/home-head-mask.svg") center / cover no-repeat;transform-origin:53% 19%}
.home-art-wrap.is-patted .home-art-head{animation:home-head-shake 1.05s ease-in-out both}
.home-vignette{background:linear-gradient(180deg,#1404079c 0%,transparent 18%,transparent 48%,#1607087a 71%,#0d0509ed 100%),linear-gradient(90deg,#1505063f,transparent 32%,transparent 70%,#15050659)}
.home-topbar{position:absolute;top:calc(env(safe-area-inset-top) + 24px);left:22px;right:22px;display:flex;align-items:center;justify-content:space-between;text-shadow:0 2px 10px #000c}
.home-level{display:flex;align-items:baseline;gap:5px;padding:6px 9px;border:1px solid #f4d2b768;background:#16080a6b;backdrop-filter:blur(9px);clip-path:polygon(0 0,100% 0,92% 100%,0 100%)}
.home-level small{color:#ddbca7;font-family:Georgia,serif;font-size:10px}.home-level strong{font:25px Georgia,serif}.home-level-line{display:block;width:28px;height:1px;background:#f0cfa4;align-self:center;margin:0 5px}
.home-title{font:12px "Noto Serif SC","STSong",serif;letter-spacing:.2em}.home-stars{font-size:26px;color:#f6d5a8}
.home-pat{position:absolute;left:34%;top:9%;width:35%;height:27%;background:transparent;border:0;z-index:2;cursor:pointer}
.home-pat-hint{position:absolute;left:50%;top:39%;transform:translateX(-50%);padding:5px 13px;color:#ffe6d3af;background:#1b070741;border:1px solid #ffebd72d;border-radius:20px;font-size:10px;letter-spacing:.15em;white-space:nowrap;pointer-events:none}
.home-side{position:absolute;right:13px;top:39%;display:grid;gap:10px;z-index:2}.home-side button{width:55px;min-height:52px;padding:4px 3px;border:1px solid #dec5bb56;border-radius:12px;background:#1a0e124d;backdrop-filter:blur(8px);color:#e6d7d0a8;font-size:11px;line-height:1.1}.home-side span{display:block;margin-bottom:3px;font-size:19px;color:#e2c4a99c}.home-side small{display:block;margin-top:2px;font-size:8px;opacity:.7}.home-side button:disabled{cursor:default}
.home-side .bond-nav{position:relative;display:grid;grid-template-columns:20px 1fr;grid-template-rows:1fr 5px;column-gap:3px;align-items:center;min-height:62px;padding:4px 5px 6px;overflow:hidden;border-color:#f1c4af91;background:linear-gradient(145deg,#3a172bba,#170914d1);box-shadow:inset 0 0 13px #f4c59b26,0 0 14px #cc6e9752;color:#ffe8d9}.home-side .bond-nav:before{content:"";position:absolute;inset:3px;border:1px solid #ffe7cf25;border-radius:8px;pointer-events:none}.home-side .bond-nav .bond-trophy{grid-row:1;grid-column:1;position:relative;width:20px;height:31px;margin:0;overflow:hidden;border:1px solid #ffd8b280;border-radius:10px 10px 7px 7px;background:radial-gradient(circle at 50% 20%,#fff6dc66,transparent 45%),#24101e;box-shadow:0 0 10px #fba4bf66}.home-side .bond-nav .bond-trophy:after{content:"";position:absolute;left:3px;right:3px;bottom:2px;height:4px;border-radius:50%;background:#f7c798aa;box-shadow:0 0 5px #ffdaa0}.home-side .bond-nav .bond-trophy img{position:absolute;z-index:1;left:50%;top:-2px;width:45px;max-width:none;height:auto;transform:translateX(-50%);filter:drop-shadow(0 1px 2px #0008)}.home-side .bond-nav .bond-nav-copy{grid-row:1;grid-column:2;margin:0;color:#ffeadb;font-size:10px;line-height:1.1;letter-spacing:.03em;text-align:left}.home-side .bond-nav .bond-nav-copy small{margin-top:3px;color:#f3c9ba;font-size:7px;white-space:nowrap;opacity:.9}.home-side .bond-nav .bond-nav-progress{grid-row:2;grid-column:1 / 3;width:100%;height:3px;margin:0;overflow:hidden;border-radius:5px;background:#764056}.home-side .bond-nav .bond-nav-progress i{display:block;width:0;height:100%;margin:0;border-radius:inherit;background:linear-gradient(90deg,#ee789e,#ffe0a9);box-shadow:0 0 7px #ffb4bd;transition:width .7s ease}.home-side .bond-nav.is-awakened{border-color:#ffe1aa;box-shadow:inset 0 0 16px #ffe6b950,0 0 18px #ffb06c80}.home-side .bond-nav.is-awakened .bond-trophy{border-color:#ffe8b4;animation:trophy-mini-shine 2.4s ease-in-out infinite}
.home-bottom{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 18px);display:flex;align-items:flex-end;justify-content:space-between;gap:9px;padding:0 19px;z-index:3}
.home-secondary{display:flex;align-items:end;gap:7px}.home-secondary button{position:relative;width:53px;height:53px;border:1px solid #f2d2c18a;border-radius:50%;background:radial-gradient(circle at 30% 18%,#fff7e752,#5b314b8c 60%,#160813a8);box-shadow:inset 0 0 13px #f5cfb834,0 5px 18px #12040a9b;color:#fff2e5;font-size:12px;letter-spacing:.09em}.home-secondary button:disabled{filter:grayscale(1);opacity:.48;cursor:default}.home-secondary small{display:block;font-size:8px;letter-spacing:0;color:#ddcbc0}.home-secondary #albumButton{border-color:#f6d7ba;box-shadow:0 0 16px #e5baaa5b,inset 0 0 17px #f5cfb847}.home-secondary #albumDot{position:absolute;right:0;top:-4px;color:#ffd4ac;font-size:10px}
.home-start{min-width:122px;height:82px;border:1px solid #ffe0beac;border-radius:50% 48% 45% 46%;background:radial-gradient(circle at 50% 40%,#f1cfaa63,#67404588 55%,#200b10b5);box-shadow:0 0 25px #f4be987c,inset 0 0 27px #ffecd685;color:#fff5e8;text-shadow:0 2px 7px #271015}.home-start span{display:block;font:28px "Noto Serif SC","STSong",serif;letter-spacing:.14em}.home-start small{display:block;margin-top:2px;font-size:9px;letter-spacing:.08em}
.home-resume{position:absolute;right:21px;bottom:calc(env(safe-area-inset-bottom) + 108px);z-index:3;padding:6px 12px;background:#1d0914b8;border:1px solid #f7d8b77c;border-radius:20px;color:#ffe5d3;font-size:11px}
.player[data-phase="cover"] .scene .living-overlay{display:none}.player[data-phase="cover"] .scene-light{animation:none}
.album-screen,.photo-detail{z-index:13;background:linear-gradient(160deg,#25101ae8,#10070df5 62%,#300e1be9);backdrop-filter:blur(20px)}
.album-screen:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 15%,#ffdab826,transparent 34%),radial-gradient(circle at 20% 75%,#b44d6924,transparent 38%);pointer-events:none}
.album-header{position:relative;display:flex;align-items:center;gap:17px;padding:calc(env(safe-area-inset-top) + 30px) 22px 0}.album-header button,.photo-detail button{width:36px;height:36px;border:1px solid #f5d9c695;border-radius:50%;background:#fff3e51c;color:#fff5e9;font-size:29px;line-height:1}.album-header small{color:#e8bca7;letter-spacing:.22em;font:10px Georgia,serif}.album-header h2{margin:4px 0 0;font:25px "Noto Serif SC","STSong",serif;letter-spacing:.14em}.album-header>span{margin-left:auto;color:#f1d4c1;font:12px Georgia,serif}.album-intro{position:relative;margin:28px 27px 24px;font-size:12px;line-height:1.8;color:#efd7cdba}.album-card{position:relative;display:block;width:calc(100% - 54px);height:min(55vh,510px);margin:0 auto;padding:0;border:1px solid #f5d7c5ae;border-radius:8px;overflow:hidden;background:#2a1018;text-align:left;box-shadow:0 24px 60px #0008,0 0 0 6px #e9c9b413}.album-card img{width:100%;height:100%;object-fit:cover}.album-card:disabled img{filter:grayscale(.8) brightness(.36) blur(5px)}.album-card-shade{position:absolute;inset:0;background:linear-gradient(transparent 58%,#12050acf)}.album-card-label{position:absolute;left:20px;bottom:22px;color:#fff5ee}.album-card-label small{display:block;color:#eed0bb;font:10px Georgia,serif;letter-spacing:.17em}.album-card-label strong{display:block;margin-top:7px;font:23px "Noto Serif SC","STSong",serif;letter-spacing:.12em}.album-footnote{margin:18px 27px;color:#d7b6aa;font-size:11px;line-height:1.7}.photo-detail{z-index:15;display:grid;place-items:center;padding:45px 20px 75px}.photo-detail button{position:absolute;top:calc(env(safe-area-inset-top) + 22px);right:23px}.photo-detail img{max-width:100%;max-height:72vh;object-fit:contain;border:8px solid #fff1e1;box-shadow:0 20px 70px #000a,0 0 0 1px #d8b297}.photo-detail p{position:absolute;bottom:calc(env(safe-area-inset-bottom) + 21px);font:13px "Noto Serif SC","STSong",serif;letter-spacing:.1em;color:#f9ddc7}.photo-detail p span{padding:0 7px;color:#d7a792}
.photo-moment{z-index:18;pointer-events:none}.photo-moment .camera-corners{position:absolute;inset:7%;border:1px solid #fff9ed9c;opacity:0}.photo-moment .camera-corners:before,.photo-moment .camera-corners:after{content:"";position:absolute;width:35px;height:35px;border:2px solid #fff9ec}.photo-moment .camera-corners:before{left:-2px;top:-2px;border-right:0;border-bottom:0}.photo-moment .camera-corners:after{right:-2px;bottom:-2px;border-left:0;border-top:0}.photo-moment .camera-flash{position:absolute;inset:0;background:#fff7ee;opacity:0}.photo-moment .camera-click{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);color:#fff7ed;font:30px "Noto Serif SC","STSong",serif;letter-spacing:.3em;opacity:0;text-shadow:0 0 30px #fff}.photo-moment.is-playing .camera-corners{animation:camera-frame 1.4s ease-out both}.photo-moment.is-playing .camera-flash{animation:camera-flash 2.3s ease-out both}.photo-moment.is-playing .camera-click{animation:camera-click 1.7s ease-out both}
.settlement{z-index:19;background:#06050b;color:#fff2e9;text-align:center}.settlement:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 43%,#7934543e,transparent 45%),radial-gradient(circle at 75% 10%,#bc8eb31f,transparent 30%);pointer-events:none}.settlement-stars{position:absolute;inset:0;background-image:radial-gradient(circle,#fff6ea 1px,transparent 1.5px),radial-gradient(circle,#f5b6d0 1px,transparent 2px);background-size:91px 103px,137px 151px;background-position:9px 12px,48px 79px;opacity:.43;animation:star-drift 15s linear infinite}.settlement-heading{position:absolute;top:calc(env(safe-area-inset-top) + 9%);left:0;right:0;opacity:0}.settlement.is-flying .settlement-heading{animation:reward-appear 1s ease 2.2s forwards}.settlement-heading small{font:11px Georgia,serif;letter-spacing:.3em;color:#f6c8c5}.settlement-heading h2{margin:13px 20px;font:24px "Noto Serif SC","STSong",serif;letter-spacing:.12em}.wish-flight{position:absolute;left:50%;top:43%;width:190px;height:230px;margin:-115px 0 0 -95px;opacity:0}.settlement.is-flying .wish-flight{animation:bottle-arrive 2.6s cubic-bezier(.19,.68,.21,1) .45s both,bottle-shake .75s ease-in-out 3.15s both}.wish-trail{position:absolute;right:60%;top:38%;width:300px;height:3px;transform:rotate(-28deg);transform-origin:right center;background:linear-gradient(90deg,transparent,#ffc7d7a6,#fff4d9);filter:blur(2px);opacity:0}.settlement.is-flying .wish-trail{animation:trail-fade 2.4s ease-out .5s both}.wish-bottle{position:absolute;inset:0;filter:drop-shadow(0 0 18px #fa8badab) drop-shadow(0 0 35px #d45d875e)}.wish-bottle svg{width:100%;height:100%;overflow:visible}.bottle-sticker{position:absolute;left:28%;top:30%;width:44%;height:43%;object-fit:contain;filter:drop-shadow(0 3px 7px #481621ad)}.bottle-neck{position:absolute;left:41%;top:7%;width:18%;height:10%;border:3px solid #f8d4bc;border-radius:5px 5px 2px 2px;background:linear-gradient(#9c566d,#ecd0bb 50%,#89516e)}
.heart-particles{position:absolute;inset:0;pointer-events:none}.heart-particles i{position:absolute;left:50%;top:43%;font-style:normal;font-size:var(--size);color:#ffd9e2;text-shadow:0 0 7px #fff,0 0 17px #ff86bd,0 0 29px #fc4f91;opacity:0}.settlement.is-collecting .heart-particles i{animation:heart-flight 1.5s cubic-bezier(.18,.78,.21,1) var(--delay) both}.heart-particles i:after{content:"";position:absolute;right:80%;top:45%;width:30px;height:2px;background:linear-gradient(90deg,transparent,#ffdce8);transform:rotate(-20deg);filter:blur(1px)}
.settlement-rewards{position:absolute;left:34px;right:34px;bottom:calc(env(safe-area-inset-bottom) + 92px);padding:18px 21px;background:linear-gradient(130deg,#2e1723c2,#160b19d9);border:1px solid #ecc5c064;border-radius:16px;box-shadow:0 0 35px #e57ea32e;opacity:0;transform:translateY(18px)}.settlement.is-revealed .settlement-rewards{animation:reward-appear .8s ease forwards}.reward-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;color:#ead6d3;font-size:12px;letter-spacing:.08em}.reward-row strong{color:#ffe2c9;font:17px Georgia,serif}.reward-progress{height:5px;margin:13px 0 8px;border-radius:9px;background:#784657}.reward-progress span{display:block;height:100%;width:0;border-radius:9px;background:linear-gradient(90deg,#ec6fa1,#ffe0be);box-shadow:0 0 12px #ff98bb;transition:width 1.2s ease}.settlement-rewards p{margin:5px 0 0;color:#cfaeb5;font-size:10px}.settlement-home{position:absolute;bottom:calc(env(safe-area-inset-bottom) + 25px);left:50%;transform:translateX(-50%);padding:10px 23px;border:1px solid #f2d7c09c;border-radius:25px;background:#bc80964d;color:#fff1e6;font-size:12px;letter-spacing:.13em;opacity:0}.settlement.is-revealed .settlement-home{animation:reward-appear .8s ease .5s forwards}
.bond-screen{position:absolute;inset:0;z-index:14;overflow:hidden;background:radial-gradient(circle at 50% 30%,#5c243eaf,transparent 31%),linear-gradient(155deg,#160815,#07030c 70%,#1f0a1b);color:#fff4eb}.bond-screen:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,#fff3d9 1px,transparent 1.5px),radial-gradient(circle,#ffadc6 1px,transparent 1.5px);background-size:73px 89px,127px 131px;background-position:13px 25px,58px 71px;opacity:.36}.bond-header{position:relative;z-index:1;display:flex;align-items:center;gap:16px;padding:calc(env(safe-area-inset-top) + 28px) 22px 0}.bond-header button{width:36px;height:36px;border:1px solid #f5d9c695;border-radius:50%;background:#fff3e51c;color:#fff5e9;font-size:29px;line-height:1}.bond-header small{color:#e9bdc5;letter-spacing:.2em;font:9px Georgia,serif}.bond-header h2{margin:4px 0 0;font:23px "Noto Serif SC","STSong",serif;letter-spacing:.11em}.bond-header>span{margin-left:auto;color:#ffd8b5;font:12px Georgia,serif}.bond-intro{position:relative;z-index:1;margin:25px 28px 12px;color:#e9c8cf;font-size:12px;line-height:1.7}.trophy-case{position:relative;z-index:1;height:min(56vh,520px);margin:0 25px;border:1px solid #f5d0b78b;border-radius:26px;overflow:hidden;background:radial-gradient(ellipse at 50% 85%,#e16d9240,transparent 45%),linear-gradient(145deg,#4b1f36b3,#120914dd 68%);box-shadow:inset 0 0 38px #ffd9bd28,0 20px 60px #0009}.trophy-case:before{content:"";position:absolute;inset:9px;border:1px solid #ffe0ca35;border-radius:19px;pointer-events:none}.trophy-halo{position:absolute;left:50%;top:17%;width:180px;height:180px;margin-left:-90px;border:1px solid #ffd4bb70;border-radius:50%;box-shadow:0 0 35px #ffa5bd77,inset 0 0 35px #ffd29a4d}.trophy-stars{position:absolute;inset:0;background:radial-gradient(circle at 28% 31%,#fff3c3 0 2px,transparent 3px),radial-gradient(circle at 70% 27%,#ffd6ec 0 2px,transparent 3px),radial-gradient(circle at 22% 67%,#ffd6c7 0 1px,transparent 2px),radial-gradient(circle at 79% 62%,#fff1be 0 2px,transparent 3px);opacity:.8;animation:star-drift 12s linear infinite}.figurine{position:absolute;z-index:2;left:50%;bottom:32px;width:min(79%,320px);height:87%;object-fit:contain;transform:translateX(-50%) scale(.88);filter:drop-shadow(0 18px 20px #0009) saturate(.94);opacity:.18;transition:opacity .7s ease,transform .7s cubic-bezier(.18,.78,.2,1),filter .7s}.trophy-case.is-awakened .figurine{opacity:1;transform:translateX(-50%) scale(1);filter:drop-shadow(0 0 24px #ffb1c8d9) drop-shadow(0 18px 20px #0009) saturate(1.1)}.trophy-plinth{position:absolute;z-index:3;bottom:19px;left:14%;right:14%;height:58px;padding-top:9px;border:1px solid #fce1bd94;border-radius:50%;background:linear-gradient(#8f526c,#311428 67%,#160914);box-shadow:0 10px 19px #000a,inset 0 2px 6px #ffe9d477;text-align:center}.trophy-plinth span,.trophy-plinth strong{display:block}.trophy-plinth span{font:8px Georgia,serif;letter-spacing:.18em;color:#f5cbbd}.trophy-plinth strong{margin-top:4px;font:14px "Noto Serif SC","STSong",serif;letter-spacing:.2em}.trophy-lock{position:absolute;z-index:4;inset:0;display:grid;place-content:center;text-align:center;background:#11081472;backdrop-filter:blur(2px);color:#f3d9ce}.trophy-lock span{font-size:37px;text-shadow:0 0 17px #ffb1d1}.trophy-lock strong{margin-top:9px;font:18px "Noto Serif SC","STSong",serif;letter-spacing:.12em}.trophy-lock small{margin-top:7px;color:#dbb9b7;font-size:10px}.bond-caption{position:relative;z-index:1;margin:16px 28px;padding:12px 16px;border:1px solid #f1cfc261;border-radius:14px;background:#2d1426a6}.bond-caption strong,.bond-caption span{display:block}.bond-caption strong{font-size:13px;color:#ffe0c5}.bond-caption span{margin-top:5px;font-size:10px;color:#d9b6b7}
.settlement{background:radial-gradient(ellipse at 50% 39%,#71344f8c,transparent 34%),radial-gradient(ellipse at 15% 18%,#b57a9b40,transparent 26%),linear-gradient(160deg,#09050f,#1b071d 55%,#120712)}.settlement:before{background:radial-gradient(circle at 50% 46%,#f996b04a,transparent 29%),radial-gradient(circle at 75% 10%,#f4cb8e33,transparent 26%)}.meteor-field{position:absolute;inset:0;overflow:hidden;pointer-events:none}.meteor-field i{position:absolute;left:var(--meteor-x);top:var(--meteor-y);width:76px;height:2px;border-radius:10px;background:linear-gradient(90deg,transparent,#fff4cd,#ff9fc1);filter:drop-shadow(0 0 7px #ffd9b8);opacity:0;transform:rotate(132deg);animation:meteor-fall var(--meteor-duration) ease-in infinite var(--meteor-delay)}.wish-flight{width:225px;height:285px;margin:-142px 0 0 -112px}.wish-bottle{filter:drop-shadow(0 0 19px #ffadc4a8) drop-shadow(0 0 43px #ad477a75);transform:perspective(700px) rotateX(3deg)}.wish-bottle svg{filter:drop-shadow(8px 10px 7px #1d071a8c)}.wish-bottle:after{content:"";position:absolute;left:34%;top:28%;width:23%;height:56%;border-radius:50%;background:linear-gradient(90deg,#fff8ec94,transparent);filter:blur(2px);transform:rotate(12deg);pointer-events:none}.bottle-neck{left:41%;top:2%;width:18%;height:9%;border:2px solid #ffe2b9;border-radius:5px 5px 2px 2px;background:linear-gradient(#8b4563,#f7caa9 45%,#63304a);box-shadow:0 2px 6px #18060d}.bottle-sticker{left:27%;top:31%;width:46%;height:39%;filter:drop-shadow(0 3px 7px #481621ad);transition:transform .8s,opacity .8s}.bottle-sparkle{position:absolute;right:12%;top:27%;color:#fff4cb;font-size:25px;text-shadow:0 0 14px #fff1c7;animation:twinkle 1.9s ease-in-out infinite}.heart-particles i{left:50%;top:39%;color:#fff1d4;text-shadow:0 0 7px #fff,0 0 17px #ff86bd,0 0 29px #fc4f91}.settlement.is-full .wish-bottle{animation:bottle-full 1.2s ease-in-out infinite}.settlement.is-full .bottle-sticker{animation:sticker-awaken 1.3s cubic-bezier(.12,.9,.25,1) both}.settlement.is-full .bottle-sparkle{font-size:43px;animation:twinkle .6s ease-in-out infinite}.settlement.is-full .settlement-rewards{border-color:#ffe2a9;box-shadow:0 0 46px #ffb56b69}.settlement-heading h2{font-size:26px;text-shadow:0 0 22px #ffc7cf76}
@keyframes home-head-shake{0%,100%{transform:translate(0,0) rotate(0)}18%{transform:translate(1px,-1px) rotate(.3deg)}36%{transform:translate(-2px,0) rotate(-.65deg)}55%{transform:translate(2px,-1px) rotate(.55deg)}75%{transform:translate(-1px,0) rotate(-.2deg)}}
@keyframes trophy-mini-shine{0%,100%{filter:brightness(1)}50%{filter:brightness(1.35) drop-shadow(0 0 4px #ffe8ad)}}
@keyframes camera-frame{0%{opacity:0;transform:scale(1.08)}25%,60%{opacity:.85;transform:scale(1)}100%{opacity:0}}
@keyframes camera-flash{0%,36%{opacity:0}40%{opacity:1}49%{opacity:.04}58%{opacity:.45}72%{opacity:0}100%{opacity:0}}
@keyframes camera-click{0%,37%,100%{opacity:0}43%,57%{opacity:1}}
@keyframes star-drift{to{background-position:24px 42px,61px 105px}}
@keyframes bottle-arrive{0%{opacity:0;transform:translate(-300px,-350px) scale(.08) rotate(-35deg);filter:blur(12px)}25%{opacity:1}70%{filter:blur(0)}100%{opacity:1;transform:translate(0,0) scale(1) rotate(0);filter:blur(0)}}
@keyframes bottle-shake{0%,100%{transform:rotate(0)}22%{transform:rotate(-6deg)}43%{transform:rotate(5deg)}66%{transform:rotate(-3deg)}84%{transform:rotate(2deg)}}
@keyframes trail-fade{0%{opacity:0;scale:.2 1}25%{opacity:1;scale:1 1}100%{opacity:0;scale:.2 1}}
@keyframes heart-flight{0%{opacity:0;transform:translate(var(--from-x),var(--from-y)) scale(.2) rotate(-25deg)}12%{opacity:1}55%{opacity:1}100%{opacity:0;transform:translate(0,0) scale(.35) rotate(40deg)}}
@keyframes meteor-fall{0%{opacity:0;transform:translate(-65px,-45px) rotate(132deg) scale(.45)}12%{opacity:1}56%{opacity:.85}100%{opacity:0;transform:translate(190px,210px) rotate(132deg) scale(1)}}@keyframes twinkle{50%{transform:scale(1.5) rotate(18deg);opacity:.55}}@keyframes bottle-full{50%{transform:perspective(700px) rotateX(3deg) scale(1.055)}}@keyframes sticker-awaken{0%{transform:scale(1);filter:drop-shadow(0 3px 7px #481621ad)}45%{transform:scale(1.36) translateY(-14px);filter:drop-shadow(0 0 18px #fff1b8)}100%{transform:scale(1);filter:drop-shadow(0 3px 7px #481621ad)}}
@keyframes reward-appear{to{opacity:1;transform:translateY(0)}}
@media(max-height:720px){.home-side{top:34%;gap:5px}.home-side button{min-height:43px}.home-bottom{bottom:calc(env(safe-area-inset-bottom) + 12px)}.album-card{height:48vh}.settlement-heading{top:6%}.wish-flight{top:39%}.settlement-rewards{bottom:75px}}
@media(prefers-reduced-motion:reduce){.home-art-wrap img,.settlement-stars,.wish-flight,.wish-trail,.heart-particles i,.settlement-heading,.settlement-rewards,.settlement-home,.photo-moment span{animation:none!important}.settlement.is-flying .wish-flight,.settlement.is-revealed .settlement-heading,.settlement.is-revealed .settlement-rewards,.settlement.is-revealed .settlement-home{opacity:1!important;transform:none!important}}
@keyframes home-body-breathe{0%,22%,100%{translate:0 0;scale:1}48%,58%{translate:0 -1px;scale:1.004}82%{translate:0 0;scale:1.001}}
