:root{color-scheme:light;--ink:#583c43;--rose:#9e5269;--paper:#fffaf4}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 12% 8%,#f2cdd4,transparent 48%),radial-gradient(ellipse at 90% 85%,#e9dbcc,transparent 50%),#fbf2e9;font-family:Georgia,serif;min-height:100vh}body:before{content:'';position:fixed;left:0;right:0;top:26px;height:12px;background:#b67989;opacity:.3;pointer-events:none}main{max-width:1000px;margin:auto;padding:80px 24px 48px;text-align:center}.eyebrow{font:11px/1.5 system-ui,sans-serif;letter-spacing:3px;color:var(--rose)}.gift{font-size:70px;margin:25px 0 10px}h1{font-size:clamp(42px,8vw,78px);font-weight:400;line-height:1.08;margin:24px 0}em{color:var(--rose);font-weight:400}p{font-size:18px;line-height:1.7}form{max-width:390px;margin:34px auto;padding:28px;background:#fffaf4dc;border:1px solid #e4cdd0;border-radius:18px;text-align:left;box-shadow:0 18px 70px #74404c0c}label{display:block;font-size:16px;margin:0 0 10px}input{width:100%;min-width:0;padding:13px 12px;border:1px solid #d8bbc2;border-radius:8px;margin-bottom:24px;background:#fff;color:var(--ink);font:16px system-ui}button{background:var(--rose);color:white;border:0;border-radius:30px;padding:16px 25px;font:16px Georgia;cursor:pointer;min-height:48px}form button{width:100%}button:hover{background:#834056}button:focus-visible,input:focus-visible{outline:3px solid #ca8c99;outline-offset:4px}small{display:block;line-height:1.8;color:#8e7478}.error{color:#9c3347;font-size:15px}.music{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;margin:35px 0 55px}.music span{font-style:italic}audio{max-width:100%}.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:35px;padding:15px 8px}.gallery figure{margin:0;background:var(--paper);padding:13px 13px 22px;box-shadow:0 10px 24px #593d4320;transform:rotate(var(--turn));animation:appear .7s both;animation-delay:var(--delay)}figure img{width:100%;aspect-ratio:1;object-fit:cover}figcaption{white-space:pre-wrap;margin-top:18px;font-size:19px;line-height:1.45}video{width:100%;max-height:70vh;border-radius:14px;background:#2b2024}.message{margin:70px auto 0;max-width:700px}h2{font-size:30px;font-weight:400}footer{margin:65px 0 20px;font-style:italic;color:var(--rose)}[hidden]{display:none!important}@keyframes appear{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}@media(max-width:540px){main{padding-top:65px}.gallery{grid-template-columns:1fr;max-width:340px;margin:auto;gap:36px}form{padding:22px}.music{margin-bottom:35px}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}
/* Vanessa's pink ribbon & kitten theme. */
:root{--ink:#733d59;--rose:#bd5487;--paper:#fff9fc}html{overflow-x:clip}body{background:radial-gradient(ellipse at 0% 5%,#f8c2dc,transparent 55%),radial-gradient(ellipse at 100% 60%,#f5cce4,transparent 52%),#fff0f7;overflow-x:clip}body:before{top:14px;height:2px;background:#d97ca7;opacity:.5}main{position:relative;z-index:1;max-width:960px;padding-top:55px}.confetti{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0;contain:strict}.floater{position:absolute;display:block;width:48px;opacity:.67;animation:drift var(--duration) ease-in-out infinite;animation-delay:var(--wait);will-change:transform}.floater svg{display:block;width:100%;height:auto}.tiny-heart{display:block;text-align:center;font-size:34px;color:#d56c9f}.floater-0{left:3%;top:8%;width:66px}.floater-1{right:7%;top:6%;width:55px}.floater-2{left:27%;top:4%}.floater-3{right:2%;top:32%;width:60px}.floater-4{left:4%;top:41%}.floater-5{right:24%;top:23%}.floater-6{left:9%;top:77%;width:65px}.floater-7{right:4%;top:69%}.floater-8{left:36%;top:90%}.floater-9{right:22%;top:88%;width:55px}.floater-10{left:19%;top:23%;width:35px}.floater-11{right:10%;top:50%}.floater-12{left:2%;top:59%;width:40px}.floater-13{right:39%;top:47%;width:32px;opacity:.3}.gift{position:relative;width:94px;height:92px;margin:32px auto 22px;font-size:38px;animation:gift-bob 5s ease-in-out infinite}.gift-box{position:absolute;left:14px;top:28px;display:grid;place-items:center;width:68px;height:60px;border-radius:9px;background:linear-gradient(90deg,#eca0c3 42%,#fff0f8 42%,#fff0f8 56%,#eca0c3 56%);border:1px solid #da86ad;color:#b84b7e;box-shadow:0 10px 24px #c65b8d25}.gift-bow{position:absolute;top:-7px;left:14px;z-index:1;font-size:59px}.eyebrow{color:#a24f78;letter-spacing:2.4px}h1{font-size:clamp(42px,7vw,70px)}form{background:#fffafdec;border-color:#efc0d7;border-radius:24px;box-shadow:0 16px 50px #a34c7510;position:relative}form:before{content:'🎀';position:absolute;right:16px;top:-19px;font-size:32px;transform:rotate(12deg)}input{border-color:#e6bdd1;background:#fffafd;border-radius:12px}button{background:linear-gradient(120deg,#c55d92,#ae497e);box-shadow:0 7px 16px #ad477b23}small{color:#996580}.gallery{gap:48px;padding-top:30px}.gallery figure{position:relative;border:1px solid #f0d6e3;border-radius:3px;animation:photo-arrive .85s both,photo-drift 8s ease-in-out infinite;animation-delay:var(--delay),calc(var(--delay) + .85s);will-change:transform}.gallery figure:before{content:'🎀';position:absolute;top:-25px;left:calc(50% - 21px);font-size:37px;z-index:1;transform:rotate(calc(var(--turn) * -1))}.gallery figure:nth-child(even){animation-direction:normal,reverse}figcaption{overflow-wrap:anywhere;color:#925473}.music{padding:18px;background:#fff9fcdb;border:1px solid #f0cede;border-radius:20px}.message{background:#fff9fce8;padding:20px;border-radius:24px;border:1px solid #efcddd}.message h2{font-size:27px;margin-top:6px}.empty{padding:40px 16px;border:1px dashed #dc9cbb;border-radius:20px;background:#fff8fbbb}@keyframes drift{0%,100%{transform:translate3d(0,0,0) rotate(-10deg)}50%{transform:translate3d(12px,-28px,0) rotate(13deg)}}@keyframes gift-bob{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-7px) rotate(4deg)}}@keyframes photo-arrive{from{opacity:0;transform:translate3d(-30px,70px,0) rotate(-12deg) scale(.92)}to{opacity:1;transform:translate3d(0,0,0) rotate(var(--turn)) scale(1)}}@keyframes photo-drift{0%,100%{transform:translate3d(0,0,0) rotate(var(--turn))}50%{transform:translate3d(5px,-10px,0) rotate(calc(var(--turn) + 2deg))}}@media(max-width:540px){main{padding:calc(30px + env(safe-area-inset-top)) 22px calc(35px + env(safe-area-inset-bottom))}.eyebrow{font-size:10px;letter-spacing:2px}.gift{margin:24px auto 18px;width:94px;height:90px}h1{font-size:43px;line-height:1.08;margin:18px 0}p{font-size:16px;line-height:1.65;margin:16px 0}form{margin:27px auto 22px;padding:24px 20px 20px;max-width:350px}label{font-size:15px;margin-bottom:9px}input{font-size:16px;min-height:48px;margin-bottom:20px}button{font-size:16px;min-height:50px}small{font-size:12px;line-height:1.65}.floater{opacity:.45;width:34px}.floater-0{left:-14px;top:9%;width:53px}.floater-1{right:-8px;top:18%;width:45px}.floater-3{right:-19px;top:47%;width:46px}.floater-4{left:-13px;top:38%}.floater-6{left:-15px;top:77%;width:48px}.floater-7{right:-13px;top:75%}.floater-9{right:4%;top:91%;width:43px}.floater-10{left:14%;top:3%;width:28px}.floater-11{right:3%;top:60%}.floater-12{left:-9px;top:59%;width:30px}.floater-13{display:none}.gallery{max-width:305px;gap:50px;padding:28px 8px 12px}.music{margin:25px 0 32px;gap:10px}.message{margin-top:45px;padding:15px}h2{font-size:25px}footer{font-size:16px;margin-top:45px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}.gallery figure{opacity:1;transform:rotate(var(--turn))}.floater{will-change:auto}}
/* Constrain native Safari date controls to the form's content width. */
form{width:100%;min-width:0}form label{max-width:100%;overflow-wrap:break-word;line-height:1.45}form input{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;margin-left:0;margin-right:0}input[type=date]{appearance:none;-webkit-appearance:none;display:block;width:100%;min-width:0;max-width:100%;height:50px;padding:12px;font:16px/24px system-ui,sans-serif;text-align:left}input[type=date]::-webkit-date-and-time-value{min-width:0;text-align:left;margin:0}input[type=date]::-webkit-datetime-edit{display:inline-flex;padding:0;max-width:100%}form button{max-width:100%;white-space:normal;line-height:1.35}@media(max-width:540px){main{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}form{max-width:350px;padding:25px 20px 22px}form label{font-size:15px}form input{margin-bottom:22px}h1{font-size:clamp(36px,10.5vw,43px)}small{padding:0 8px}}
/* Pink frosted glass, with a short kitten-and-ribbon celebration. */
body{background:radial-gradient(ellipse at 5% 12%,#f5b2d4,transparent 53%),radial-gradient(ellipse at 95% 45%,#e8c4f0,transparent 52%),radial-gradient(ellipse at 45% 95%,#ffdeeb,transparent 55%),#fff1f8}form,.music,.message{background:linear-gradient(135deg,#ffffffa6,#fff7fc66);border:1px solid #ffffffdf;box-shadow:0 18px 50px #9c50751c,inset 0 1px 0 #fff,inset 0 -1px 0 #ffffff70;-webkit-backdrop-filter:blur(22px) saturate(145%);backdrop-filter:blur(22px) saturate(145%)}form{border-radius:28px}input{background:#ffffff8f!important;border-color:#ffffffed!important;box-shadow:inset 0 2px 5px #b95d8210,0 1px 0 #dcaac950}button{position:relative;background:linear-gradient(155deg,#e58ab8,#be5b91 65%,#ad4c86);border:1px solid #ffffff90;box-shadow:inset 0 1px 0 #ffffffa6,0 9px 24px #ac4c7e30;transition:transform .2s,box-shadow .2s}button:active{transform:scale(.97);box-shadow:inset 0 1px 0 #ffffffa6,0 3px 10px #ac4c7e25}#wrapped{animation:glass-reveal .7s both}#memories:not([hidden]){animation:glass-reveal .7s both}.gallery figure{background:linear-gradient(140deg,#ffffffeb,#fff3faad);border:1px solid #fffffff0;box-shadow:0 14px 35px #9e4f7825,inset 0 1px 0 white;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.kitten-parade{position:fixed;inset:0;z-index:20;pointer-events:none;overflow:hidden;contain:strict}.runner{position:absolute;top:var(--lane);left:0;width:var(--size);opacity:0;animation:cat-cross var(--run-time) linear var(--run-delay) both;will-change:transform}.runner svg{display:block;width:100%;height:auto;animation:cat-hop .32s ease-in-out infinite alternate;filter:drop-shadow(0 3px 2px #a9447320)}@keyframes cat-cross{0%{transform:translate3d(var(--start),0,0);opacity:0}8%,90%{opacity:.9}100%{transform:translate3d(var(--finish),-20px,0);opacity:0}}@keyframes cat-hop{from{transform:translateY(0) rotate(-8deg)}to{transform:translateY(-7px) rotate(8deg)}}@keyframes glass-reveal{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){form,.music,.message{background:#fff7fbee}}@media(prefers-reduced-motion:reduce){.kitten-parade{display:none}*,*:before,*:after{animation:none!important;transition:none!important}}
.music-dock{position:fixed;z-index:10;bottom:calc(12px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(440px,calc(100% - 24px));display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:24px;background:linear-gradient(130deg,#fffafae8,#ffe6f2b8);border:1px solid #ffffffed;box-shadow:0 8px 38px #7139512c,inset 0 1px 0 #fff;-webkit-backdrop-filter:blur(25px) saturate(150%);backdrop-filter:blur(25px) saturate(150%);text-align:left}.vinyl{width:54px;height:54px;flex:0 0 54px;border-radius:50%;background:repeating-radial-gradient(circle,#29232a 0 2px,#40333c 3px,#211d22 4px);display:grid;place-items:center;position:relative;animation:record-spin 8s linear infinite;animation-play-state:paused;box-shadow:0 3px 8px #291b3540}.vinyl img{width:34px;height:34px;object-fit:cover;border-radius:50%}.vinyl:after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:#fff4fa;border:1px solid #342733}.playing .vinyl{animation-play-state:running}.track{min-width:0;flex:1;font-family:system-ui,sans-serif}.track strong{display:block;font-size:15px;line-height:1.3;color:#64354b}.track>span{font-size:12px;color:#99647e}.track-progress{display:flex;align-items:center;gap:6px;margin-top:5px;font-size:9px;color:#925a74;font-variant-numeric:tabular-nums}.track-progress input[type=range]{appearance:auto;-webkit-appearance:auto;accent-color:#bc5c8e;height:22px;min-height:22px;padding:0;margin:0;min-width:0;flex:1;width:100%;background:transparent!important;border:0!important;box-shadow:none;cursor:pointer}.track-progress>span{flex-shrink:0}#play-toggle{flex:0 0 44px;width:44px;min-height:44px;height:44px;padding:0;border-radius:50%;display:grid;place-items:center;font:16px system-ui,sans-serif}#play-toggle span{line-height:1}.has-player main{padding-bottom:calc(140px + env(safe-area-inset-bottom))}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}audio#song{display:none}@keyframes record-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.vinyl{animation:none!important}}@media(max-width:360px){.music-dock{gap:8px;padding:10px}.vinyl{width:46px;height:46px;flex-basis:46px}}
/* A record-only dock that unfolds its controls on tap. */
.music-dock{left:auto;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));transform:none;width:76px;max-width:calc(100% - 32px);height:76px;gap:0;padding:10px;border-radius:38px;transition:width .35s cubic-bezier(.22,1,.36,1),border-radius .35s;overflow:hidden;flex-direction:row-reverse;justify-content:flex-start}.music-dock.expanded{width:390px;border-radius:26px}.record-toggle{padding:0!important;border:0!important;background:none!important;box-shadow:none!important;flex:0 0 54px;width:54px;height:54px;min-height:54px;border-radius:50%;display:grid;place-items:center}.record-toggle:active{transform:scale(.95)}.record-toggle:focus-visible{outline:3px solid #b95688;outline-offset:1px}.music-details{display:flex;align-items:center;gap:10px;flex:1;min-width:0;opacity:0;visibility:hidden;transform:translateX(12px);transition:opacity .2s,transform .3s,visibility .2s;padding-right:0;pointer-events:none}.expanded .music-details{opacity:1;visibility:visible;transform:none;padding-right:12px;pointer-events:auto}.music-details .track{min-width:0}.music-details #play-toggle{flex-basis:42px;width:42px;height:42px;min-height:42px}.has-player main{padding-bottom:calc(115px + env(safe-area-inset-bottom))}@media(max-width:360px){.music-dock{right:12px;max-width:calc(100% - 24px)}.record-toggle,.record-toggle .vinyl{width:54px;height:54px;flex-basis:54px}.music-details{gap:6px}}@media(prefers-reduced-motion:reduce){.music-dock,.music-details{transition:none!important}}
.photo-open{display:block;width:100%;padding:0;border:0;border-radius:0;background:none;box-shadow:none;min-height:0;cursor:zoom-in}.photo-open:hover{background:none}.photo-open:active{transform:none}.photo-open img{display:block;object-fit:contain;background:#f5eaf0;aspect-ratio:3/4}.gallery figure{animation:photo-arrive .85s both,photo-float 10s ease-in-out infinite;animation-delay:var(--delay),calc(var(--delay) + .85s)}@keyframes photo-float{0%,100%{transform:translate3d(-4px,0,0) rotate(var(--turn))}35%{transform:translate3d(8px,-17px,0) rotate(calc(var(--turn) + 3deg))}70%{transform:translate3d(-7px,-7px,0) rotate(calc(var(--turn) - 2deg))}}.photo-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:calc(65px + env(safe-area-inset-top)) 24px calc(25px + env(safe-area-inset-bottom));background:#573b5580;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overflow:auto}.photo-large{margin:auto;max-width:440px;width:100%;background:#fffafc;padding:13px 13px 24px;box-shadow:0 22px 70px #24152366;transform:rotate(-2deg);animation:polaroid-forward .35s both;border-radius:3px}.photo-large img{display:block;width:100%;max-height:60vh;max-height:60dvh;object-fit:contain;background:#f7eff3}.photo-large figcaption{text-align:center;font-size:20px;line-height:1.5;margin-top:20px}.photo-close{position:absolute;right:18px;top:calc(14px + env(safe-area-inset-top));width:46px;height:46px;min-height:46px;padding:0;display:grid;place-items:center;font:32px/1 system-ui;color:#733d59;background:#fff8fce8;border:1px solid #fff;border-radius:50%}.photo-viewing{overflow:hidden}@keyframes polaroid-forward{from{opacity:0;transform:translateY(45px) rotate(-8deg) scale(.75)}to{opacity:1;transform:translateY(0) rotate(-2deg) scale(1)}}@media(prefers-reduced-motion:reduce){.gallery figure,.photo-large{animation:none!important}}
/* Let every Polaroid follow its photograph's natural aspect ratio. */
.gallery .photo-open img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:transparent}.photo-large{width:fit-content;max-width:min(440px,100%)}.photo-large img{width:auto;height:auto;max-width:100%;max-height:60vh;max-height:60dvh;aspect-ratio:auto;object-fit:contain;background:transparent;margin:0 auto}.photo-large figcaption{max-width:100%;overflow-wrap:anywhere}
.real-cat{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 3px #76405418)}.floater.photo-cat{opacity:.78;width:68px;height:78px}.runner .real-cat{animation:cat-hop .32s ease-in-out infinite alternate;filter:drop-shadow(0 3px 2px #a9447320)}.runner{height:calc(var(--size) * 1.2)}@media(max-width:540px){.floater.photo-cat{opacity:.65;width:53px;height:68px}.floater-0.photo-cat{left:-9px}.floater-3.photo-cat{right:-12px}.floater-6.photo-cat{left:-10px}.floater-9.photo-cat{right:1%}.floater-12.photo-cat{left:-8px;width:43px;height:58px}}@media(prefers-reduced-motion:reduce){.runner .real-cat{animation:none!important}}
/* Small picture-only keepsakes; captions live in the opened Polaroid. */
.gallery{grid-template-columns:repeat(auto-fit,minmax(130px,165px));justify-content:center;align-items:start;gap:38px 25px;max-width:800px;margin:auto}.gallery>figure{width:100%;padding:8px 8px 22px}.gallery>figure>figcaption{display:none}.gallery figure:before{font-size:25px;top:-17px;left:calc(50% - 14px)}.gallery .photo-open img{aspect-ratio:auto;height:auto}.gallery .photo-open{position:relative;z-index:2}.photo-stack{isolation:isolate;margin-bottom:12px!important}.gallery .photo-stack:after{content:'';position:absolute;inset:4px -5px -5px 5px;background:#fff8fc;border:1px solid #eed7e2;transform:rotate(7deg);z-index:-1;box-shadow:4px 4px 0 #fff2f9,5px 5px 0 #e9cbdc}.photo-count{position:relative;display:block;font:10px/1.5 system-ui,sans-serif;color:#a2547c;letter-spacing:.3px;margin:9px 0 -12px}.photo-nav{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:18px;font:13px system-ui;color:#915572}.photo-nav button{width:44px;height:44px;min-height:44px;padding:0;font:30px/1 Georgia;border-radius:50%}.photo-nav button:disabled{opacity:.3;cursor:default}.photo-large figcaption{display:block}.photo-large{max-height:calc(100dvh - 110px);overflow:auto}.photo-large img{max-height:52vh;max-height:52dvh}@media(max-width:540px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:33px 20px;max-width:330px;padding:20px 6px}.gallery>figure{padding:7px 7px 19px}.photo-large figcaption{font-size:18px;line-height:1.5}.photo-overlay{padding-left:20px;padding-right:20px}}

#date{font-variant-numeric:tabular-nums;letter-spacing:1px;margin-bottom:7px}.date-hint{display:block;font:11px/1.5 system-ui,sans-serif;color:#996580;margin:0 0 22px;letter-spacing:0}

.gallery>figure[data-group="ballonabend"]>.photo-count{display:none}
/* A quiet anniversary clock beside the collapsed record. */
.together-timer{position:fixed;z-index:5;left:16px;bottom:calc(24px + env(safe-area-inset-bottom));width:min(250px,calc(100% - 116px));text-align:center;pointer-events:none;color:#98637d;font-family:system-ui,sans-serif;text-shadow:0 1px 3px #fff8fc;background:linear-gradient(120deg,#fff7fc70,#fff4fa38);border:1px solid #ffffff80;border-radius:18px;padding:9px 11px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.together-label{display:block;font-size:8px;letter-spacing:1.3px;margin-bottom:5px}.together-values{display:flex;justify-content:space-around;gap:8px}.together-values>span{display:flex;flex-direction:column;gap:1px;min-width:0}.together-values strong{font-size:18px;line-height:1.15;font-weight:500;font-variant-numeric:tabular-nums}.together-values small{font-size:8px;line-height:1.3;color:#a5778e}@media(max-width:360px){.together-timer{left:12px;padding:8px;width:calc(100% - 108px)}.together-label{font-size:7px;letter-spacing:.9px}.together-values{gap:4px}.together-values strong{font-size:16px}}
.photo-large video{display:block;width:100%;max-height:52vh;max-height:52dvh;border-radius:2px;background:#211821}.video-badge{position:absolute;inset:auto 7px 7px auto;padding:4px 7px;border-radius:12px;background:#fff8fce6;color:#a14f79;font:11px system-ui}
/* The anniversary clock belongs to the page background, without a glass card. */
.together-timer{background:none;border:0;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;text-shadow:none;padding:9px 11px;color:#98637d}.confetti{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 140px),transparent calc(100% - 105px));mask-image:linear-gradient(to bottom,#000 calc(100% - 140px),transparent calc(100% - 105px))}.kitten-parade{clip-path:inset(0 0 calc(110px + env(safe-area-inset-bottom)) 0)}
/* Fade the scrolling page above the fixed anniversary clock and record. */
body.has-player main{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 155px - env(safe-area-inset-bottom)),transparent calc(100% - 110px - env(safe-area-inset-bottom)));mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 155px - env(safe-area-inset-bottom)),transparent calc(100% - 110px - env(safe-area-inset-bottom)));-webkit-mask-size:100vw 100vh;mask-size:100vw 100vh;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:0 var(--page-scroll,0px);mask-position:0 var(--page-scroll,0px)}
body.has-player main{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(var(--page-scroll,0px) + 100vh - 155px - env(safe-area-inset-bottom)),transparent calc(var(--page-scroll,0px) + 100vh - 110px - env(safe-area-inset-bottom)));mask-image:linear-gradient(to bottom,#000 0,#000 calc(var(--page-scroll,0px) + 100vh - 155px - env(safe-area-inset-bottom)),transparent calc(var(--page-scroll,0px) + 100vh - 110px - env(safe-area-inset-bottom)));-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-position:0 0;mask-position:0 0}
/* A fixed overlay works on iOS without a scrolling CSS mask. */
body.has-player main{-webkit-mask-image:none!important;mask-image:none!important}.bottom-fade{display:none;position:fixed;z-index:4;left:0;right:0;bottom:0;height:calc(150px + env(safe-area-inset-bottom));background:linear-gradient(to bottom,rgba(255,241,248,0),rgba(255,241,248,.84) 38%,#fff1f8 68%);pointer-events:none}body.has-player .bottom-fade{display:block}.memory-intro{position:relative;margin:0 auto 28px;padding:24px 16px 20px;border-radius:26px;background:linear-gradient(135deg,#fff7fbee,#ffe8f4eb);border:1px solid #ffffffb3;box-shadow:0 8px 32px #9c507510;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.memory-intro h1{margin:16px 0}.memory-intro p{margin-bottom:0}.kitten-parade{z-index:0}#wrapped{background:linear-gradient(135deg,#fff7fbe8,#ffe8f4e3);border:1px solid #ffffffb3;border-radius:28px;padding:25px 16px 30px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}@media(max-width:540px){.memory-intro{padding:21px 12px 18px;margin-bottom:22px}.memory-intro h1{font-size:clamp(32px,9.8vw,41px)}.memory-intro p{font-size:15px}.bottom-fade{height:calc(145px + env(safe-area-inset-bottom))}}
