/* Pooja Didi's Birthday Story — all visual effects are CSS-native for offline use. */
:root{--ink:#4a2140;--pink:#ff69a7;--hot:#ef3e86;--rose:#d99a9a;--lav:#b7a6ee;--peach:#ffd0c2;--cream:#fff9fb;--gold:#e6b75d;--gold-light:#ffe8a8;--glass:rgba(255,255,255,.45);--line:rgba(255,255,255,.72);--shadow:0 24px 70px rgba(120,45,87,.2);--display:Georgia,'Times New Roman',serif;--body:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}
*{box-sizing:border-box}html{min-height:100%;background:#fa9fbd}body{min-height:100%;margin:0;color:var(--ink);font-family:var(--body);background:radial-gradient(circle at 17% 12%,#ffe2ef 0 9%,transparent 31%),radial-gradient(circle at 84% 22%,#e1d7ff 0 6%,transparent 25%),linear-gradient(135deg,#fffaf8 0%,#ffe1ed 48%,#eadffd 100%);overflow-x:hidden}button,input{font:inherit}button{border:0;cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}.page{position:relative;min-height:100svh;isolation:isolate}.atmosphere{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none;background:linear-gradient(112deg,rgba(255,255,255,.28),transparent 45%,rgba(255,229,187,.22))}.atmosphere:before,.atmosphere:after{content:"";position:absolute;width:40vmax;height:40vmax;border-radius:50%;filter:blur(32px);opacity:.45;animation:drift 16s ease-in-out infinite alternate}.atmosphere:before{background:#ff98c4;left:-18vmax;top:-18vmax}.atmosphere:after{background:#b9a5fa;right:-20vmax;bottom:-18vmax;animation-delay:-8s}@keyframes drift{to{transform:translate(8vmax,5vmax) scale(1.15)}}
.particle{position:fixed;z-index:-1;top:102%;left:var(--x);font-size:var(--size);opacity:0;filter:drop-shadow(0 3px 5px rgba(186,61,118,.16));animation:floatUp var(--dur) var(--delay) linear infinite;pointer-events:none}@keyframes floatUp{0%{transform:translate3d(0,0,0) rotate(0deg);opacity:0}10%,85%{opacity:var(--opacity)}100%{transform:translate3d(var(--drift),-120svh,0) rotate(200deg);opacity:0}}
.site-shell{width:min(1120px,100%);margin:auto;padding:16px clamp(16px,4vw,50px) 44px}.topbar{height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:clamp(28px,6vh,68px)}.brand{font-family:var(--display);font-weight:700;font-size:1.1rem;letter-spacing:.04em}.brand i{font-style:normal;color:var(--hot);font-size:.75em}.sound-control{display:flex;align-items:center;gap:8px;padding:7px 9px 7px 12px;border-radius:999px;background:rgba(255,255,255,.48);border:1px solid var(--line);backdrop-filter:blur(12px);box-shadow:0 8px 24px rgba(117,55,97,.08);font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sound-toggle{display:flex;align-items:center;gap:7px;padding:2px 0;background:transparent;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit}.sound-control .sound-icon{font-size:1.05rem}.sound-control input{width:48px;accent-color:var(--hot)}.progress-dots{display:flex;gap:5px;justify-content:center;margin-top:25px}.progress-dots i{width:6px;height:6px;border-radius:10px;background:rgba(97,36,75,.2)}.progress-dots i.active{width:22px;background:var(--hot)}
.eyebrow{margin:0 0 12px;color:#b23d77;font-size:.69rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.hero{min-height:calc(100svh - 118px);display:grid;align-content:center;justify-items:center;text-align:center;padding-bottom:40px}.hero h1,.section-title{font-family:var(--display);font-size:clamp(3rem,12vw,7rem);line-height:.9;letter-spacing:-.06em;margin:0;text-wrap:balance}.hero h1 em,.section-title em{font-weight:400;color:var(--hot);text-shadow:0 6px 28px rgba(239,62,134,.22)}.hero-copy{max-width:520px;margin:24px auto;color:#6f4662;font-size:clamp(.96rem,2vw,1.12rem);line-height:1.75}.hero-orbit{width:min(74vw,330px);aspect-ratio:1;margin:0 auto 24px;position:relative;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 38% 28%,#fff 0 8%,#ffe9f2 35%,#ec9cbf 100%);box-shadow:inset 0 0 0 12px rgba(255,255,255,.36),0 25px 80px rgba(183,66,122,.24)}.hero-orbit:before{content:"";position:absolute;inset:-15px;border:1px solid rgba(218,153,178,.5);border-radius:45% 55% 53% 47%;animation:spin 14s linear infinite}.hero-orbit:after{content:"✦";position:absolute;right:-13px;top:44px;font-size:2.5rem;color:var(--gold);filter:drop-shadow(0 2px 8px #fff)}.portrait-illustration{font-size:clamp(8rem,25vw,13rem);filter:drop-shadow(0 8px 8px rgba(155,47,93,.18));animation:bob 3.4s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bob{50%{transform:translateY(-9px) rotate(2deg)}}
.button-row{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.button{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 23px;overflow:hidden;border-radius:999px;background:linear-gradient(125deg,#f74b91,#fa8fb9 55%,#e0a7d5);color:white;font-weight:850;letter-spacing:.02em;box-shadow:0 15px 30px rgba(220,58,127,.28);transition:transform .25s,box-shadow .25s}.button:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.52) 49%,transparent 72%);transform:translateX(-140%);transition:transform .65s}.button:hover:before{transform:translateX(140%)}.button:hover{transform:translateY(-3px);box-shadow:0 20px 38px rgba(220,58,127,.36)}.button:active{transform:translateY(1px) scale(.98)}.button--soft{background:rgba(255,255,255,.55);color:var(--ink);border:1px solid var(--line);box-shadow:0 12px 26px rgba(120,53,92,.1)}.button--gold{background:linear-gradient(125deg,#bc7e21,#f3ca71 50%,#bd7d20);color:#633e13}
.glass-card{position:relative;background:var(--glass);border:1px solid var(--line);border-radius:30px;box-shadow:var(--shadow);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.split-layout{display:grid;align-items:center;gap:28px;min-height:calc(100svh - 118px)}.split-layout .copy{text-align:center}.mini-illustration{position:relative;min-height:310px;display:grid;place-items:center;overflow:hidden}.mini-illustration .halo{position:absolute;width:260px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fff7bd 0,rgba(255,211,153,.55) 31%,rgba(255,255,255,0) 67%);filter:blur(1px)}.mini-illustration .emoji-art{position:relative;font-size:clamp(8rem,26vw,14rem);filter:drop-shadow(0 14px 10px rgba(130,57,91,.19));animation:bob 3s ease-in-out infinite}
.password-card{padding:30px 22px;max-width:440px;width:100%;margin:auto;text-align:center}.password-dots{display:flex;justify-content:center;gap:16px;margin:22px 0}.password-dots i{width:15px;height:15px;border:2px solid #d37ba3;border-radius:50%;transition:.25s}.password-dots i.filled{background:#ef3e86;border-color:#ef3e86;box-shadow:0 0 0 5px rgba(239,62,134,.13)}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.key{aspect-ratio:1.35;border-radius:18px;background:rgba(255,255,255,.57);box-shadow:inset 0 1px rgba(255,255,255,.8),0 6px 17px rgba(135,53,94,.08);font-size:1.2rem;font-weight:800;transition:transform .15s,background .15s}.key:hover{background:#fff}.key:active{transform:scale(.92);background:#ffd5e5}.feedback{min-height:22px;margin:16px 0 0;font-size:.82rem;font-weight:700;color:#b34475}.shake{animation:shake .45s linear}@keyframes shake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}.unlocking{animation:unlock .8s ease forwards}@keyframes unlock{50%{transform:scale(1.04);filter:brightness(1.12)}100%{transform:scale(18);opacity:0}}
.countdown-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:680px;margin:30px auto}.time-card{padding:20px 4px 14px;text-align:center;border-radius:22px;background:rgba(255,255,255,.52);border:1px solid var(--line);box-shadow:0 9px 25px rgba(132,45,90,.08)}.time-card b{display:block;font-family:var(--display);font-size:clamp(1.8rem,8vw,4rem);line-height:1;color:var(--hot)}.time-card small{font-size:.58rem;letter-spacing:.12em;font-weight:800;color:#8b526e;text-transform:uppercase}.date-ribbon{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:99px;background:rgba(255,255,255,.52);font-size:.75rem;font-weight:800;color:#9c4670}
.wish-stage{min-height:calc(100svh - 118px);display:grid;align-content:center;text-align:center}.birthday-mark{font-size:clamp(1.3rem,4vw,2rem);letter-spacing:.35em;color:#db9a31;margin-bottom:14px}.wish-stage h1{font-family:var(--display);font-size:clamp(4rem,15vw,9rem);line-height:.76;letter-spacing:-.09em;margin:0;background:linear-gradient(135deg,#df327b 20%,#ff7caf 43%,#ce9a2c 74%,#dc3d88);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 7px 18px rgba(219,67,129,.16));animation:breath 3.2s ease-in-out infinite}@keyframes breath{50%{transform:scale(1.025);filter:drop-shadow(0 10px 24px rgba(219,67,129,.25))}}.typing-line{min-height:54px;max-width:690px;margin:28px auto;font-family:var(--display);font-size:clamp(1.2rem,4.5vw,2rem);font-style:italic;color:#70445e}.typing-line:after{content:"|";animation:blink .7s steps(2) infinite;color:var(--hot)}@keyframes blink{50%{opacity:0}}
.gift-wrap{min-height:calc(100svh - 118px);display:grid;align-content:center;justify-items:center;text-align:center}.gift-box{position:relative;width:min(64vw,290px);aspect-ratio:1;cursor:pointer;filter:drop-shadow(0 25px 15px rgba(103,42,75,.2));transition:transform .4s;transform-style:preserve-3d}.gift-box:hover{transform:perspective(1200px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-8px) scale(1.03)}.gift-base{position:absolute;inset:27% 5% 5%;border-radius:12px 12px 23px 23px;background:linear-gradient(135deg,#ef4e91,#ff99c3 55%,#c8387b);box-shadow:inset 12px 0 rgba(255,255,255,.15),inset -12px -12px rgba(112,13,59,.16);transform:translateZ(20px)}.gift-lid{position:absolute;left:0;right:0;top:14%;height:28%;border-radius:16px;background:linear-gradient(135deg,#ff7db4,#ffd0e2 55%,#e34688);z-index:3;transform:translateZ(55px) rotateX(4deg);transform-origin:7% 93%;transition:transform 1s cubic-bezier(.16,.8,.28,1)}.gift-ribbon-v{position:absolute;z-index:5;top:8%;bottom:5%;left:43%;width:16%;background:linear-gradient(90deg,#e8b544,#fff3a9,#c98316);box-shadow:0 0 12px rgba(255,230,135,.55);transform:translateZ(65px)}.gift-ribbon-h{position:absolute;z-index:5;left:1%;right:1%;top:22%;height:13%;background:linear-gradient(#c98518,#ffe99c,#d99a2e);transform:translateZ(69px)}.bow{position:absolute;z-index:6;left:50%;top:3%;width:34%;height:19%;transform:translateX(-50%) translateZ(85px)}.bow:before,.bow:after{content:"";position:absolute;top:0;width:68%;height:95%;border:11px solid #e4b242;border-radius:55% 45% 50% 40%;background:rgba(255,238,150,.3)}.bow:before{right:45%;transform:rotate(-28deg)}.bow:after{left:45%;transform:rotate(28deg) scaleX(-1)}.gift-box.open .gift-lid{transform:translateZ(55px) rotate(-38deg) translate(-8%,-32%)}.gift-box.open .gift-ribbon-h,.gift-box.open .bow{animation:poof .8s forwards}@keyframes poof{to{opacity:0;transform:translateY(-45px) scale(1.5)}}.gift-light{position:absolute;inset:7%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,217,.95),rgba(255,220,102,.58) 23%,transparent 68%);opacity:0;transform:translateZ(45px) scale(.3);transition:opacity .4s,transform .9s}.gift-box.open .gift-light{opacity:1;transform:translateZ(45px) scale(2.2)}.gift-reveal{max-width:620px;margin:20px auto 0;padding:24px;opacity:0;transform:translateY(20px);pointer-events:none;transition:.7s}.gift-reveal.visible{opacity:1;transform:none;pointer-events:auto}.gift-reveal p{margin:0;color:#70455e;line-height:1.7}
.gallery-shell{min-height:calc(100svh - 118px);display:grid;align-content:center}.gallery-header{text-align:center;margin-bottom:26px}.gallery-header .section-title{font-size:clamp(2.8rem,9vw,5rem)}.carousel{position:relative;max-width:850px;margin:auto}.slides{position:relative;min-height:430px}.slide{position:absolute;inset:0;display:grid;grid-template-columns:1fr;opacity:0;transform:scale(.94) translateX(20px);pointer-events:none;transition:opacity .6s,transform .65s}.slide.active{opacity:1;transform:none;pointer-events:auto}.memory-card{width:min(100%,620px);min-height:410px;margin:auto;padding:18px;border-radius:30px;background:rgba(255,255,255,.47);border:1px solid rgba(255,255,255,.72);box-shadow:var(--shadow);transform:rotate(var(--tilt));overflow:hidden}.memory-art{position:relative;min-height:320px;display:grid;place-items:center;overflow:hidden;border-radius:21px;background:var(--scene);isolation:isolate}.memory-art:before{content:"";position:absolute;z-index:2;width:230px;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.2);filter:blur(2px);top:10%;right:6%;pointer-events:none}.memory-art .gallery-photo{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;image-orientation:from-image;filter:saturate(1.08) contrast(1.03) brightness(.98);transform:translateZ(14px) rotate(var(--photo-rotation,0deg)) scale(1.04);transition:transform .7s cubic-bezier(.16,.8,.28,1),filter .5s}.memory-art .gallery-photo.photo-rotate{--photo-rotation:-90deg;transform:translateZ(14px) rotate(var(--photo-rotation)) scale(1.34)}.slide.active .gallery-photo:hover{transform:translateZ(26px) rotate(var(--photo-rotation,0deg)) scale(1.11);filter:saturate(1.16) contrast(1.07) brightness(1.02)}.slide.active .gallery-photo.photo-rotate:hover{transform:translateZ(26px) rotate(var(--photo-rotation)) scale(1.43)}.memory-art .art-icon{position:relative;z-index:2;font-size:clamp(7rem,26vw,12rem);filter:drop-shadow(0 13px 8px rgba(89,34,72,.2));animation:bob 3s ease-in-out infinite}.memory-art .art-sparkle{position:absolute;z-index:4;inset:0;background:radial-gradient(circle at 18% 15%,#fff 0 2px,transparent 3px),radial-gradient(circle at 78% 29%,#fff6be 0 3px,transparent 4px),radial-gradient(circle at 35% 77%,#fff 0 2px,transparent 3px);opacity:.85;pointer-events:none}.memory-caption{display:flex;align-items:end;justify-content:space-between;padding:16px 5px 2px}.memory-caption b{font-family:var(--display);font-size:1.5rem}.memory-caption span{font-size:.72rem;color:#a34d77;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.carousel-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:18px}.circle-button{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.65);border:1px solid var(--line);box-shadow:0 8px 18px rgba(125,42,85,.1);font-size:1.3rem}.carousel-count{font-size:.74rem;font-weight:800;letter-spacing:.16em;color:#9e4d74}
.cake-stage{min-height:calc(100svh - 118px);display:grid;align-content:center;justify-items:center;text-align:center}.cake{position:relative;width:min(80vw,360px);height:300px;margin:0 auto 10px;filter:drop-shadow(0 22px 12px rgba(117,45,73,.16));transform-style:preserve-3d}.cake-plate{position:absolute;width:95%;height:25px;left:2.5%;bottom:13px;border-radius:50%;background:linear-gradient(#fff,#e9d9e5);box-shadow:0 8px 8px rgba(95,44,69,.13);transform:translateZ(-12px)}.cake-layer{position:absolute;left:10%;right:10%;border-radius:17px 17px 34px 34px;transform-style:preserve-3d}.cake-layer.one{bottom:33px;height:83px;background:linear-gradient(90deg,#f593b7,#ffc6d9 45%,#ef6fa6);z-index:2;transform:translateZ(18px)}.cake-layer.two{bottom:101px;left:17%;right:17%;height:69px;background:linear-gradient(90deg,#e7679e,#ffc5d7 50%,#df4c8c);z-index:3;transform:translateZ(42px)}.icing{position:absolute;left:9%;right:9%;top:-7px;height:25px;border-radius:50%;background:#fff4f8;box-shadow:inset 0 -7px #f9b8d0;transform:translateZ(12px)}.cake-layer.two .icing{left:7%;right:7%}.cake-layer:after{content:"";position:absolute;left:18%;right:18%;bottom:17px;height:11px;background:radial-gradient(circle,#fff1a7 0 4px,transparent 5px) 0 0/36px 11px;transform:translateZ(16px)}.candle{position:absolute;z-index:5;bottom:165px;width:13px;height:54px;border-radius:7px;background:repeating-linear-gradient(45deg,#fff8d8 0 6px,#f687b6 6px 12px);transform:translateZ(74px)}.candle.c1{left:29%}.candle.c2{left:48%;height:68px;bottom:164px}.candle.c3{right:29%}.flame{position:absolute;width:18px;height:28px;left:-2px;top:-26px;border-radius:50% 50% 48% 48%;background:linear-gradient(#fff8c3,#ffb045 58%,#f55c72);transform-origin:bottom center;animation:flicker .5s ease-in-out infinite alternate;filter:drop-shadow(0 0 10px #ffcf56)}@keyframes flicker{to{transform:scaleX(.8) rotate(4deg)}}.cake.blown .flame{animation:blow .5s forwards}@keyframes blow{to{opacity:0;transform:translate(18px,-6px) scale(.2)}}.cake.cut .cake-layer.one{clip-path:polygon(0 0,100% 0,100% 100%,59% 100%,51% 62%,42% 100%,0 100%)}.cake.cut:after{content:"🍰";position:absolute;z-index:9;bottom:19px;right:-8px;font-size:3.6rem;animation:sliceOut .8s both}@keyframes sliceOut{from{transform:translate(-70px,-25px) scale(.5);opacity:0}to{transform:none;opacity:1}}
.game-layout{display:grid;gap:24px;align-items:center;min-height:calc(100svh - 118px)}.game-card{max-width:390px;width:100%;margin:auto;overflow:hidden;border-radius:28px;background:linear-gradient(180deg,#d5efff,#fef0fa 75%);border:8px solid rgba(255,255,255,.5);box-shadow:var(--shadow)}.game-hud{display:flex;justify-content:space-between;gap:8px;padding:13px 16px;background:rgba(255,255,255,.55);font-size:.72rem;font-weight:900;letter-spacing:.08em;color:#95466e}.game-hud b{color:var(--hot)}#doctorGame{display:block;width:100%;aspect-ratio:3/4;touch-action:none}.game-help{text-align:center;max-width:440px;margin:auto}.game-help h1{font-family:var(--display);font-size:clamp(2.7rem,10vw,4.8rem);line-height:.9;margin:0}.game-help p{line-height:1.7;color:#744a63}.legend{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:18px auto;text-align:left;font-size:.82rem}.legend div{padding:9px 11px;background:rgba(255,255,255,.46);border-radius:12px}.game-overlay{position:absolute;inset:0;z-index:2;display:grid;place-items:center;text-align:center;padding:25px;background:rgba(255,248,252,.78);backdrop-filter:blur(5px);transition:.4s}.game-overlay.hidden{opacity:0;pointer-events:none}.game-overlay h2{font-family:var(--display);font-size:2rem;margin:0 0 8px}.game-relative{position:relative}
.quiz-shell{max-width:680px;margin:auto;min-height:calc(100svh - 118px);display:grid;align-content:center}.quiz-card{padding:clamp(24px,6vw,48px);text-align:center}.quiz-step{font-size:.71rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase;color:#b54d7a}.quiz-question{font-family:var(--display);font-size:clamp(2rem,7vw,3.5rem);line-height:1.02;margin:19px 0 26px}.answers{display:grid;gap:10px}.answer{padding:16px 18px;text-align:left;border:1px solid rgba(255,255,255,.8);border-radius:16px;background:rgba(255,255,255,.52);font-weight:750;transition:.2s}.answer:hover{transform:translateX(5px);background:#fff}.answer.correct{background:#c9f1d9;border-color:#72bc8c}.answer.wrong{background:#ffd2dd;border-color:#ee809a}.quiz-result{animation:rise .5s both}@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.certificate-page{max-width:1100px;margin:auto;min-height:calc(100svh - 118px);display:grid;align-content:center}.certificate{position:relative;padding:clamp(28px,7vw,70px) clamp(20px,7vw,90px);text-align:center;overflow:hidden;background:#fffdf4;border:10px double #d9aa48;box-shadow:0 20px 60px rgba(126,80,27,.25),inset 0 0 0 5px #fff5cd}.certificate:before,.certificate:after{content:"✦";position:absolute;color:#dcae4c;font-size:clamp(3rem,9vw,6rem);opacity:.55}.certificate:before{left:4%;top:5%}.certificate:after{right:4%;bottom:5%}.certificate .eyebrow{color:#98733a}.certificate h1{font-family:var(--display);font-size:clamp(3.2rem,11vw,7rem);line-height:.9;margin:11px 0;color:#6d3a2c}.certificate .recipient{font-family:var(--display);font-size:clamp(2rem,7vw,4rem);font-style:italic;color:#c35f84;margin:23px 0 11px}.certificate p{position:relative;z-index:1;max-width:600px;margin:0 auto;color:#755d50;line-height:1.75}.certificate-seal{display:grid;place-items:center;margin:28px auto 0;width:95px;aspect-ratio:1;border:2px dashed #a76d20;border-radius:50%;background:radial-gradient(circle,#fff4b0,#dea738);color:#744e18;font-family:var(--display);font-size:1.05rem;font-weight:800;transform:rotate(-12deg)}.certificate-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:22px}
.finale{min-height:calc(100svh - 118px);display:grid;align-content:center;justify-items:center;text-align:center}.firework-canvas{position:fixed;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none}.finale h1{max-width:920px;font-family:var(--display);font-size:clamp(3.8rem,14vw,9rem);line-height:.78;letter-spacing:-.08em;margin:0;background:linear-gradient(135deg,#fff4b6,#f9b2d0 42%,#edb14b 78%,#fff4b6);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 18px rgba(94,28,58,.25))}.finale-card{max-width:660px;margin:30px auto 0;padding:25px}.finale-card p{margin:0;color:#72445e;line-height:1.78}.finale .button-row{margin-top:25px}.page--finale{background:radial-gradient(circle at 50% 15%,#74446f 0,#381f42 47%,#1c1834 100%);color:white}.page--finale .brand{color:white}.page--finale .sound-control{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.25);color:white}.page--finale .finale-card{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.28);box-shadow:0 28px 90px rgba(0,0,0,.22)}.page--finale .finale-card p{color:#ffedf5}.page--finale .eyebrow{color:#ffe9ad}.page--finale .progress-dots i{background:rgba(255,255,255,.28)}.page--finale .progress-dots i.active{background:#ffd374}
.page--loader{display:grid;place-items:center;overflow:hidden}.loader-card{width:min(88vw,480px);text-align:center;padding:44px 32px}.loader-card .monogram{display:grid;place-items:center;width:105px;aspect-ratio:1;margin:0 auto 23px;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:radial-gradient(circle at 38% 30%,#fff,#ffc5dc 52%,#e274aa);box-shadow:0 15px 44px rgba(175,46,105,.26);font-family:var(--display);font-size:3.7rem;color:#b13070;animation:pulse 2s ease-in-out infinite}.monogram span{position:absolute;font-family:var(--body);font-size:1.15rem;color:#dfaa38;transform:translate(37px,-27px)}@keyframes pulse{50%{transform:scale(1.07);box-shadow:0 18px 58px rgba(175,46,105,.36)}}.loader-card h1{font-family:var(--display);font-size:clamp(2.6rem,10vw,4.6rem);line-height:.95;margin:0}.loading-track{height:7px;margin:32px auto 12px;overflow:hidden;border-radius:99px;background:rgba(191,81,128,.15)}.loading-track i{display:block;width:43%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ec4386,#ffc4d9,#d5a0e7);animation:load 2.7s ease-in-out forwards}@keyframes load{to{width:100%}}.loader-status{font-size:.75rem;font-weight:700;color:#8d5270}.loader-status b{color:#e34485}
.click-spark{position:fixed;z-index:50;pointer-events:none;font-size:1.2rem;animation:spark .75s ease-out forwards}@keyframes spark{to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.2) rotate(90deg)}}.confetti{position:fixed;z-index:80;top:-20px;width:10px;height:17px;border-radius:3px;pointer-events:none;animation:confettiFall var(--fall) ease-in forwards}@keyframes confettiFall{to{transform:translate3d(var(--side),110svh,0) rotate(720deg);opacity:.85}}.toast{position:fixed;z-index:100;left:50%;bottom:25px;transform:translate(-50%,25px);opacity:0;max-width:88vw;padding:12px 17px;border-radius:15px;background:#4e2544;color:#fff6f9;box-shadow:0 15px 30px rgba(70,25,55,.28);font-size:.85rem;font-weight:750;transition:.35s}.toast.show{opacity:1;transform:translate(-50%,0)}

/* Interactive depth system: lightweight CSS transforms keep the experience smooth on phones. */
.page{perspective:1400px}.atmosphere{transform-style:preserve-3d}.depth-orb{position:fixed;z-index:-1;width:clamp(100px,17vw,230px);aspect-ratio:1;border-radius:50%;pointer-events:none;mix-blend-mode:screen;filter:blur(1px);background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.98),rgba(255,174,211,.45) 24%,rgba(255,120,181,.08) 59%,transparent 72%);box-shadow:inset -20px -18px 38px rgba(175,51,111,.2),inset 15px 11px 25px rgba(255,255,255,.85),0 28px 38px rgba(130,46,91,.22);animation:depthFloat var(--depth-duration) ease-in-out var(--depth-delay) infinite alternate}.depth-orb--1{left:5%;top:17%;--depth-duration:8s;--depth-delay:-2s}.depth-orb--2{right:6%;top:55%;width:clamp(72px,12vw,165px);background:radial-gradient(circle at 33% 26%,#fff,rgba(235,207,255,.64) 26%,rgba(164,122,236,.09) 65%,transparent 73%);--depth-duration:11s;--depth-delay:-6s}.depth-orb--3{left:15%;bottom:4%;width:clamp(48px,8vw,105px);background:radial-gradient(circle at 30% 24%,#fff,rgba(255,228,163,.62) 29%,rgba(235,171,59,.08) 68%,transparent 76%);--depth-duration:7s;--depth-delay:-4s}@keyframes depthFloat{to{transform:translate3d(var(--depth-x,16px),var(--depth-y,-32px),80px) rotate(13deg) scale(1.08)}}
.tilt-3d{--rx:0deg;--ry:0deg;transform-style:preserve-3d;will-change:transform}.hero-orbit.tilt-3d{transform:perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .2s ease-out}.hero-orbit.tilt-3d .portrait-illustration{transform:translateZ(54px)}.hero-orbit.tilt-3d:before{transform:translateZ(26px) rotateX(70deg);animation:spin 14s linear infinite}.hero-orbit.tilt-3d:after{transform:translateZ(76px)}.glass-card.tilt-3d:not(.gift-reveal),.game-card.tilt-3d,.certificate.tilt-3d,.cake.tilt-3d,.time-card.tilt-3d{transform:perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .2s ease-out,box-shadow .25s ease}.glass-card.tilt-3d:not(.gift-reveal):hover,.game-card.tilt-3d:hover,.certificate.tilt-3d:hover{box-shadow:0 35px 82px rgba(120,45,87,.29)}.memory-card.tilt-3d{transform:rotate(var(--tilt)) perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .2s ease-out}.gift-box.tilt-3d{transform:perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .2s ease-out}.password-card.tilt-3d .mini-illustration,.quiz-card.tilt-3d .quiz-question,.certificate.tilt-3d h1,.certificate.tilt-3d .recipient,.finale-card.tilt-3d p{transform:translateZ(32px)}.certificate.tilt-3d .certificate-seal{transform:translateZ(58px) rotate(-12deg)}.time-card.tilt-3d b{transform:translateZ(22px);display:block}.cake.tilt-3d{transform:perspective(1200px) rotateX(calc(var(--rx) * .7)) rotateY(calc(var(--ry) * .7));transition:transform .2s ease-out}.gift-box.tilt-3d:hover{transform:perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(-8px) scale(1.03)}
@media(min-width:760px){.split-layout{grid-template-columns:1fr 1.1fr}.split-layout .copy{text-align:left}.split-layout .button-row{justify-content:flex-start}.mini-illustration{min-height:470px}.slides{min-height:505px}.game-layout{grid-template-columns:1fr 1fr;gap:70px}.game-help{text-align:left}.certificate-actions{margin-top:30px}}
@media(max-width:380px){.site-shell{padding-inline:12px}.topbar{margin-bottom:16px}.hero h1{font-size:2.8rem}.gift-wrap h1{font-size:2.6rem}.slides{min-height:390px}.memory-card{min-height:370px}.memory-art{min-height:280px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.tilt-3d{transform:none!important}}
@media print{.topbar,.certificate-actions,.atmosphere,.particle{display:none!important}body{background:#fff}.site-shell{padding:0}.certificate-page{display:block}.certificate{box-shadow:none;margin:0;min-height:100vh}}
