@import "https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;500;600;700;800&family=Fredoka:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;500;600;700;800&family=Fredoka:wght@400;500;600;700&display=swap";*{box-sizing:border-box}.passcode-page{isolation:isolate;color:#54265d;background:radial-gradient(circle at 10% 15%,#ffdca5a6,#0000 28%),radial-gradient(circle at 90% 85%,#ffc3d78c,#0000 30%),linear-gradient(135deg,#fff9ed,#ffeef4 55%,#fff3d7);justify-content:center;align-items:center;width:100%;min-height:100vh;padding:40px 24px;font-family:"Baloo 2",sans-serif;display:flex;position:relative;overflow:hidden}.decor{z-index:-1;pointer-events:none;-webkit-user-select:none;user-select:none;animation:5s ease-in-out infinite floatDecoration;position:absolute}.decor-one{color:#ed8fa8;font-size:56px;top:8%;left:7%}.decor-two{color:#e4ad36;font-size:38px;animation-delay:.8s;top:16%;right:9%}.decor-three{color:#a986d5;font-size:44px;animation-delay:1.4s;bottom:14%;left:10%}.decor-four{color:#e99ab4;font-size:62px;animation-delay:.5s;bottom:9%;right:7%}.decor-five{color:#e5b847;font-size:26px;animation-delay:1.8s;top:48%;left:3%}.passcode-layout{grid-template-columns:minmax(0,1fr) minmax(340px,.9fr);align-items:center;gap:48px;width:100%;max-width:1080px;display:grid}.birthday-art{text-align:center;min-width:0;padding:24px 12px}.funky-greeting{color:#762d83;justify-content:center;align-items:center;gap:12px;margin:0 auto 12px;display:flex}.greeting-text{letter-spacing:2px;text-shadow:2px 3px #ffd96c,4px 5px #71347e1a;font-family:Fredoka,sans-serif;font-size:clamp(28px,4vw,45px);font-weight:700;line-height:1.2;animation:2.5s ease-in-out infinite greetingBounce;display:inline-block}.greeting-star{color:#e9ac2c;font-size:25px;animation:1.5s ease-in-out infinite starTwinkle}.greeting-star:last-child{animation-delay:.5s}.welcome-image{object-fit:contain;border-radius:20px;width:100%;max-width:350px;height:auto;max-height:390px;margin:12px auto 18px;animation:.45s both pikachuPop;display:block}.art-caption{color:#5c3264;margin:10px auto 0;font-size:21px;font-weight:700;line-height:1.5}.art-caption p{margin:4px 0}.caption-heart{color:#e6537c}.wrong-passcode-mode .funky-greeting{color:#cf303d}.wrong-passcode-mode .greeting-text{text-shadow:2px 3px #ffd3a5,4px 5px #96141e1f;animation:.45s ease-in-out angryShake}.wrong-passcode-mode .greeting-star{color:#e65348}.wrong-passcode-mode .welcome-image{filter:drop-shadow(0 8px 14px #be243033)}.funny-title{color:#c92f3c;font-family:Fredoka,sans-serif;font-size:25px;font-weight:700}.funny-caption{color:#6f2c73;font-size:19px;font-weight:800}.small-caption{color:#895b48;font-size:14px;font-weight:600}.lock-panel{text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffc2;border:1px solid #ffffffe6;border-radius:30px;justify-self:center;width:100%;max-width:450px;padding:15px;box-shadow:0 18px 50px #6b38691f,inset 0 1px #fffffff2}.lock-icon{margin-bottom:3px;font-size:35px}.lock-panel h1{color:#58275f;margin:0;font-family:Fredoka,sans-serif;font-size:30px;font-weight:700}.lock-description{color:#987b9b;margin:8px 0 16px;font-size:14px}.tiny-divider{justify-content:center;align-items:center;gap:12px;margin:16px 0 23px;display:flex}.tiny-divider>span:not(.divider-heart){background:#edc4d0;border-radius:5px;width:52px;height:2px}.divider-heart{color:#df7394;font-size:16px}.passcode-slots{justify-content:center;gap:13px;margin:0 auto 25px;display:flex}.passcode-slot{color:#682f73;text-align:center;background:#fffafd;border:2px solid #ead5e8;border-radius:15px;outline:none;width:54px;height:60px;padding:0;font-family:Fredoka,sans-serif;font-size:25px;font-weight:700;transition:border-color .2s,background .2s,transform .2s,box-shadow .2s;box-shadow:0 4px 10px #5e2f670a}.passcode-slot:focus{background:#fff5ff;border-color:#ba79c5;transform:translateY(-2px);box-shadow:0 0 0 4px #ba79c51f}.passcode-slot.filled{background:#fcf0ff;border-color:#d3a0d9}.keypad{grid-template-columns:repeat(3,1fr);gap:12px;max-width:285px;margin:0 auto;display:grid}.keypad-button{color:#61356b;cursor:pointer;background:linear-gradient(145deg,#fff,#fff7fc);border:1px solid #f0d9eb;border-radius:16px;min-height:54px;font-family:Fredoka,sans-serif;font-size:21px;font-weight:600;transition:transform .18s,background .18s,box-shadow .18s;box-shadow:0 5px 12px #622f690f}.keypad-button:hover{background:#f9e9ff;transform:translateY(-3px);box-shadow:0 8px 15px #622f691c}.keypad-button:active{transform:scale(.95)}.keypad-button.utility-key{color:#c04f76;background:#fff0f3;border-color:#f7d5df}.passcode-hint{color:#9b7b9d;margin:20px 0 0;font-size:13px;font-weight:600}.pikachu-reaction{color:#b52f4c;background:#fff1f3;border:1px solid #f6c9d2;border-radius:15px;margin:18px auto 0;padding:12px;animation:.3s errorPop}.reaction-title{margin:0 0 4px;font-family:Fredoka,sans-serif;font-size:18px;font-weight:700}.pikachu-reaction span{font-size:13px;line-height:1.5}.passcode-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:9px;margin-top:23px;display:flex}.passcode-actions button{cursor:pointer;border:none;border-radius:12px;min-height:42px;padding:9px 13px;font-family:"Baloo 2",sans-serif;font-size:13px;font-weight:700;transition:transform .2s,box-shadow .2s}.passcode-actions button:hover{transform:translateY(-2px);box-shadow:0 5px 12px #46234b1f}.back-button{color:#714a77;background:#f2e9f4}.reenter-button{color:#946318;background:#fff0d0}.submit-button{color:#fff;background:linear-gradient(135deg,#7e3b8b,#a956ad);box-shadow:0 5px 13px #7e3b8b33}.submit-button span{color:#ffdf86}@keyframes floatDecoration{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-14px)rotate(10deg)}}@keyframes greetingBounce{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-5px)rotate(1deg)}}@keyframes starTwinkle{0%,to{opacity:1;transform:scale(1)rotate(0)}50%{opacity:.55;transform:scale(1.25)rotate(15deg)}}@keyframes pikachuPop{0%{opacity:0;transform:scale(.88)rotate(-3deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes angryShake{0%,to{transform:translate(0)}25%{transform:translate(-5px)rotate(-2deg)}50%{transform:translate(5px)rotate(2deg)}75%{transform:translate(-3px)}}@keyframes errorPop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@media (width<=900px){.passcode-page{padding:30px 18px}.passcode-layout{grid-template-columns:minmax(0,1fr) minmax(310px,.95fr);gap:24px}.lock-panel{padding:28px 20px}.welcome-image{max-width:300px}.greeting-text{font-size:31px}}@media (width<=700px){.passcode-page{min-height:100vh;padding:25px 16px;overflow-y:auto}.passcode-layout{grid-template-columns:1fr;gap:18px;max-width:460px;margin:auto}.birthday-art{padding:10px 4px}.greeting-text{font-size:clamp(27px,7vw,36px)}.greeting-star{font-size:20px}.welcome-image{max-width:250px;max-height:270px;margin:8px auto 12px}.art-caption{font-size:17px}.funny-title{font-size:22px}.funny-caption{font-size:16px}.small-caption{font-size:12px}.lock-panel{max-width:420px;padding:25px 18px}.lock-panel h1{font-size:27px}.passcode-slots{gap:10px}.passcode-slot{width:49px;height:55px;font-size:22px}.keypad{gap:10px;max-width:270px}.keypad-button{min-height:49px}.passcode-actions{gap:7px}.passcode-actions button{padding:8px 11px;font-size:12px}.decor-one{font-size:35px;top:3%;left:3%}.decor-two{font-size:28px;top:8%;right:4%}.decor-three{font-size:30px;bottom:3%;left:4%}.decor-four{font-size:40px;bottom:3%;right:4%}}@media (width<=380px){.passcode-page{padding:20px 11px}.lock-panel{padding:22px 12px}.greeting-text{letter-spacing:1px;font-size:25px}.welcome-image{max-width:215px}.passcode-slot{width:45px;height:51px}.keypad{gap:8px}.keypad-button{min-height:45px}.passcode-actions button{padding:7px 9px}}.scrapbook-page{--purple:#713b83;--dark-purple:#492355;--yellow:#ffda64;min-height:100vh;color:var(--dark-purple);background:radial-gradient(circle at 5% 10%,#fff0bd,#0000 24%),radial-gradient(circle at 95% 40%,#f5dcff,#0000 25%),#fffaf1;font-family:"Baloo 2",sans-serif;position:relative;overflow:hidden}.scrapbook-page *,.scrapbook-page :before,.scrapbook-page :after{box-sizing:border-box}.scrapbook-page button,.scrapbook-page a{-webkit-tap-highlight-color:transparent}.scrap-floats{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.scrap-floats span{color:#dfa92e;opacity:.55;font-size:27px;animation:12s linear infinite floatDown;position:absolute;top:-45px}.scrap-floats span:first-child{animation-delay:-2s;left:5%}.scrap-floats span:nth-child(2){animation-delay:-7s;left:17%}.scrap-floats span:nth-child(3){animation-delay:-4s;left:32%}.scrap-floats span:nth-child(4){animation-delay:-9s;left:47%}.scrap-floats span:nth-child(5){animation-delay:-1s;left:62%}.scrap-floats span:nth-child(6){animation-delay:-6s;left:76%}.scrap-floats span:nth-child(7){animation-delay:-3s;left:88%}.scrap-floats span:nth-child(8){animation-delay:-10s;left:96%}.scrap-hero{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:650px;padding:75px 24px 55px;display:flex;position:relative}.scrap-eyebrow,.section-kicker{color:#a16b22;letter-spacing:2px;margin:0;font-size:12px;font-weight:800}.scrap-hero h1{max-width:900px;color:var(--purple);margin:20px 0;font-family:Fredoka,sans-serif;font-size:clamp(40px,6vw,73px);font-weight:700;line-height:1.12}.scrap-hero h1 span{color:#d78b2e;text-shadow:2px 3px #ffe5a0;display:block}.scrap-intro{color:#80648a;margin:0;font-size:17px;line-height:1.9}.pikachu-sticker{background:#ffde6f66;border:3px dashed #e7b848;border-radius:46% 54% 48% 52%;flex-direction:column;justify-content:center;align-items:center;width:210px;min-height:190px;margin:28px 0 8px;padding:12px;animation:3s ease-in-out infinite stickerBounce;display:flex;position:relative}.pikachu-image{object-fit:contain;filter:drop-shadow(0 5px 3px #b47b231f);width:145px;height:135px;display:block}.sticker-caption{color:#8a5918;letter-spacing:2px;font-family:Fredoka,sans-serif;font-size:15px;font-weight:700}.sticker-sparkle{color:#a45eb0;font-size:27px;animation:1.8s ease-in-out infinite sparkle;position:absolute}.sparkle-left{top:14px;left:-17px}.sparkle-right{color:#e0a522;bottom:30px;right:-18px}.hero-message{color:#997ca0;font-size:14px}.scroll-cue{color:var(--purple);letter-spacing:2px;margin-top:25px;font-size:12px;font-weight:800;text-decoration:none;animation:1.8s ease-in-out infinite cueBounce}.memory-section,.notes-section,.personal-section{z-index:1;max-width:1150px;margin:0 auto;padding:75px 28px;position:relative}.section-heading{text-align:left;justify-content:center;align-items:center;gap:16px;display:flex}.section-heading>span{font-size:30px}.section-heading h2{color:var(--purple);margin:3px 0 0;font-family:Fredoka,sans-serif;font-size:clamp(28px,4vw,43px);line-height:1.2}.section-description{color:#927c94;text-align:center;max-width:620px;margin:16px auto 38px;font-size:15px}.polaroid-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:38px 30px;display:grid}.polaroid{min-width:0;animation:.65s both cardAppear;animation-delay:calc(var(--card-index) * .1s);background:#fff;border-radius:4px;padding:12px 12px 18px;transition:transform .3s,box-shadow .3s;position:relative;box-shadow:0 9px 24px #4923551f}.polaroid:nth-child(odd){transform:rotate(-2deg)}.polaroid:nth-child(2n){transform:rotate(2deg)}.polaroid:hover{z-index:2;transform:translateY(-8px)rotate(0)scale(1.025);box-shadow:0 18px 30px #4923552b}.polaroid-photo{aspect-ratio:4/3;background:#fff0c8;width:100%;position:relative;overflow:hidden}.polaroid-photo img{object-fit:cover;width:100%;height:100%;transition:transform .5s;display:block}.polaroid:hover .polaroid-photo img{transform:scale(1.04)}.photo-heart{color:#f6a3bf;text-shadow:0 1px 3px #fff;font-size:22px;position:absolute;top:8px;right:9px}.polaroid-pink{background:#fff}.polaroid-yellow{background:#fffef8}.polaroid-purple,.polaroid-blue,.polaroid-peach,.polaroid-green{background:#fff}.polaroid-caption{text-align:center;padding:13px 3px 0}.polaroid-caption h3{color:#6d4377;margin:0;font-family:Fredoka,sans-serif;font-size:17px}.polaroid-caption p{color:#a08aa1;margin:5px 0 0;font-size:12px;line-height:1.6}.polaroid-sticker{color:#e7b848;font-size:23px;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.gallery-note{color:#997e9e;text-align:center;margin:35px 0 0;font-size:13px}.notes-section{background:#efdeff57;max-width:none;padding-left:max(28px,50% - 525px);padding-right:max(28px,50% - 525px)}.quote-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:22px;display:grid}.quote-card{color:#674b70;text-align:left;cursor:pointer;border:1px solid #7749891a;border-radius:18px 18px 18px 5px;flex-direction:column;align-items:flex-start;min-width:0;min-height:275px;padding:27px 22px;transition:transform .25s,box-shadow .25s;display:flex;position:relative;box-shadow:0 10px 22px #4923550f}.quote-card:hover{transform:translateY(-6px)rotate(-1deg);box-shadow:0 15px 28px #4923551a}.quote-happy{background:#fff1bd}.quote-missing{background:#ffe4ed}.quote-funny{background:#e9dcff}.quote-tape{color:#bc9bd1;font-size:20px;position:absolute;top:8px;right:13px}.quote-emoji{margin-bottom:13px;font-size:32px}.quote-type{color:#a16b32;letter-spacing:1.8px;margin-bottom:12px;font-size:10px;font-weight:800}.quote-text{font-family:Fredoka,sans-serif;font-size:18px;line-height:1.65}.quote-tap{color:#9c7a9e;margin-top:auto;padding-top:20px;font-size:11px;font-weight:700}.quote-extra{color:#87528f;border-top:1px dashed #6943734d;margin-top:14px;padding-top:12px;font-size:13px;line-height:1.7;animation:.3s noteReveal;display:block}.personal-section{max-width:900px;padding-top:80px;padding-bottom:80px}.personal-card{text-align:center;background:radial-gradient(circle at 5% 5%,#fff4c4,#0000 30%),radial-gradient(circle at 95% 95%,#efdfff,#0000 32%),#fffdf8;border:2px dashed #e8c35c;border-radius:28px;padding:48px clamp(22px,6vw,65px);position:relative;overflow:hidden;box-shadow:0 15px 35px #49235514}.personal-card h2{color:var(--purple);margin:14px 0;font-family:Fredoka,sans-serif;font-size:clamp(30px,4vw,43px)}.letter-decoration{color:#d9a62f;letter-spacing:8px;margin:18px 0;font-size:24px}.personal-message{color:#816d88;white-space:pre-line;max-width:640px;margin:0 auto;font-size:16px;line-height:2}.letter-signoff{color:#a17aa9;margin-top:28px;font-size:14px;line-height:1.9}.letter-signoff span{color:#713b83;font-family:Fredoka,sans-serif;font-size:20px;font-weight:600}.personal-heart{color:#e8b7d0;font-size:30px;animation:3s ease-in-out infinite stickerBounce;position:absolute}.heart-one{top:20px;left:22px}.heart-two{color:#e5bd53;bottom:20px;right:22px}.birthday-ending{z-index:1;color:#fff;text-align:center;background:linear-gradient(145deg,#4d245b,#713b83 55%,#8a4c94);padding:65px 22px 35px;position:relative;overflow:hidden}.ending-pikachu{object-fit:contain;filter:drop-shadow(0 6px 7px #14051933);width:150px;height:140px;margin:0 auto 20px;animation:2.5s ease-in-out infinite stickerBounce;display:block}.ending-kicker{color:#ffdf80;letter-spacing:3px;font-size:11px;font-weight:800}.birthday-ending h2{color:#fff;margin:15px 0;font-family:Fredoka,sans-serif;font-size:clamp(38px,6vw,66px);line-height:1.2}.birthday-ending h2 span{color:#ffdf80;text-shadow:2px 3px #1e0a2829;display:block}.ending-message{color:#f4e6f6;max-width:620px;margin:20px auto;font-size:16px;line-height:1.9}.birthday-wishes{flex-wrap:wrap;justify-content:center;gap:18px;margin:28px 0;display:flex}.birthday-wishes span{font-size:27px;animation:1.6s ease-in-out infinite wishBounce;display:inline-block}.birthday-wishes span:nth-child(2){animation-delay:.2s}.birthday-wishes span:nth-child(3){animation-delay:.4s}.birthday-wishes span:nth-child(4){animation-delay:.6s}.birthday-wishes span:nth-child(5){animation-delay:.8s}.ending-footer{color:#e7d0eb;letter-spacing:.5px;border-top:1px solid #ffffff2b;margin:36px 0 0;padding-top:22px;font-size:12px}.confetti{color:#ffdf80;font-size:30px;animation:5s ease-in-out infinite confettiDrift;position:absolute}.confetti-one{top:12%;left:10%}.confetti-two{color:#ffb8d0;top:30%;right:12%}.confetti-three{color:#dcb9ff;bottom:20%;left:16%}.confetti-four{top:55%;right:8%}@keyframes floatDown{0%{opacity:0;transform:translateY(0)rotate(0)}10%{opacity:.55}90%{opacity:.55}to{opacity:0;transform:translateY(110vh)rotate(240deg)}}@keyframes stickerBounce{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-8px)rotate(2deg)}}@keyframes sparkle{0%,to{opacity:.55;scale:.85}50%{opacity:1;scale:1.2}}@keyframes cueBounce{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes cardAppear{0%{opacity:0;translate:0 18px}to{opacity:1;translate:0}}@keyframes noteReveal{0%{opacity:0;translate:0 8px}to{opacity:1;translate:0}}@keyframes wishBounce{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-9px)rotate(4deg)}}@keyframes confettiDrift{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-17px)rotate(18deg)}}@media (width<=850px){.scrap-hero{min-height:570px}.polaroid-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:30px 22px}.quote-grid{grid-template-columns:1fr}.quote-card{min-height:220px}}@media (width<=520px){.scrap-hero{min-height:auto;padding:60px 18px 48px}.scrap-eyebrow{letter-spacing:1px;font-size:10px}.scrap-hero h1{font-size:39px}.scrap-intro{font-size:14px}.pikachu-sticker{width:175px;min-height:165px}.pikachu-image{width:120px;height:115px}.memory-section,.notes-section,.personal-section{padding:48px 16px}.section-heading{gap:8px}.section-heading>span{font-size:23px}.section-heading h2{font-size:27px}.section-kicker{letter-spacing:.8px;font-size:9px}.section-description{margin-bottom:27px;font-size:13px}.polaroid-grid{gap:23px 13px}.polaroid{padding:7px 7px 12px}.polaroid-caption{padding-top:9px}.polaroid-caption h3{font-size:13px}.polaroid-caption p{font-size:10px}.photo-heart{font-size:17px;top:4px;right:5px}.polaroid-sticker{font-size:18px;top:-12px}.gallery-note{font-size:11px}.quote-card{min-height:230px;padding:24px 18px}.quote-text{font-size:17px}.personal-card{padding:38px 20px}.personal-message{font-size:14px;line-height:1.9}.letter-signoff span{font-size:18px}.birthday-ending{padding:52px 18px 28px}.ending-pikachu{width:235px;height:120px}.ending-message{font-size:14px}.confetti-one{left:3%}.confetti-two{right:4%}.confetti-three{left:5%}.confetti-four{right:3%}}@media (prefers-reduced-motion:reduce){.scrapbook-page *,.scrapbook-page :before,.scrapbook-page :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
